diff --git a/contracts b/contracts index 109a8a36c..780366a0c 160000 --- a/contracts +++ b/contracts @@ -1 +1 @@ -Subproject commit 109a8a36cd4c6a2a0d2b5003b01adee60d83e2a1 +Subproject commit 780366a0c40caf694ed544a6a1d52c0de56573ba diff --git a/solgen/go/assertionStakingPoolgen/assertionStakingPoolgen.go b/solgen/go/assertionStakingPoolgen/assertionStakingPoolgen.go index 6fc617e3a..f8ae1c398 100644 --- a/solgen/go/assertionStakingPoolgen/assertionStakingPoolgen.go +++ b/solgen/go/assertionStakingPoolgen/assertionStakingPoolgen.go @@ -644,7 +644,7 @@ func (_AbsBoldStakingPool *AbsBoldStakingPoolFilterer) ParseStakeWithdrawn(log t // AssertionStakingPoolMetaData contains all meta data concerning the AssertionStakingPool contract. var AssertionStakingPoolMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_assertionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"AmountExceedsBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAssertionId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"assertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertionInputs\",\"type\":\"tuple\"}],\"name\":\"createAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"depositBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositIntoPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"makeStakeWithdrawable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"makeStakeWithdrawableAndWithdrawBackIntoPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFromPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFromPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawStakeBackIntoPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60e060405234801561001057600080fd5b50604051610f09380380610f0983398101604081905261002f916100ed565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610119565b6001600160a01b0316608052806100bb57604051630b12999960e11b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013b565b80516001600160a01b03811681146100e857600080fd5b919050565b6000806040838503121561010057600080fd5b610109836100d1565b9150602083015190509250929050565b60006020828403121561012b57600080fd5b610134826100d1565b9392505050565b60805160a05160c051610d686101a16000396000818160d301526104be0152600081816101c7015281816104380152818161048d01528181610520015261059501526000818161012a015281816102c0015281816103a401526104160152610d686000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80637476083b116100815780639451944d1161005b5780639451944d1461019a578063956501bb146101a2578063cb23bcb5146101c257600080fd5b80637476083b1461016c578063839159711461017f578063930412af1461019257600080fd5b806330fc43ed116100b257806330fc43ed1461011257806351ed6a30146101255780636b74d5151461016457600080fd5b80632113ed21146100ce57806326c0e5c514610108575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101106101e9565b005b610110610120366004610a7c565b610204565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ff565b610110610328565b61011061017a366004610a7c565b610338565b61011061018d366004610a95565b610404565b61011061051e565b610110610593565b6100f56101b0366004610aca565b60006020819052908152604090205481565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b3360009081526020819052604090205461020290610204565b565b8060000361023e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081905260409020548082111561029d576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b6102a78282610b14565b336000818152602081905260409020919091556102ef907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908461061a565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b61033061051e565b610202610593565b80600003610372576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610391908490610b2d565b909155506103cc90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106c8565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b606081013561045d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610719565b6040517f50f32f680000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906350f32f68906104e890849086907f0000000000000000000000000000000000000000000000000000000000000000903090600401610bbe565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357ef4ab96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663613739196040518163ffffffff1660e01b81526004016020604051808303816000875af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190610c84565b50565b6040516001600160a01b0383166024820152604481018290526106c39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107fd565b505050565b6040516001600160a01b038085166024830152831660448201526064810182905261058d9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161065f565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a79190610c84565b6107b19190610b2d565b6040516001600160a01b03851660248201526044810182905290915061058d9085907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161065f565b6000610852826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108e29092919063ffffffff16565b8051909150156106c357808060200190518101906108709190610c9d565b6106c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610294565b60606108f184846000856108fb565b90505b9392505050565b6060824710156109735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b0385163b6109ca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610294565b600080866001600160a01b031685876040516109e69190610ce3565b60006040518083038185875af1925050503d8060008114610a23576040519150601f19603f3d011682016040523d82523d6000602084013e610a28565b606091505b5091509150610a38828286610a43565b979650505050505050565b60608315610a525750816108f4565b825115610a625782518084602001fd5b8160405162461bcd60e51b81526004016102949190610cff565b600060208284031215610a8e57600080fd5b5035919050565b60006102608284031215610aa857600080fd5b50919050565b80356001600160a01b0381168114610ac557600080fd5b919050565b600060208284031215610adc57600080fd5b6108f482610aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610b2757610b27610ae5565b92915050565b80820180821115610b2757610b27610ae5565b803567ffffffffffffffff81168114610ac557600080fd5b6040818337604082016040820160005b6002811015610b995767ffffffffffffffff610b8383610b40565b1683526020928301929190910190600101610b68565b505050608081013560038110610bae57600080fd5b608083015260a090810135910152565b60006102c082019050858252843560208301526020850135604083015260408501356060830152606085013560808301526001600160a01b03610c0360808701610aae565b1660a0830152610c1560a08601610b40565b67ffffffffffffffff80821660c085015280610c3360c08901610b40565b1660e08501525050610c4c610100830160e08701610b58565b610c5e6101c083016101a08701610b58565b83610280830152610c7b6102a08301846001600160a01b03169052565b95945050505050565b600060208284031215610c9657600080fd5b5051919050565b600060208284031215610caf57600080fd5b815180151581146108f457600080fd5b60005b83811015610cda578181015183820152602001610cc2565b50506000910152565b60008251610cf5818460208701610cbf565b9190910192915050565b6020815260008251806020840152610d1e816040850160208701610cbf565b601f01601f1916919091016040019291505056fea2646970667358221220139a59b1cc245a49e73132a0c265c8e763b761005f05d122a234c9e38495887264736f6c63430008110033", + Bin: "0x60e060405234801561001057600080fd5b50604051610f09380380610f0983398101604081905261002f916100ed565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610119565b6001600160a01b0316608052806100bb57604051630b12999960e11b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013b565b80516001600160a01b03811681146100e857600080fd5b919050565b6000806040838503121561010057600080fd5b610109836100d1565b9150602083015190509250929050565b60006020828403121561012b57600080fd5b610134826100d1565b9392505050565b60805160a05160c051610d686101a16000396000818160d301526104be0152600081816101c7015281816104380152818161048d01528181610520015261059501526000818161012a015281816102c0015281816103a401526104160152610d686000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80637476083b116100815780639451944d1161005b5780639451944d1461019a578063956501bb146101a2578063cb23bcb5146101c257600080fd5b80637476083b1461016c578063839159711461017f578063930412af1461019257600080fd5b806330fc43ed116100b257806330fc43ed1461011257806351ed6a30146101255780636b74d5151461016457600080fd5b80632113ed21146100ce57806326c0e5c514610108575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101106101e9565b005b610110610120366004610a7c565b610204565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ff565b610110610328565b61011061017a366004610a7c565b610338565b61011061018d366004610a95565b610404565b61011061051e565b610110610593565b6100f56101b0366004610aca565b60006020819052908152604090205481565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b3360009081526020819052604090205461020290610204565b565b8060000361023e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081905260409020548082111561029d576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b6102a78282610b14565b336000818152602081905260409020919091556102ef907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908461061a565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b61033061051e565b610202610593565b80600003610372576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610391908490610b2d565b909155506103cc90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106c8565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b606081013561045d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610719565b6040517f50f32f680000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906350f32f68906104e890849086907f0000000000000000000000000000000000000000000000000000000000000000903090600401610bbe565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357ef4ab96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663613739196040518163ffffffff1660e01b81526004016020604051808303816000875af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190610c84565b50565b6040516001600160a01b0383166024820152604481018290526106c39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107fd565b505050565b6040516001600160a01b038085166024830152831660448201526064810182905261058d9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161065f565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a79190610c84565b6107b19190610b2d565b6040516001600160a01b03851660248201526044810182905290915061058d9085907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161065f565b6000610852826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108e29092919063ffffffff16565b8051909150156106c357808060200190518101906108709190610c9d565b6106c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610294565b60606108f184846000856108fb565b90505b9392505050565b6060824710156109735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b0385163b6109ca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610294565b600080866001600160a01b031685876040516109e69190610ce3565b60006040518083038185875af1925050503d8060008114610a23576040519150601f19603f3d011682016040523d82523d6000602084013e610a28565b606091505b5091509150610a38828286610a43565b979650505050505050565b60608315610a525750816108f4565b825115610a625782518084602001fd5b8160405162461bcd60e51b81526004016102949190610cff565b600060208284031215610a8e57600080fd5b5035919050565b60006102608284031215610aa857600080fd5b50919050565b80356001600160a01b0381168114610ac557600080fd5b919050565b600060208284031215610adc57600080fd5b6108f482610aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610b2757610b27610ae5565b92915050565b80820180821115610b2757610b27610ae5565b803567ffffffffffffffff81168114610ac557600080fd5b6040818337604082016040820160005b6002811015610b995767ffffffffffffffff610b8383610b40565b1683526020928301929190910190600101610b68565b505050608081013560038110610bae57600080fd5b608083015260a090810135910152565b60006102c082019050858252843560208301526020850135604083015260408501356060830152606085013560808301526001600160a01b03610c0360808701610aae565b1660a0830152610c1560a08601610b40565b67ffffffffffffffff80821660c085015280610c3360c08901610b40565b1660e08501525050610c4c610100830160e08701610b58565b610c5e6101c083016101a08701610b58565b83610280830152610c7b6102a08301846001600160a01b03169052565b95945050505050565b600060208284031215610c9657600080fd5b5051919050565b600060208284031215610caf57600080fd5b815180151581146108f457600080fd5b60005b83811015610cda578181015183820152602001610cc2565b50506000910152565b60008251610cf5818460208701610cbf565b9190910192915050565b6020815260008251806020840152610d1e816040850160208701610cbf565b601f01601f1916919091016040019291505056fea264697066735822122055d4fcab3f45250b7338e6e990411dcf2db44436f94c576435f68151cd4d0b7e64736f6c63430008110033", } // AssertionStakingPoolABI is the input ABI used to generate the binding from. @@ -1378,7 +1378,7 @@ func (_AssertionStakingPool *AssertionStakingPoolFilterer) ParseStakeWithdrawn(l // AssertionStakingPoolCreatorMetaData contains all meta data concerning the AssertionStakingPoolCreator contract. var AssertionStakingPoolCreatorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"PoolDoesntExist\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_assertionHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"assertionPool\",\"type\":\"address\"}],\"name\":\"NewAssertionPoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_assertionHash\",\"type\":\"bytes32\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"contractIAssertionStakingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_rollup\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"contractIAssertionStakingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50611286806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639b505aa11461003b578063dc082ad314610077575b600080fd5b61004e6100493660046102b5565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e6100853660046102b5565b61013d565b6000806000801b848460405161009f906102a8565b73ffffffffffffffffffffffffffffffffffffffff909216825260208201526040018190604051809103906000f59050801580156100e1573d6000803e3d6000fd5b5060405173ffffffffffffffffffffffffffffffffffffffff808316825291925084918616907fd628317c6ebae87acc5dbfadeb835cb97692cc6935ea72bf37461e14a0bbee1e9060200160405180910390a390505b92915050565b600061019f60405180602001610152906102a8565b601f1982820381018352601f90910116604081815273ffffffffffffffffffffffffffffffffffffffff8716602083015281018590526060016040516020818303038152906040526101a6565b9392505050565b60008083836040516020016101bc92919061032a565b60408051808303601f1901815282825280516020918201207fff00000000000000000000000000000000000000000000000000000000000000828501523060601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021850152600060358501526055808501829052835180860390910181526075909401909252825192019190912090915073ffffffffffffffffffffffffffffffffffffffff81163b156102765791506101379050565b6040517f215db33100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f098061034883390190565b600080604083850312156102c857600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146102ec57600080fd5b946020939093013593505050565b6000815160005b8181101561031b5760208185018101518683015201610301565b50600093019283525090919050565b600061033f61033983866102fa565b846102fa565b94935050505056fe60e060405234801561001057600080fd5b50604051610f09380380610f0983398101604081905261002f916100ed565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610119565b6001600160a01b0316608052806100bb57604051630b12999960e11b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013b565b80516001600160a01b03811681146100e857600080fd5b919050565b6000806040838503121561010057600080fd5b610109836100d1565b9150602083015190509250929050565b60006020828403121561012b57600080fd5b610134826100d1565b9392505050565b60805160a05160c051610d686101a16000396000818160d301526104be0152600081816101c7015281816104380152818161048d01528181610520015261059501526000818161012a015281816102c0015281816103a401526104160152610d686000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80637476083b116100815780639451944d1161005b5780639451944d1461019a578063956501bb146101a2578063cb23bcb5146101c257600080fd5b80637476083b1461016c578063839159711461017f578063930412af1461019257600080fd5b806330fc43ed116100b257806330fc43ed1461011257806351ed6a30146101255780636b74d5151461016457600080fd5b80632113ed21146100ce57806326c0e5c514610108575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101106101e9565b005b610110610120366004610a7c565b610204565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ff565b610110610328565b61011061017a366004610a7c565b610338565b61011061018d366004610a95565b610404565b61011061051e565b610110610593565b6100f56101b0366004610aca565b60006020819052908152604090205481565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b3360009081526020819052604090205461020290610204565b565b8060000361023e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081905260409020548082111561029d576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b6102a78282610b14565b336000818152602081905260409020919091556102ef907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908461061a565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b61033061051e565b610202610593565b80600003610372576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610391908490610b2d565b909155506103cc90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106c8565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b606081013561045d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610719565b6040517f50f32f680000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906350f32f68906104e890849086907f0000000000000000000000000000000000000000000000000000000000000000903090600401610bbe565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357ef4ab96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663613739196040518163ffffffff1660e01b81526004016020604051808303816000875af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190610c84565b50565b6040516001600160a01b0383166024820152604481018290526106c39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107fd565b505050565b6040516001600160a01b038085166024830152831660448201526064810182905261058d9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161065f565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a79190610c84565b6107b19190610b2d565b6040516001600160a01b03851660248201526044810182905290915061058d9085907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161065f565b6000610852826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108e29092919063ffffffff16565b8051909150156106c357808060200190518101906108709190610c9d565b6106c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610294565b60606108f184846000856108fb565b90505b9392505050565b6060824710156109735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b0385163b6109ca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610294565b600080866001600160a01b031685876040516109e69190610ce3565b60006040518083038185875af1925050503d8060008114610a23576040519150601f19603f3d011682016040523d82523d6000602084013e610a28565b606091505b5091509150610a38828286610a43565b979650505050505050565b60608315610a525750816108f4565b825115610a625782518084602001fd5b8160405162461bcd60e51b81526004016102949190610cff565b600060208284031215610a8e57600080fd5b5035919050565b60006102608284031215610aa857600080fd5b50919050565b80356001600160a01b0381168114610ac557600080fd5b919050565b600060208284031215610adc57600080fd5b6108f482610aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610b2757610b27610ae5565b92915050565b80820180821115610b2757610b27610ae5565b803567ffffffffffffffff81168114610ac557600080fd5b6040818337604082016040820160005b6002811015610b995767ffffffffffffffff610b8383610b40565b1683526020928301929190910190600101610b68565b505050608081013560038110610bae57600080fd5b608083015260a090810135910152565b60006102c082019050858252843560208301526020850135604083015260408501356060830152606085013560808301526001600160a01b03610c0360808701610aae565b1660a0830152610c1560a08601610b40565b67ffffffffffffffff80821660c085015280610c3360c08901610b40565b1660e08501525050610c4c610100830160e08701610b58565b610c5e6101c083016101a08701610b58565b83610280830152610c7b6102a08301846001600160a01b03169052565b95945050505050565b600060208284031215610c9657600080fd5b5051919050565b600060208284031215610caf57600080fd5b815180151581146108f457600080fd5b60005b83811015610cda578181015183820152602001610cc2565b50506000910152565b60008251610cf5818460208701610cbf565b9190910192915050565b6020815260008251806020840152610d1e816040850160208701610cbf565b601f01601f1916919091016040019291505056fea2646970667358221220139a59b1cc245a49e73132a0c265c8e763b761005f05d122a234c9e38495887264736f6c63430008110033a2646970667358221220ccbb4c81bc6f74b19fd3b583b5274ba36a1518ae80c0f14b9a3e9f1f08624c8964736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b50611286806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639b505aa11461003b578063dc082ad314610077575b600080fd5b61004e6100493660046102b5565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e6100853660046102b5565b61013d565b6000806000801b848460405161009f906102a8565b73ffffffffffffffffffffffffffffffffffffffff909216825260208201526040018190604051809103906000f59050801580156100e1573d6000803e3d6000fd5b5060405173ffffffffffffffffffffffffffffffffffffffff808316825291925084918616907fd628317c6ebae87acc5dbfadeb835cb97692cc6935ea72bf37461e14a0bbee1e9060200160405180910390a390505b92915050565b600061019f60405180602001610152906102a8565b601f1982820381018352601f90910116604081815273ffffffffffffffffffffffffffffffffffffffff8716602083015281018590526060016040516020818303038152906040526101a6565b9392505050565b60008083836040516020016101bc92919061032a565b60408051808303601f1901815282825280516020918201207fff00000000000000000000000000000000000000000000000000000000000000828501523060601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021850152600060358501526055808501829052835180860390910181526075909401909252825192019190912090915073ffffffffffffffffffffffffffffffffffffffff81163b156102765791506101379050565b6040517f215db33100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f098061034883390190565b600080604083850312156102c857600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146102ec57600080fd5b946020939093013593505050565b6000815160005b8181101561031b5760208185018101518683015201610301565b50600093019283525090919050565b600061033f61033983866102fa565b846102fa565b94935050505056fe60e060405234801561001057600080fd5b50604051610f09380380610f0983398101604081905261002f916100ed565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610119565b6001600160a01b0316608052806100bb57604051630b12999960e11b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013b565b80516001600160a01b03811681146100e857600080fd5b919050565b6000806040838503121561010057600080fd5b610109836100d1565b9150602083015190509250929050565b60006020828403121561012b57600080fd5b610134826100d1565b9392505050565b60805160a05160c051610d686101a16000396000818160d301526104be0152600081816101c7015281816104380152818161048d01528181610520015261059501526000818161012a015281816102c0015281816103a401526104160152610d686000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80637476083b116100815780639451944d1161005b5780639451944d1461019a578063956501bb146101a2578063cb23bcb5146101c257600080fd5b80637476083b1461016c578063839159711461017f578063930412af1461019257600080fd5b806330fc43ed116100b257806330fc43ed1461011257806351ed6a30146101255780636b74d5151461016457600080fd5b80632113ed21146100ce57806326c0e5c514610108575b600080fd5b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101106101e9565b005b610110610120366004610a7c565b610204565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ff565b610110610328565b61011061017a366004610a7c565b610338565b61011061018d366004610a95565b610404565b61011061051e565b610110610593565b6100f56101b0366004610aca565b60006020819052908152604090205481565b61014c7f000000000000000000000000000000000000000000000000000000000000000081565b3360009081526020819052604090205461020290610204565b565b8060000361023e576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152602081905260409020548082111561029d576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b6102a78282610b14565b336000818152602081905260409020919091556102ef907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908461061a565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b61033061051e565b610202610593565b80600003610372576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610391908490610b2d565b909155506103cc90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106c8565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b606081013561045d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610719565b6040517f50f32f680000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906350f32f68906104e890849086907f0000000000000000000000000000000000000000000000000000000000000000903090600401610bbe565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166357ef4ab96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663613739196040518163ffffffff1660e01b81526004016020604051808303816000875af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190610c84565b50565b6040516001600160a01b0383166024820152604481018290526106c39084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107fd565b505050565b6040516001600160a01b038085166024830152831660448201526064810182905261058d9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161065f565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a79190610c84565b6107b19190610b2d565b6040516001600160a01b03851660248201526044810182905290915061058d9085907f095ea7b3000000000000000000000000000000000000000000000000000000009060640161065f565b6000610852826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108e29092919063ffffffff16565b8051909150156106c357808060200190518101906108709190610c9d565b6106c35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610294565b60606108f184846000856108fb565b90505b9392505050565b6060824710156109735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b0385163b6109ca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610294565b600080866001600160a01b031685876040516109e69190610ce3565b60006040518083038185875af1925050503d8060008114610a23576040519150601f19603f3d011682016040523d82523d6000602084013e610a28565b606091505b5091509150610a38828286610a43565b979650505050505050565b60608315610a525750816108f4565b825115610a625782518084602001fd5b8160405162461bcd60e51b81526004016102949190610cff565b600060208284031215610a8e57600080fd5b5035919050565b60006102608284031215610aa857600080fd5b50919050565b80356001600160a01b0381168114610ac557600080fd5b919050565b600060208284031215610adc57600080fd5b6108f482610aae565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610b2757610b27610ae5565b92915050565b80820180821115610b2757610b27610ae5565b803567ffffffffffffffff81168114610ac557600080fd5b6040818337604082016040820160005b6002811015610b995767ffffffffffffffff610b8383610b40565b1683526020928301929190910190600101610b68565b505050608081013560038110610bae57600080fd5b608083015260a090810135910152565b60006102c082019050858252843560208301526020850135604083015260408501356060830152606085013560808301526001600160a01b03610c0360808701610aae565b1660a0830152610c1560a08601610b40565b67ffffffffffffffff80821660c085015280610c3360c08901610b40565b1660e08501525050610c4c610100830160e08701610b58565b610c5e6101c083016101a08701610b58565b83610280830152610c7b6102a08301846001600160a01b03169052565b95945050505050565b600060208284031215610c9657600080fd5b5051919050565b600060208284031215610caf57600080fd5b815180151581146108f457600080fd5b60005b83811015610cda578181015183820152602001610cc2565b50506000910152565b60008251610cf5818460208701610cbf565b9190910192915050565b6020815260008251806020840152610d1e816040850160208701610cbf565b601f01601f1916919091016040019291505056fea264697066735822122055d4fcab3f45250b7338e6e990411dcf2db44436f94c576435f68151cd4d0b7e64736f6c63430008110033a2646970667358221220cef311f449d3fdef0e474af3162d1094b41243602cb331b4bcf6f95154b1b2b564736f6c63430008110033", } // AssertionStakingPoolCreatorABI is the input ABI used to generate the binding from. @@ -1757,7 +1757,7 @@ func (_AssertionStakingPoolCreator *AssertionStakingPoolCreatorFilterer) ParseNe // EdgeStakingPoolMetaData contains all meta data concerning the EdgeStakingPool contract. var EdgeStakingPoolMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_challengeManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_edgeId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"AmountExceedsBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyEdgeId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"IncorrectEdgeId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"challengeManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structCreateEdgeArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createEdge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"depositBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositIntoPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"edgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFromPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawFromPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60e060405234801561001057600080fd5b50604051610eea380380610eea83398101604081905261002f916100e8565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610116565b6001600160a01b0316608052806100ba57604051620d29f560e71b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013a565b6001600160a01b03811681146100e557600080fd5b50565b600080604083850312156100fb57600080fd5b8251610106816100d0565b6020939093015192949293505050565b60006020828403121561012857600080fd5b8151610133816100d0565b9392505050565b60805160a05160c051610d4b61019f6000396000818161015b0152818161055801526105ac0152600081816092015281816103a70152818161048401526104dc01526000818160f3015281816102670152818161033b01526104620152610d4b6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637476083b1161005b5780637476083b14610115578063956501bb146101285780639cfa2a2a14610156578063bd3eec7d1461017d57600080fd5b8063023a96fe1461008d57806326c0e5c5146100d157806330fc43ed146100db57806351ed6a30146100ee575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9610190565b005b6100d96100e9366004610a40565b6101ab565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100d9610123366004610a40565b6102cf565b610148610136366004610a59565b60006020819052908152604090205481565b6040519081526020016100c8565b6101487f000000000000000000000000000000000000000000000000000000000000000081565b6100d961018b366004610a82565b61039b565b336000908152602081905260409020546101a9906101ab565b565b806000036101e5576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604090205480821115610244576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b61024e8282610aec565b33600081815260208190526040902091909155610296907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690846105dd565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b80600003610309576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610328908490610b05565b9091555061036390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610686565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c1b4f3a6103d96020850185610b2e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190610b49565b90506104a96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106dd565b6040517f05fae1410000000000000000000000000000000000000000000000000000000081526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305fae14190610511908690600401610bf8565b6020604051808303816000875af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b49565b90507f000000000000000000000000000000000000000000000000000000000000000081146105d8576040517f75c0811b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161023b565b505050565b6040516001600160a01b0383166024820152604481018290526105d89084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107c1565b6040516001600160a01b03808516602483015283166044820152606481018290526106d79085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610622565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190610b49565b6107759190610b05565b6040516001600160a01b0385166024820152604481018290529091506106d79085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610622565b6000610816826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108a69092919063ffffffff16565b8051909150156105d857808060200190518101906108349190610c80565b6105d85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023b565b60606108b584846000856108bf565b90505b9392505050565b6060824710156109375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023b565b6001600160a01b0385163b61098e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023b565b600080866001600160a01b031685876040516109aa9190610cc6565b60006040518083038185875af1925050503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b50915091506109fc828286610a07565b979650505050505050565b60608315610a165750816108b8565b825115610a265782518084602001fd5b8160405162461bcd60e51b815260040161023b9190610ce2565b600060208284031215610a5257600080fd5b5035919050565b600060208284031215610a6b57600080fd5b81356001600160a01b03811681146108b857600080fd5b600060208284031215610a9457600080fd5b813567ffffffffffffffff811115610aab57600080fd5b820160c081850312156108b857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610aff57610aff610abd565b92915050565b80820180821115610aff57610aff610abd565b803560ff81168114610b2957600080fd5b919050565b600060208284031215610b4057600080fd5b6108b882610b18565b600060208284031215610b5b57600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610b9757600080fd5b830160208101925035905067ffffffffffffffff811115610bb757600080fd5b803603821315610bc657600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260ff610c0783610b18565b1660208201526020820135604082015260408201356060820152606082013560808201526000610c3a6080840184610b62565b60c060a0850152610c4f60e085018284610bcd565b915050610c5f60a0850185610b62565b601f198584030160c0860152610c76838284610bcd565b9695505050505050565b600060208284031215610c9257600080fd5b815180151581146108b857600080fd5b60005b83811015610cbd578181015183820152602001610ca5565b50506000910152565b60008251610cd8818460208701610ca2565b9190910192915050565b6020815260008251806020840152610d01816040850160208701610ca2565b601f01601f1916919091016040019291505056fea26469706673582212208300d9eb69919191f4a48770fd17aa2e0f906dbd33fb54c5b7e6be332f28a69064736f6c63430008110033", + Bin: "0x60e060405234801561001057600080fd5b50604051610eea380380610eea83398101604081905261002f916100e8565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610116565b6001600160a01b0316608052806100ba57604051620d29f560e71b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013a565b6001600160a01b03811681146100e557600080fd5b50565b600080604083850312156100fb57600080fd5b8251610106816100d0565b6020939093015192949293505050565b60006020828403121561012857600080fd5b8151610133816100d0565b9392505050565b60805160a05160c051610d4b61019f6000396000818161015b0152818161055801526105ac0152600081816092015281816103a70152818161048401526104dc01526000818160f3015281816102670152818161033b01526104620152610d4b6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637476083b1161005b5780637476083b14610115578063956501bb146101285780639cfa2a2a14610156578063bd3eec7d1461017d57600080fd5b8063023a96fe1461008d57806326c0e5c5146100d157806330fc43ed146100db57806351ed6a30146100ee575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9610190565b005b6100d96100e9366004610a40565b6101ab565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100d9610123366004610a40565b6102cf565b610148610136366004610a59565b60006020819052908152604090205481565b6040519081526020016100c8565b6101487f000000000000000000000000000000000000000000000000000000000000000081565b6100d961018b366004610a82565b61039b565b336000908152602081905260409020546101a9906101ab565b565b806000036101e5576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604090205480821115610244576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b61024e8282610aec565b33600081815260208190526040902091909155610296907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690846105dd565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b80600003610309576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610328908490610b05565b9091555061036390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610686565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c1b4f3a6103d96020850185610b2e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190610b49565b90506104a96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106dd565b6040517f05fae1410000000000000000000000000000000000000000000000000000000081526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305fae14190610511908690600401610bf8565b6020604051808303816000875af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b49565b90507f000000000000000000000000000000000000000000000000000000000000000081146105d8576040517f75c0811b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161023b565b505050565b6040516001600160a01b0383166024820152604481018290526105d89084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107c1565b6040516001600160a01b03808516602483015283166044820152606481018290526106d79085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610622565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190610b49565b6107759190610b05565b6040516001600160a01b0385166024820152604481018290529091506106d79085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610622565b6000610816826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108a69092919063ffffffff16565b8051909150156105d857808060200190518101906108349190610c80565b6105d85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023b565b60606108b584846000856108bf565b90505b9392505050565b6060824710156109375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023b565b6001600160a01b0385163b61098e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023b565b600080866001600160a01b031685876040516109aa9190610cc6565b60006040518083038185875af1925050503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b50915091506109fc828286610a07565b979650505050505050565b60608315610a165750816108b8565b825115610a265782518084602001fd5b8160405162461bcd60e51b815260040161023b9190610ce2565b600060208284031215610a5257600080fd5b5035919050565b600060208284031215610a6b57600080fd5b81356001600160a01b03811681146108b857600080fd5b600060208284031215610a9457600080fd5b813567ffffffffffffffff811115610aab57600080fd5b820160c081850312156108b857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610aff57610aff610abd565b92915050565b80820180821115610aff57610aff610abd565b803560ff81168114610b2957600080fd5b919050565b600060208284031215610b4057600080fd5b6108b882610b18565b600060208284031215610b5b57600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610b9757600080fd5b830160208101925035905067ffffffffffffffff811115610bb757600080fd5b803603821315610bc657600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260ff610c0783610b18565b1660208201526020820135604082015260408201356060820152606082013560808201526000610c3a6080840184610b62565b60c060a0850152610c4f60e085018284610bcd565b915050610c5f60a0850185610b62565b601f198584030160c0860152610c76838284610bcd565b9695505050505050565b600060208284031215610c9257600080fd5b815180151581146108b857600080fd5b60005b83811015610cbd578181015183820152602001610ca5565b50506000910152565b60008251610cd8818460208701610ca2565b9190910192915050565b6020815260008251806020840152610d01816040850160208701610ca2565b601f01601f1916919091016040019291505056fea264697066735822122092ec6945fbeba7b3d5270e58d0f152b87b8aff88588203fdf3e7a64aa4479db464736f6c63430008110033", } // EdgeStakingPoolABI is the input ABI used to generate the binding from. @@ -2428,7 +2428,7 @@ func (_EdgeStakingPool *EdgeStakingPoolFilterer) ParseStakeWithdrawn(log types.L // EdgeStakingPoolCreatorMetaData contains all meta data concerning the EdgeStakingPoolCreator contract. var EdgeStakingPoolCreatorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"PoolDoesntExist\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"NewEdgeStakingPoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"contractIEdgeStakingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"contractIEdgeStakingPool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5061125b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639b505aa11461003b578063dc082ad314610077575b600080fd5b61004e6100493660046102a9565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e6100853660046102a9565b610131565b6000806000801b848460405161009f9061029c565b73ffffffffffffffffffffffffffffffffffffffff909216825260208201526040018190604051809103906000f59050801580156100e1573d6000803e3d6000fd5b509050828473ffffffffffffffffffffffffffffffffffffffff167f15e71db3d71eb3b7985105d763101e1d6c1c491ab3e6a0d682558c12cc0bb8d660405160405180910390a390505b92915050565b6000610193604051806020016101469061029c565b601f1982820381018352601f90910116604081815273ffffffffffffffffffffffffffffffffffffffff87166020830152810185905260600160405160208183030381529060405261019a565b9392505050565b60008083836040516020016101b092919061031e565b60408051808303601f1901815282825280516020918201207fff00000000000000000000000000000000000000000000000000000000000000828501523060601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021850152600060358501526055808501829052835180860390910181526075909401909252825192019190912090915073ffffffffffffffffffffffffffffffffffffffff81163b1561026a57915061012b9050565b6040517f215db33100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eea8061033c83390190565b600080604083850312156102bc57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146102e057600080fd5b946020939093013593505050565b6000815160005b8181101561030f57602081850181015186830152016102f5565b50600093019283525090919050565b600061033361032d83866102ee565b846102ee565b94935050505056fe60e060405234801561001057600080fd5b50604051610eea380380610eea83398101604081905261002f916100e8565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610116565b6001600160a01b0316608052806100ba57604051620d29f560e71b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013a565b6001600160a01b03811681146100e557600080fd5b50565b600080604083850312156100fb57600080fd5b8251610106816100d0565b6020939093015192949293505050565b60006020828403121561012857600080fd5b8151610133816100d0565b9392505050565b60805160a05160c051610d4b61019f6000396000818161015b0152818161055801526105ac0152600081816092015281816103a70152818161048401526104dc01526000818160f3015281816102670152818161033b01526104620152610d4b6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637476083b1161005b5780637476083b14610115578063956501bb146101285780639cfa2a2a14610156578063bd3eec7d1461017d57600080fd5b8063023a96fe1461008d57806326c0e5c5146100d157806330fc43ed146100db57806351ed6a30146100ee575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9610190565b005b6100d96100e9366004610a40565b6101ab565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100d9610123366004610a40565b6102cf565b610148610136366004610a59565b60006020819052908152604090205481565b6040519081526020016100c8565b6101487f000000000000000000000000000000000000000000000000000000000000000081565b6100d961018b366004610a82565b61039b565b336000908152602081905260409020546101a9906101ab565b565b806000036101e5576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604090205480821115610244576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b61024e8282610aec565b33600081815260208190526040902091909155610296907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690846105dd565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b80600003610309576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610328908490610b05565b9091555061036390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610686565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c1b4f3a6103d96020850185610b2e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190610b49565b90506104a96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106dd565b6040517f05fae1410000000000000000000000000000000000000000000000000000000081526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305fae14190610511908690600401610bf8565b6020604051808303816000875af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b49565b90507f000000000000000000000000000000000000000000000000000000000000000081146105d8576040517f75c0811b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161023b565b505050565b6040516001600160a01b0383166024820152604481018290526105d89084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107c1565b6040516001600160a01b03808516602483015283166044820152606481018290526106d79085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610622565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190610b49565b6107759190610b05565b6040516001600160a01b0385166024820152604481018290529091506106d79085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610622565b6000610816826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108a69092919063ffffffff16565b8051909150156105d857808060200190518101906108349190610c80565b6105d85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023b565b60606108b584846000856108bf565b90505b9392505050565b6060824710156109375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023b565b6001600160a01b0385163b61098e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023b565b600080866001600160a01b031685876040516109aa9190610cc6565b60006040518083038185875af1925050503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b50915091506109fc828286610a07565b979650505050505050565b60608315610a165750816108b8565b825115610a265782518084602001fd5b8160405162461bcd60e51b815260040161023b9190610ce2565b600060208284031215610a5257600080fd5b5035919050565b600060208284031215610a6b57600080fd5b81356001600160a01b03811681146108b857600080fd5b600060208284031215610a9457600080fd5b813567ffffffffffffffff811115610aab57600080fd5b820160c081850312156108b857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610aff57610aff610abd565b92915050565b80820180821115610aff57610aff610abd565b803560ff81168114610b2957600080fd5b919050565b600060208284031215610b4057600080fd5b6108b882610b18565b600060208284031215610b5b57600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610b9757600080fd5b830160208101925035905067ffffffffffffffff811115610bb757600080fd5b803603821315610bc657600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260ff610c0783610b18565b1660208201526020820135604082015260408201356060820152606082013560808201526000610c3a6080840184610b62565b60c060a0850152610c4f60e085018284610bcd565b915050610c5f60a0850185610b62565b601f198584030160c0860152610c76838284610bcd565b9695505050505050565b600060208284031215610c9257600080fd5b815180151581146108b857600080fd5b60005b83811015610cbd578181015183820152602001610ca5565b50506000910152565b60008251610cd8818460208701610ca2565b9190910192915050565b6020815260008251806020840152610d01816040850160208701610ca2565b601f01601f1916919091016040019291505056fea26469706673582212208300d9eb69919191f4a48770fd17aa2e0f906dbd33fb54c5b7e6be332f28a69064736f6c63430008110033a264697066735822122060f594bb0d32d10a3cd813e2bf3db2a4c76b6aca1ad7a2665fdb8f43039a4db764736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b5061125b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639b505aa11461003b578063dc082ad314610077575b600080fd5b61004e6100493660046102a9565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e6100853660046102a9565b610131565b6000806000801b848460405161009f9061029c565b73ffffffffffffffffffffffffffffffffffffffff909216825260208201526040018190604051809103906000f59050801580156100e1573d6000803e3d6000fd5b509050828473ffffffffffffffffffffffffffffffffffffffff167f15e71db3d71eb3b7985105d763101e1d6c1c491ab3e6a0d682558c12cc0bb8d660405160405180910390a390505b92915050565b6000610193604051806020016101469061029c565b601f1982820381018352601f90910116604081815273ffffffffffffffffffffffffffffffffffffffff87166020830152810185905260600160405160208183030381529060405261019a565b9392505050565b60008083836040516020016101b092919061031e565b60408051808303601f1901815282825280516020918201207fff00000000000000000000000000000000000000000000000000000000000000828501523060601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166021850152600060358501526055808501829052835180860390910181526075909401909252825192019190912090915073ffffffffffffffffffffffffffffffffffffffff81163b1561026a57915061012b9050565b6040517f215db33100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eea8061033c83390190565b600080604083850312156102bc57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146102e057600080fd5b946020939093013593505050565b6000815160005b8181101561030f57602081850181015186830152016102f5565b50600093019283525090919050565b600061033361032d83866102ee565b846102ee565b94935050505056fe60e060405234801561001057600080fd5b50604051610eea380380610eea83398101604081905261002f916100e8565b816001600160a01b03166351ed6a306040518163ffffffff1660e01b8152600401602060405180830381865afa15801561006d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100919190610116565b6001600160a01b0316608052806100ba57604051620d29f560e71b815260040160405180910390fd5b6001600160a01b0390911660a05260c05261013a565b6001600160a01b03811681146100e557600080fd5b50565b600080604083850312156100fb57600080fd5b8251610106816100d0565b6020939093015192949293505050565b60006020828403121561012857600080fd5b8151610133816100d0565b9392505050565b60805160a05160c051610d4b61019f6000396000818161015b0152818161055801526105ac0152600081816092015281816103a70152818161048401526104dc01526000818160f3015281816102670152818161033b01526104620152610d4b6000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637476083b1161005b5780637476083b14610115578063956501bb146101285780639cfa2a2a14610156578063bd3eec7d1461017d57600080fd5b8063023a96fe1461008d57806326c0e5c5146100d157806330fc43ed146100db57806351ed6a30146100ee575b600080fd5b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d9610190565b005b6100d96100e9366004610a40565b6101ab565b6100b47f000000000000000000000000000000000000000000000000000000000000000081565b6100d9610123366004610a40565b6102cf565b610148610136366004610a59565b60006020819052908152604090205481565b6040519081526020016100c8565b6101487f000000000000000000000000000000000000000000000000000000000000000081565b6100d961018b366004610a82565b61039b565b336000908152602081905260409020546101a9906101ab565b565b806000036101e5576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604090205480821115610244576040517fa47b7c6500000000000000000000000000000000000000000000000000000000815233600482015260248101839052604481018290526064015b60405180910390fd5b61024e8282610aec565b33600081815260208190526040902091909155610296907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690846105dd565b60405182815233907f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc9060200160405180910390a25050565b80600003610309576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526020819052604081208054839290610328908490610b05565b9091555061036390506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610686565b60405181815233907f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29060200160405180910390a250565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c1b4f3a6103d96020850185610b2e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190610b49565b90506104a96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836106dd565b6040517f05fae1410000000000000000000000000000000000000000000000000000000081526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305fae14190610511908690600401610bf8565b6020604051808303816000875af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b49565b90507f000000000000000000000000000000000000000000000000000000000000000081146105d8576040517f75c0811b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161023b565b505050565b6040516001600160a01b0383166024820152604481018290526105d89084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526107c1565b6040516001600160a01b03808516602483015283166044820152606481018290526106d79085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610622565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b9190610b49565b6107759190610b05565b6040516001600160a01b0385166024820152604481018290529091506106d79085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610622565b6000610816826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166108a69092919063ffffffff16565b8051909150156105d857808060200190518101906108349190610c80565b6105d85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023b565b60606108b584846000856108bf565b90505b9392505050565b6060824710156109375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023b565b6001600160a01b0385163b61098e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023b565b600080866001600160a01b031685876040516109aa9190610cc6565b60006040518083038185875af1925050503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b50915091506109fc828286610a07565b979650505050505050565b60608315610a165750816108b8565b825115610a265782518084602001fd5b8160405162461bcd60e51b815260040161023b9190610ce2565b600060208284031215610a5257600080fd5b5035919050565b600060208284031215610a6b57600080fd5b81356001600160a01b03811681146108b857600080fd5b600060208284031215610a9457600080fd5b813567ffffffffffffffff811115610aab57600080fd5b820160c081850312156108b857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610aff57610aff610abd565b92915050565b80820180821115610aff57610aff610abd565b803560ff81168114610b2957600080fd5b919050565b600060208284031215610b4057600080fd5b6108b882610b18565b600060208284031215610b5b57600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610b9757600080fd5b830160208101925035905067ffffffffffffffff811115610bb757600080fd5b803603821315610bc657600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260ff610c0783610b18565b1660208201526020820135604082015260408201356060820152606082013560808201526000610c3a6080840184610b62565b60c060a0850152610c4f60e085018284610bcd565b915050610c5f60a0850185610b62565b601f198584030160c0860152610c76838284610bcd565b9695505050505050565b600060208284031215610c9257600080fd5b815180151581146108b857600080fd5b60005b83811015610cbd578181015183820152602001610ca5565b50506000910152565b60008251610cd8818460208701610ca2565b9190910192915050565b6020815260008251806020840152610d01816040850160208701610ca2565b601f01601f1916919091016040019291505056fea264697066735822122092ec6945fbeba7b3d5270e58d0f152b87b8aff88588203fdf3e7a64aa4479db464736f6c63430008110033a264697066735822122029b20817f7ab2320d6739389a4ba056b910955bf22042e11744292c3ad7c9b5a64736f6c63430008110033", } // EdgeStakingPoolCreatorABI is the input ABI used to generate the binding from. diff --git a/solgen/go/bridgegen/bridgegen.go b/solgen/go/bridgegen/bridgegen.go index d21c59146..dd9d2c426 100644 --- a/solgen/go/bridgegen/bridgegen.go +++ b/solgen/go/bridgegen/bridgegen.go @@ -1789,7 +1789,7 @@ func (_AbsBridge *AbsBridgeFilterer) ParseSequencerInboxUpdated(log types.Log) ( // AbsInboxMetaData contains all meta data concerning the AbsInbox contract. var AbsInboxMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // AbsInboxABI is the input ABI used to generate the binding from. @@ -2155,37 +2155,6 @@ func (_AbsInbox *AbsInboxCallerSession) Paused() (bool, error) { return _AbsInbox.Contract.Paused(&_AbsInbox.CallOpts) } -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_AbsInbox *AbsInboxCaller) SendL2MessageFromOrigin(opts *bind.CallOpts, arg0 []byte) (*big.Int, error) { - var out []interface{} - err := _AbsInbox.contract.Call(opts, &out, "sendL2MessageFromOrigin", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_AbsInbox *AbsInboxSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _AbsInbox.Contract.SendL2MessageFromOrigin(&_AbsInbox.CallOpts, arg0) -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_AbsInbox *AbsInboxCallerSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _AbsInbox.Contract.SendL2MessageFromOrigin(&_AbsInbox.CallOpts, arg0) -} - // SequencerInbox is a free data retrieval call binding the contract method 0xee35f327. // // Solidity: function sequencerInbox() view returns(address) @@ -2301,6 +2270,27 @@ func (_AbsInbox *AbsInboxTransactorSession) SendL2Message(messageData []byte) (* return _AbsInbox.Contract.SendL2Message(&_AbsInbox.TransactOpts, messageData) } +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_AbsInbox *AbsInboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _AbsInbox.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_AbsInbox *AbsInboxSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _AbsInbox.Contract.SendL2MessageFromOrigin(&_AbsInbox.TransactOpts, messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_AbsInbox *AbsInboxTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _AbsInbox.Contract.SendL2MessageFromOrigin(&_AbsInbox.TransactOpts, messageData) +} + // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. // // Solidity: function sendUnsignedTransaction(uint256 gasLimit, uint256 maxFeePerGas, uint256 nonce, address to, uint256 value, bytes data) returns(uint256) @@ -4385,7 +4375,7 @@ func (_AbsOutbox *AbsOutboxFilterer) ParseSendRootUpdated(log types.Log) (*AbsOu // BridgeMetaData contains all meta data concerning the Bridge contract. var BridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerMessageNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"InvalidOutboxSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NotContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotDelayedInbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotOutbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotSequencerInbox\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"RollupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptFundsFromOldBridge\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"rollup_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerReportedSubMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMsgCount\",\"type\":\"uint256\"}],\"name\":\"setSequencerReportedSubMessageCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b50608051611a716100306000396000610f2a0152611a716000f3fe60806040526004361061017f5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610457578063ee35f3271461046c578063f81ff3b31461048c57600080fd5b8063d5719dc214610417578063e76f5c8d14610437578063e77145f41461023457600080fd5b8063c4d66de8116100b0578063c4d66de8146103b7578063cb23bcb5146103d7578063cee3d728146103f757600080fd5b80639e5d4c4914610337578063ab5d894314610365578063ae60bd131461037a57600080fd5b80635fca4a16116101385780638db5993b116101125780638db5993b146102cc578063919cc706146102df578063945e1147146102ff57600080fd5b80635fca4a16146102565780637a88b1071461026c57806386598a561461028c57600080fd5b8063413b35bd11610169578063413b35bd146101c857806347fb24c5146102145780634f61f8501461023657600080fd5b806284120c1461018457806316bf5579146101a8575b600080fd5b34801561019057600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101956101c3366004611761565b6104ac565b3480156101d457600080fd5b506102046101e336600461178f565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161019f565b34801561022057600080fd5b5061023461022f3660046117b3565b6104cd565b005b34801561024257600080fd5b5061023461025136600461178f565b6107d3565b34801561026257600080fd5b50610195600a5481565b34801561027857600080fd5b506101956102873660046117f1565b6108ff565b34801561029857600080fd5b506102ac6102a736600461181d565b610960565b60408051948552602085019390935291830152606082015260800161019f565b6101956102da36600461184f565b610af9565b3480156102eb57600080fd5b506102346102fa36600461178f565b610b0f565b34801561030b57600080fd5b5061031f61031a366004611761565b610c34565b6040516001600160a01b03909116815260200161019f565b34801561034357600080fd5b50610357610352366004611896565b610c5e565b60405161019f929190611943565b34801561037157600080fd5b5061031f610df4565b34801561038657600080fd5b5061020461039536600461178f565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103c357600080fd5b506102346103d236600461178f565b610e37565b3480156103e357600080fd5b5060085461031f906001600160a01b031681565b34801561040357600080fd5b506102346104123660046117b3565b61105b565b34801561042357600080fd5b50610195610432366004611761565b6113c9565b34801561044357600080fd5b5061031f610452366004611761565b6113d9565b34801561046357600080fd5b50600654610195565b34801561047857600080fd5b5060095461031f906001600160a01b031681565b34801561049857600080fd5b506102346104a7366004611761565b6113e9565b600781815481106104bc57600080fd5b600091825260209091200154905081565b6008546001600160a01b0316331461059c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d919061197f565b9050336001600160a01b0382161461059a57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106085750505050565b82156106a357604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107cc565b600380546106b39060019061199c565b815481106106c3576106c36119bd565b6000918252602090912001548254600380546001600160a01b039093169290919081106106f2576106f26119bd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610740576107406119bd565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610776576107766119d3565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461089d5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610853919061197f565b9050336001600160a01b0382161461089b57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610948576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b610957600d84434248876114b8565b90505b92915050565b6009546000908190819081906001600160a01b031633146109af576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b85600a54141580156109c057508515155b80156109cd5750600a5415155b15610a1257600a546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610591565b600a85905560075493508315610a505760078054610a329060019061199c565b81548110610a4257610a426119bd565b906000526020600020015492505b8615610a81576006610a6360018961199c565b81548110610a7357610a736119bd565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b078484843461168a565b949350505050565b6008546001600160a01b03163314610bd95760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f919061197f565b9050336001600160a01b03821614610bd757600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a906020016108f4565b60048181548110610c4457600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610caf576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b8215801590610cc657506001600160a01b0386163b155b15610d08576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610591565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d76918991899189908990819084018382808284376000920191909152506116f292505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610de2908a908a908a906119e9565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e3257600091505090565b919050565b600054610100900460ff1615808015610e575750600054600160ff909116105b80610e715750303b158015610e71575060005460ff166001145b610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610591565b6000805460ff191660011790558015610f20576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610591565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107cf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111255760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db919061197f565b9050336001600160a01b0382161461112357600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b03831601611192576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610591565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036111ff5750505050565b821561129b57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107cc565b600480546112ab9060019061199c565b815481106112bb576112bb6119bd565b6000918252602090912001548254600480546001600160a01b039093169290919081106112ea576112ea6119bd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611338576113386119bd565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061136e5761136e6119d3565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104bc57600080fd5b60038181548110610c4457600080fd5b6008546001600160a01b031633146114b35760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611445573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611469919061197f565b9050336001600160a01b038216146114b157600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115b557600661159760018561199c565b815481106115a7576115a76119bd565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116d8576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b60006116e88686434248896114b8565b9695505050505050565b60006060846001600160a01b0316848460405161170f9190611a1f565b60006040518083038185875af1925050503d806000811461174c576040519150601f19603f3d011682016040523d82523d6000602084013e611751565b606091505b5090969095509350505050565b50565b60006020828403121561177357600080fd5b5035919050565b6001600160a01b038116811461175e57600080fd5b6000602082840312156117a157600080fd5b81356117ac8161177a565b9392505050565b600080604083850312156117c657600080fd5b82356117d18161177a565b9150602083013580151581146117e657600080fd5b809150509250929050565b6000806040838503121561180457600080fd5b823561180f8161177a565b946020939093013593505050565b6000806000806080858703121561183357600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561186457600080fd5b833560ff8116811461187557600080fd5b925060208401356118858161177a565b929592945050506040919091013590565b600080600080606085870312156118ac57600080fd5b84356118b78161177a565b935060208501359250604085013567ffffffffffffffff808211156118db57600080fd5b818701915087601f8301126118ef57600080fd5b8135818111156118fe57600080fd5b88602082850101111561191057600080fd5b95989497505060200194505050565b60005b8381101561193a578181015183820152602001611922565b50506000910152565b8215158152604060208201526000825180604084015261196a81606085016020870161191f565b601f01601f1916919091016060019392505050565b60006020828403121561199157600080fd5b81516117ac8161177a565b8181038181111561095a57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a3181846020870161191f565b919091019291505056fea264697066735822122075916676456932bd7573a5b69f0b3a9d8d0c67ac136a164f2559216ff0e6dce064736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b50608051611a6e6100306000396000610f270152611a6e6000f3fe60806040526004361061017f5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610457578063ee35f3271461046c578063f81ff3b31461048c57600080fd5b8063d5719dc214610417578063e76f5c8d14610437578063e77145f41461023457600080fd5b8063c4d66de8116100b0578063c4d66de8146103b7578063cb23bcb5146103d7578063cee3d728146103f757600080fd5b80639e5d4c4914610337578063ab5d894314610365578063ae60bd131461037a57600080fd5b80635fca4a16116101385780638db5993b116101125780638db5993b146102cc578063919cc706146102df578063945e1147146102ff57600080fd5b80635fca4a16146102565780637a88b1071461026c57806386598a561461028c57600080fd5b8063413b35bd11610169578063413b35bd146101c857806347fb24c5146102145780634f61f8501461023657600080fd5b806284120c1461018457806316bf5579146101a8575b600080fd5b34801561019057600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101b457600080fd5b506101956101c336600461175e565b6104ac565b3480156101d457600080fd5b506102046101e336600461178c565b6001600160a01b031660009081526002602052604090206001015460ff1690565b604051901515815260200161019f565b34801561022057600080fd5b5061023461022f3660046117b0565b6104cd565b005b34801561024257600080fd5b5061023461025136600461178c565b6107d3565b34801561026257600080fd5b50610195600a5481565b34801561027857600080fd5b506101956102873660046117ee565b6108ff565b34801561029857600080fd5b506102ac6102a736600461181a565b610960565b60408051948552602085019390935291830152606082015260800161019f565b6101956102da36600461184c565b610af6565b3480156102eb57600080fd5b506102346102fa36600461178c565b610b0c565b34801561030b57600080fd5b5061031f61031a36600461175e565b610c31565b6040516001600160a01b03909116815260200161019f565b34801561034357600080fd5b50610357610352366004611893565b610c5b565b60405161019f929190611940565b34801561037157600080fd5b5061031f610df1565b34801561038657600080fd5b5061020461039536600461178c565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103c357600080fd5b506102346103d236600461178c565b610e34565b3480156103e357600080fd5b5060085461031f906001600160a01b031681565b34801561040357600080fd5b506102346104123660046117b0565b611058565b34801561042357600080fd5b5061019561043236600461175e565b6113c6565b34801561044357600080fd5b5061031f61045236600461175e565b6113d6565b34801561046357600080fd5b50600654610195565b34801561047857600080fd5b5060095461031f906001600160a01b031681565b34801561049857600080fd5b506102346104a736600461175e565b6113e6565b600781815481106104bc57600080fd5b600091825260209091200154905081565b6008546001600160a01b0316331461059c5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054d919061197c565b9050336001600160a01b0382161461059a57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106085750505050565b82156106a357604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107cc565b600380546106b390600190611999565b815481106106c3576106c36119ba565b6000918252602090912001548254600380546001600160a01b039093169290919081106106f2576106f26119ba565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610740576107406119ba565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610776576107766119d0565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b0316331461089d5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610853919061197c565b9050336001600160a01b0382161461089b57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610948576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b610957600d84434248876114b5565b90505b92915050565b6009546000908190819081906001600160a01b031633146109af576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b85600a54141580156109c057508515155b80156109cd5750600a5415155b15610a1257600a546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610591565b600a85905560075493508315610a4d576007610a2f600186611999565b81548110610a3f57610a3f6119ba565b906000526020600020015492505b8615610a7e576006610a60600189611999565b81548110610a7057610a706119ba565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b0484848434611687565b949350505050565b6008546001600160a01b03163314610bd65760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c919061197c565b9050336001600160a01b03821614610bd457600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a906020016108f4565b60048181548110610c4157600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610cac576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b8215801590610cc357506001600160a01b0386163b155b15610d05576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610591565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d73918991899189908990819084018382808284376000920191909152506116ef92505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610ddf908a908a908a906119e6565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e2f57600091505090565b919050565b600054610100900460ff1615808015610e545750600054600160ff909116105b80610e6e5750303b158015610e6e575060005460ff166001145b610efa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610591565b6000805460ff191660011790558015610f1d576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610591565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107cf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111225760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d8919061197c565b9050336001600160a01b0382161461112057600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b0383160161118f576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610591565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036111fc5750505050565b821561129857604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107cc565b600480546112a890600190611999565b815481106112b8576112b86119ba565b6000918252602090912001548254600480546001600160a01b039093169290919081106112e7576112e76119ba565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611335576113356119ba565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061136b5761136b6119d0565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104bc57600080fd5b60038181548110610c4157600080fd5b6008546001600160a01b031633146114b05760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611442573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611466919061197c565b9050336001600160a01b038216146114ae57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610591565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115b2576006611594600185611999565b815481106115a4576115a46119ba565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116d5576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610591565b60006116e58686434248896114b5565b9695505050505050565b60006060846001600160a01b0316848460405161170c9190611a1c565b60006040518083038185875af1925050503d8060008114611749576040519150601f19603f3d011682016040523d82523d6000602084013e61174e565b606091505b5090969095509350505050565b50565b60006020828403121561177057600080fd5b5035919050565b6001600160a01b038116811461175b57600080fd5b60006020828403121561179e57600080fd5b81356117a981611777565b9392505050565b600080604083850312156117c357600080fd5b82356117ce81611777565b9150602083013580151581146117e357600080fd5b809150509250929050565b6000806040838503121561180157600080fd5b823561180c81611777565b946020939093013593505050565b6000806000806080858703121561183057600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561186157600080fd5b833560ff8116811461187257600080fd5b9250602084013561188281611777565b929592945050506040919091013590565b600080600080606085870312156118a957600080fd5b84356118b481611777565b935060208501359250604085013567ffffffffffffffff808211156118d857600080fd5b818701915087601f8301126118ec57600080fd5b8135818111156118fb57600080fd5b88602082850101111561190d57600080fd5b95989497505060200194505050565b60005b8381101561193757818101518382015260200161191f565b50506000910152565b8215158152604060208201526000825180604084015261196781606085016020870161191c565b601f01601f1916919091016060019392505050565b60006020828403121561198e57600080fd5b81516117a981611777565b8181038181111561095a57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a2e81846020870161191c565b919091019291505056fea2646970667358221220bae7eaf18c61f7d8559a1edc92b1ee8dea4400c55ec0b1b0c4df659b4984b6f764736f6c63430008110033", } // BridgeABI is the input ABI used to generate the binding from. @@ -6371,7 +6361,7 @@ func (_DelayBuffer *DelayBufferCallerSession) BASIS() (*big.Int, error) { // ERC20BridgeMetaData contains all meta data concerning the ERC20Bridge contract. var ERC20BridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerMessageNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"CallTargetNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"InvalidOutboxSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InvalidTokenSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"NativeTokenDecimalsTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NotContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotDelayedInbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotOutbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotSequencerInbox\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"RollupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptFundsFromOldBridge\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenFeeAmount\",\"type\":\"uint256\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"rollup_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nativeToken_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerReportedSubMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMsgCount\",\"type\":\"uint256\"}],\"name\":\"setSequencerReportedSubMessageCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b5060805161224c6100306000396000610932015261224c6000f3fe6080604052600436106101955760003560e01c80639e5d4c49116100e1578063d5719dc21161008a578063e77145f411610064578063e77145f41461024a578063eca067ad146104de578063ee35f327146104f3578063f81ff3b31461051357600080fd5b8063d5719dc21461047e578063e1758bd81461049e578063e76f5c8d146104be57600080fd5b8063ae60bd13116100bb578063ae60bd1314610401578063cb23bcb51461043e578063cee3d7281461045e57600080fd5b80639e5d4c491461037a578063ab5d8943146103a8578063ad48cb5e146103bd57600080fd5b80635fca4a161161014357806386598a561161011d57806386598a56146102e2578063919cc70614610322578063945e11471461034257600080fd5b80635fca4a161461028c57806375d81e25146102a25780637a88b107146102c257600080fd5b806347fb24c51161017457806347fb24c51461022a578063485cc9551461024c5780634f61f8501461026c57600080fd5b806284120c1461019a57806316bf5579146101be578063413b35bd146101de575b600080fd5b3480156101a657600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b506101ab6101d9366004611e8d565b610533565b3480156101ea57600080fd5b5061021a6101f9366004611ebb565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101b5565b34801561023657600080fd5b5061024a610245366004611ee6565b610554565b005b34801561025857600080fd5b5061024a610267366004611f1f565b610859565b34801561027857600080fd5b5061024a610287366004611ebb565b610bd0565b34801561029857600080fd5b506101ab600a5481565b3480156102ae57600080fd5b506101ab6102bd366004611f5c565b610cfc565b3480156102ce57600080fd5b506101ab6102dd366004611fa2565b610d13565b3480156102ee57600080fd5b506103026102fd366004611fce565b610d74565b6040805194855260208501939093529183015260608201526080016101b5565b34801561032e57600080fd5b5061024a61033d366004611ebb565b610f0d565b34801561034e57600080fd5b5061036261035d366004611e8d565b611032565b6040516001600160a01b0390911681526020016101b5565b34801561038657600080fd5b5061039a610395366004612000565b61105c565b6040516101b59291906120d9565b3480156103b457600080fd5b506103626111f2565b3480156103c957600080fd5b506033546103ef9074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101b5565b34801561040d57600080fd5b5061021a61041c366004611ebb565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b34801561044a57600080fd5b50600854610362906001600160a01b031681565b34801561046a57600080fd5b5061024a610479366004611ee6565b611235565b34801561048a57600080fd5b506101ab610499366004611e8d565b6115a3565b3480156104aa57600080fd5b50603354610362906001600160a01b031681565b3480156104ca57600080fd5b506103626104d9366004611e8d565b6115b3565b3480156104ea57600080fd5b506006546101ab565b3480156104ff57600080fd5b50600954610362906001600160a01b031681565b34801561051f57600080fd5b5061024a61052e366004611e8d565b6115c3565b6007818154811061054357600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146106235760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d491906120f4565b9050336001600160a01b0382161461062157600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28215158115150361068f5750505050565b821561072a57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610853565b6003805461073a90600190612111565b8154811061074a5761074a612132565b6000918252602090912001548254600380546001600160a01b0390931692909190811061077957610779612132565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106107c7576107c7612132565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107fd576107fd612148565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505050565b600054610100900460ff16158080156108795750600054600160ff909116105b806108935750303b158015610893575060005460ff166001145b6109055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610618565b6000805460ff191660011790558015610928576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109c65760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610618565b6001600160a01b038216610a11576040517f06dff6d60000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610618565b603380546001600160a01b0380851673ffffffffffffffffffffffffffffffffffffffff199283168117909355600580548316821790556008805491871691909216179055604080517f313ce567000000000000000000000000000000000000000000000000000000008152905163313ce567916004808201926020929091908290030181865afa925050508015610ac6575060408051601f3d908101601f19168201909252610ac39181019061215e565b60015b610af757603380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055610b85565b602460ff82161115610b3a576040517f0e0c276200000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610618565b6033805460ff90921674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9092169190911790555b8015610bcb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6008546001600160a01b03163314610c9a5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5091906120f4565b9050336001600160a01b03821614610c9857600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6000610d0a85858585611692565b95945050505050565b6009546000906001600160a01b03163314610d5c576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b610d6b600d84434248876116fb565b90505b92915050565b6009546000908190819081906001600160a01b03163314610dc3576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b85600a5414158015610dd457508515155b8015610de15750600a5415155b15610e2657600a546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610618565b600a85905560075493508315610e645760078054610e4690600190612111565b81548110610e5657610e56612132565b906000526020600020015492505b8615610e95576006610e77600189612111565b81548110610e8757610e87612132565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6008546001600160a01b03163314610fd75760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610f69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8d91906120f4565b9050336001600160a01b03821614610fd557600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610cf1565b6004818154811061104257600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff166110ad576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b82158015906110c457506001600160a01b0386163b155b15611106576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610618565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691611174918991899189908990819084018382808284376000920191909152506118cd92505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d466906111e0908a908a908a9061217b565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000001810161123057600091505090565b919050565b6008546001600160a01b031633146112ff5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b591906120f4565b9050336001600160a01b038216146112fd57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b0383160161136c576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610618565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036113d95750505050565b821561147557604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610853565b6004805461148590600190612111565b8154811061149557611495612132565b6000918252602090912001548254600480546001600160a01b039093169290919081106114c4576114c4612132565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061151257611512612132565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061154857611548612148565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061054357600080fd5b6003818154811061104257600080fd5b6008546001600160a01b0316331461168d5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561161f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164391906120f4565b9050336001600160a01b0382161461168b57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b600a55565b3360009081526001602081905260408220015460ff166116e0576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b60006116f08686434285896116fb565b9050610d0a83611af9565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156117f85760066117da600185612111565b815481106117ea576117ea612132565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b6033546000906060906001600160a01b03908116908616819003611928576040517fe16cd2080000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610618565b61193c6001600160a01b0382168787611b14565b83516001935015611af0576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156119a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cb91906121b1565b9050866001600160a01b0316856040516119e591906121ca565b6000604051808303816000865af19150503d8060008114611a22576040519150601f19603f3d011682016040523d82523d6000602084013e611a27565b606091505b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291955093506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab191906121b1565b905081811015611aed576040517f576b38b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b50935093915050565b603354611b11906001600160a01b0316333084611bbd565b50565b6040516001600160a01b038316602482015260448101829052610bcb9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611c0e565b6040516001600160a01b03808516602483015283166044820152606481018290526108539085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611b59565b6000611c63826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cf39092919063ffffffff16565b805190915015610bcb5780806020019051810190611c8191906121e6565b610bcb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610618565b6060611d028484600085611d0c565b90505b9392505050565b606082471015611d845760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610618565b6001600160a01b0385163b611ddb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610618565b600080866001600160a01b03168587604051611df791906121ca565b60006040518083038185875af1925050503d8060008114611e34576040519150601f19603f3d011682016040523d82523d6000602084013e611e39565b606091505b5091509150611e49828286611e54565b979650505050505050565b60608315611e63575081611d05565b825115611e735782518084602001fd5b8160405162461bcd60e51b81526004016106189190612203565b600060208284031215611e9f57600080fd5b5035919050565b6001600160a01b0381168114611b1157600080fd5b600060208284031215611ecd57600080fd5b8135611d0581611ea6565b8015158114611b1157600080fd5b60008060408385031215611ef957600080fd5b8235611f0481611ea6565b91506020830135611f1481611ed8565b809150509250929050565b60008060408385031215611f3257600080fd5b8235611f3d81611ea6565b91506020830135611f1481611ea6565b60ff81168114611b1157600080fd5b60008060008060808587031215611f7257600080fd5b8435611f7d81611f4d565b93506020850135611f8d81611ea6565b93969395505050506040820135916060013590565b60008060408385031215611fb557600080fd5b8235611fc081611ea6565b946020939093013593505050565b60008060008060808587031215611fe457600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806060858703121561201657600080fd5b843561202181611ea6565b935060208501359250604085013567ffffffffffffffff8082111561204557600080fd5b818701915087601f83011261205957600080fd5b81358181111561206857600080fd5b88602082850101111561207a57600080fd5b95989497505060200194505050565b60005b838110156120a457818101518382015260200161208c565b50506000910152565b600081518084526120c5816020860160208601612089565b601f01601f19169290920160200192915050565b8215158152604060208201526000611d0260408301846120ad565b60006020828403121561210657600080fd5b8151611d0581611ea6565b81810381811115610d6e57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006020828403121561217057600080fd5b8151611d0581611f4d565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156121c357600080fd5b5051919050565b600082516121dc818460208701612089565b9190910192915050565b6000602082840312156121f857600080fd5b8151611d0581611ed8565b602081526000610d6b60208301846120ad56fea2646970667358221220f2cb139db6a4f7ffaf2b0034221726d46f2f4b1338bec91747849a4446bcc39464736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b50608051612255610030600039600061093201526122556000f3fe6080604052600436106101955760003560e01c80639e5d4c49116100e1578063d5719dc21161008a578063e77145f411610064578063e77145f41461024a578063eca067ad146104de578063ee35f327146104f3578063f81ff3b31461051357600080fd5b8063d5719dc21461047e578063e1758bd81461049e578063e76f5c8d146104be57600080fd5b8063ae60bd13116100bb578063ae60bd1314610401578063cb23bcb51461043e578063cee3d7281461045e57600080fd5b80639e5d4c491461037a578063ab5d8943146103a8578063ad48cb5e146103bd57600080fd5b80635fca4a161161014357806386598a561161011d57806386598a56146102e2578063919cc70614610322578063945e11471461034257600080fd5b80635fca4a161461028c57806375d81e25146102a25780637a88b107146102c257600080fd5b806347fb24c51161017457806347fb24c51461022a578063485cc9551461024c5780634f61f8501461026c57600080fd5b806284120c1461019a57806316bf5579146101be578063413b35bd146101de575b600080fd5b3480156101a657600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b506101ab6101d9366004611e96565b610533565b3480156101ea57600080fd5b5061021a6101f9366004611ec4565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101b5565b34801561023657600080fd5b5061024a610245366004611eef565b610554565b005b34801561025857600080fd5b5061024a610267366004611f28565b610859565b34801561027857600080fd5b5061024a610287366004611ec4565b610bd0565b34801561029857600080fd5b506101ab600a5481565b3480156102ae57600080fd5b506101ab6102bd366004611f65565b610cfc565b3480156102ce57600080fd5b506101ab6102dd366004611fab565b610d13565b3480156102ee57600080fd5b506103026102fd366004611fd7565b610d74565b6040805194855260208501939093529183015260608201526080016101b5565b34801561032e57600080fd5b5061024a61033d366004611ec4565b610f0a565b34801561034e57600080fd5b5061036261035d366004611e96565b61102f565b6040516001600160a01b0390911681526020016101b5565b34801561038657600080fd5b5061039a610395366004612009565b611059565b6040516101b59291906120e2565b3480156103b457600080fd5b506103626111ef565b3480156103c957600080fd5b506033546103ef9074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101b5565b34801561040d57600080fd5b5061021a61041c366004611ec4565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b34801561044a57600080fd5b50600854610362906001600160a01b031681565b34801561046a57600080fd5b5061024a610479366004611eef565b611232565b34801561048a57600080fd5b506101ab610499366004611e96565b6115a0565b3480156104aa57600080fd5b50603354610362906001600160a01b031681565b3480156104ca57600080fd5b506103626104d9366004611e96565b6115b0565b3480156104ea57600080fd5b506006546101ab565b3480156104ff57600080fd5b50600954610362906001600160a01b031681565b34801561051f57600080fd5b5061024a61052e366004611e96565b6115c0565b6007818154811061054357600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146106235760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d491906120fd565b9050336001600160a01b0382161461062157600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28215158115150361068f5750505050565b821561072a57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610853565b6003805461073a9060019061211a565b8154811061074a5761074a61213b565b6000918252602090912001548254600380546001600160a01b039093169290919081106107795761077961213b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106107c7576107c761213b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806107fd576107fd612151565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505050565b600054610100900460ff16158080156108795750600054600160ff909116105b806108935750303b158015610893575060005460ff166001145b6109055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610618565b6000805460ff191660011790558015610928576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109c65760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610618565b6001600160a01b038216610a11576040517f06dff6d60000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610618565b603380546001600160a01b0380851673ffffffffffffffffffffffffffffffffffffffff199283168117909355600580548316821790556008805491871691909216179055604080517f313ce567000000000000000000000000000000000000000000000000000000008152905163313ce567916004808201926020929091908290030181865afa925050508015610ac6575060408051601f3d908101601f19168201909252610ac391810190612167565b60015b610af757603380547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055610b85565b602460ff82161115610b3a576040517f0e0c276200000000000000000000000000000000000000000000000000000000815260ff82166004820152602401610618565b6033805460ff90921674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9092169190911790555b8015610bcb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6008546001600160a01b03163314610c9a5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5091906120fd565b9050336001600160a01b03821614610c9857600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6000610d0a8585858561168f565b95945050505050565b6009546000906001600160a01b03163314610d5c576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b610d6b600d84434248876116f8565b90505b92915050565b6009546000908190819081906001600160a01b03163314610dc3576040517f88f84f04000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b85600a5414158015610dd457508515155b8015610de15750600a5415155b15610e2657600a546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610618565b600a85905560075493508315610e61576007610e4360018661211a565b81548110610e5357610e5361213b565b906000526020600020015492505b8615610e92576006610e7460018961211a565b81548110610e8457610e8461213b565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6008546001600160a01b03163314610fd45760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8a91906120fd565b9050336001600160a01b03821614610fd257600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610cf1565b6004818154811061103f57600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff166110aa576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b82158015906110c157506001600160a01b0386163b155b15611103576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610618565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691611171918991899189908990819084018382808284376000920191909152506118ca92505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d466906111dd908a908a908a90612184565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000001810161122d57600091505090565b919050565b6008546001600160a01b031633146112fc5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b291906120fd565b9050336001600160a01b038216146112fa57600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b03831601611369576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610618565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036113d65750505050565b821561147257604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610853565b600480546114829060019061211a565b815481106114925761149261213b565b6000918252602090912001548254600480546001600160a01b039093169290919081106114c1576114c161213b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061150f5761150f61213b565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061154557611545612151565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6006818154811061054357600080fd5b6003818154811061103f57600080fd5b6008546001600160a01b0316331461168a5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164091906120fd565b9050336001600160a01b0382161461168857600854604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610618565b505b600a55565b3360009081526001602081905260408220015460ff166116dd576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610618565b60006116ed8686434285896116f8565b9050610d0a83611afc565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156117f55760066117d760018561211a565b815481106117e7576117e761213b565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b6033546000906060906001600160a01b03908116908616819003611925576040517fe16cd2080000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610618565b841561193f5761193f6001600160a01b0382168787611b1d565b83516001935015611af3576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156119aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ce91906121ba565b9050866001600160a01b0316856040516119e891906121d3565b6000604051808303816000865af19150503d8060008114611a25576040519150601f19603f3d011682016040523d82523d6000602084013e611a2a565b606091505b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015291955093506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab491906121ba565b905081811015611af0576040517f576b38b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b50935093915050565b8015611b1a57603354611b1a906001600160a01b0316333084611bc6565b50565b6040516001600160a01b038316602482015260448101829052610bcb9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611c17565b6040516001600160a01b03808516602483015283166044820152606481018290526108539085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611b62565b6000611c6c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cfc9092919063ffffffff16565b805190915015610bcb5780806020019051810190611c8a91906121ef565b610bcb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610618565b6060611d0b8484600085611d15565b90505b9392505050565b606082471015611d8d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610618565b6001600160a01b0385163b611de45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610618565b600080866001600160a01b03168587604051611e0091906121d3565b60006040518083038185875af1925050503d8060008114611e3d576040519150601f19603f3d011682016040523d82523d6000602084013e611e42565b606091505b5091509150611e52828286611e5d565b979650505050505050565b60608315611e6c575081611d0e565b825115611e7c5782518084602001fd5b8160405162461bcd60e51b8152600401610618919061220c565b600060208284031215611ea857600080fd5b5035919050565b6001600160a01b0381168114611b1a57600080fd5b600060208284031215611ed657600080fd5b8135611d0e81611eaf565b8015158114611b1a57600080fd5b60008060408385031215611f0257600080fd5b8235611f0d81611eaf565b91506020830135611f1d81611ee1565b809150509250929050565b60008060408385031215611f3b57600080fd5b8235611f4681611eaf565b91506020830135611f1d81611eaf565b60ff81168114611b1a57600080fd5b60008060008060808587031215611f7b57600080fd5b8435611f8681611f56565b93506020850135611f9681611eaf565b93969395505050506040820135916060013590565b60008060408385031215611fbe57600080fd5b8235611fc981611eaf565b946020939093013593505050565b60008060008060808587031215611fed57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806060858703121561201f57600080fd5b843561202a81611eaf565b935060208501359250604085013567ffffffffffffffff8082111561204e57600080fd5b818701915087601f83011261206257600080fd5b81358181111561207157600080fd5b88602082850101111561208357600080fd5b95989497505060200194505050565b60005b838110156120ad578181015183820152602001612095565b50506000910152565b600081518084526120ce816020860160208601612092565b601f01601f19169290920160200192915050565b8215158152604060208201526000611d0b60408301846120b6565b60006020828403121561210f57600080fd5b8151611d0e81611eaf565b81810381811115610d6e57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60006020828403121561217957600080fd5b8151611d0e81611f56565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156121cc57600080fd5b5051919050565b600082516121e5818460208701612092565b9190910192915050565b60006020828403121561220157600080fd5b8151611d0e81611ee1565b602081526000610d6b60208301846120b656fea26469706673582212208618f0361aadde6e5ed67aec672032b5d03593fc75ed8adf89145ee93fc3357364736f6c63430008110033", } // ERC20BridgeABI is the input ABI used to generate the binding from. @@ -8214,8 +8204,8 @@ func (_ERC20Bridge *ERC20BridgeFilterer) ParseSequencerInboxUpdated(log types.Lo // ERC20InboxMetaData contains all meta data concerning the ERC20Inbox contract. var ERC20InboxMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AmountTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientSubmissionCost\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RetryableData\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60e0604052306080524660c05234801561001857600080fd5b50604051620028ca380380620028ca83398101604081905261003991610041565b60a05261005a565b60006020828403121561005357600080fd5b5051919050565b60805160a05160c051612832620000986000396000610aa70152600081816103020152818161146601526114bf0152600061059101526128326000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063a66b327d116100cd578063e3de72a511610081578063e8eb1dc311610066578063e8eb1dc3146102fd578063ee35f32714610324578063efeadb6d1461033757600080fd5b8063e3de72a5146102d7578063e78cea92146102ea57600080fd5b8063b79092fd116100b2578063b79092fd1461028e578063b9b9a688146102a1578063babcc539146102b457600080fd5b8063a66b327d14610268578063b75436bb1461027b57600080fd5b8063549e8426116101245780638456cb59116101095780638456cb59146102095780638a631aa6146102115780638b3240a01461022457600080fd5b8063549e8426146101eb5780635c975abb146101fe57600080fd5b80633f4ba83a116101555780633f4ba83a146101bb578063485cc955146101c55780635075788b146101d857600080fd5b80631fe927cf1461017157806322bd5c1c14610197575b600080fd5b61018461017f366004611f65565b61034a565b6040519081526020015b60405180910390f35b6066546101ab90600160a01b900460ff1681565b604051901515815260200161018e565b6101c361037e565b005b6101c36101d3366004611fbc565b6104b8565b6101846101e6366004611ff5565b610721565b6101846101f9366004612072565b6107ee565b60335460ff166101ab565b6101c3610862565b61018461021f366004612122565b610994565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b610184610276366004612195565b610a48565b610184610289366004611f65565b610a51565b61018461029c3660046121b7565b610b46565b6101846102af366004612072565b610c34565b6101ab6102c23660046121d0565b60676020526000908152604090205460ff1681565b6101c36102e53660046122da565b610c99565b606554610250906001600160a01b031681565b6101847f000000000000000000000000000000000000000000000000000000000000000081565b606654610250906001600160a01b031681565b6101c361034536600461239c565b610f1e565b60006040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156103c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ec91906123b9565b9050336001600160a01b038216146104ad576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561043e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046291906123b9565b9050336001600160a01b038216146104ab57604051630739600760e01b81523360048201526001600160a01b038084166024830152821660448201526064015b60405180910390fd5b505b6104b561111b565b50565b600054610100900460ff16158080156104d85750600054600160ff909116105b806104f25750303b1580156104f2575060005460ff166001145b6105645760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016104a2565b6000805460ff191660011790558015610587576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016104a2565b61062f838361116d565b606554604080517fe1758bd800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163e1758bd89160048083019260209291908290030181865afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b691906123b9565b6065549091506106d5906001600160a01b03808416911660001961125f565b50801561071c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600061072b61140d565b606654600160a01b900460ff16801561075457503260009081526067602052604090205460ff16155b1561077457604051630f51ed7160e41b81523260048201526024016104a2565b67ffffffffffffffff88111561079d5760405163107c527b60e01b815260040160405180910390fd5b6107e260033360008b8b8b8b6001600160a01b03168b8b8b6040516020016107cc9897969594939291906123d6565b6040516020818303038152906040526000611462565b98975050505050505050565b60006107f861140d565b606654600160a01b900460ff16801561082157503260009081526067602052604090205460ff16155b1561084157604051630f51ed7160e41b81523260048201526024016104a2565b6108538b8b8b8b8b8b8b8b8b8b611543565b9b9a5050505050505050505050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156108ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d091906123b9565b9050336001600160a01b0382161461098c576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610922573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094691906123b9565b9050336001600160a01b0382161461098a57604051630739600760e01b81523360048201526001600160a01b038084166024830152821660448201526064016104a2565b505b6104b5611647565b600061099e61140d565b606654600160a01b900460ff1680156109c757503260009081526067602052604090205460ff16155b156109e757604051630f51ed7160e41b81523260048201526024016104a2565b67ffffffffffffffff871115610a105760405163107c527b60e01b815260040160405180910390fd5b610a3d60033360018a8a8a6001600160a01b03168a8a8a6040516020016107cc9796959493929190612438565b979650505050505050565b60005b92915050565b6000610a5b61140d565b606654600160a01b900460ff168015610a8457503260009081526067602052604090205460ff16155b15610aa457604051630f51ed7160e41b81523260048201526024016104a2565b467f000000000000000000000000000000000000000000000000000000000000000014610afd576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b3f60033385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611462915050565b9392505050565b6000610b5061140d565b606654600160a01b900460ff168015610b7957503260009081526067602052604090205460ff16155b15610b9957604051630f51ed7160e41b81523260048201526024016104a2565b33803b151580610ba95750323314155b15610bc7575033731111000000000000000000000000000000001111015b6000610bd284611684565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b16602082015260348101829052909150610c2c90600c90339060540160405160208183030381529060405287611462565b949350505050565b6000610c3e61140d565b606654600160a01b900460ff168015610c6757503260009081526067602052604090205460ff16155b15610c8757604051630f51ed7160e41b81523260048201526024016104a2565b6108538b8b8b8b8b8b8b8b8b8b61176d565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0791906123b9565b9050336001600160a01b03821614610dc3576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d91906123b9565b9050336001600160a01b03821614610dc157604051630739600760e01b81523360048201526001600160a01b038084166024830152821660448201526064016104a2565b505b8151835114610e145760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e5055540000000000000000000000000000000000000060448201526064016104a2565b60005b8351811015610f1857828181518110610e3257610e32612493565b602002602001015160676000868481518110610e5057610e50612493565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff021916908315150217905550838181518110610ea157610ea1612493565b60200260200101516001600160a01b03167fd9739f45a01ce092c5cdb3d68f63d63d21676b1c6c0b4f9cbc6be4cf5449595a848381518110610ee557610ee5612493565b6020026020010151604051610efe911515815260200190565b60405180910390a280610f10816124bf565b915050610e17565b50505050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8c91906123b9565b9050336001600160a01b03821614611048576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100291906123b9565b9050336001600160a01b0382161461104657604051630739600760e01b81523360048201526001600160a01b038084166024830152821660448201526064016104a2565b505b606654600160a01b900460ff161515821515036110a75760405162461bcd60e51b815260206004820152600b60248201527f414c52454144595f53455400000000000000000000000000000000000000000060448201526064016104a2565b60668054831515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517f16435b45f7482047f839a6a19d291442627200f52cad2803c595150d0d440eb39061110f90841515815260200190565b60405180910390a15050565b6111236118ac565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166111ea5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a2565b606580546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117909155606680547fffffffffffffffffffffff0000000000000000000000000000000000000000001691831691909117905561125b6118fe565b5050565b8015806112f257506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156112cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f091906124d9565b155b6113645760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084016104a2565b6040516001600160a01b03831660248201526044810182905261071c9084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611983565b60335460ff16156114605760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016104a2565b565b60007f0000000000000000000000000000000000000000000000000000000000000000835111156114eb5782516040517f4634691b00000000000000000000000000000000000000000000000000000000815260048101919091527f000000000000000000000000000000000000000000000000000000000000000060248201526044016104a2565b60006115008686868051906020012086611a68565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b856040516115329190612542565b60405180910390a295945050505050565b60008061154f85611684565b905061155b8688612555565b6115658c8c61256c565b61156f919061256c565b8110156115d1576115808688612555565b61158a8c8c61256c565b611594919061256c565b6040517f7040b58c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016104a2565b6001600160a01b0389163b156115fb57731111000000000000000000000000000000001111890198505b6001600160a01b0388163b1561162557731111000000000000000000000000000000001111880197505b6116378c8c8c8c8c8c8c8c8c8c61176d565b9c9b505050505050505050505050565b61164f61140d565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111503390565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663ad48cb5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fe919061257f565b905060128160ff1610156117615777ffffffffffffffffffffffffffffffffffffffffffffffff831115611761576040517f08083b2a000000000000000000000000000000000000000000000000000000008152600481018490526024016104a2565b610b3f83826012611c59565b6000856001148061177e5750846001145b156117cb57338b8b868c8c8c8c8c8b8b6040517f07c266e30000000000000000000000000000000000000000000000000000000081526004016104a29b9a999897969594939291906125a2565b67ffffffffffffffff8611156117f45760405163107c527b60e01b815260040160405180910390fd5b60006118008348610a48565b9050808a1015611846576040517ffadf238a00000000000000000000000000000000000000000000000000000000815260048101829052602481018b90526044016104a2565b6116376009338e6001600160a01b03168e6118608a611684565b8f8f6001600160a01b03168f6001600160a01b03168f8f8e8e90508f8f6040516020016118979b9a99989796959493929190612628565b60405160208183030381529060405288611462565b60335460ff166114605760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104a2565b600054610100900460ff1661197b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a2565b611460611cc2565b60006119d8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d4b9092919063ffffffff16565b80519091501561071c57808060200190518101906119f69190612682565b61071c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104a2565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae291906123b9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6991906124d9565b905083811015611b98576000611b7f828661269f565b9050611b966001600160a01b038416333084611d5a565b505b6065546001600160a01b03166375d81e258873111100000000000000000000000000000000111189016040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260ff90921660048301526001600160a01b0316602482015260448101889052606481018790526084016020604051808303816000875af1158015611c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3d91906124d9565b60008160ff168360ff1603611c6f575082610b3f565b8160ff168360ff161015611ca357611c8783836126b2565b611c9290600a6127af565b611c9c9085612555565b9050610b3f565b611cad82846126b2565b611cb890600a6127af565b611c9c90856127be565b600054610100900460ff16611d3f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016104a2565b6033805460ff19169055565b6060610c2c8484600085611dab565b6040516001600160a01b0380851660248301528316604482015260648101829052610f189085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016113a9565b606082471015611e235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104a2565b6001600160a01b0385163b611e7a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104a2565b600080866001600160a01b03168587604051611e9691906127e0565b60006040518083038185875af1925050503d8060008114611ed3576040519150601f19603f3d011682016040523d82523d6000602084013e611ed8565b606091505b5091509150610a3d82828660608315611ef2575081610b3f565b825115611f025782518084602001fd5b8160405162461bcd60e51b81526004016104a29190612542565b60008083601f840112611f2e57600080fd5b50813567ffffffffffffffff811115611f4657600080fd5b602083019150836020828501011115611f5e57600080fd5b9250929050565b60008060208385031215611f7857600080fd5b823567ffffffffffffffff811115611f8f57600080fd5b611f9b85828601611f1c565b90969095509350505050565b6001600160a01b03811681146104b557600080fd5b60008060408385031215611fcf57600080fd5b8235611fda81611fa7565b91506020830135611fea81611fa7565b809150509250929050565b600080600080600080600060c0888a03121561201057600080fd5b873596506020880135955060408801359450606088013561203081611fa7565b93506080880135925060a088013567ffffffffffffffff81111561205357600080fd5b61205f8a828b01611f1c565b989b979a50959850939692959293505050565b6000806000806000806000806000806101208b8d03121561209257600080fd5b8a3561209d81611fa7565b995060208b0135985060408b0135975060608b01356120bb81611fa7565b965060808b01356120cb81611fa7565b955060a08b0135945060c08b0135935060e08b013592506101008b013567ffffffffffffffff8111156120fd57600080fd5b6121098d828e01611f1c565b915080935050809150509295989b9194979a5092959850565b60008060008060008060a0878903121561213b57600080fd5b8635955060208701359450604087013561215481611fa7565b935060608701359250608087013567ffffffffffffffff81111561217757600080fd5b61218389828a01611f1c565b979a9699509497509295939492505050565b600080604083850312156121a857600080fd5b50508035926020909101359150565b6000602082840312156121c957600080fd5b5035919050565b6000602082840312156121e257600080fd5b8135610b3f81611fa7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561222c5761222c6121ed565b604052919050565b600067ffffffffffffffff82111561224e5761224e6121ed565b5060051b60200190565b80151581146104b557600080fd5b600082601f83011261227757600080fd5b8135602061228c61228783612234565b612203565b82815260059290921b840181019181810190868411156122ab57600080fd5b8286015b848110156122cf5780356122c281612258565b83529183019183016122af565b509695505050505050565b600080604083850312156122ed57600080fd5b823567ffffffffffffffff8082111561230557600080fd5b818501915085601f83011261231957600080fd5b8135602061232961228783612234565b82815260059290921b8401810191818101908984111561234857600080fd5b948201945b8386101561236f57853561236081611fa7565b8252948201949082019061234d565b9650508601359250508082111561238557600080fd5b5061239285828601612266565b9150509250929050565b6000602082840312156123ae57600080fd5b8135610b3f81612258565b6000602082840312156123cb57600080fd5b8151610b3f81611fa7565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b168152876001820152866021820152856041820152846061820152836081820152818360a18301376000910160a101908152979650505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815286600182015285602182015284604182015283606182015281836081830137600091016081019081529695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036124d2576124d26124a9565b5060010190565b6000602082840312156124eb57600080fd5b5051919050565b60005b8381101561250d5781810151838201526020016124f5565b50506000910152565b6000815180845261252e8160208601602086016124f2565b601f01601f19169290920160200192915050565b602081526000610b3f6020830184612516565b8082028115828204841417610a4b57610a4b6124a9565b80820180821115610a4b57610a4b6124a9565b60006020828403121561259157600080fd5b815160ff81168114610b3f57600080fd5b60006101406001600160a01b03808f168452808e1660208501528c60408501528b60608501528a6080850152808a1660a085015280891660c0850152508660e084015285610100840152806101208401528381840152506101608385828501376000838501820152601f909301601f19169091019091019b9a5050505050505050505050565b8b81528a60208201528960408201528860608201528760808201528660a08201528560c08201528460e08201528361010082015260006101208385828501376000929093019092019081529b9a5050505050505050505050565b60006020828403121561269457600080fd5b8151610b3f81612258565b81810381811115610a4b57610a4b6124a9565b60ff8281168282160390811115610a4b57610a4b6124a9565b600181815b808511156127065781600019048211156126ec576126ec6124a9565b808516156126f957918102915b93841c93908002906126d0565b509250929050565b60008261271d57506001610a4b565b8161272a57506000610a4b565b8160018114612740576002811461274a57612766565b6001915050610a4b565b60ff84111561275b5761275b6124a9565b50506001821b610a4b565b5060208310610133831016604e8410600b8410161715612789575081810a610a4b565b61279383836126cb565b80600019048211156127a7576127a76124a9565b029392505050565b6000610b3f60ff84168361270e565b6000826127db57634e487b7160e01b600052601260045260246000fd5b500490565b600082516127f28184602087016124f2565b919091019291505056fea26469706673582212200cd8ba3d7a36498dfe324d4b4ec992d81700a53d394357aa8608b84a0b29add664736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AmountTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientSubmissionCost\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RetryableData\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x60e0604052306080524660c05234801561001857600080fd5b50604051620029c9380380620029c983398101604081905261003991610041565b60a05261005a565b60006020828403121561005357600080fd5b5051919050565b60805160a05160c05161291c620000ad600039600081816103a80152610c380152600081816103050152818161043e01528181610493015281816117fd01526118560152600061072b015261291c6000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063a66b327d116100cd578063e3de72a511610081578063e8eb1dc311610066578063e8eb1dc314610300578063ee35f32714610327578063efeadb6d1461033a57600080fd5b8063e3de72a5146102da578063e78cea92146102ed57600080fd5b8063b79092fd116100b2578063b79092fd14610291578063b9b9a688146102a4578063babcc539146102b757600080fd5b8063a66b327d14610268578063b75436bb1461027e57600080fd5b8063549e8426116101245780638456cb59116101095780638456cb59146102095780638a631aa6146102115780638b3240a01461022457600080fd5b8063549e8426146101eb5780635c975abb146101fe57600080fd5b80633f4ba83a116101555780633f4ba83a146101bb578063485cc955146101c55780635075788b146101d857600080fd5b80631fe927cf1461017157806322bd5c1c14610197575b600080fd5b61018461017f36600461203f565b61034d565b6040519081526020015b60405180910390f35b6066546101ab90600160a01b900460ff1681565b604051901515815260200161018e565b6101c361051d565b005b6101c36101d3366004612096565b610652565b6101846101e63660046120cf565b6108bb565b6101846101f936600461214c565b610988565b60335460ff166101ab565b6101c36109fc565b61018461021f3660046121fc565b610b2e565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03165b6040516001600160a01b03909116815260200161018e565b61018461027636600461226f565b600092915050565b61018461028c36600461203f565b610be2565b61018461029f366004612291565b610cd7565b6101846102b236600461214c565b610dc5565b6101ab6102c53660046122aa565b60676020526000908152604090205460ff1681565b6101c36102e83660046123b4565b610e2a565b606554610250906001600160a01b031681565b6101847f000000000000000000000000000000000000000000000000000000000000000081565b606654610250906001600160a01b031681565b6101c3610348366004612476565b6110af565b60006103576112ac565b606654600160a01b900460ff16801561038057503260009081526067602052604090205460ff16155b156103a557604051630f51ed7160e41b81523260048201526024015b60405180910390fd5b467f0000000000000000000000000000000000000000000000000000000000000000146103fe576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610406611301565b61043c576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008211156104bf576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018390527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161039c565b60006104e660033386866040516104d7929190612493565b60405180910390206000611316565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a290505b92915050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058b91906124a3565b9050336001600160a01b03821614610647576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060191906124a3565b9050336001600160a01b0382161461064557604051630739600760e01b81523360048201526001600160a01b0380841660248301528216604482015260640161039c565b505b61064f611507565b50565b600054610100900460ff16158080156106725750600054600160ff909116105b8061068c5750303b15801561068c575060005460ff166001145b6106fe5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161039c565b6000805460ff191660011790558015610721576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107bf5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161039c565b6107c98383611559565b606554604080517fe1758bd800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163e1758bd89160048083019260209291908290030181865afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085091906124a3565b60655490915061086f906001600160a01b03808416911660001961164b565b5080156108b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006108c56112ac565b606654600160a01b900460ff1680156108ee57503260009081526067602052604090205460ff16155b1561090e57604051630f51ed7160e41b815232600482015260240161039c565b67ffffffffffffffff8811156109375760405163107c527b60e01b815260040160405180910390fd5b61097c60033360008b8b8b8b6001600160a01b03168b8b8b6040516020016109669897969594939291906124c0565b60405160208183030381529060405260006117f9565b98975050505050505050565b60006109926112ac565b606654600160a01b900460ff1680156109bb57503260009081526067602052604090205460ff16155b156109db57604051630f51ed7160e41b815232600482015260240161039c565b6109ed8b8b8b8b8b8b8b8b8b8b6118da565b9b9a5050505050505050505050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a91906124a3565b9050336001600160a01b03821614610b26576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae091906124a3565b9050336001600160a01b03821614610b2457604051630739600760e01b81523360048201526001600160a01b0380841660248301528216604482015260640161039c565b505b61064f6119de565b6000610b386112ac565b606654600160a01b900460ff168015610b6157503260009081526067602052604090205460ff16155b15610b8157604051630f51ed7160e41b815232600482015260240161039c565b67ffffffffffffffff871115610baa5760405163107c527b60e01b815260040160405180910390fd5b610bd760033360018a8a8a6001600160a01b03168a8a8a6040516020016109669796959493929190612522565b979650505050505050565b6000610bec6112ac565b606654600160a01b900460ff168015610c1557503260009081526067602052604090205460ff16155b15610c3557604051630f51ed7160e41b815232600482015260240161039c565b467f000000000000000000000000000000000000000000000000000000000000000014610c8e576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cd060033385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506117f9915050565b9392505050565b6000610ce16112ac565b606654600160a01b900460ff168015610d0a57503260009081526067602052604090205460ff16155b15610d2a57604051630f51ed7160e41b815232600482015260240161039c565b33803b151580610d3a5750323314155b15610d58575033731111000000000000000000000000000000001111015b6000610d6384611a1b565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b16602082015260348101829052909150610dbd90600c903390605401604051602081830303815290604052876117f9565b949350505050565b6000610dcf6112ac565b606654600160a01b900460ff168015610df857503260009081526067602052604090205460ff16155b15610e1857604051630f51ed7160e41b815232600482015260240161039c565b6109ed8b8b8b8b8b8b8b8b8b8b611b04565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9891906124a3565b9050336001600160a01b03821614610f54576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e91906124a3565b9050336001600160a01b03821614610f5257604051630739600760e01b81523360048201526001600160a01b0380841660248301528216604482015260640161039c565b505b8151835114610fa55760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e50555400000000000000000000000000000000000000604482015260640161039c565b60005b83518110156110a957828181518110610fc357610fc361257d565b602002602001015160676000868481518110610fe157610fe161257d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508381815181106110325761103261257d565b60200260200101516001600160a01b03167fd9739f45a01ce092c5cdb3d68f63d63d21676b1c6c0b4f9cbc6be4cf5449595a8483815181106110765761107661257d565b602002602001015160405161108f911515815260200190565b60405180910390a2806110a1816125a9565b915050610fa8565b50505050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156110f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111d91906124a3565b9050336001600160a01b038216146111d9576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119391906124a3565b9050336001600160a01b038216146111d757604051630739600760e01b81523360048201526001600160a01b0380841660248301528216604482015260640161039c565b505b606654600160a01b900460ff161515821515036112385760405162461bcd60e51b815260206004820152600b60248201527f414c52454144595f534554000000000000000000000000000000000000000000604482015260640161039c565b60668054831515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517f16435b45f7482047f839a6a19d291442627200f52cad2803c595150d0d440eb3906112a090841515815260200190565b60405180910390a15050565b60335460ff16156112ff5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161039c565b565b600033321480156113115750333b155b905090565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139091906124a3565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141791906125c3565b90508381101561144657600061142d82866125dc565b90506114446001600160a01b038416333084611bf3565b505b6065546001600160a01b03166375d81e258873111100000000000000000000000000000000111189016040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260ff90921660048301526001600160a01b0316602482015260448101889052606481018790526084016020604051808303816000875af11580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd791906125c3565b61150f611c44565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166115d65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161039c565b606580546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117909155606680547fffffffffffffffffffffff00000000000000000000000000000000000000000016918316919091179055611647611c96565b5050565b8015806116de57506040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc91906125c3565b155b6117505760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161039c565b6040516001600160a01b0383166024820152604481018290526108b69084907f095ea7b300000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611d1b565b60007f0000000000000000000000000000000000000000000000000000000000000000835111156118825782516040517f4634691b00000000000000000000000000000000000000000000000000000000815260048101919091527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161039c565b60006118978686868051906020012086611316565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b856040516118c9919061263f565b60405180910390a295945050505050565b6000806118e685611a1b565b90506118f28688612652565b6118fc8c8c612669565b6119069190612669565b811015611968576119178688612652565b6119218c8c612669565b61192b9190612669565b6040517f7040b58c00000000000000000000000000000000000000000000000000000000815260048101919091526024810182905260440161039c565b6001600160a01b0389163b1561199257731111000000000000000000000000000000001111890198505b6001600160a01b0388163b156119bc57731111000000000000000000000000000000001111880197505b6119ce8c8c8c8c8c8c8c8c8c8c611b04565b9c9b505050505050505050505050565b6119e66112ac565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861153c3390565b600080606560009054906101000a90046001600160a01b03166001600160a01b031663ad48cb5e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a95919061267c565b905060128160ff161015611af85777ffffffffffffffffffffffffffffffffffffffffffffffff831115611af8576040517f08083b2a0000000000000000000000000000000000000000000000000000000081526004810184905260240161039c565b610cd083826012611e00565b60008560011480611b155750846001145b15611b6257338b8b868c8c8c8c8c8b8b6040517f07c266e300000000000000000000000000000000000000000000000000000000815260040161039c9b9a9998979695949392919061269f565b67ffffffffffffffff861115611b8b5760405163107c527b60e01b815260040160405180910390fd5b60006119ce6009338e6001600160a01b03168e611ba78a611a1b565b8f8f6001600160a01b03168f6001600160a01b03168f8f8e8e90508f8f604051602001611bde9b9a99989796959493929190612725565b604051602081830303815290604052886117f9565b6040516001600160a01b03808516602483015283166044820152606481018290526110a99085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611795565b60335460ff166112ff5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161039c565b600054610100900460ff16611d135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161039c565b6112ff611e69565b6000611d70826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ef29092919063ffffffff16565b8051909150156108b65780806020019051810190611d8e919061277f565b6108b65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161039c565b60008160ff168360ff1603611e16575082610cd0565b8160ff168360ff161015611e4a57611e2e838361279c565b611e3990600a612899565b611e439085612652565b9050610cd0565b611e54828461279c565b611e5f90600a612899565b611e4390856128a8565b600054610100900460ff16611ee65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161039c565b6033805460ff19169055565b6060610dbd8484600085856001600160a01b0385163b611f545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161039c565b600080866001600160a01b03168587604051611f7091906128ca565b60006040518083038185875af1925050503d8060008114611fad576040519150601f19603f3d011682016040523d82523d6000602084013e611fb2565b606091505b5091509150610bd782828660608315611fcc575081610cd0565b825115611fdc5782518084602001fd5b8160405162461bcd60e51b815260040161039c919061263f565b60008083601f84011261200857600080fd5b50813567ffffffffffffffff81111561202057600080fd5b60208301915083602082850101111561203857600080fd5b9250929050565b6000806020838503121561205257600080fd5b823567ffffffffffffffff81111561206957600080fd5b61207585828601611ff6565b90969095509350505050565b6001600160a01b038116811461064f57600080fd5b600080604083850312156120a957600080fd5b82356120b481612081565b915060208301356120c481612081565b809150509250929050565b600080600080600080600060c0888a0312156120ea57600080fd5b873596506020880135955060408801359450606088013561210a81612081565b93506080880135925060a088013567ffffffffffffffff81111561212d57600080fd5b6121398a828b01611ff6565b989b979a50959850939692959293505050565b6000806000806000806000806000806101208b8d03121561216c57600080fd5b8a3561217781612081565b995060208b0135985060408b0135975060608b013561219581612081565b965060808b01356121a581612081565b955060a08b0135945060c08b0135935060e08b013592506101008b013567ffffffffffffffff8111156121d757600080fd5b6121e38d828e01611ff6565b915080935050809150509295989b9194979a5092959850565b60008060008060008060a0878903121561221557600080fd5b8635955060208701359450604087013561222e81612081565b935060608701359250608087013567ffffffffffffffff81111561225157600080fd5b61225d89828a01611ff6565b979a9699509497509295939492505050565b6000806040838503121561228257600080fd5b50508035926020909101359150565b6000602082840312156122a357600080fd5b5035919050565b6000602082840312156122bc57600080fd5b8135610cd081612081565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612306576123066122c7565b604052919050565b600067ffffffffffffffff821115612328576123286122c7565b5060051b60200190565b801515811461064f57600080fd5b600082601f83011261235157600080fd5b813560206123666123618361230e565b6122dd565b82815260059290921b8401810191818101908684111561238557600080fd5b8286015b848110156123a957803561239c81612332565b8352918301918301612389565b509695505050505050565b600080604083850312156123c757600080fd5b823567ffffffffffffffff808211156123df57600080fd5b818501915085601f8301126123f357600080fd5b813560206124036123618361230e565b82815260059290921b8401810191818101908984111561242257600080fd5b948201945b8386101561244957853561243a81612081565b82529482019490820190612427565b9650508601359250508082111561245f57600080fd5b5061246c85828601612340565b9150509250929050565b60006020828403121561248857600080fd5b8135610cd081612332565b8183823760009101908152919050565b6000602082840312156124b557600080fd5b8151610cd081612081565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b168152876001820152866021820152856041820152846061820152836081820152818360a18301376000910160a101908152979650505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815286600182015285602182015284604182015283606182015281836081830137600091016081019081529695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036125bc576125bc612593565b5060010190565b6000602082840312156125d557600080fd5b5051919050565b8181038181111561051757610517612593565b60005b8381101561260a5781810151838201526020016125f2565b50506000910152565b6000815180845261262b8160208601602086016125ef565b601f01601f19169290920160200192915050565b602081526000610cd06020830184612613565b808202811582820484141761051757610517612593565b8082018082111561051757610517612593565b60006020828403121561268e57600080fd5b815160ff81168114610cd057600080fd5b60006101406001600160a01b03808f168452808e1660208501528c60408501528b60608501528a6080850152808a1660a085015280891660c0850152508660e084015285610100840152806101208401528381840152506101608385828501376000838501820152601f909301601f19169091019091019b9a5050505050505050505050565b8b81528a60208201528960408201528860608201528760808201528660a08201528560c08201528460e08201528361010082015260006101208385828501376000929093019092019081529b9a5050505050505050505050565b60006020828403121561279157600080fd5b8151610cd081612332565b60ff828116828216039081111561051757610517612593565b600181815b808511156127f05781600019048211156127d6576127d6612593565b808516156127e357918102915b93841c93908002906127ba565b509250929050565b60008261280757506001610517565b8161281457506000610517565b816001811461282a576002811461283457612850565b6001915050610517565b60ff84111561284557612845612593565b50506001821b610517565b5060208310610133831016604e8410600b8410161715612873575081810a610517565b61287d83836127b5565b806000190482111561289157612891612593565b029392505050565b6000610cd060ff8416836127f8565b6000826128c557634e487b7160e01b600052601260045260246000fd5b500490565b600082516128dc8184602087016125ef565b919091019291505056fea26469706673582212201b7c440f00a6f6c1cac2b1b7273b28b716d71fc9a59d033d5424cd326aa6a02264736f6c63430008110033", } // ERC20InboxABI is the input ABI used to generate the binding from. @@ -8602,37 +8592,6 @@ func (_ERC20Inbox *ERC20InboxCallerSession) Paused() (bool, error) { return _ERC20Inbox.Contract.Paused(&_ERC20Inbox.CallOpts) } -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_ERC20Inbox *ERC20InboxCaller) SendL2MessageFromOrigin(opts *bind.CallOpts, arg0 []byte) (*big.Int, error) { - var out []interface{} - err := _ERC20Inbox.contract.Call(opts, &out, "sendL2MessageFromOrigin", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_ERC20Inbox *ERC20InboxSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _ERC20Inbox.Contract.SendL2MessageFromOrigin(&_ERC20Inbox.CallOpts, arg0) -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_ERC20Inbox *ERC20InboxCallerSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _ERC20Inbox.Contract.SendL2MessageFromOrigin(&_ERC20Inbox.CallOpts, arg0) -} - // SequencerInbox is a free data retrieval call binding the contract method 0xee35f327. // // Solidity: function sequencerInbox() view returns(address) @@ -8790,6 +8749,27 @@ func (_ERC20Inbox *ERC20InboxTransactorSession) SendL2Message(messageData []byte return _ERC20Inbox.Contract.SendL2Message(&_ERC20Inbox.TransactOpts, messageData) } +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_ERC20Inbox *ERC20InboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _ERC20Inbox.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_ERC20Inbox *ERC20InboxSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _ERC20Inbox.Contract.SendL2MessageFromOrigin(&_ERC20Inbox.TransactOpts, messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_ERC20Inbox *ERC20InboxTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _ERC20Inbox.Contract.SendL2MessageFromOrigin(&_ERC20Inbox.TransactOpts, messageData) +} + // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. // // Solidity: function sendUnsignedTransaction(uint256 gasLimit, uint256 maxFeePerGas, uint256 nonce, address to, uint256 value, bytes data) returns(uint256) @@ -9868,7 +9848,7 @@ func (_ERC20Inbox *ERC20InboxFilterer) ParseUnpaused(log types.Log) (*ERC20Inbox // ERC20OutboxMetaData contains all meta data concerning the ERC20Outbox contract. var ERC20OutboxMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"AlreadySpent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadPostUpgradeInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeCallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxProofLength\",\"type\":\"uint256\"}],\"name\":\"MerkleProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"NotRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxIndex\",\"type\":\"uint256\"}],\"name\":\"PathNotMinimal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofLength\",\"type\":\"uint256\"}],\"name\":\"ProofTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationOnlyEntrypoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"UnknownRoot\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"zero\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionIndex\",\"type\":\"uint256\"}],\"name\":\"OutBoxTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"SendRootUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OUTBOX_VERSION\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"calculateItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"path\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"item\",\"type\":\"bytes32\"}],\"name\":\"calculateMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeTransactionSimulation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1BatchNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Block\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1EthBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1OutputId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Timestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1WithdrawalAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"spent\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"updateSendRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b50608051611bd5610037600039600081816107af0152610aaf0152611bd56000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c806395fcea78116100d8578063c4d66de81161008c578063cbf96f6311610066578063cbf96f63146102cf578063d5b5cc23146102d7578063e78cea92146102f757600080fd5b8063c4d66de814610289578063c75184df1461029c578063cb23bcb5146102bc57600080fd5b8063a04cee60116100bd578063a04cee601461024e578063ae6dead714610261578063b0f305371461028157600080fd5b806395fcea78146102335780639f0c04bf1461023b57600080fd5b80635a129efe1161012f57806372f2a8c71161011457806372f2a8c71461020357806380648b021461020b5780638515bc6a1461022b57600080fd5b80635a129efe146101d85780636ae71f12146101fb57600080fd5b8063119852711161016057806311985271146101b6578063288e5b10146101bd57806346547790146101d057600080fd5b80627436d31461017b57806308635a95146101a1575b600080fd5b61018e6101893660046114a3565b61030a565b6040519081526020015b60405180910390f35b6101b46101af3660046115c5565b610349565b005b600061018e565b6101b46101cb3660046116ba565b6103bc565b61018e610410565b6101eb6101e6366004611756565b61045c565b6040519015158152602001610198565b6101b4610481565b61018e6106de565b6102136106f9565b6040516001600160a01b039091168152602001610198565b61018e610737565b6101b46107a5565b61018e61024936600461176f565b610976565b6101b461025c3660046117fe565b6109bb565b61018e61026f366004611756565b60036020526000908152604090205481565b61018e610a53565b6101b4610297366004611820565b610aa5565b6102a4600281565b6040516001600160801b039091168152602001610198565b600054610213906001600160a01b031681565b61018e610d0b565b61018e6102e5366004611756565b60026020526000908152604090205481565b600154610213906001600160a01b031681565b600061033f84848460405160200161032491815260200190565b60405160208183030381529060405280519060200120610d21565b90505b9392505050565b600061035b8989898989898989610976565b905061039d8c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250859150610ddc9050565b6103ae8a8a8a8a8a8a8a8a8a610f49565b505050505050505050505050565b33156103f4576040517f0e13b69d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610405898989898989898989610f49565b505050505050505050565b6004546000906001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161044e57600091505090565b6001600160801b0316919050565b600080600061046a84611234565b92509250506104798282611271565b949350505050565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f6919061183d565b6001600160a01b0316336001600160a01b0316146105de57600054604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610570573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610594919061183d565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610665919061183d565b6000549091506001600160a01b038083169116036106af576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600554600090600181016106f457506000919050565b919050565b6006546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000181016106f457600091505090565b6006546000907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffff000000000000000000000001810161079257600091505090565b6bffffffffffffffffffffffff16919050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105d5565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146108d3576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016105d5565b6004546001600160801b0390811614610918576040517fd0afb66100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506040805160c0810182526001600160801b0380825260208201526000199181018290526001600160a01b0360608201526bffffffffffffffffffffffff608082015260a001819052600481905560058190556006819055600755565b6000888888888888888860405160200161099798979695949392919061185a565b60405160208183030381529060405280519060200120905098975050505050505050565b6000546001600160a01b03163314610a14576000546040517f3933c6fc0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201526044016105d5565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b60045460009070010000000000000000000000000000000090046001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161044e57600091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105d5565b6001600160a01b038116610b9d576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610be0576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810182526001600160801b038082526020808301919091526000198284018190526001600160a01b03606084018190526bffffffffffffffffffffffff608085015260a09093018190526004818155600582905560068290556007919091556001805473ffffffffffffffffffffffffffffffffffffffff1916938616938417905583517fcb23bcb50000000000000000000000000000000000000000000000000000000081529351929363cb23bcb593818301939290918290030181865afa158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb919061183d565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b600754600090600181016106f457600091505090565b8251600090610100811115610d6d576040517ffdac331e0000000000000000000000000000000000000000000000000000000081526004810182905261010060248201526044016105d5565b8260005b82811015610dd2576000878281518110610d8d57610d8d6118c6565b60200260200101519050816001901b8716600003610db957826000528060205260406000209250610dc9565b8060005282602052604060002092505b50600101610d71565b5095945050505050565b610100835110610e1d5782516040517fab6a06830000000000000000000000000000000000000000000000000000000081526004016105d591815260200190565b8251610e2a9060026119d6565b8210610e7a578183516002610e3f91906119d6565b6040517f0b8a724b000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016105d5565b6000610e8784848461030a565b600081815260036020526040902054909150610ed2576040517f8730d7c8000000000000000000000000000000000000000000000000000000008152600481018290526024016105d5565b6000806000610ee086611234565b925092509250610ef08282611271565b15610f2a576040517f9715b8d3000000000000000000000000000000000000000000000000000000008152600481018790526024016105d5565b600092835260026020526040909220600190911b909117905550505050565b6000886001600160a01b0316886001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648c604051610f9091815260200190565b60405180910390a46000610fa384611280565b9050600060046040518060c00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200160038201548152505090506040518060c00160405280896001600160801b03168152602001876001600160801b031681526020018c60001b81526020018b6001600160a01b03168152602001886bffffffffffffffffffffffff1681526020016110f18490565b905280516020808301516001600160801b0390811670010000000000000000000000000000000002921691909117600455604080830151600555606083015160808401516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0909201516007558151601f86018290048202810182019092528482526111b0918b91859190889088908190840183828082843760009201919091525061130892505050565b805160208201516001600160801b03908116700100000000000000000000000000000000029116176004556040810151600555606081015160808201516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0015160075550505050505050505050565b600080808061124460ff866119f8565b9050600061125360ff87611a0c565b60008381526002602052604090205492979096509194509092505050565b80821c60011615155b92915050565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663ad48cb5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fa9190611a20565b9050610342836012836113f3565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c499061135a90889088908890600401611a67565b6000604051808303816000875af1158015611379573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a19190810190611ab1565b91509150816113ec578051156113ba5780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60008160ff168360ff1603611409575082610342565b8160ff168360ff16101561143d576114218383611b60565b61142c90600a611b79565b6114369085611b88565b9050610342565b6114478284611b60565b61145290600a611b79565b61143690856119f8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561149b5761149b61145c565b604052919050565b6000806000606084860312156114b857600080fd5b833567ffffffffffffffff808211156114d057600080fd5b818601915086601f8301126114e457600080fd5b81356020828211156114f8576114f861145c565b8160051b9250611509818401611472565b828152928401810192818101908a85111561152357600080fd5b948201945b8486101561154157853582529482019490820190611528565b9a918901359950506040909701359695505050505050565b6001600160a01b038116811461156e57600080fd5b50565b80356106f481611559565b60008083601f84011261158e57600080fd5b50813567ffffffffffffffff8111156115a657600080fd5b6020830191508360208285010111156115be57600080fd5b9250929050565b60008060008060008060008060008060006101208c8e0312156115e757600080fd5b8b3567ffffffffffffffff808211156115ff57600080fd5b818e0191508e601f83011261161357600080fd5b81358181111561162257600080fd5b8f60208260051b850101111561163757600080fd5b60208381019e50909c508e01359a5061165260408f01611571565b995061166060608f01611571565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561169357600080fd5b506116a08e828f0161157c565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c0312156116d957600080fd5b8935985060208a01356116eb81611559565b975060408a01356116fb81611559565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561173357600080fd5b61173f8c828d0161157c565b915080935050809150509295985092959850929598565b60006020828403121561176857600080fd5b5035919050565b60008060008060008060008060e0898b03121561178b57600080fd5b883561179681611559565b975060208901356117a681611559565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156117de57600080fd5b6117ea8b828c0161157c565b999c989b5096995094979396929594505050565b6000806040838503121561181157600080fd5b50508035926020909101359150565b60006020828403121561183257600080fd5b813561034281611559565b60006020828403121561184f57600080fd5b815161034281611559565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561192d578160001904821115611913576119136118dc565b8085161561192057918102915b93841c93908002906118f7565b509250929050565b6000826119445750600161127a565b816119515750600061127a565b816001811461196757600281146119715761198d565b600191505061127a565b60ff841115611982576119826118dc565b50506001821b61127a565b5060208310610133831016604e8410600b84101617156119b0575081810a61127a565b6119ba83836118f2565b80600019048211156119ce576119ce6118dc565b029392505050565b60006103428383611935565b634e487b7160e01b600052601260045260246000fd5b600082611a0757611a076119e2565b500490565b600082611a1b57611a1b6119e2565b500690565b600060208284031215611a3257600080fd5b815160ff8116811461034257600080fd5b60005b83811015611a5e578181015183820152602001611a46565b50506000910152565b6001600160a01b03841681528260208201526060604082015260008251806060840152611a9b816080850160208701611a43565b601f01601f191691909101608001949350505050565b60008060408385031215611ac457600080fd5b82518015158114611ad457600080fd5b602084015190925067ffffffffffffffff80821115611af257600080fd5b818501915085601f830112611b0657600080fd5b815181811115611b1857611b1861145c565b611b2b6020601f19601f84011601611472565b9150808252866020828501011115611b4257600080fd5b611b53816020840160208601611a43565b5080925050509250929050565b60ff828116828216039081111561127a5761127a6118dc565b600061034260ff841683611935565b808202811582820484141761127a5761127a6118dc56fea26469706673582212205e463c89f775bc158869196e523d34f3b28d2e0eb589c1536792fb6ba63c0c6064736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b50608051611bd5610037600039600081816107af0152610aaf0152611bd56000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c806395fcea78116100d8578063c4d66de81161008c578063cbf96f6311610066578063cbf96f63146102cf578063d5b5cc23146102d7578063e78cea92146102f757600080fd5b8063c4d66de814610289578063c75184df1461029c578063cb23bcb5146102bc57600080fd5b8063a04cee60116100bd578063a04cee601461024e578063ae6dead714610261578063b0f305371461028157600080fd5b806395fcea78146102335780639f0c04bf1461023b57600080fd5b80635a129efe1161012f57806372f2a8c71161011457806372f2a8c71461020357806380648b021461020b5780638515bc6a1461022b57600080fd5b80635a129efe146101d85780636ae71f12146101fb57600080fd5b8063119852711161016057806311985271146101b6578063288e5b10146101bd57806346547790146101d057600080fd5b80627436d31461017b57806308635a95146101a1575b600080fd5b61018e6101893660046114a3565b61030a565b6040519081526020015b60405180910390f35b6101b46101af3660046115c5565b610349565b005b600061018e565b6101b46101cb3660046116ba565b6103bc565b61018e610410565b6101eb6101e6366004611756565b61045c565b6040519015158152602001610198565b6101b4610481565b61018e6106de565b6102136106f9565b6040516001600160a01b039091168152602001610198565b61018e610737565b6101b46107a5565b61018e61024936600461176f565b610976565b6101b461025c3660046117fe565b6109bb565b61018e61026f366004611756565b60036020526000908152604090205481565b61018e610a53565b6101b4610297366004611820565b610aa5565b6102a4600281565b6040516001600160801b039091168152602001610198565b600054610213906001600160a01b031681565b61018e610d0b565b61018e6102e5366004611756565b60026020526000908152604090205481565b600154610213906001600160a01b031681565b600061033f84848460405160200161032491815260200190565b60405160208183030381529060405280519060200120610d21565b90505b9392505050565b600061035b8989898989898989610976565b905061039d8c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250859150610ddc9050565b6103ae8a8a8a8a8a8a8a8a8a610f49565b505050505050505050505050565b33156103f4576040517f0e13b69d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610405898989898989898989610f49565b505050505050505050565b6004546000906001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161044e57600091505090565b6001600160801b0316919050565b600080600061046a84611234565b92509250506104798282611271565b949350505050565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f6919061183d565b6001600160a01b0316336001600160a01b0316146105de57600054604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610570573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610594919061183d565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610665919061183d565b6000549091506001600160a01b038083169116036106af576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600554600090600181016106f457506000919050565b919050565b6006546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000181016106f457600091505090565b6006546000907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffff000000000000000000000001810161079257600091505090565b6bffffffffffffffffffffffff16919050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361085d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105d5565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146108d3576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016105d5565b6004546001600160801b0390811614610918576040517fd0afb66100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506040805160c0810182526001600160801b0380825260208201526000199181018290526001600160a01b0360608201526bffffffffffffffffffffffff608082015260a001819052600481905560058190556006819055600755565b6000888888888888888860405160200161099798979695949392919061185a565b60405160208183030381529060405280519060200120905098975050505050505050565b6000546001600160a01b03163314610a14576000546040517f3933c6fc0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201526044016105d5565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b60045460009070010000000000000000000000000000000090046001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161044e57600091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105d5565b6001600160a01b038116610b9d576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610be0576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810182526001600160801b038082526020808301919091526000198284018190526001600160a01b03606084018190526bffffffffffffffffffffffff608085015260a09093018190526004818155600582905560068290556007919091556001805473ffffffffffffffffffffffffffffffffffffffff1916938616938417905583517fcb23bcb50000000000000000000000000000000000000000000000000000000081529351929363cb23bcb593818301939290918290030181865afa158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb919061183d565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b600754600090600181016106f457600091505090565b8251600090610100811115610d6d576040517ffdac331e0000000000000000000000000000000000000000000000000000000081526004810182905261010060248201526044016105d5565b8260005b82811015610dd2576000878281518110610d8d57610d8d6118c6565b60200260200101519050816001901b8716600003610db957826000528060205260406000209250610dc9565b8060005282602052604060002092505b50600101610d71565b5095945050505050565b610100835110610e1d5782516040517fab6a06830000000000000000000000000000000000000000000000000000000081526004016105d591815260200190565b8251610e2a9060026119d6565b8210610e7a578183516002610e3f91906119d6565b6040517f0b8a724b000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016105d5565b6000610e8784848461030a565b600081815260036020526040902054909150610ed2576040517f8730d7c8000000000000000000000000000000000000000000000000000000008152600481018290526024016105d5565b6000806000610ee086611234565b925092509250610ef08282611271565b15610f2a576040517f9715b8d3000000000000000000000000000000000000000000000000000000008152600481018790526024016105d5565b600092835260026020526040909220600190911b909117905550505050565b6000886001600160a01b0316886001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648c604051610f9091815260200190565b60405180910390a46000610fa384611280565b9050600060046040518060c00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200160038201548152505090506040518060c00160405280896001600160801b03168152602001876001600160801b031681526020018c60001b81526020018b6001600160a01b03168152602001886bffffffffffffffffffffffff1681526020016110f18490565b905280516020808301516001600160801b0390811670010000000000000000000000000000000002921691909117600455604080830151600555606083015160808401516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0909201516007558151601f86018290048202810182019092528482526111b0918b91859190889088908190840183828082843760009201919091525061130892505050565b805160208201516001600160801b03908116700100000000000000000000000000000000029116176004556040810151600555606081015160808201516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0015160075550505050505050505050565b600080808061124460ff866119f8565b9050600061125360ff87611a0c565b60008381526002602052604090205492979096509194509092505050565b80821c60011615155b92915050565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663ad48cb5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fa9190611a20565b9050610342836012836113f3565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c499061135a90889088908890600401611a67565b6000604051808303816000875af1158015611379573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a19190810190611ab1565b91509150816113ec578051156113ba5780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60008160ff168360ff1603611409575082610342565b8160ff168360ff16101561143d576114218383611b60565b61142c90600a611b79565b6114369085611b88565b9050610342565b6114478284611b60565b61145290600a611b79565b61143690856119f8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561149b5761149b61145c565b604052919050565b6000806000606084860312156114b857600080fd5b833567ffffffffffffffff808211156114d057600080fd5b818601915086601f8301126114e457600080fd5b81356020828211156114f8576114f861145c565b8160051b9250611509818401611472565b828152928401810192818101908a85111561152357600080fd5b948201945b8486101561154157853582529482019490820190611528565b9a918901359950506040909701359695505050505050565b6001600160a01b038116811461156e57600080fd5b50565b80356106f481611559565b60008083601f84011261158e57600080fd5b50813567ffffffffffffffff8111156115a657600080fd5b6020830191508360208285010111156115be57600080fd5b9250929050565b60008060008060008060008060008060006101208c8e0312156115e757600080fd5b8b3567ffffffffffffffff808211156115ff57600080fd5b818e0191508e601f83011261161357600080fd5b81358181111561162257600080fd5b8f60208260051b850101111561163757600080fd5b60208381019e50909c508e01359a5061165260408f01611571565b995061166060608f01611571565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561169357600080fd5b506116a08e828f0161157c565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c0312156116d957600080fd5b8935985060208a01356116eb81611559565b975060408a01356116fb81611559565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561173357600080fd5b61173f8c828d0161157c565b915080935050809150509295985092959850929598565b60006020828403121561176857600080fd5b5035919050565b60008060008060008060008060e0898b03121561178b57600080fd5b883561179681611559565b975060208901356117a681611559565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156117de57600080fd5b6117ea8b828c0161157c565b999c989b5096995094979396929594505050565b6000806040838503121561181157600080fd5b50508035926020909101359150565b60006020828403121561183257600080fd5b813561034281611559565b60006020828403121561184f57600080fd5b815161034281611559565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561192d578160001904821115611913576119136118dc565b8085161561192057918102915b93841c93908002906118f7565b509250929050565b6000826119445750600161127a565b816119515750600061127a565b816001811461196757600281146119715761198d565b600191505061127a565b60ff841115611982576119826118dc565b50506001821b61127a565b5060208310610133831016604e8410600b84101617156119b0575081810a61127a565b6119ba83836118f2565b80600019048211156119ce576119ce6118dc565b029392505050565b60006103428383611935565b634e487b7160e01b600052601260045260246000fd5b600082611a0757611a076119e2565b500490565b600082611a1b57611a1b6119e2565b500690565b600060208284031215611a3257600080fd5b815160ff8116811461034257600080fd5b60005b83811015611a5e578181015183820152602001611a46565b50506000910152565b6001600160a01b03841681528260208201526060604082015260008251806060840152611a9b816080850160208701611a43565b601f01601f191691909101608001949350505050565b60008060408385031215611ac457600080fd5b82518015158114611ad457600080fd5b602084015190925067ffffffffffffffff80821115611af257600080fd5b818501915085601f830112611b0657600080fd5b815181811115611b1857611b1861145c565b611b2b6020601f19601f84011601611472565b9150808252866020828501011115611b4257600080fd5b611b53816020840160208601611a43565b5080925050509250929050565b60ff828116828216039081111561127a5761127a6118dc565b600061034260ff841683611935565b808202811582820484141761127a5761127a6118dc56fea2646970667358221220fd62bd1cf925b2618d01c259e2123459674bc5fe8b1432a4dc8aa3b7affe0bd064736f6c63430008110033", } // ERC20OutboxABI is the input ABI used to generate the binding from. @@ -16580,7 +16560,7 @@ func (_IERC20Bridge *IERC20BridgeFilterer) ParseSequencerInboxUpdated(log types. // IERC20InboxMetaData contains all meta data concerning the IERC20Inbox contract. var IERC20InboxMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositERC20\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenTotalFeeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IERC20InboxABI is the input ABI used to generate the binding from. @@ -17074,23 +17054,23 @@ func (_IERC20Inbox *IERC20InboxTransactorSession) SendL2Message(messageData []by // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IERC20Inbox *IERC20InboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, arg0 []byte) (*types.Transaction, error) { - return _IERC20Inbox.contract.Transact(opts, "sendL2MessageFromOrigin", arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IERC20Inbox *IERC20InboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _IERC20Inbox.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IERC20Inbox *IERC20InboxSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IERC20Inbox.Contract.SendL2MessageFromOrigin(&_IERC20Inbox.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IERC20Inbox *IERC20InboxSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IERC20Inbox.Contract.SendL2MessageFromOrigin(&_IERC20Inbox.TransactOpts, messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IERC20Inbox *IERC20InboxTransactorSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IERC20Inbox.Contract.SendL2MessageFromOrigin(&_IERC20Inbox.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IERC20Inbox *IERC20InboxTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IERC20Inbox.Contract.SendL2MessageFromOrigin(&_IERC20Inbox.TransactOpts, messageData) } // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. @@ -19053,7 +19033,7 @@ func (_IEthBridge *IEthBridgeFilterer) ParseSequencerInboxUpdated(log types.Log) // IInboxMetaData contains all meta data concerning the IInbox contract. var IInboxMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"withdrawTo\",\"type\":\"address\"}],\"name\":\"sendWithdrawEthToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"withdrawTo\",\"type\":\"address\"}],\"name\":\"sendWithdrawEthToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", } // IInboxABI is the input ABI used to generate the binding from. @@ -19631,23 +19611,23 @@ func (_IInbox *IInboxTransactorSession) SendL2Message(messageData []byte) (*type // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInbox *IInboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, arg0 []byte) (*types.Transaction, error) { - return _IInbox.contract.Transact(opts, "sendL2MessageFromOrigin", arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInbox *IInboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _IInbox.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInbox *IInboxSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IInbox.Contract.SendL2MessageFromOrigin(&_IInbox.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInbox *IInboxSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IInbox.Contract.SendL2MessageFromOrigin(&_IInbox.TransactOpts, messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInbox *IInboxTransactorSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IInbox.Contract.SendL2MessageFromOrigin(&_IInbox.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInbox *IInboxTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IInbox.Contract.SendL2MessageFromOrigin(&_IInbox.TransactOpts, messageData) } // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. @@ -20088,7 +20068,7 @@ func (_IInbox *IInboxFilterer) ParseInboxMessageDeliveredFromOrigin(log types.Lo // IInboxBaseMetaData contains all meta data concerning the IInboxBase contract. var IInboxBaseMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IInboxBaseABI is the input ABI used to generate the binding from. @@ -20540,23 +20520,23 @@ func (_IInboxBase *IInboxBaseTransactorSession) SendL2Message(messageData []byte // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInboxBase *IInboxBaseTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, arg0 []byte) (*types.Transaction, error) { - return _IInboxBase.contract.Transact(opts, "sendL2MessageFromOrigin", arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInboxBase *IInboxBaseTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _IInboxBase.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInboxBase *IInboxBaseSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IInboxBase.Contract.SendL2MessageFromOrigin(&_IInboxBase.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInboxBase *IInboxBaseSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IInboxBase.Contract.SendL2MessageFromOrigin(&_IInboxBase.TransactOpts, messageData) } // SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. // -// Solidity: function sendL2MessageFromOrigin(bytes ) returns(uint256) -func (_IInboxBase *IInboxBaseTransactorSession) SendL2MessageFromOrigin(arg0 []byte) (*types.Transaction, error) { - return _IInboxBase.Contract.SendL2MessageFromOrigin(&_IInboxBase.TransactOpts, arg0) +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_IInboxBase *IInboxBaseTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _IInboxBase.Contract.SendL2MessageFromOrigin(&_IInboxBase.TransactOpts, messageData) } // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. @@ -25032,8 +25012,8 @@ func (_ISequencerInbox *ISequencerInboxFilterer) ParseSetValidKeyset(log types.L // InboxMetaData contains all meta data concerning the Inbox contract. var InboxMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientSubmissionCost\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RetryableData\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicketNoRefundAliasRewrite\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"withdrawTo\",\"type\":\"address\"}],\"name\":\"sendWithdrawEthToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x60e0604052306080524660c05234801561001857600080fd5b5060405162002a2838038062002a2883398101604081905261003991610041565b60a05261005a565b60006020828403121561005357600080fd5b5051919050565b60805160a05160c051612974620000b46000396000818161058001528181610e800152818161121c01526116a30152600081816104c3015281816119c50152611a1e015260008181610a6301526112be01526129746000f3fe6080604052600436106101b65760003560e01c806370665f14116100ec578063c474d2c51161008a578063e78cea9211610064578063e78cea9214610491578063e8eb1dc3146104b1578063ee35f327146104e5578063efeadb6d1461050557600080fd5b8063c474d2c51461043e578063e3de72a51461045e578063e6bd12cf1461047e57600080fd5b80638b3240a0116100c65780638b3240a01461037d578063a66b327d146103ce578063b75436bb146103ee578063babcc5391461040e57600080fd5b806370665f14146103285780638456cb59146103485780638a631aa61461035d57600080fd5b8063485cc955116101595780635e916758116101335780635e916758146102dc578063679b6ded146102ef57806367ef3ab8146103025780636e6e8a6a1461031557600080fd5b8063485cc955146102845780635075788b146102a45780635c975abb146102c457600080fd5b80631fe927cf116101955780631fe927cf1461021457806322bd5c1c146102345780633f4ba83a14610265578063439370b11461027c57600080fd5b8062f72382146101bb5780630f4d14e9146101ee5780631b871c8d14610201575b600080fd5b3480156101c757600080fd5b506101db6101d63660046120d3565b610525565b6040519081526020015b60405180910390f35b6101db6101fc366004612150565b61066e565b6101db61020f366004612169565b6106d1565b34801561022057600080fd5b506101db61022f36600461220e565b610743565b34801561024057600080fd5b5060665461025590600160a01b900460ff1681565b60405190151581526020016101e5565b34801561027157600080fd5b5061027a610777565b005b6101db6108ac565b34801561029057600080fd5b5061027a61029f366004612250565b61098a565b3480156102b057600080fd5b506101db6102bf3660046120d3565b610b4c565b3480156102d057600080fd5b5060335460ff16610255565b6101db6102ea366004612289565b610bf7565b6101db6102fd366004612169565b610caa565b6101db6103103660046122f3565b610d0f565b6101db610323366004612169565b610dc5565b34801561033457600080fd5b506101db610343366004612366565b610e2a565b34801561035457600080fd5b5061027a610fb1565b34801561036957600080fd5b506101db6103783660046123b3565b6110e3565b34801561038957600080fd5b507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03165b6040516001600160a01b0390911681526020016101e5565b3480156103da57600080fd5b506101db6103e9366004612408565b61118c565b3480156103fa57600080fd5b506101db61040936600461220e565b6111c6565b34801561041a57600080fd5b5061025561042936600461242a565b60676020526000908152604090205460ff1681565b34801561044a57600080fd5b5061027a61045936600461242a565b6112b4565b34801561046a57600080fd5b5061027a61047936600461253b565b6113c8565b6101db61048c3660046122f3565b61164d565b34801561049d57600080fd5b506065546103b6906001600160a01b031681565b3480156104bd57600080fd5b506101db7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f157600080fd5b506066546103b6906001600160a01b031681565b34801561051157600080fd5b5061027a6105203660046125fd565b61176f565b600061052f61196c565b606654600160a01b900460ff16801561055857503260009081526067602052604090205460ff16155b1561057d57604051630f51ed7160e41b81523260048201526024015b60405180910390fd5b467f0000000000000000000000000000000000000000000000000000000000000000036105bd57604051635180dd8360e11b815260040160405180910390fd5b3332146105dd5760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff8811156106065760405163107c527b60e01b815260040160405180910390fd5b610662600373111100000000000000000000000000000000111019330160008b8b8b8b6001600160a01b03168b8b8b60405160200161064c989796959493929190612618565b60405160208183030381529060405260006119c1565b98975050505050505050565b600061067861196c565b606654600160a01b900460ff1680156106a157503260009081526067602052604090205460ff16155b156106c157604051630f51ed7160e41b8152326004820152602401610574565b6106c96108ac565b90505b919050565b60006106db61196c565b606654600160a01b900460ff16801561070457503260009081526067602052604090205460ff16155b1561072457604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a8a8a610dc5565b9a9950505050505050505050565b60006040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061267a565b9050336001600160a01b038216146108a1576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085b919061267a565b9050336001600160a01b0382161461089f57604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b6108a9611aa2565b50565b60006108b661196c565b606654600160a01b900460ff1680156108df57503260009081526067602052604090205460ff16155b156108ff57604051630f51ed7160e41b8152326004820152602401610574565b33803b15158061090f5750323314155b1561092d575033731111000000000000000000000000000000001111015b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b16602082015234603482015261098490600c9033906054015b604051602081830303815290604052346119c1565b91505090565b600054610100900460ff16158080156109aa5750600054600160ff909116105b806109c45750303b1580156109c4575060005460ff166001145b610a365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610574565b6000805460ff191660011790558015610a59576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610af75760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610574565b610b018383611af4565b8015610b47576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000610b5661196c565b606654600160a01b900460ff168015610b7f57503260009081526067602052604090205460ff16155b15610b9f57604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff881115610bc85760405163107c527b60e01b815260040160405180910390fd5b61066260033360008b8b8b8b6001600160a01b03168b8b8b60405160200161064c989796959493929190612618565b6000610c0161196c565b606654600160a01b900460ff168015610c2a57503260009081526067602052604090205460ff16155b15610c4a57604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff861115610c735760405163107c527b60e01b815260040160405180910390fd5b610ca060073360018989896001600160a01b0316348a8a60405160200161096f9796959493929190612697565b9695505050505050565b6000610cb461196c565b606654600160a01b900460ff168015610cdd57503260009081526067602052604090205460ff16155b15610cfd57604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a348b8b611be6565b6000610d1961196c565b606654600160a01b900460ff168015610d4257503260009081526067602052604090205460ff16155b15610d6257604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff871115610d8b5760405163107c527b60e01b815260040160405180910390fd5b610dba60073360008a8a8a8a6001600160a01b0316348b8b60405160200161096f989796959493929190612618565b979650505050505050565b6000610dcf61196c565b606654600160a01b900460ff168015610df857503260009081526067602052604090205460ff16155b15610e1857604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a348b8b611cdf565b6000610e3461196c565b606654600160a01b900460ff168015610e5d57503260009081526067602052604090205460ff16155b15610e7d57604051630f51ed7160e41b8152326004820152602401610574565b467f000000000000000000000000000000000000000000000000000000000000000003610ebd57604051635180dd8360e11b815260040160405180910390fd5b333214610edd5760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff861115610f065760405163107c527b60e01b815260040160405180910390fd5b604080516001600160a01b0384166024808301919091528251808303909101815260449091018252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f25e16063000000000000000000000000000000000000000000000000000000001790529151610ca0926003923373111100000000000000000000000000000000111019019261064c926000928d928d928d926064928e9201612716565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f919061267a565b9050336001600160a01b038216146110db576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611095919061267a565b9050336001600160a01b038216146110d957604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b6108a9611e16565b60006110ed61196c565b606654600160a01b900460ff16801561111657503260009081526067602052604090205460ff16155b1561113657604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff87111561115f5760405163107c527b60e01b815260040160405180910390fd5b610dba60033360018a8a8a6001600160a01b03168a8a8a60405160200161064c9796959493929190612697565b6000811561119a578161119c565b485b6111a784600661279a565b6111b3906105786127b1565b6111bd919061279a565b90505b92915050565b60006111d061196c565b606654600160a01b900460ff1680156111f957503260009081526067602052604090205460ff16155b1561121957604051630f51ed7160e41b8152326004820152602401610574565b467f000000000000000000000000000000000000000000000000000000000000000014611272576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111bd60033385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506119c1915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113525760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610574565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610b47576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610574565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611412573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611436919061267a565b9050336001600160a01b038216146114f2576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ac919061267a565b9050336001600160a01b038216146114f057604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b81518351146115435760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610574565b60005b835181101561164757828181518110611561576115616127c4565b60200260200101516067600086848151811061157f5761157f6127c4565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508381815181106115d0576115d06127c4565b60200260200101516001600160a01b03167fd9739f45a01ce092c5cdb3d68f63d63d21676b1c6c0b4f9cbc6be4cf5449595a848381518110611614576116146127c4565b602002602001015160405161162d911515815260200190565b60405180910390a28061163f816127da565b915050611546565b50505050565b600061165761196c565b606654600160a01b900460ff16801561168057503260009081526067602052604090205460ff16155b156116a057604051630f51ed7160e41b8152326004820152602401610574565b467f0000000000000000000000000000000000000000000000000000000000000000036116e057604051635180dd8360e11b815260040160405180910390fd5b3332146117005760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff8711156117295760405163107c527b60e01b815260040160405180910390fd5b610dba600773111100000000000000000000000000000000111019330160008a8a8a8a6001600160a01b0316348b8b60405160200161096f989796959493929190612618565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156117b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117dd919061267a565b9050336001600160a01b03821614611899576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611853919061267a565b9050336001600160a01b0382161461189757604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b606654600160a01b900460ff161515821515036118f85760405162461bcd60e51b815260206004820152600b60248201527f414c52454144595f5345540000000000000000000000000000000000000000006044820152606401610574565b60668054831515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517f16435b45f7482047f839a6a19d291442627200f52cad2803c595150d0d440eb39061196090841515815260200190565b60405180910390a15050565b60335460ff16156119bf5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610574565b565b60007f000000000000000000000000000000000000000000000000000000000000000083511115611a4a5782516040517f4634691b00000000000000000000000000000000000000000000000000000000815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610574565b6000611a5f8686868051906020012086611e53565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85604051611a919190612812565b60405180910390a295945050505050565b611aaa611f1a565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16611b715760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b606580546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117909155606680547fffffffffffffffffffffff00000000000000000000000000000000000000000016918316919091179055611be2611f6c565b5050565b600083611bf3868861279a565b611bfd8c8c6127b1565b611c0791906127b1565b811015611c6957611c18868861279a565b611c228c8c6127b1565b611c2c91906127b1565b6040517f7040b58c000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610574565b6001600160a01b0389163b15611c9357731111000000000000000000000000000000001111890198505b6001600160a01b0388163b15611cbd57731111000000000000000000000000000000001111880197505b611ccf8c8c8c8c8c8c8c8c8c8c611cdf565b9c9b505050505050505050505050565b60008560011480611cf05750846001145b15611d3d57338b8b868c8c8c8c8c8b8b6040517f07c266e30000000000000000000000000000000000000000000000000000000081526004016105749b9a99989796959493929190612845565b67ffffffffffffffff861115611d665760405163107c527b60e01b815260040160405180910390fd5b6000611d72834861118c565b9050808a1015611db8576040517ffadf238a00000000000000000000000000000000000000000000000000000000815260048101829052602481018b9052604401610574565b611ccf6009336001600160a01b038f168e898f8f6001600160a01b03168f6001600160a01b03168f8f8e8e90508f8f604051602001611e019b9a999897969594939291906128cb565b604051602081830303815290604052886119c1565b611e1e61196c565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611ad73390565b6065546000906001600160a01b0316638db5993b838773111100000000000000000000000000000000111188016040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260ff90921660048301526001600160a01b031660248201526044810187905260640160206040518083038185885af1158015611eec573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f119190612925565b95945050505050565b60335460ff166119bf5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610574565b600054610100900460ff16611fe95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b6119bf600054610100900460ff166120695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b6033805460ff19169055565b6001600160a01b03811681146108a957600080fd5b60008083601f84011261209c57600080fd5b50813567ffffffffffffffff8111156120b457600080fd5b6020830191508360208285010111156120cc57600080fd5b9250929050565b600080600080600080600060c0888a0312156120ee57600080fd5b873596506020880135955060408801359450606088013561210e81612075565b93506080880135925060a088013567ffffffffffffffff81111561213157600080fd5b61213d8a828b0161208a565b989b979a50959850939692959293505050565b60006020828403121561216257600080fd5b5035919050565b60008060008060008060008060006101008a8c03121561218857600080fd5b893561219381612075565b985060208a0135975060408a0135965060608a01356121b181612075565b955060808a01356121c181612075565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156121eb57600080fd5b6121f78c828d0161208a565b915080935050809150509295985092959850929598565b6000806020838503121561222157600080fd5b823567ffffffffffffffff81111561223857600080fd5b6122448582860161208a565b90969095509350505050565b6000806040838503121561226357600080fd5b823561226e81612075565b9150602083013561227e81612075565b809150509250929050565b6000806000806000608086880312156122a157600080fd5b853594506020860135935060408601356122ba81612075565b9250606086013567ffffffffffffffff8111156122d657600080fd5b6122e28882890161208a565b969995985093965092949392505050565b60008060008060008060a0878903121561230c57600080fd5b863595506020870135945060408701359350606087013561232c81612075565b9250608087013567ffffffffffffffff81111561234857600080fd5b61235489828a0161208a565b979a9699509497509295939492505050565b600080600080600060a0868803121561237e57600080fd5b8535945060208601359350604086013592506060860135915060808601356123a581612075565b809150509295509295909350565b60008060008060008060a087890312156123cc57600080fd5b863595506020870135945060408701356123e581612075565b935060608701359250608087013567ffffffffffffffff81111561234857600080fd5b6000806040838503121561241b57600080fd5b50508035926020909101359150565b60006020828403121561243c57600080fd5b813561244781612075565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561248d5761248d61244e565b604052919050565b600067ffffffffffffffff8211156124af576124af61244e565b5060051b60200190565b803580151581146106cc57600080fd5b600082601f8301126124da57600080fd5b813560206124ef6124ea83612495565b612464565b82815260059290921b8401810191818101908684111561250e57600080fd5b8286015b8481101561253057612523816124b9565b8352918301918301612512565b509695505050505050565b6000806040838503121561254e57600080fd5b823567ffffffffffffffff8082111561256657600080fd5b818501915085601f83011261257a57600080fd5b8135602061258a6124ea83612495565b82815260059290921b840181019181810190898411156125a957600080fd5b948201945b838610156125d05785356125c181612075565b825294820194908201906125ae565b965050860135925050808211156125e657600080fd5b506125f3858286016124c9565b9150509250929050565b60006020828403121561260f57600080fd5b6111bd826124b9565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b168152876001820152866021820152856041820152846061820152836081820152818360a18301376000910160a101908152979650505050505050565b60006020828403121561268c57600080fd5b815161244781612075565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815286600182015285602182015284604182015283606182015281836081830137600091016081019081529695505050505050565b60005b8381101561270d5781810151838201526020016126f5565b50506000910152565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b168152866001820152856021820152846041820152836061820152826081820152600082516127718160a18501602087016126f2565b9190910160a10198975050505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176111c0576111c0612784565b808201808211156111c0576111c0612784565b634e487b7160e01b600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361280b5761280b612784565b5060010190565b60208152600082518060208401526128318160408501602087016126f2565b601f01601f19169190910160400192915050565b60006101406001600160a01b03808f168452808e1660208501528c60408501528b60608501528a6080850152808a1660a085015280891660c0850152508660e084015285610100840152806101208401528381840152506101608385828501376000838501820152601f909301601f19169091019091019b9a5050505050505050505050565b8b81528a60208201528960408201528860608201528760808201528660a08201528560c08201528460e08201528361010082015260006101208385828501376000929093019092019081529b9a5050505050505050505050565b60006020828403121561293757600080fd5b505191905056fea26469706673582212201e85eb04c83c53727d40ac06222661f1c2c07dcbbaf328e1a711566d447a417e64736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasLimitTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientSubmissionCost\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1Forked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"}],\"name\":\"NotAllowedOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RetryableData\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"AllowListAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"name\":\"AllowListEnabledUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicketNoRefundAliasRewrite\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"withdrawTo\",\"type\":\"address\"}],\"name\":\"sendWithdrawEthToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"val\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_allowListEnabled\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2CallValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSubmissionCost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"excessFeeRefundAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callValueRefundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", + Bin: "0x60e0604052306080524660c0523480156200001957600080fd5b5060405162002bf538038062002bf58339810160408190526200003c9162000045565b60a0526200005f565b6000602082840312156200005857600080fd5b5051919050565b60805160a05160c051612b27620000ce600039600081816105800152818161079901528181611017015281816113b101526118380152600081816104c30152818161082f0152818161088401528181611b5a0152611bb3015260008181610bfa01526114530152612b276000f3fe6080604052600436106101b65760003560e01c806370665f14116100ec578063c474d2c51161008a578063e78cea9211610064578063e78cea9214610491578063e8eb1dc3146104b1578063ee35f327146104e5578063efeadb6d1461050557600080fd5b8063c474d2c51461043e578063e3de72a51461045e578063e6bd12cf1461047e57600080fd5b80638b3240a0116100c65780638b3240a01461037d578063a66b327d146103ce578063b75436bb146103ee578063babcc5391461040e57600080fd5b806370665f14146103285780638456cb59146103485780638a631aa61461035d57600080fd5b8063485cc955116101595780635e916758116101335780635e916758146102dc578063679b6ded146102ef57806367ef3ab8146103025780636e6e8a6a1461031557600080fd5b8063485cc955146102845780635075788b146102a45780635c975abb146102c457600080fd5b80631fe927cf116101955780631fe927cf1461021457806322bd5c1c146102345780633f4ba83a14610265578063439370b11461027c57600080fd5b8062f72382146101bb5780630f4d14e9146101ee5780631b871c8d14610201575b600080fd5b3480156101c757600080fd5b506101db6101d636600461227d565b610525565b6040519081526020015b60405180910390f35b6101db6101fc3660046122fa565b61066e565b6101db61020f366004612313565b6106d1565b34801561022057600080fd5b506101db61022f3660046123b8565b610743565b34801561024057600080fd5b5060665461025590600160a01b900460ff1681565b60405190151581526020016101e5565b34801561027157600080fd5b5061027a61090e565b005b6101db610a43565b34801561029057600080fd5b5061027a61029f3660046123fa565b610b21565b3480156102b057600080fd5b506101db6102bf36600461227d565b610ce3565b3480156102d057600080fd5b5060335460ff16610255565b6101db6102ea366004612433565b610d8e565b6101db6102fd366004612313565b610e41565b6101db61031036600461249d565b610ea6565b6101db610323366004612313565b610f5c565b34801561033457600080fd5b506101db610343366004612510565b610fc1565b34801561035457600080fd5b5061027a611148565b34801561036957600080fd5b506101db61037836600461255d565b61127a565b34801561038957600080fd5b507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03165b6040516001600160a01b0390911681526020016101e5565b3480156103da57600080fd5b506101db6103e93660046125b2565b611323565b3480156103fa57600080fd5b506101db6104093660046123b8565b61135b565b34801561041a57600080fd5b506102556104293660046125d4565b60676020526000908152604090205460ff1681565b34801561044a57600080fd5b5061027a6104593660046125d4565b611449565b34801561046a57600080fd5b5061027a6104793660046126de565b61155d565b6101db61048c36600461249d565b6117e2565b34801561049d57600080fd5b506065546103b6906001600160a01b031681565b3480156104bd57600080fd5b506101db7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f157600080fd5b506066546103b6906001600160a01b031681565b34801561051157600080fd5b5061027a6105203660046127a0565b611904565b600061052f611b01565b606654600160a01b900460ff16801561055857503260009081526067602052604090205460ff16155b1561057d57604051630f51ed7160e41b81523260048201526024015b60405180910390fd5b467f0000000000000000000000000000000000000000000000000000000000000000036105bd57604051635180dd8360e11b815260040160405180910390fd5b3332146105dd5760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff8811156106065760405163107c527b60e01b815260040160405180910390fd5b610662600373111100000000000000000000000000000000111019330160008b8b8b8b6001600160a01b03168b8b8b60405160200161064c9897969594939291906127bb565b6040516020818303038152906040526000611b56565b98975050505050505050565b6000610678611b01565b606654600160a01b900460ff1680156106a157503260009081526067602052604090205460ff16155b156106c157604051630f51ed7160e41b8152326004820152602401610574565b6106c9610a43565b90505b919050565b60006106db611b01565b606654600160a01b900460ff16801561070457503260009081526067602052604090205460ff16155b1561072457604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a8a8a610f5c565b9a9950505050505050505050565b600061074d611b01565b606654600160a01b900460ff16801561077657503260009081526067602052604090205460ff16155b1561079657604051630f51ed7160e41b8152326004820152602401610574565b467f0000000000000000000000000000000000000000000000000000000000000000146107ef576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107f7611c37565b61082d576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008211156108b0576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018390527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610574565b60006108d760033386866040516108c892919061281d565b60405180910390206000611c4c565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a290505b92915050565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c919061282d565b9050336001600160a01b03821614610a38576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f2919061282d565b9050336001600160a01b03821614610a3657604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b610a40611d13565b50565b6000610a4d611b01565b606654600160a01b900460ff168015610a7657503260009081526067602052604090205460ff16155b15610a9657604051630f51ed7160e41b8152326004820152602401610574565b33803b151580610aa65750323314155b15610ac4575033731111000000000000000000000000000000001111015b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b166020820152346034820152610b1b90600c9033906054015b60405160208183030381529060405234611b56565b91505090565b600054610100900460ff1615808015610b415750600054600160ff909116105b80610b5b5750303b158015610b5b575060005460ff166001145b610bcd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610574565b6000805460ff191660011790558015610bf0576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c8e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610574565b610c988383611d65565b8015610cde576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000610ced611b01565b606654600160a01b900460ff168015610d1657503260009081526067602052604090205460ff16155b15610d3657604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff881115610d5f5760405163107c527b60e01b815260040160405180910390fd5b61066260033360008b8b8b8b6001600160a01b03168b8b8b60405160200161064c9897969594939291906127bb565b6000610d98611b01565b606654600160a01b900460ff168015610dc157503260009081526067602052604090205460ff16155b15610de157604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff861115610e0a5760405163107c527b60e01b815260040160405180910390fd5b610e3760073360018989896001600160a01b0316348a8a604051602001610b06979695949392919061284a565b9695505050505050565b6000610e4b611b01565b606654600160a01b900460ff168015610e7457503260009081526067602052604090205460ff16155b15610e9457604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a348b8b611e57565b6000610eb0611b01565b606654600160a01b900460ff168015610ed957503260009081526067602052604090205460ff16155b15610ef957604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff871115610f225760405163107c527b60e01b815260040160405180910390fd5b610f5160073360008a8a8a8a6001600160a01b0316348b8b604051602001610b069897969594939291906127bb565b979650505050505050565b6000610f66611b01565b606654600160a01b900460ff168015610f8f57503260009081526067602052604090205460ff16155b15610faf57604051630f51ed7160e41b8152326004820152602401610574565b6107358a8a8a8a8a8a8a348b8b611f50565b6000610fcb611b01565b606654600160a01b900460ff168015610ff457503260009081526067602052604090205460ff16155b1561101457604051630f51ed7160e41b8152326004820152602401610574565b467f00000000000000000000000000000000000000000000000000000000000000000361105457604051635180dd8360e11b815260040160405180910390fd5b3332146110745760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff86111561109d5760405163107c527b60e01b815260040160405180910390fd5b604080516001600160a01b0384166024808301919091528251808303909101815260449091018252602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f25e16063000000000000000000000000000000000000000000000000000000001790529151610e37926003923373111100000000000000000000000000000000111019019261064c926000928d928d928d926064928e92016128c9565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b6919061282d565b9050336001600160a01b03821614611272576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c919061282d565b9050336001600160a01b0382161461127057604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b610a40612087565b6000611284611b01565b606654600160a01b900460ff1680156112ad57503260009081526067602052604090205460ff16155b156112cd57604051630f51ed7160e41b8152326004820152602401610574565b67ffffffffffffffff8711156112f65760405163107c527b60e01b815260040160405180910390fd5b610f5160033360018a8a8a6001600160a01b03168a8a8a60405160200161064c979695949392919061284a565b600081156113315781611333565b485b61133e84600661294d565b61134a90610578612964565b611354919061294d565b9392505050565b6000611365611b01565b606654600160a01b900460ff16801561138e57503260009081526067602052604090205460ff16155b156113ae57604051630f51ed7160e41b8152326004820152602401610574565b467f000000000000000000000000000000000000000000000000000000000000000014611407576040517fc6ea680300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61135460033385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b56915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114e75760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610574565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610cde576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610574565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb919061282d565b9050336001600160a01b03821614611687576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611641919061282d565b9050336001600160a01b0382161461168557604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b81518351146116d85760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610574565b60005b83518110156117dc578281815181106116f6576116f6612977565b60200260200101516067600086848151811061171457611714612977565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555083818151811061176557611765612977565b60200260200101516001600160a01b03167fd9739f45a01ce092c5cdb3d68f63d63d21676b1c6c0b4f9cbc6be4cf5449595a8483815181106117a9576117a9612977565b60200260200101516040516117c2911515815260200190565b60405180910390a2806117d48161298d565b9150506116db565b50505050565b60006117ec611b01565b606654600160a01b900460ff16801561181557503260009081526067602052604090205460ff16155b1561183557604051630f51ed7160e41b8152326004820152602401610574565b467f00000000000000000000000000000000000000000000000000000000000000000361187557604051635180dd8360e11b815260040160405180910390fd5b3332146118955760405163feb3d07160e01b815260040160405180910390fd5b67ffffffffffffffff8711156118be5760405163107c527b60e01b815260040160405180910390fd5b610f51600773111100000000000000000000000000000000111019330160008a8a8a8a6001600160a01b0316348b8b604051602001610b069897969594939291906127bb565b6065546040805163cb23bcb560e01b815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611972919061282d565b9050336001600160a01b03821614611a2e576000816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e8919061282d565b9050336001600160a01b03821614611a2c57604051630739600760e01b81523360048201526001600160a01b03808416602483015282166044820152606401610574565b505b606654600160a01b900460ff16151582151503611a8d5760405162461bcd60e51b815260206004820152600b60248201527f414c52454144595f5345540000000000000000000000000000000000000000006044820152606401610574565b60668054831515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790556040517f16435b45f7482047f839a6a19d291442627200f52cad2803c595150d0d440eb390611af590841515815260200190565b60405180910390a15050565b60335460ff1615611b545760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610574565b565b60007f000000000000000000000000000000000000000000000000000000000000000083511115611bdf5782516040517f4634691b00000000000000000000000000000000000000000000000000000000815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610574565b6000611bf48686868051906020012086611c4c565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85604051611c2691906129c5565b60405180910390a295945050505050565b60003332148015611c475750333b155b905090565b6065546000906001600160a01b0316638db5993b838773111100000000000000000000000000000000111188016040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260ff90921660048301526001600160a01b031660248201526044810187905260640160206040518083038185885af1158015611ce5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0a91906129f8565b95945050505050565b611d1b6120c4565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16611de25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b606580546001600160a01b038085167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117909155606680547fffffffffffffffffffffff00000000000000000000000000000000000000000016918316919091179055611e53612116565b5050565b600083611e64868861294d565b611e6e8c8c612964565b611e789190612964565b811015611eda57611e89868861294d565b611e938c8c612964565b611e9d9190612964565b6040517f7040b58c000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610574565b6001600160a01b0389163b15611f0457731111000000000000000000000000000000001111890198505b6001600160a01b0388163b15611f2e57731111000000000000000000000000000000001111880197505b611f408c8c8c8c8c8c8c8c8c8c611f50565b9c9b505050505050505050505050565b60008560011480611f615750846001145b15611fae57338b8b868c8c8c8c8c8b8b6040517f07c266e30000000000000000000000000000000000000000000000000000000081526004016105749b9a99989796959493929190612a11565b67ffffffffffffffff861115611fd75760405163107c527b60e01b815260040160405180910390fd5b6000611fe38348611323565b9050808a1015612029576040517ffadf238a00000000000000000000000000000000000000000000000000000000815260048101829052602481018b9052604401610574565b611f406009336001600160a01b038f168e898f8f6001600160a01b03168f6001600160a01b03168f8f8e8e90508f8f6040516020016120729b9a99989796959493929190612a97565b60405160208183030381529060405288611b56565b61208f611b01565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d483390565b60335460ff16611b545760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610574565b600054610100900460ff166121935760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b611b54600054610100900460ff166122135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610574565b6033805460ff19169055565b6001600160a01b0381168114610a4057600080fd5b60008083601f84011261224657600080fd5b50813567ffffffffffffffff81111561225e57600080fd5b60208301915083602082850101111561227657600080fd5b9250929050565b600080600080600080600060c0888a03121561229857600080fd5b87359650602088013595506040880135945060608801356122b88161221f565b93506080880135925060a088013567ffffffffffffffff8111156122db57600080fd5b6122e78a828b01612234565b989b979a50959850939692959293505050565b60006020828403121561230c57600080fd5b5035919050565b60008060008060008060008060006101008a8c03121561233257600080fd5b893561233d8161221f565b985060208a0135975060408a0135965060608a013561235b8161221f565b955060808a013561236b8161221f565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561239557600080fd5b6123a18c828d01612234565b915080935050809150509295985092959850929598565b600080602083850312156123cb57600080fd5b823567ffffffffffffffff8111156123e257600080fd5b6123ee85828601612234565b90969095509350505050565b6000806040838503121561240d57600080fd5b82356124188161221f565b915060208301356124288161221f565b809150509250929050565b60008060008060006080868803121561244b57600080fd5b853594506020860135935060408601356124648161221f565b9250606086013567ffffffffffffffff81111561248057600080fd5b61248c88828901612234565b969995985093965092949392505050565b60008060008060008060a087890312156124b657600080fd5b86359550602087013594506040870135935060608701356124d68161221f565b9250608087013567ffffffffffffffff8111156124f257600080fd5b6124fe89828a01612234565b979a9699509497509295939492505050565b600080600080600060a0868803121561252857600080fd5b85359450602086013593506040860135925060608601359150608086013561254f8161221f565b809150509295509295909350565b60008060008060008060a0878903121561257657600080fd5b8635955060208701359450604087013561258f8161221f565b935060608701359250608087013567ffffffffffffffff8111156124f257600080fd5b600080604083850312156125c557600080fd5b50508035926020909101359150565b6000602082840312156125e657600080fd5b81356113548161221f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612630576126306125f1565b604052919050565b600067ffffffffffffffff821115612652576126526125f1565b5060051b60200190565b803580151581146106cc57600080fd5b600082601f83011261267d57600080fd5b8135602061269261268d83612638565b612607565b82815260059290921b840181019181810190868411156126b157600080fd5b8286015b848110156126d3576126c68161265c565b83529183019183016126b5565b509695505050505050565b600080604083850312156126f157600080fd5b823567ffffffffffffffff8082111561270957600080fd5b818501915085601f83011261271d57600080fd5b8135602061272d61268d83612638565b82815260059290921b8401810191818101908984111561274c57600080fd5b948201945b838610156127735785356127648161221f565b82529482019490820190612751565b9650508601359250508082111561278957600080fd5b506127968582860161266c565b9150509250929050565b6000602082840312156127b257600080fd5b6113548261265c565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b168152876001820152866021820152856041820152846061820152836081820152818360a18301376000910160a101908152979650505050505050565b8183823760009101908152919050565b60006020828403121561283f57600080fd5b81516113548161221f565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b16815286600182015285602182015284604182015283606182015281836081830137600091016081019081529695505050505050565b60005b838110156128c05781810151838201526020016128a8565b50506000910152565b7fff000000000000000000000000000000000000000000000000000000000000008860f81b168152866001820152856021820152846041820152836061820152826081820152600082516129248160a18501602087016128a5565b9190910160a10198975050505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090857610908612937565b8082018082111561090857610908612937565b634e487b7160e01b600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129be576129be612937565b5060010190565b60208152600082518060208401526129e48160408501602087016128a5565b601f01601f19169190910160400192915050565b600060208284031215612a0a57600080fd5b5051919050565b60006101406001600160a01b03808f168452808e1660208501528c60408501528b60608501528a6080850152808a1660a085015280891660c0850152508660e084015285610100840152806101208401528381840152506101608385828501376000838501820152601f909301601f19169091019091019b9a5050505050505050505050565b8b81528a60208201528960408201528860608201528760808201528660a08201528560c08201528460e08201528361010082015260006101208385828501376000929093019092019081529b9a505050505050505050505056fea2646970667358221220a8e6c35fe4090e6f290c91615dff206bf292ff3ef98713aa72da6ba65f48ad4564736f6c63430008110033", } // InboxABI is the input ABI used to generate the binding from. @@ -25420,37 +25400,6 @@ func (_Inbox *InboxCallerSession) Paused() (bool, error) { return _Inbox.Contract.Paused(&_Inbox.CallOpts) } -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_Inbox *InboxCaller) SendL2MessageFromOrigin(opts *bind.CallOpts, arg0 []byte) (*big.Int, error) { - var out []interface{} - err := _Inbox.contract.Call(opts, &out, "sendL2MessageFromOrigin", arg0) - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_Inbox *InboxSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _Inbox.Contract.SendL2MessageFromOrigin(&_Inbox.CallOpts, arg0) -} - -// SendL2MessageFromOrigin is a free data retrieval call binding the contract method 0x1fe927cf. -// -// Solidity: function sendL2MessageFromOrigin(bytes ) pure returns(uint256) -func (_Inbox *InboxCallerSession) SendL2MessageFromOrigin(arg0 []byte) (*big.Int, error) { - return _Inbox.Contract.SendL2MessageFromOrigin(&_Inbox.CallOpts, arg0) -} - // SequencerInbox is a free data retrieval call binding the contract method 0xee35f327. // // Solidity: function sequencerInbox() view returns(address) @@ -25734,6 +25683,27 @@ func (_Inbox *InboxTransactorSession) SendL2Message(messageData []byte) (*types. return _Inbox.Contract.SendL2Message(&_Inbox.TransactOpts, messageData) } +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_Inbox *InboxTransactor) SendL2MessageFromOrigin(opts *bind.TransactOpts, messageData []byte) (*types.Transaction, error) { + return _Inbox.contract.Transact(opts, "sendL2MessageFromOrigin", messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_Inbox *InboxSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _Inbox.Contract.SendL2MessageFromOrigin(&_Inbox.TransactOpts, messageData) +} + +// SendL2MessageFromOrigin is a paid mutator transaction binding the contract method 0x1fe927cf. +// +// Solidity: function sendL2MessageFromOrigin(bytes messageData) returns(uint256) +func (_Inbox *InboxTransactorSession) SendL2MessageFromOrigin(messageData []byte) (*types.Transaction, error) { + return _Inbox.Contract.SendL2MessageFromOrigin(&_Inbox.TransactOpts, messageData) +} + // SendUnsignedTransaction is a paid mutator transaction binding the contract method 0x5075788b. // // Solidity: function sendUnsignedTransaction(uint256 gasLimit, uint256 maxFeePerGas, uint256 nonce, address to, uint256 value, bytes data) returns(uint256) @@ -27027,7 +26997,7 @@ func (_Messages *MessagesTransactorRaw) Transact(opts *bind.TransactOpts, method // OutboxMetaData contains all meta data concerning the Outbox contract. var OutboxMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"AlreadySpent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadPostUpgradeInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeCallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxProofLength\",\"type\":\"uint256\"}],\"name\":\"MerkleProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"NotRollup\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxIndex\",\"type\":\"uint256\"}],\"name\":\"PathNotMinimal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofLength\",\"type\":\"uint256\"}],\"name\":\"ProofTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SimulationOnlyEntrypoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"UnknownRoot\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"zero\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionIndex\",\"type\":\"uint256\"}],\"name\":\"OutBoxTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"SendRootUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OUTBOX_VERSION\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"calculateItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"path\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"item\",\"type\":\"bytes32\"}],\"name\":\"calculateMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeTransactionSimulation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1BatchNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Block\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1EthBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1OutputId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Timestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"spent\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"updateSendRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b50608051611a57610037600039600081816107920152610a970152611a576000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102b1578063d5b5cc23146102c4578063e78cea92146102e457600080fd5b8063c4d66de81461027e578063c75184df1461029157600080fd5b8063a04cee60116100b2578063a04cee6014610243578063ae6dead714610256578063b0f305371461027657600080fd5b806395fcea78146102285780639f0c04bf1461023057600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c7146101f857806380648b02146102005780638515bc6a1461022057600080fd5b80635a129efe146101cd5780636ae71f12146101f057600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004611380565b6102f7565b6040519081526020015b60405180910390f35b6101a96101a43660046114a2565b610334565b005b6000610183565b6101a96101c0366004611597565b6103a7565b6101836103fb565b6101e06101db366004611633565b610447565b604051901515815260200161018d565b6101a9610464565b6101836106c1565b6102086106dc565b6040516001600160a01b03909116815260200161018d565b61018361071a565b6101a9610788565b61018361023e36600461164c565b61095e565b6101a96102513660046116db565b6109a3565b610183610264366004611633565b60036020526000908152604090205481565b610183610a3b565b6101a961028c3660046116fd565b610a8d565b610299600281565b6040516001600160801b03909116815260200161018d565b600054610208906001600160a01b031681565b6101836102d2366004611633565b60026020526000908152604090205481565b600154610208906001600160a01b031681565b600061032c84848460405160200161031191815260200190565b60405160208183030381529060405280519060200120610cf6565b949350505050565b6000610346898989898989898961095e565b90506103888c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250859150610db19050565b6103998a8a8a8a8a8a8a8a8a610f1e565b505050505050505050505050565b33156103df576040517f0e13b69d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103f0898989898989898989610f1e565b505050505050505050565b6004546000906001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161043957600091505090565b6001600160801b0316919050565b600080600061045584611202565b925092505061032c828261123f565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d99190611721565b6001600160a01b0316336001600160a01b0316146105c157600054604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105779190611721565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106489190611721565b6000549091506001600160a01b03808316911603610692576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600554600090600181016106d757506000919050565b919050565b6006546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000181016106d757600091505090565b6006546000907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffff000000000000000000000001810161077557600091505090565b6bffffffffffffffffffffffff16919050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b8565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146108b6576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016105b8565b6004546001600160801b03908116146108fb576040517fd0afb66100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506040805160c0810182526001600160801b0380825260208201526000199181018290526001600160a01b0360608201526bffffffffffffffffffffffff6080820152600060a090910181905260048290556005829055600691909155600755565b6000888888888888888860405160200161097f98979695949392919061173e565b60405160208183030381529060405280519060200120905098975050505050505050565b6000546001600160a01b031633146109fc576000546040517f3933c6fc0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201526044016105b8565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b60045460009070010000000000000000000000000000000090046001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161043957600091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b038116610b85576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610bc8576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810182526001600160801b038082526020808301919091526000198284018190526001600160a01b03606084018190526bffffffffffffffffffffffff6080850152600060a0909401849052600482815560058390556006929092556007939093556001805473ffffffffffffffffffffffffffffffffffffffff1916938616938417905583517fcb23bcb50000000000000000000000000000000000000000000000000000000081529351929363cb23bcb593818301939290918290030181865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190611721565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b8251600090610100811115610d42576040517ffdac331e0000000000000000000000000000000000000000000000000000000081526004810182905261010060248201526044016105b8565b8260005b82811015610da7576000878281518110610d6257610d626117aa565b60200260200101519050816001901b8716600003610d8e57826000528060205260406000209250610d9e565b8060005282602052604060002092505b50600101610d46565b5095945050505050565b610100835110610df25782516040517fab6a06830000000000000000000000000000000000000000000000000000000081526004016105b891815260200190565b8251610dff9060026118ba565b8210610e4f578183516002610e1491906118ba565b6040517f0b8a724b000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016105b8565b6000610e5c8484846102f7565b600081815260036020526040902054909150610ea7576040517f8730d7c8000000000000000000000000000000000000000000000000000000008152600481018290526024016105b8565b6000806000610eb586611202565b925092509250610ec5828261123f565b15610eff576040517f9715b8d3000000000000000000000000000000000000000000000000000000008152600481018790526024016105b8565b600092835260026020526040909220600190911b909117905550505050565b6000886001600160a01b0316886001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648c604051610f6591815260200190565b60405180910390a46000839050600060046040518060c00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200160038201548152505090506040518060c00160405280896001600160801b03168152602001876001600160801b031681526020018c60001b81526020018b6001600160a01b03168152602001886bffffffffffffffffffffffff1681526020016110bf600090565b905280516020808301516001600160801b0390811670010000000000000000000000000000000002921691909117600455604080830151600555606083015160808401516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0909201516007558151601f860182900482028101820190925284825261117e918b91859190889088908190840183828082843760009201919091525061124e92505050565b805160208201516001600160801b03908116700100000000000000000000000000000000029116176004556040810151600555606081015160808201516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0015160075550505050505050505050565b600080808061121260ff866118dc565b9050600061122160ff876118f0565b60008381526002602052604090205492979096509194509092505050565b80821c60011615155b92915050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c49906112a090889088908890600401611928565b6000604051808303816000875af11580156112bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e79190810190611972565b9150915081611332578051156113005780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561137857611378611339565b604052919050565b60008060006060848603121561139557600080fd5b833567ffffffffffffffff808211156113ad57600080fd5b818601915086601f8301126113c157600080fd5b81356020828211156113d5576113d5611339565b8160051b92506113e681840161134f565b828152928401810192818101908a85111561140057600080fd5b948201945b8486101561141e57853582529482019490820190611405565b9a918901359950506040909701359695505050505050565b6001600160a01b038116811461144b57600080fd5b50565b80356106d781611436565b60008083601f84011261146b57600080fd5b50813567ffffffffffffffff81111561148357600080fd5b60208301915083602082850101111561149b57600080fd5b9250929050565b60008060008060008060008060008060006101208c8e0312156114c457600080fd5b8b3567ffffffffffffffff808211156114dc57600080fd5b818e0191508e601f8301126114f057600080fd5b8135818111156114ff57600080fd5b8f60208260051b850101111561151457600080fd5b60208381019e50909c508e01359a5061152f60408f0161144e565b995061153d60608f0161144e565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561157057600080fd5b5061157d8e828f01611459565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c0312156115b657600080fd5b8935985060208a01356115c881611436565b975060408a01356115d881611436565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561161057600080fd5b61161c8c828d01611459565b915080935050809150509295985092959850929598565b60006020828403121561164557600080fd5b5035919050565b60008060008060008060008060e0898b03121561166857600080fd5b883561167381611436565b9750602089013561168381611436565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156116bb57600080fd5b6116c78b828c01611459565b999c989b5096995094979396929594505050565b600080604083850312156116ee57600080fd5b50508035926020909101359150565b60006020828403121561170f57600080fd5b813561171a81611436565b9392505050565b60006020828403121561173357600080fd5b815161171a81611436565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118115781600019048211156117f7576117f76117c0565b8085161561180457918102915b93841c93908002906117db565b509250929050565b60008261182857506001611248565b8161183557506000611248565b816001811461184b576002811461185557611871565b6001915050611248565b60ff841115611866576118666117c0565b50506001821b611248565b5060208310610133831016604e8410600b8410161715611894575081810a611248565b61189e83836117d6565b80600019048211156118b2576118b26117c0565b029392505050565b600061171a8383611819565b634e487b7160e01b600052601260045260246000fd5b6000826118eb576118eb6118c6565b500490565b6000826118ff576118ff6118c6565b500690565b60005b8381101561191f578181015183820152602001611907565b50506000910152565b6001600160a01b0384168152826020820152606060408201526000825180606084015261195c816080850160208701611904565b601f01601f191691909101608001949350505050565b6000806040838503121561198557600080fd5b8251801515811461199557600080fd5b602084015190925067ffffffffffffffff808211156119b357600080fd5b818501915085601f8301126119c757600080fd5b8151818111156119d9576119d9611339565b6119ec6020601f19601f8401160161134f565b9150808252866020828501011115611a0357600080fd5b611a14816020840160208601611904565b508092505050925092905056fea2646970667358221220a4eb55da473f84754cf95991b4db6960671860abc4de40bc17666b973a35859564736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b50608051611a57610037600039600081816107920152610a970152611a576000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102b1578063d5b5cc23146102c4578063e78cea92146102e457600080fd5b8063c4d66de81461027e578063c75184df1461029157600080fd5b8063a04cee60116100b2578063a04cee6014610243578063ae6dead714610256578063b0f305371461027657600080fd5b806395fcea78146102285780639f0c04bf1461023057600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c7146101f857806380648b02146102005780638515bc6a1461022057600080fd5b80635a129efe146101cd5780636ae71f12146101f057600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004611380565b6102f7565b6040519081526020015b60405180910390f35b6101a96101a43660046114a2565b610334565b005b6000610183565b6101a96101c0366004611597565b6103a7565b6101836103fb565b6101e06101db366004611633565b610447565b604051901515815260200161018d565b6101a9610464565b6101836106c1565b6102086106dc565b6040516001600160a01b03909116815260200161018d565b61018361071a565b6101a9610788565b61018361023e36600461164c565b61095e565b6101a96102513660046116db565b6109a3565b610183610264366004611633565b60036020526000908152604090205481565b610183610a3b565b6101a961028c3660046116fd565b610a8d565b610299600281565b6040516001600160801b03909116815260200161018d565b600054610208906001600160a01b031681565b6101836102d2366004611633565b60026020526000908152604090205481565b600154610208906001600160a01b031681565b600061032c84848460405160200161031191815260200190565b60405160208183030381529060405280519060200120610cf6565b949350505050565b6000610346898989898989898961095e565b90506103888c8c808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250859150610db19050565b6103998a8a8a8a8a8a8a8a8a610f1e565b505050505050505050505050565b33156103df576040517f0e13b69d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103f0898989898989898989610f1e565b505050505050505050565b6004546000906001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161043957600091505090565b6001600160801b0316919050565b600080600061045584611202565b925092505061032c828261123f565b60008054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d99190611721565b6001600160a01b0316336001600160a01b0316146105c157600054604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105779190611721565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015610624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106489190611721565b6000549091506001600160a01b03808316911603610692576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600554600090600181016106d757506000919050565b919050565b6006546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000181016106d757600091505090565b6006546000907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffff000000000000000000000001810161077557600091505090565b6bffffffffffffffffffffffff16919050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b8565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146108b6576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03821660248201526044016105b8565b6004546001600160801b03908116146108fb576040517fd0afb66100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506040805160c0810182526001600160801b0380825260208201526000199181018290526001600160a01b0360608201526bffffffffffffffffffffffff6080820152600060a090910181905260048290556005829055600691909155600755565b6000888888888888888860405160200161097f98979695949392919061173e565b60405160208183030381529060405280519060200120905098975050505050505050565b6000546001600160a01b031633146109fc576000546040517f3933c6fc0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0390911660248201526044016105b8565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b60045460009070010000000000000000000000000000000090046001600160801b03167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161043957600091505090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b038116610b85576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546001600160a01b031615610bc8576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810182526001600160801b038082526020808301919091526000198284018190526001600160a01b03606084018190526bffffffffffffffffffffffff6080850152600060a0909401849052600482815560058390556006929092556007939093556001805473ffffffffffffffffffffffffffffffffffffffff1916938616938417905583517fcb23bcb50000000000000000000000000000000000000000000000000000000081529351929363cb23bcb593818301939290918290030181865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190611721565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b8251600090610100811115610d42576040517ffdac331e0000000000000000000000000000000000000000000000000000000081526004810182905261010060248201526044016105b8565b8260005b82811015610da7576000878281518110610d6257610d626117aa565b60200260200101519050816001901b8716600003610d8e57826000528060205260406000209250610d9e565b8060005282602052604060002092505b50600101610d46565b5095945050505050565b610100835110610df25782516040517fab6a06830000000000000000000000000000000000000000000000000000000081526004016105b891815260200190565b8251610dff9060026118ba565b8210610e4f578183516002610e1491906118ba565b6040517f0b8a724b000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016105b8565b6000610e5c8484846102f7565b600081815260036020526040902054909150610ea7576040517f8730d7c8000000000000000000000000000000000000000000000000000000008152600481018290526024016105b8565b6000806000610eb586611202565b925092509250610ec5828261123f565b15610eff576040517f9715b8d3000000000000000000000000000000000000000000000000000000008152600481018790526024016105b8565b600092835260026020526040909220600190911b909117905550505050565b6000886001600160a01b0316886001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648c604051610f6591815260200190565b60405180910390a46000839050600060046040518060c00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200160038201548152505090506040518060c00160405280896001600160801b03168152602001876001600160801b031681526020018c60001b81526020018b6001600160a01b03168152602001886bffffffffffffffffffffffff1681526020016110bf600090565b905280516020808301516001600160801b0390811670010000000000000000000000000000000002921691909117600455604080830151600555606083015160808401516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0909201516007558151601f860182900482028101820190925284825261117e918b91859190889088908190840183828082843760009201919091525061124e92505050565b805160208201516001600160801b03908116700100000000000000000000000000000000029116176004556040810151600555606081015160808201516bffffffffffffffffffffffff1674010000000000000000000000000000000000000000026001600160a01b039091161760065560a0015160075550505050505050505050565b600080808061121260ff866118dc565b9050600061122160ff876118f0565b60008381526002602052604090205492979096509194509092505050565b80821c60011615155b92915050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c49906112a090889088908890600401611928565b6000604051808303816000875af11580156112bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e79190810190611972565b9150915081611332578051156113005780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561137857611378611339565b604052919050565b60008060006060848603121561139557600080fd5b833567ffffffffffffffff808211156113ad57600080fd5b818601915086601f8301126113c157600080fd5b81356020828211156113d5576113d5611339565b8160051b92506113e681840161134f565b828152928401810192818101908a85111561140057600080fd5b948201945b8486101561141e57853582529482019490820190611405565b9a918901359950506040909701359695505050505050565b6001600160a01b038116811461144b57600080fd5b50565b80356106d781611436565b60008083601f84011261146b57600080fd5b50813567ffffffffffffffff81111561148357600080fd5b60208301915083602082850101111561149b57600080fd5b9250929050565b60008060008060008060008060008060006101208c8e0312156114c457600080fd5b8b3567ffffffffffffffff808211156114dc57600080fd5b818e0191508e601f8301126114f057600080fd5b8135818111156114ff57600080fd5b8f60208260051b850101111561151457600080fd5b60208381019e50909c508e01359a5061152f60408f0161144e565b995061153d60608f0161144e565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561157057600080fd5b5061157d8e828f01611459565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c0312156115b657600080fd5b8935985060208a01356115c881611436565b975060408a01356115d881611436565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff81111561161057600080fd5b61161c8c828d01611459565b915080935050809150509295985092959850929598565b60006020828403121561164557600080fd5b5035919050565b60008060008060008060008060e0898b03121561166857600080fd5b883561167381611436565b9750602089013561168381611436565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff8111156116bb57600080fd5b6116c78b828c01611459565b999c989b5096995094979396929594505050565b600080604083850312156116ee57600080fd5b50508035926020909101359150565b60006020828403121561170f57600080fd5b813561171a81611436565b9392505050565b60006020828403121561173357600080fd5b815161171a81611436565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118115781600019048211156117f7576117f76117c0565b8085161561180457918102915b93841c93908002906117db565b509250929050565b60008261182857506001611248565b8161183557506000611248565b816001811461184b576002811461185557611871565b6001915050611248565b60ff841115611866576118666117c0565b50506001821b611248565b5060208310610133831016604e8410600b8410161715611894575081810a611248565b61189e83836117d6565b80600019048211156118b2576118b26117c0565b029392505050565b600061171a8383611819565b634e487b7160e01b600052601260045260246000fd5b6000826118eb576118eb6118c6565b500490565b6000826118ff576118ff6118c6565b500690565b60005b8381101561191f578181015183820152602001611907565b50506000910152565b6001600160a01b0384168152826020820152606060408201526000825180606084015261195c816080850160208701611904565b601f01601f191691909101608001949350505050565b6000806040838503121561198557600080fd5b8251801515811461199557600080fd5b602084015190925067ffffffffffffffff808211156119b357600080fd5b818501915085601f8301126119c757600080fd5b8151818111156119d9576119d9611339565b6119ec6020601f19601f8401160161134f565b9150808252866020828501011115611a0357600080fd5b611a14816020840160208601611904565b508092505050925092905056fea2646970667358221220e5f8ce06235750d407a30ba6a949de60886062a846bea52bb65e0d34f11e30d564736f6c63430008110033", } // OutboxABI is the input ABI used to generate the binding from. @@ -28075,8 +28045,8 @@ func (_Outbox *OutboxFilterer) ParseSendRootUpdated(log types.Log) (*OutboxSendR // SequencerInboxMetaData contains all meta data concerning the SequencerInbox contract. var SequencerInboxMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader4844_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isUsingFeeToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_isDelayBufferable\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x610180604052306080526202000060a05246610100526200002b62000109602090811b62002ea417901c565b1515610120523480156200003e57600080fd5b5060405162005515380380620055158339810160408190526200006191620001bc565b60e084905261012051156200009f576001600160a01b0383161562000099576040516386657a5360e01b815260040160405180910390fd5b620000e8565b6001600160a01b038316620000e8576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0390921660c052151561014052151561016052506200024f565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200014991906200021e565b600060405180830381855afa9150503d806000811462000186576040519150601f19603f3d011682016040523d82523d6000602084013e6200018b565b606091505b50915091508180156200019f575080516020145b9250505090565b80518015158114620001b757600080fd5b919050565b60008060008060808587031215620001d357600080fd5b845160208601519094506001600160a01b0381168114620001f357600080fd5b92506200020360408601620001a6565b91506200021360608601620001a6565b905092959194509250565b6000825160005b8181101562000241576020818601810151858301520162000225565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051610160516151b1620003646000396000818161043701528181610b86015281816113f3015281816118e201528181611fb401528181612416015281816129ef01528181612b840152818161309801526132da0152600081816105f401528181610a45015281816134480152613ac20152600081816127d0015281816133e60152613dce015260008181612271015261373901526000818161070e015281816140b7015261410c01526000818161058f0152818161109b01528181611f5d01528181613bc40152613c9f01526000818161127b015281816115af01528181611e52015261216701526000818161089301526122f001526151b16000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c80637fa3a40e11610191578063d1ce8da8116100e3578063e78cea9211610097578063edaafe2011610071578063edaafe2014610758578063f1981578146107e1578063f60a5091146107f457600080fd5b8063e78cea92146106f6578063e8eb1dc314610709578063ebea461d1461073057600080fd5b8063dd44e6e0116100c8578063dd44e6e014610690578063e0bc9729146106bc578063e5a358c8146106cf57600080fd5b8063d1ce8da81461066a578063d9dd67ab1461067d57600080fd5b806392d9f78211610145578063b31761f81161011f578063b31761f814610631578063cb23bcb514610644578063cc2a1a0c1461065757600080fd5b806392d9f782146105ef57806396cc5c7814610616578063a655d9371461061e57600080fd5b80638d910dde116101765780638d910dde1461058a5780638f111f3c146105c9578063917cf8ac146105dc57600080fd5b80637fa3a40e1461056e578063844208601461057757600080fd5b80633e5aa0821161024a5780636d46e987116101fe5780636f12b0c9116101d85780636f12b0c9146104e4578063715ea34b146104f757806371c3e6fe1461054b57600080fd5b80636d46e9871461049b5780636e620055146104be5780636e7df3e7146104d157600080fd5b806369cacded1161022f57806369cacded146104595780636ae71f121461046c5780636c8904501461047457600080fd5b80633e5aa0821461041f5780634b678a661461043257600080fd5b80631f956632116102ac57806327957a491161028657806327957a49146103dd5780632cbf74e5146103e55780632f3985a71461040c57600080fd5b80631f956632146103a45780631ff64790146103b7578063258f0495146103ca57600080fd5b80631637be48116102dd5780631637be481461035457806316af91a7146103875780631ad87e451461038f57600080fd5b806302c99275146102f957806306f130561461033e575b600080fd5b6103207f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b6103466107ff565b604051908152602001610335565b6103776103623660046145d8565b60009081526008602052604090205460ff1690565b6040519015158152602001610335565b610320600081565b6103a261039d366004614725565b610889565b005b6103a26103b2366004614786565b610bb9565b6103a26103c53660046147bf565b610d24565b6103466103d83660046145d8565b610ef2565b610346602881565b6103207f500000000000000000000000000000000000000000000000000000000000000081565b6103a261041a3660046147dc565b610f5f565b6103a261042d3660046147f8565b611098565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a26104673660046148a3565b611381565b6103a26116b7565b6103207f080000000000000000000000000000000000000000000000000000000000000081565b6103776104a93660046147bf565b60096020526000908152604090205460ff1681565b6103a26104cc3660046148a3565b61188f565b6103a26104df366004614786565b611941565b6103a26104f2366004614931565b611aac565b61052b6105053660046145d8565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610335565b6103776105593660046147bf565b60036020526000908152604090205460ff1681565b61034660005481565b6103a26105853660046145d8565b611ade565b6105b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610335565b6103a26105d736600461499c565b611c53565b6103a26105ea366004614a19565b611f5a565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a261226e565b6103a261062c3660046147dc565b6122e6565b6103a261063f366004614a75565b6124a4565b6002546105b1906001600160a01b031681565b600b546105b1906001600160a01b031681565b6103a2610678366004614adb565b612603565b61034661068b3660046145d8565b612950565b6106a361069e366004614b1d565b6129dd565b60405167ffffffffffffffff9091168152602001610335565b6103a26106ca36600461499c565b612a40565b6103207f400000000000000000000000000000000000000000000000000000000000000081565b6001546105b1906001600160a01b031681565b6103467f000000000000000000000000000000000000000000000000000000000000000081565b610738612ac8565b604080519485526020850193909352918301526060820152608001610335565b600c54600d5461079e9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610335565b6103a26107ef366004614b49565b612b01565b610320600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190614bb1565b905090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b031615610989576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109c9576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a25575060408051601f3d908101601f19168201909252610a2291810190614bca565b60015b15610a40576001600160a01b03811615610a3e57600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610a9d576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190614bca565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b84610b7f36859003850185614a75565b612f6a565b7f000000000000000000000000000000000000000000000000000000000000000015610bb357610bb382613096565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190614bca565b6001600160a01b0316336001600160a01b031614158015610c5c5750600b546001600160a01b03163314155b15610c95576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190614bca565b6001600160a01b0316336001600160a01b031614610e655760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190614bca565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529116602482015260440161093d565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4b5760405162f20c5d60e01b81526004810184905260240161093d565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190614bca565b6001600160a01b0316336001600160a01b0316146110375760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b61104081613096565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f057604051632dd9fc9760e01b815260040160405180910390fd5b6110f9876132d6565b1561111757604051630e5da8fb60e01b815260040160405180910390fd5b6111238888878761331e565b6001600160a01b0383161561137757366000602061114283601f614bfd565b61114c9190614c10565b905061020061115c600283614d16565b6111669190614c10565b611171826006614d25565b61117b9190614bfd565b6111859084614bfd565b925033321461119757600091506112ca565b6001600160a01b038416156112ca57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120557506040513d6000823e601f3d908101601f191682016040526112029190810190614d3c565b60015b156112ca578051156112c8576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611251573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112759190614bb1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112a69190614d25565b6112b09190614d25565b6112ba9190614c10565b6112c49086614bfd565b9450505b505b846001600160a01b031663e3db8a49335a6112e59087614de2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113739190614df5565b5050505b5050505050505050565b836000805a90503332146113c1576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff166113f157604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061142f57604051631192b39960e31b815260040160405180910390fd5b6114478861144236879003870187614e12565b61347a565b6114578b8b8b8b8a8a6001613587565b6001600160a01b0383161561137357366000602061147683601f614bfd565b6114809190614c10565b9050610200611490600283614d16565b61149a9190614c10565b6114a5826006614d25565b6114af9190614bfd565b6114b99084614bfd565b92503332146114cb57600091506115fe565b6001600160a01b038416156115fe57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561153957506040513d6000823e601f3d908101601f191682016040526115369190810190614d3c565b60015b156115fe578051156115fc576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190614bb1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516115da9190614d25565b6115e49190614d25565b6115ee9190614c10565b6115f89086614bfd565b9450505b505b846001600160a01b031663e3db8a49335a6116199087614de2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a79190614df5565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172e9190614bca565b6001600160a01b0316336001600160a01b03161461178f5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190614bca565b6002549091506001600160a01b03808316911603611860576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff161580156118c257506002546001600160a01b03163314155b156118e057604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061191e57604051631192b39960e31b815260040160405180910390fd5b6119318861144236879003870187614e12565b6114578b8b8b8b8a8a6000613587565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b89190614bca565b6001600160a01b0316336001600160a01b0316141580156119e45750600b546001600160a01b03163314155b15611a1d576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b559190614bca565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b60008181526008602052604090205460ff16611be75760405162f20c5d60e01b81526004810182905260240161093d565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050333214611c93576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611cc357604051632dd9fc9760e01b815260040160405180910390fd5b611ccc876132d6565b15611cea57604051630e5da8fb60e01b815260040160405180910390fd5b611cfa8a8a8a8a89896001613587565b6001600160a01b03831615611f4e573660006020611d1983601f614bfd565b611d239190614c10565b9050610200611d33600283614d16565b611d3d9190614c10565b611d48826006614d25565b611d529190614bfd565b611d5c9084614bfd565b9250333214611d6e5760009150611ea1565b6001600160a01b03841615611ea157836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015611ddc57506040513d6000823e601f3d908101601f19168201604052611dd99190810190614d3c565b60015b15611ea157805115611e9f576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190614bb1565b905048817f00000000000000000000000000000000000000000000000000000000000000008451611e7d9190614d25565b611e879190614d25565b611e919190614c10565b611e9b9086614bfd565b9450505b505b846001600160a01b031663e3db8a49335a611ebc9087614de2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a9190614df5565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16611fb257604051632dd9fc9760e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611ff057604051631192b39960e31b815260040160405180910390fd5b6120038861144236879003870187614e12565b61200f8989888861331e565b6001600160a01b0383161561226357366000602061202e83601f614bfd565b6120389190614c10565b9050610200612048600283614d16565b6120529190614c10565b61205d826006614d25565b6120679190614bfd565b6120719084614bfd565b925033321461208357600091506121b6565b6001600160a01b038416156121b657836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156120f157506040513d6000823e601f3d908101601f191682016040526120ee9190810190614d3c565b60015b156121b6578051156121b4576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190614bb1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516121929190614d25565b61219c9190614d25565b6121a69190614c10565b6121b09086614bfd565b9450505b505b846001600160a01b031663e3db8a49335a6121d19087614de2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225f9190614df5565b5050505b505050505050505050565b467f0000000000000000000000000000000000000000000000000000000000000000036122c7576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161093d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614612414576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161093d565b7f000000000000000000000000000000000000000000000000000000000000000061245257604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff1615612496576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61249f83613096565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251b9190614bca565b6001600160a01b0316336001600160a01b03161461257c5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b61258581612f6a565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a9190614bca565b6001600160a01b0316336001600160a01b0316146126db5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600082826040516126ed929190614ec0565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310612781576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156127cd576040517ffa2fddda0000000000000000000000000000000000000000000000000000000081526004810182905260240161093d565b437f00000000000000000000000000000000000000000000000000000000000000001561285a5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128579190614bb1565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef655722906129159088908890614ed0565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa1580156129b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d79190614bb1565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612a2f576000612a20600c856136b2565b9050612a2b81613701565b9150505b612a398184614eff565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612a7357506002546001600160a01b03163314155b15612a9157604051632dd9fc9760e01b815260040160405180910390fd5b612a9a876132d6565b15612ab857604051630e5da8fb60e01b815260040160405180910390fd5b611cfa8a8a8a8a89896000613587565b600080600080600080600080612adc613731565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612b3c576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612b728684612b506020890189614b1d565b612b6060408a0160208b01614b1d565b612b6b60018d614de2565b89886137a8565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612be357612bc0612bb86020880188614b1d565b600c9061384d565b600c54612bd69067ffffffffffffffff16613701565b67ffffffffffffffff1690505b4381612bf26020890189614b1d565b67ffffffffffffffff16612c069190614bfd565b10612c3d576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612cc6576001546001600160a01b031663d5719dc2612c6460028c614de2565b6040518263ffffffff1660e01b8152600401612c8291815260200190565b602060405180830381865afa158015612c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc39190614bb1565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612d0c908d614de2565b6040518263ffffffff1660e01b8152600401612d2a91815260200190565b602060405180830381865afa158015612d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6b9190614bb1565b14612da2576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612dae8b6138d3565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e309190614bb1565b9050806000808080612e458988838880613918565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d6002604051612e889493929190614f3d565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491612f109190614fd6565b600060405180830381855afa9150503d8060008114612f4b576040519150601f19603f3d011682016040523d82523d6000602084013e612f50565b606091505b5091509150818015612f63575080516020145b9250505090565b805167ffffffffffffffff1080612f8c5750602081015167ffffffffffffffff105b80612fa25750604081015167ffffffffffffffff105b80612fb85750606081015167ffffffffffffffff105b15612fef576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006130d457604051631192b39960e31b815260040160405180910390fd5b6130dd81613b01565b613113576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061313f57506020810151600c5467ffffffffffffffff9182169116115b1561316b576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156131a8578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa15801561329f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c39190614bb1565b036132d3576132d3600c4361384d565b50565b60007f00000000000000000000000000000000000000000000000000000000000000008015613306575060005482115b80156129d75750613317600c613b69565b1592915050565b600080600061332c86613b9c565b925092509250600080600080613346878b60008c8c613918565b93509350935093508a841415801561336057506000198b14155b156133a1576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c905260440161093d565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516133dc9493929190614f3d565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000001561343c576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214801561346957507f0000000000000000000000000000000000000000000000000000000000000000155b156113735761137387854888613dcb565b6000548211156135835761348e600c61400d565b1561358357600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc2916134e29160040190815260200190565b602060405180830381865afa1580156134ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135239190614bb1565b9050613538818360000151846020015161403e565b61356e576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208201516040015161249f90600c9061384d565b5050565b600080613595888888614083565b915091506000806000806135b9868b896135b05760006135b2565b8d5b8c8c613918565b93509350935093508c84141580156135d357506000198d14155b15613614576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e905260440161093d565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d61364957600161364c565b60005b60405161365c9493929190614f3d565b60405180910390a486611f4a57837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d60405161369b929190614ed0565b60405180910390a250505050505050505050505050565b81546001830154600091612a399167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b810483169391900482169116614291565b600a5460009067ffffffffffffffff9081169083161061372d57600a5467ffffffffffffffff166129d7565b5090565b6000808080467f00000000000000000000000000000000000000000000000000000000000000001461376e57506001925082915081905080612afb565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612afb565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b61385782826136b2565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b604080516080810182526000808252602082018190529181018290526060810182905260008061390285614358565b8151602090920191909120969095509350505050565b60008060008060005488101561395a576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d19190614bb1565b881115613a0a576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa79190614ff2565b60008c9055929650909450925090508615801590613ae357507f0000000000000000000000000000000000000000000000000000000000000000155b15613af557613af58985486000613dcb565b95509550955095915050565b805160009067ffffffffffffffff1615801590613b2b5750602082015167ffffffffffffffff1615155b8015613b475750612710826040015167ffffffffffffffff1611155b80156129d75750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613b9491600160c01b9091041643614de2565b111592915050565b60408051608081018252600080825260208201819052918101829052606081018290526000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa158015613c20573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c489190810190614d3c565b90508051600003613c85576040517f3cd27eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080613c9187614358565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1f9190614bb1565b613d299190614d25565b613d339190614d25565b60405190915083907f500000000000000000000000000000000000000000000000000000000000000090613d6b908790602001615028565b60408051601f1981840301815290829052613d8a93929160200161505e565b604051602081830303815290604052805190602001208260004811613db0576000613dba565b613dba4884614c10565b965096509650505050509193909250565b327f000000000000000000000000000000000000000000000000000000000000000015613e71576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e579190614bb1565b9050613e634882614c10565b613e6d9084614bfd565b9250505b67ffffffffffffffff821115613eb3576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af1158015613fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fca9190614bb1565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051613ffc91906150a1565b60405180910390a250505050505050565b600061401882613b69565b15806129d75750505467ffffffffffffffff680100000000000000008204811691161090565b60006140798361404d84614430565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b604080516080810182526000808252602082018190529181018290526060810182905260006140b3856028614bfd565b90507f0000000000000000000000000000000000000000000000000000000000000000811115614138576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161093d565b60008061414486614358565b90925090508615614257576141748888600081811061416557614165614f27565b9050013560f81c60f81b61445d565b6141cc578787600081811061418b5761418b614f27565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b03191660048301525060240161093d565b600160ff1b88886000816141e2576141e2614f27565b6001600160f81b031992013592909216161580159150614203575060218710155b15614257576000614218602160018a8c6150d4565b614221916150fe565b60008181526008602052604090205490915060ff166142555760405162f20c5d60e01b81526004810182905260240161093d565b505b81888860405160200161426c9392919061511c565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808888116142a25760006142ac565b6142ac8989614de2565b905060008987116142be5760006142c8565b6142c88a88614de2565b90506127106142d78584614d25565b6142e19190614c10565b6142eb9089614bfd565b975060008682116142fd576000614307565b6143078783614de2565b9050828111156143145750815b8089111561434957614326818a614de2565b9850868911156143495785891161433d578861433f565b855b9350505050613842565b50949998505050505050505050565b604080516080810182526000808252602082018190529181018290526060808201839052916143856144f0565b9050600081600001518260200151836040015184606001518860405160200161440595949392919060c095861b7fffffffffffffffff000000000000000000000000000000000000000000000000908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b6040516020818303038152906040529050602881511461442757614427615144565b94909350915050565b60006129d7826000015183602001518460400151856060015186608001518760a001518860c001516137a8565b60006001600160f81b03198216158061448357506001600160f81b03198216600160ff1b145b806144b757506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b806129d757506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b604080516080810182526000808252602082018190529181018290526060810191909152604080516080810182526000808252602082018190529181018290526060810191909152600080600080614546613731565b93509350935093508167ffffffffffffffff164211156145775761456a824261515a565b67ffffffffffffffff1685525b6145818142614eff565b67ffffffffffffffff908116602087015284164311156145b5576145a5844361515a565b67ffffffffffffffff1660408601525b6145bf8343614eff565b67ffffffffffffffff1660608601525092949350505050565b6000602082840312156145ea57600080fd5b5035919050565b6001600160a01b03811681146132d357600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561463f5761463f614606565b60405290565b60405160e0810167ffffffffffffffff8111828210171561463f5761463f614606565b604051601f8201601f1916810167ffffffffffffffff8111828210171561469157614691614606565b604052919050565b803567ffffffffffffffff811681146146b157600080fd5b919050565b6000606082840312156146c857600080fd5b6040516060810181811067ffffffffffffffff821117156146eb576146eb614606565b6040529050806146fa83614699565b815261470860208401614699565b602082015261471960408401614699565b60408201525092915050565b600080600083850361010081121561473c57600080fd5b8435614747816145f1565b93506080601f198201121561475b57600080fd5b5060208401915061476f8560a086016146b6565b90509250925092565b80151581146132d357600080fd5b6000806040838503121561479957600080fd5b82356147a4816145f1565b915060208301356147b481614778565b809150509250929050565b6000602082840312156147d157600080fd5b8135612a39816145f1565b6000606082840312156147ee57600080fd5b612a3983836146b6565b600080600080600060a0868803121561481057600080fd5b85359450602086013593506040860135614829816145f1565b94979396509394606081013594506080013592915050565b60008083601f84011261485357600080fd5b50813567ffffffffffffffff81111561486b57600080fd5b60208301915083602082850101111561488357600080fd5b9250929050565b6000610100828403121561489d57600080fd5b50919050565b6000806000806000806000806101c0898b0312156148c057600080fd5b88359750602089013567ffffffffffffffff8111156148de57600080fd5b6148ea8b828c01614841565b909850965050604089013594506060890135614905816145f1565b93506080890135925060a089013591506149228a60c08b0161488a565b90509295985092959890939650565b60008060008060006080868803121561494957600080fd5b85359450602086013567ffffffffffffffff81111561496757600080fd5b61497388828901614841565b90955093505060408601359150606086013561498e816145f1565b809150509295509295909350565b600080600080600080600060c0888a0312156149b757600080fd5b87359650602088013567ffffffffffffffff8111156149d557600080fd5b6149e18a828b01614841565b9097509550506040880135935060608801356149fc816145f1565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a08789031215614a3357600080fd5b86359550602087013594506040870135614a4c816145f1565b93506060870135925060808701359150614a698860a0890161488a565b90509295509295509295565b600060808284031215614a8757600080fd5b6040516080810181811067ffffffffffffffff82111715614aaa57614aaa614606565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60008060208385031215614aee57600080fd5b823567ffffffffffffffff811115614b0557600080fd5b614b1185828601614841565b90969095509350505050565b600060208284031215614b2f57600080fd5b612a3982614699565b803560ff811681146146b157600080fd5b60008060008060008060e08789031215614b6257600080fd5b86359550614b7260208801614b38565b94506080870188811115614b8557600080fd5b60408801945035925060a0870135614b9c816145f1565b8092505060c087013590509295509295509295565b600060208284031215614bc357600080fd5b5051919050565b600060208284031215614bdc57600080fd5b8151612a39816145f1565b634e487b7160e01b600052601160045260246000fd5b808201808211156129d7576129d7614be7565b600082614c2d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614c6d578160001904821115614c5357614c53614be7565b80851615614c6057918102915b93841c9390800290614c37565b509250929050565b600082614c84575060016129d7565b81614c91575060006129d7565b8160018114614ca75760028114614cb157614ccd565b60019150506129d7565b60ff841115614cc257614cc2614be7565b50506001821b6129d7565b5060208310610133831016604e8410600b8410161715614cf0575081810a6129d7565b614cfa8383614c32565b8060001904821115614d0e57614d0e614be7565b029392505050565b6000612a3960ff841683614c75565b80820281158282048414176129d7576129d7614be7565b60006020808385031215614d4f57600080fd5b825167ffffffffffffffff80821115614d6757600080fd5b818501915085601f830112614d7b57600080fd5b815181811115614d8d57614d8d614606565b8060051b9150614d9e848301614668565b8181529183018401918481019088841115614db857600080fd5b938501935b83851015614dd657845182529385019390850190614dbd565b98975050505050505050565b818103818111156129d7576129d7614be7565b600060208284031215614e0757600080fd5b8151612a3981614778565b6000818303610100811215614e2657600080fd5b614e2e61461c565b8335815260e0601f1983011215614e4457600080fd5b614e4c614645565b9150614e5a60208501614b38565b82526040840135614e6a816145f1565b6020830152614e7b60608501614699565b6040830152614e8c60808501614699565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff818116838216019080821115614f2057614f20614be7565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a08401525060048310614fa357634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b60005b83811015614fcd578181015183820152602001614fb5565b50506000910152565b60008251614fe8818460208701614fb2565b9190910192915050565b6000806000806080858703121561500857600080fd5b505082516020840151604085015160609095015191969095509092509050565b815160009082906020808601845b8381101561505257815185529382019390820190600101615036565b50929695505050505050565b60008451615070818460208901614fb2565b6001600160f81b031985169083019081528351615094816001840160208801614fb2565b0160010195945050505050565b60208152600082518060208401526150c0816040850160208701614fb2565b601f01601f19169190910160400192915050565b600080858511156150e457600080fd5b838611156150f157600080fd5b5050820193919092039150565b803560208310156129d757600019602084900360031b1b1692915050565b6000845161512e818460208901614fb2565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fd5b67ffffffffffffffff828116828216039080821115614f2057614f20614be756fea264697066735822122099b9117518d6bf3cec16c449d27fb3bd029168de6b9a806157531121e2b92b1664736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxDataSize\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader4844_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isUsingFeeToken\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_isDelayBufferable\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x610180604052306080526202000060a05246610100526200002b62000109602090811b62002ec217901c565b1515610120523480156200003e57600080fd5b506040516200554b3803806200554b8339810160408190526200006191620001bc565b60e084905261012051156200009f576001600160a01b0383161562000099576040516386657a5360e01b815260040160405180910390fd5b620000e8565b6001600160a01b038316620000e8576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0390921660c052151561014052151561016052506200024f565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200014991906200021e565b600060405180830381855afa9150503d806000811462000186576040519150601f19603f3d011682016040523d82523d6000602084013e6200018b565b606091505b50915091508180156200019f575080516020145b9250505090565b80518015158114620001b757600080fd5b919050565b60008060008060808587031215620001d357600080fd5b845160208601519094506001600160a01b0381168114620001f357600080fd5b92506200020360408601620001a6565b91506200021360608601620001a6565b905092959194509250565b6000825160005b8181101562000241576020818601810151858301520162000225565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051610160516151e7620003646000396000818161043701528181610b86015281816113fd015281816118f101528181611fcd0152818161243401528181612a0d01528181612ba2015281816130b601526132f80152600081816105f401528181610a450152818161346b0152613af80152600081816127ee015281816134040152613e0401526000818161228f015261376f01526000818161070e015281816140ed015261414201526000818161058f0152818161109b01528181611f7601528181613bfa0152613cd5015260008181611280015281816115be01528181611e6b0152612185015260008181610893015261230e01526151e76000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c80637fa3a40e11610191578063d1ce8da8116100e3578063e78cea9211610097578063edaafe2011610071578063edaafe2014610758578063f1981578146107e1578063f60a5091146107f457600080fd5b8063e78cea92146106f6578063e8eb1dc314610709578063ebea461d1461073057600080fd5b8063dd44e6e0116100c8578063dd44e6e014610690578063e0bc9729146106bc578063e5a358c8146106cf57600080fd5b8063d1ce8da81461066a578063d9dd67ab1461067d57600080fd5b806392d9f78211610145578063b31761f81161011f578063b31761f814610631578063cb23bcb514610644578063cc2a1a0c1461065757600080fd5b806392d9f782146105ef57806396cc5c7814610616578063a655d9371461061e57600080fd5b80638d910dde116101765780638d910dde1461058a5780638f111f3c146105c9578063917cf8ac146105dc57600080fd5b80637fa3a40e1461056e578063844208601461057757600080fd5b80633e5aa0821161024a5780636d46e987116101fe5780636f12b0c9116101d85780636f12b0c9146104e4578063715ea34b146104f757806371c3e6fe1461054b57600080fd5b80636d46e9871461049b5780636e620055146104be5780636e7df3e7146104d157600080fd5b806369cacded1161022f57806369cacded146104595780636ae71f121461046c5780636c8904501461047457600080fd5b80633e5aa0821461041f5780634b678a661461043257600080fd5b80631f956632116102ac57806327957a491161028657806327957a49146103dd5780632cbf74e5146103e55780632f3985a71461040c57600080fd5b80631f956632146103a45780631ff64790146103b7578063258f0495146103ca57600080fd5b80631637be48116102dd5780631637be481461035457806316af91a7146103875780631ad87e451461038f57600080fd5b806302c99275146102f957806306f130561461033e575b600080fd5b6103207f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b6103466107ff565b604051908152602001610335565b61037761036236600461460e565b60009081526008602052604090205460ff1690565b6040519015158152602001610335565b610320600081565b6103a261039d36600461475b565b610889565b005b6103a26103b23660046147bc565b610bb9565b6103a26103c53660046147f5565b610d24565b6103466103d836600461460e565b610ef2565b610346602881565b6103207f500000000000000000000000000000000000000000000000000000000000000081565b6103a261041a366004614812565b610f5f565b6103a261042d36600461482e565b611098565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a26104673660046148d9565b611386565b6103a26116c6565b6103207f080000000000000000000000000000000000000000000000000000000000000081565b6103776104a93660046147f5565b60096020526000908152604090205460ff1681565b6103a26104cc3660046148d9565b61189e565b6103a26104df3660046147bc565b611950565b6103a26104f2366004614967565b611abb565b61052b61050536600461460e565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610335565b6103776105593660046147f5565b60036020526000908152604090205460ff1681565b61034660005481565b6103a261058536600461460e565b611aed565b6105b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610335565b6103a26105d73660046149d2565b611c62565b6103a26105ea366004614a4f565b611f73565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a261228c565b6103a261062c366004614812565b612304565b6103a261063f366004614aab565b6124c2565b6002546105b1906001600160a01b031681565b600b546105b1906001600160a01b031681565b6103a2610678366004614b11565b612621565b61034661068b36600461460e565b61296e565b6106a361069e366004614b53565b6129fb565b60405167ffffffffffffffff9091168152602001610335565b6103a26106ca3660046149d2565b612a5e565b6103207f400000000000000000000000000000000000000000000000000000000000000081565b6001546105b1906001600160a01b031681565b6103467f000000000000000000000000000000000000000000000000000000000000000081565b610738612ae6565b604080519485526020850193909352918301526060820152608001610335565b600c54600d5461079e9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610335565b6103a26107ef366004614b7f565b612b1f565b610320600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190614be7565b905090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b031615610989576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109c9576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a25575060408051601f3d908101601f19168201909252610a2291810190614c00565b60015b15610a40576001600160a01b03811615610a3e57600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610a9d576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190614c00565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b84610b7f36859003850185614aab565b612f88565b7f000000000000000000000000000000000000000000000000000000000000000015610bb357610bb3826130b4565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190614c00565b6001600160a01b0316336001600160a01b031614158015610c5c5750600b546001600160a01b03163314155b15610c95576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190614c00565b6001600160a01b0316336001600160a01b031614610e655760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190614c00565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529116602482015260440161093d565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4b5760405162f20c5d60e01b81526004810184905260240161093d565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190614c00565b6001600160a01b0316336001600160a01b0316146110375760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b611040816130b4565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f057604051632dd9fc9760e01b815260040160405180910390fd5b6110f9876132f4565b1561111757604051630e5da8fb60e01b815260040160405180910390fd5b6111238888878761333c565b6001600160a01b0383161561137c57366000602061114283601f614c33565b61114c9190614c46565b905061020061115c600283614d4c565b6111669190614c46565b611171826006614d5b565b61117b9190614c33565b6111859084614c33565b925061118f61349d565b61119c57600091506112cf565b6001600160a01b038416156112cf57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120a57506040513d6000823e601f3d908101601f191682016040526112079190810190614d72565b60015b156112cf578051156112cd576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190614be7565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112ab9190614d5b565b6112b59190614d5b565b6112bf9190614c46565b6112c99086614c33565b9450505b505b846001600160a01b031663e3db8a49335a6112ea9087614e18565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113789190614e2b565b5050505b5050505050505050565b836000805a905061139561349d565b6113cb576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff166113fb57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061143957604051631192b39960e31b815260040160405180910390fd5b6114518861144c36879003870187614e48565b6134b0565b6114618b8b8b8b8a8a60016135bd565b6001600160a01b0383161561137857366000602061148083601f614c33565b61148a9190614c46565b905061020061149a600283614d4c565b6114a49190614c46565b6114af826006614d5b565b6114b99190614c33565b6114c39084614c33565b92506114cd61349d565b6114da576000915061160d565b6001600160a01b0384161561160d57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561154857506040513d6000823e601f3d908101601f191682016040526115459190810190614d72565b60015b1561160d5780511561160b576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b89190614be7565b905048817f000000000000000000000000000000000000000000000000000000000000000084516115e99190614d5b565b6115f39190614d5b565b6115fd9190614c46565b6116079086614c33565b9450505b505b846001600160a01b031663e3db8a49335a6116289087614e18565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190614e2b565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190614c00565b6001600160a01b0316336001600160a01b03161461179e5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190614c00565b6002549091506001600160a01b0380831691160361186f576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff161580156118d157506002546001600160a01b03163314155b156118ef57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061192d57604051631192b39960e31b815260040160405180910390fd5b6119408861144c36879003870187614e48565b6114618b8b8b8b8a8a60006135bd565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c79190614c00565b6001600160a01b0316336001600160a01b0316141580156119f35750600b546001600160a01b03163314155b15611a2c576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b649190614c00565b6001600160a01b0316336001600160a01b031614611bc55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b60008181526008602052604090205460ff16611bf65760405162f20c5d60e01b81526004810182905260240161093d565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050611c7161349d565b611ca7576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611cd757604051632dd9fc9760e01b815260040160405180910390fd5b611ce0876132f4565b15611cfe57604051630e5da8fb60e01b815260040160405180910390fd5b611d0e8a8a8a8a898960016135bd565b6001600160a01b03831615611f67573660006020611d2d83601f614c33565b611d379190614c46565b9050610200611d47600283614d4c565b611d519190614c46565b611d5c826006614d5b565b611d669190614c33565b611d709084614c33565b9250611d7a61349d565b611d875760009150611eba565b6001600160a01b03841615611eba57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015611df557506040513d6000823e601f3d908101601f19168201604052611df29190810190614d72565b60015b15611eba57805115611eb8576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e659190614be7565b905048817f00000000000000000000000000000000000000000000000000000000000000008451611e969190614d5b565b611ea09190614d5b565b611eaa9190614c46565b611eb49086614c33565b9450505b505b846001600160a01b031663e3db8a49335a611ed59087614e18565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f639190614e2b565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16611fcb57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061200957604051631192b39960e31b815260040160405180910390fd5b61201c8861144c36879003870187614e48565b6120288989888861333c565b6001600160a01b0383161561228157366000602061204783601f614c33565b6120519190614c46565b9050610200612061600283614d4c565b61206b9190614c46565b612076826006614d5b565b6120809190614c33565b61208a9084614c33565b925061209461349d565b6120a157600091506121d4565b6001600160a01b038416156121d457836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561210f57506040513d6000823e601f3d908101601f1916820160405261210c9190810190614d72565b60015b156121d4578051156121d2576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190614be7565b905048817f000000000000000000000000000000000000000000000000000000000000000084516121b09190614d5b565b6121ba9190614d5b565b6121c49190614c46565b6121ce9086614c33565b9450505b505b846001600160a01b031663e3db8a49335a6121ef9087614e18565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d9190614e2b565b5050505b505050505050505050565b467f0000000000000000000000000000000000000000000000000000000000000000036122e5576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036123bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161093d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614612432576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161093d565b7f000000000000000000000000000000000000000000000000000000000000000061247057604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff16156124b4576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124bd836130b4565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125399190614c00565b6001600160a01b0316336001600160a01b03161461259a5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b6125a381612f88565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190614c00565b6001600160a01b0316336001600160a01b0316146126f95760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b6000828260405161270b929190614ef6565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b811862010000831061279f576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156127eb576040517ffa2fddda0000000000000000000000000000000000000000000000000000000081526004810182905260240161093d565b437f0000000000000000000000000000000000000000000000000000000000000000156128785760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128759190614be7565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef655722906129339088908890614f06565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f59190614be7565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612a4d576000612a3e600c856136e8565b9050612a4981613737565b9150505b612a578184614f35565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612a9157506002546001600160a01b03163314155b15612aaf57604051632dd9fc9760e01b815260040160405180910390fd5b612ab8876132f4565b15612ad657604051630e5da8fb60e01b815260040160405180910390fd5b611d0e8a8a8a8a898960006135bd565b600080600080600080600080612afa613767565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612b5a576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612b908684612b6e6020890189614b53565b612b7e60408a0160208b01614b53565b612b8960018d614e18565b89886137de565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612c0157612bde612bd66020880188614b53565b600c90613883565b600c54612bf49067ffffffffffffffff16613737565b67ffffffffffffffff1690505b4381612c106020890189614b53565b67ffffffffffffffff16612c249190614c33565b10612c5b576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612ce4576001546001600160a01b031663d5719dc2612c8260028c614e18565b6040518263ffffffff1660e01b8152600401612ca091815260200190565b602060405180830381865afa158015612cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce19190614be7565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612d2a908d614e18565b6040518263ffffffff1660e01b8152600401612d4891815260200190565b602060405180830381865afa158015612d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d899190614be7565b14612dc0576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612dcc8b613909565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4e9190614be7565b9050806000808080612e63898883888061394e565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d6002604051612ea69493929190614f73565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491612f2e919061500c565b600060405180830381855afa9150503d8060008114612f69576040519150601f19603f3d011682016040523d82523d6000602084013e612f6e565b606091505b5091509150818015612f81575080516020145b9250505090565b805167ffffffffffffffff1080612faa5750602081015167ffffffffffffffff105b80612fc05750604081015167ffffffffffffffff105b80612fd65750606081015167ffffffffffffffff105b1561300d576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006130f257604051631192b39960e31b815260040160405180910390fd5b6130fb81613b37565b613131576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061315d57506020810151600c5467ffffffffffffffff9182169116115b15613189576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156131c6578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa1580156132bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e19190614be7565b036132f1576132f1600c43613883565b50565b60007f00000000000000000000000000000000000000000000000000000000000000008015613324575060005482115b80156129f55750613335600c613b9f565b1592915050565b600080600061334a86613bd2565b925092509250600080600080613364878b60008c8c61394e565b93509350935093508a841415801561337e57506000198b14155b156133bf576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c905260440161093d565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516133fa9493929190614f73565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000001561345a576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61346261349d565b801561348c57507f0000000000000000000000000000000000000000000000000000000000000000155b156113785761137887854888613e01565b60003332148015610884575050333b1590565b6000548211156135b9576134c4600c614043565b156135b957600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc2916135189160040190815260200190565b602060405180830381865afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135599190614be7565b905061356e8183600001518460200151614074565b6135a4576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020820151604001516124bd90600c90613883565b5050565b6000806135cb8888886140b9565b915091506000806000806135ef868b896135e65760006135e8565b8d5b8c8c61394e565b93509350935093508c841415801561360957506000198d14155b1561364a576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e905260440161093d565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d61367f576001613682565b60005b6040516136929493929190614f73565b60405180910390a486611f6357837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d6040516136d1929190614f06565b60405180910390a250505050505050505050505050565b81546001830154600091612a579167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b8104831693919004821691166142c7565b600a5460009067ffffffffffffffff9081169083161061376357600a5467ffffffffffffffff166129f5565b5090565b6000808080467f0000000000000000000000000000000000000000000000000000000000000000146137a457506001925082915081905080612b19565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612b19565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b61388d82826136e8565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b60408051608081018252600080825260208201819052918101829052606081018290526000806139388561438e565b8151602090920191909120969095509350505050565b600080600080600054881015613990576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a079190614be7565b881115613a40576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613add9190615028565b60008c9055929650909450925090508615801590613b1957507f0000000000000000000000000000000000000000000000000000000000000000155b15613b2b57613b2b8985486000613e01565b95509550955095915050565b805160009067ffffffffffffffff1615801590613b615750602082015167ffffffffffffffff1615155b8015613b7d5750612710826040015167ffffffffffffffff1611155b80156129f55750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613bca91600160c01b9091041643614e18565b111592915050565b60408051608081018252600080825260208201819052918101829052606081018290526000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa158015613c56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c7e9190810190614d72565b90508051600003613cbb576040517f3cd27eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080613cc78761438e565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d559190614be7565b613d5f9190614d5b565b613d699190614d5b565b60405190915083907f500000000000000000000000000000000000000000000000000000000000000090613da190879060200161505e565b60408051601f1981840301815290829052613dc0939291602001615094565b604051602081830303815290604052805190602001208260004811613de6576000613df0565b613df04884614c46565b965096509650505050509193909250565b327f000000000000000000000000000000000000000000000000000000000000000015613ea7576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8d9190614be7565b9050613e994882614c46565b613ea39084614c33565b9250505b67ffffffffffffffff821115613ee9576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af1158015613fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140009190614be7565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b8360405161403291906150d7565b60405180910390a250505050505050565b600061404e82613b9f565b15806129f55750505467ffffffffffffffff680100000000000000008204811691161090565b60006140af8361408384614466565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b604080516080810182526000808252602082018190529181018290526060810182905260006140e9856028614c33565b90507f000000000000000000000000000000000000000000000000000000000000000081111561416e576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161093d565b60008061417a8661438e565b9092509050861561428d576141aa8888600081811061419b5761419b614f5d565b9050013560f81c60f81b614493565b61420257878760008181106141c1576141c1614f5d565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b03191660048301525060240161093d565b600160ff1b888860008161421857614218614f5d565b6001600160f81b031992013592909216161580159150614239575060218710155b1561428d57600061424e602160018a8c61510a565b61425791615134565b60008181526008602052604090205490915060ff1661428b5760405162f20c5d60e01b81526004810182905260240161093d565b505b8188886040516020016142a293929190615152565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808888116142d85760006142e2565b6142e28989614e18565b905060008987116142f45760006142fe565b6142fe8a88614e18565b905061271061430d8584614d5b565b6143179190614c46565b6143219089614c33565b9750600086821161433357600061433d565b61433d8783614e18565b90508281111561434a5750815b8089111561437f5761435c818a614e18565b98508689111561437f578589116143735788614375565b855b9350505050613878565b50949998505050505050505050565b604080516080810182526000808252602082018190529181018290526060808201839052916143bb614526565b9050600081600001518260200151836040015184606001518860405160200161443b95949392919060c095861b7fffffffffffffffff000000000000000000000000000000000000000000000000908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b6040516020818303038152906040529050602881511461445d5761445d61517a565b94909350915050565b60006129f5826000015183602001518460400151856060015186608001518760a001518860c001516137de565b60006001600160f81b0319821615806144b957506001600160f81b03198216600160ff1b145b806144ed57506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b806129f557506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b60408051608081018252600080825260208201819052918101829052606081019190915260408051608081018252600080825260208201819052918101829052606081019190915260008060008061457c613767565b93509350935093508167ffffffffffffffff164211156145ad576145a08242615190565b67ffffffffffffffff1685525b6145b78142614f35565b67ffffffffffffffff908116602087015284164311156145eb576145db8443615190565b67ffffffffffffffff1660408601525b6145f58343614f35565b67ffffffffffffffff1660608601525092949350505050565b60006020828403121561462057600080fd5b5035919050565b6001600160a01b03811681146132f157600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156146755761467561463c565b60405290565b60405160e0810167ffffffffffffffff811182821017156146755761467561463c565b604051601f8201601f1916810167ffffffffffffffff811182821017156146c7576146c761463c565b604052919050565b803567ffffffffffffffff811681146146e757600080fd5b919050565b6000606082840312156146fe57600080fd5b6040516060810181811067ffffffffffffffff821117156147215761472161463c565b604052905080614730836146cf565b815261473e602084016146cf565b602082015261474f604084016146cf565b60408201525092915050565b600080600083850361010081121561477257600080fd5b843561477d81614627565b93506080601f198201121561479157600080fd5b506020840191506147a58560a086016146ec565b90509250925092565b80151581146132f157600080fd5b600080604083850312156147cf57600080fd5b82356147da81614627565b915060208301356147ea816147ae565b809150509250929050565b60006020828403121561480757600080fd5b8135612a5781614627565b60006060828403121561482457600080fd5b612a5783836146ec565b600080600080600060a0868803121561484657600080fd5b8535945060208601359350604086013561485f81614627565b94979396509394606081013594506080013592915050565b60008083601f84011261488957600080fd5b50813567ffffffffffffffff8111156148a157600080fd5b6020830191508360208285010111156148b957600080fd5b9250929050565b600061010082840312156148d357600080fd5b50919050565b6000806000806000806000806101c0898b0312156148f657600080fd5b88359750602089013567ffffffffffffffff81111561491457600080fd5b6149208b828c01614877565b90985096505060408901359450606089013561493b81614627565b93506080890135925060a089013591506149588a60c08b016148c0565b90509295985092959890939650565b60008060008060006080868803121561497f57600080fd5b85359450602086013567ffffffffffffffff81111561499d57600080fd5b6149a988828901614877565b9095509350506040860135915060608601356149c481614627565b809150509295509295909350565b600080600080600080600060c0888a0312156149ed57600080fd5b87359650602088013567ffffffffffffffff811115614a0b57600080fd5b614a178a828b01614877565b909750955050604088013593506060880135614a3281614627565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a08789031215614a6957600080fd5b86359550602087013594506040870135614a8281614627565b93506060870135925060808701359150614a9f8860a089016148c0565b90509295509295509295565b600060808284031215614abd57600080fd5b6040516080810181811067ffffffffffffffff82111715614ae057614ae061463c565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60008060208385031215614b2457600080fd5b823567ffffffffffffffff811115614b3b57600080fd5b614b4785828601614877565b90969095509350505050565b600060208284031215614b6557600080fd5b612a57826146cf565b803560ff811681146146e757600080fd5b60008060008060008060e08789031215614b9857600080fd5b86359550614ba860208801614b6e565b94506080870188811115614bbb57600080fd5b60408801945035925060a0870135614bd281614627565b8092505060c087013590509295509295509295565b600060208284031215614bf957600080fd5b5051919050565b600060208284031215614c1257600080fd5b8151612a5781614627565b634e487b7160e01b600052601160045260246000fd5b808201808211156129f5576129f5614c1d565b600082614c6357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614ca3578160001904821115614c8957614c89614c1d565b80851615614c9657918102915b93841c9390800290614c6d565b509250929050565b600082614cba575060016129f5565b81614cc7575060006129f5565b8160018114614cdd5760028114614ce757614d03565b60019150506129f5565b60ff841115614cf857614cf8614c1d565b50506001821b6129f5565b5060208310610133831016604e8410600b8410161715614d26575081810a6129f5565b614d308383614c68565b8060001904821115614d4457614d44614c1d565b029392505050565b6000612a5760ff841683614cab565b80820281158282048414176129f5576129f5614c1d565b60006020808385031215614d8557600080fd5b825167ffffffffffffffff80821115614d9d57600080fd5b818501915085601f830112614db157600080fd5b815181811115614dc357614dc361463c565b8060051b9150614dd484830161469e565b8181529183018401918481019088841115614dee57600080fd5b938501935b83851015614e0c57845182529385019390850190614df3565b98975050505050505050565b818103818111156129f5576129f5614c1d565b600060208284031215614e3d57600080fd5b8151612a57816147ae565b6000818303610100811215614e5c57600080fd5b614e64614652565b8335815260e0601f1983011215614e7a57600080fd5b614e8261467b565b9150614e9060208501614b6e565b82526040840135614ea081614627565b6020830152614eb1606085016146cf565b6040830152614ec2608085016146cf565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff818116838216019080821115614f5657614f56614c1d565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a08401525060048310614fd957634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b60005b83811015615003578181015183820152602001614feb565b50506000910152565b6000825161501e818460208701614fe8565b9190910192915050565b6000806000806080858703121561503e57600080fd5b505082516020840151604085015160609095015191969095509092509050565b815160009082906020808601845b838110156150885781518552938201939082019060010161506c565b50929695505050505050565b600084516150a6818460208901614fe8565b6001600160f81b0319851690830190815283516150ca816001840160208801614fe8565b0160010195945050505050565b60208152600082518060208401526150f6816040850160208701614fe8565b601f01601f19169190910160400192915050565b6000808585111561511a57600080fd5b8386111561512757600080fd5b5050820193919092039150565b803560208310156129f557600019602084900360031b1b1692915050565b60008451615164818460208901614fe8565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fd5b67ffffffffffffffff828116828216039080821115614f5657614f56614c1d56fea264697066735822122099c68e0c4fc9caadfc7a0b2c4b436644dc6aba460ffc31489167885e22f2718564736f6c63430008110033", } // SequencerInboxABI is the input ABI used to generate the binding from. diff --git a/solgen/go/chaingen/chaingen.go b/solgen/go/chaingen/chaingen.go index 740a46d21..19be4a00e 100644 --- a/solgen/go/chaingen/chaingen.go +++ b/solgen/go/chaingen/chaingen.go @@ -39,7 +39,7 @@ type CacheManagerEntry struct { // CacheManagerMetaData contains all meta data concerning the CacheManager contract. var CacheManagerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"AlreadyCached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"asm\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"queueSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cacheSize\",\"type\":\"uint256\"}],\"name\":\"AsmTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bid\",\"type\":\"uint256\"}],\"name\":\"BidTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"},{\"internalType\":\"uint192\",\"name\":\"min\",\"type\":\"uint192\"}],\"name\":\"BidTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidsArePaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"}],\"name\":\"MakeSpaceTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotChainOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"}],\"name\":\"DeleteBid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"}],\"name\":\"InsertBid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"}],\"name\":\"SetCacheSize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"decay\",\"type\":\"uint64\"}],\"name\":\"SetDecayRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cacheSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"},{\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"evictAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"evictPrograms\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEntries\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"},{\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"}],\"internalType\":\"structCacheManager.Entry[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"getMinBid\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"min\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"getMinBid\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"min\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"}],\"name\":\"getMinBid\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"min\",\"type\":\"uint192\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"name\":\"getSmallestEntries\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"code\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"},{\"internalType\":\"uint192\",\"name\":\"bid\",\"type\":\"uint192\"}],\"internalType\":\"structCacheManager.Entry[]\",\"name\":\"result\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initCacheSize\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"initDecay\",\"type\":\"uint64\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"size\",\"type\":\"uint64\"}],\"name\":\"makeSpace\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"space\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"placeBid\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"queueSize\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newSize\",\"type\":\"uint64\"}],\"name\":\"setCacheSize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newDecay\",\"type\":\"uint64\"}],\"name\":\"setDecayRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sweepFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b5060805161209861003060003960006105f301526120986000f3fe60806040526004361061015f5760003560e01c8063b187bd26116100c0578063c77ed13e11610074578063d29b303e11610059578063d29b303e146103ea578063e49401571461040a578063e9c1bc0f1461041d57600080fd5b8063c77ed13e146103aa578063cadb43e2146103ca57600080fd5b8063bae6c2ad116100a5578063bae6c2ad1461034a578063c1c013c414610377578063c565a2081461038a57600080fd5b8063b187bd26146102cc578063b30906d4146102fd57600080fd5b806354fac919116101175780635c975abb116100fc5780635c975abb14610281578063674a64e014610296578063a8d6fe04146102b757600080fd5b806354fac9191461021e5780635c32e9431461026c57600080fd5b80632dd4f566116101485780632dd4f566146101b157806332052a9b146101d15780633f4ba83a1461020957600080fd5b806317be85c31461016457806320f2f3451461018f575b600080fd5b34801561017057600080fd5b5061017961043d565b6040516101869190611daa565b60405180910390f35b34801561019b57600080fd5b506101af6101aa366004611e33565b6104d0565b005b3480156101bd57600080fd5b506101af6101cc366004611e66565b61073a565b3480156101dd57600080fd5b506101f16101ec366004611ea3565b610810565b6040516001600160c01b039091168152602001610186565b34801561021557600080fd5b506101af610838565b34801561022a57600080fd5b5060035461025390700100000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610186565b34801561027857600080fd5b506101af61090a565b34801561028d57600080fd5b506101af6109a2565b3480156102a257600080fd5b506003546102539067ffffffffffffffff1681565b3480156102c357600080fd5b506101af610a7a565b3480156102d857600080fd5b506003546102ed90600160c01b900460ff1681565b6040519015158152602001610186565b34801561030957600080fd5b5061031d610318366004611ec0565b610b5f565b6040805193845267ffffffffffffffff90921660208401526001600160c01b031690820152606001610186565b34801561035657600080fd5b506003546102539068010000000000000000900467ffffffffffffffff1681565b610253610385366004611e66565b610bae565b34801561039657600080fd5b506101f16103a5366004611ec0565b610c81565b3480156103b657600080fd5b506101af6103c5366004611e66565b610c8f565b3480156103d657600080fd5b506101af6103e5366004611ec0565b610d8b565b3480156103f657600080fd5b506101f1610405366004611e66565b610e5d565b6101af610418366004611ea3565b611068565b34801561042957600080fd5b50610179610438366004611ec0565b611138565b60606002805480602002602001604051908101604052809291908181526020016000905b828210156104c757600084815260209081902060408051606081018252600286029092018054835260019081015467ffffffffffffffff8116848601526801000000000000000090046001600160c01b0316918301919091529083529092019101610461565b50505050905090565b600054610100900460ff16158080156104f05750600054600160ff909116105b8061050a5750303b15801561050a575060005460ff166001145b61059b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105dc576000805461ff0019166101001790555b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610592565b6003805467ffffffffffffffff848116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000909216908616171790558015610735576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611ed9565b6107b957604051639531eff160e01b8152336004820152602401610592565b6003805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527fca22875e098f3b9c06ff3950c0cded621c968253a16623e890165451094c1839906020015b60405180910390a150565b60006108328273ffffffffffffffffffffffffffffffffffffffff163f610c81565b92915050565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108989190611ed9565b6108b757604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a9190611ed9565b61098957604051639531eff160e01b8152336004820152602401610592565b610994600019610d8b565b6109a060026000611d6f565b565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa1580156109de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190611ed9565b610a2157604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600080606b73ffffffffffffffffffffffffffffffffffffffff16632d9125e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611efb565b73ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114610b44576040519150601f19603f3d011682016040523d82523d6000602084013e610b49565b606091505b509150915081610b5b57805160208201fd5b5050565b60028181548110610b6f57600080fd5b60009182526020909120600290910201805460019091015490915067ffffffffffffffff8116906801000000000000000090046001600160c01b031683565b600354600090600160c01b900460ff1615610bf5576040517f8f55c96c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6250000067ffffffffffffffff83161115610c51576040517fe6b801f300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff83166004820152625000006024820152604401610592565b610c5a826112a9565b50506003546108329067ffffffffffffffff68010000000000000000820481169116611f2e565b60006108326104058361138c565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611ed9565b610d0e57604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040519081527fd5ad38a519f54c97117f5a79fa7e82b03f32d2719f3ce4a27d4b561217cfea0c90602001610805565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190611ed9565b610e0a57604051639531eff160e01b8152336004820152602401610592565b60015415801590610e1b5750600081115b15610e5a57600080610e38610e306001611434565b604081901c91565b91509150610e468282611444565b610e51600184611f56565b92505050610e0a565b50565b60035460009067ffffffffffffffff9081169083161115610ec9576003546040517fbcc27c3700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8085166004830152600060248301529091166044820152606401610592565b61100067ffffffffffffffff83161015610ee557611000610ee7565b815b600354909250600090610f1190849068010000000000000000900467ffffffffffffffff16611f69565b60035467ffffffffffffffff9182169250168111610f325750600092915050565b600354600090610f4c9067ffffffffffffffff1683611f56565b905060006110006001610f5f8285611f8a565b610f699190611f56565b610f739190611f9d565b90506000610f8082611138565b905060005b815181101561102857818181518110610fa057610fa0611fbf565b60200260200101516020015167ffffffffffffffff168411610fe157818181518110610fce57610fce611fbf565b6020026020010151604001519550611028565b818181518110610ff357610ff3611fbf565b60200260200101516020015167ffffffffffffffff16846110149190611f56565b93508061102081611fd5565b915050610f85565b50600061103361160b565b905080866001600160c01b03161015611053575060009695505050505050565b61105d8187611fef565b979650505050505050565b600354600160c01b900460ff16156110ac576040517f8f55c96c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163f6110cd8161163e565b15611107576040517fc7e2d8e500000000000000000000000000000000000000000000000000000000815260048101829052602401610592565b60006111128261138c565b9050600080611120836112a9565b9150915061113182868686856116bb565b5050505050565b60608161114460015490565b10156111505760015491505b600061115d6001846119ed565b9050805167ffffffffffffffff8111156111795761117961200f565b6040519080825280602002602001820160405280156111c457816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816111975790505b50915060005b81518110156112a25760006111fa8383815181106111ea576111ea611fbf565b6020026020010151604081901c91565b91505060028167ffffffffffffffff168154811061121a5761121a611fbf565b600091825260209182902060408051606081018252600293909302909101805483526001015467ffffffffffffffff811693830193909352680100000000000000009092046001600160c01b031691810191909152845185908490811061128357611283611fbf565b602002602001018190525050808061129a90611fd5565b9150506111ca565b5050919050565b6000806112b534611bab565b600254600354919350915060009067ffffffffffffffff165b60035467ffffffffffffffff808316916112f691889168010000000000000000900416611f69565b67ffffffffffffffff16111561132657611313610e306001611434565b935091506113218284611444565b6112ce565b816001600160c01b0316846001600160c01b03161015611385576040517fdf370e480000000000000000000000000000000000000000000000000000000081526001600160c01b03808616600483015283166024820152604401610592565b5050915091565b6040517f4089267f000000000000000000000000000000000000000000000000000000008152600481018290526000908190607190634089267f90602401602060405180830381865afa1580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612025565b905061100063ffffffff821610156114255761100061142d565b8063ffffffff165b9392505050565b600061142d826000806002611c06565b600060028267ffffffffffffffff168154811061146357611463611fbf565b600091825260209182902060408051606081018252600293909302909101805480845260019091015467ffffffffffffffff811694840194909452680100000000000000009093046001600160c01b031682820152517fce9720130000000000000000000000000000000000000000000000000000000081526004810192909252915060729063ce97201390602401600060405180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050508060200151600360088282829054906101000a900467ffffffffffffffff1661154d9190611f2e565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600001517f65905594d332f592fa6d4b86efc250c300a286b9d4f07f2ae89c3147dc4f39e78483602001516040516115cb9291906001600160c01b0392909216825267ffffffffffffffff16602082015260400190565b60405180910390a260028267ffffffffffffffff16815481106115f0576115f0611fbf565b60009182526020822060029091020181815560010155505050565b60035460009061163990700100000000000000000000000000000000900467ffffffffffffffff164261204b565b905090565b6040517fa72f179b0000000000000000000000000000000000000000000000000000000081526004810182905260009060729063a72f179b90602401602060405180830381865afa158015611697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108329190611ed9565b60035467ffffffffffffffff808216916116e391859168010000000000000000900416611f69565b67ffffffffffffffff161115611750576003546040517fbcc27c3700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8085166004830152680100000000000000008304811660248301529091166044820152606401610592565b6040805160608101825284815267ffffffffffffffff841660208201526001600160c01b0387168183015290517fe73ac9f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015260729063e73ac9f290602401600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b506118229250505067ffffffffffffffff19604088901b1667ffffffffffffffff841617600190611d61565b82600360088282829054906101000a900467ffffffffffffffff166118479190611f69565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506002805490508267ffffffffffffffff160361191257600280546001810182556000829052825191027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810191909155602082015160408301516001600160c01b0316680100000000000000000267ffffffffffffffff909116177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf9091015561197b565b8060028367ffffffffffffffff168154811061193057611930611fbf565b60009182526020918290208351600290920201908155908201516040909201516001600160c01b0316680100000000000000000267ffffffffffffffff909216919091176001909101555b6040805173ffffffffffffffffffffffffffffffffffffffff871681526001600160c01b038816602082015267ffffffffffffffff851681830152905185917fb9271ce6a232cb5e0010e10fc10b38fe5d25dd27f8c03beef068a581cfc21bec919081900360600190a2505050505050565b6060611aad565b6001820360011c611a0b818360069190911b015190565b85108302611a195750611a3a565b600681811b830180516020918201519286901b8501908152015291506119f4565b600682901b81018481526020018390525b50505050565b600060015b83811015611aa0576001810184118101600690811b84015182821b8501511190910180821b840180516020918201519385901b860190815201919091529050600181811b01611a56565b50611131858583856119f4565b5060408051600084815260208082208654815487821882891002821860051b86018085019182529096019390935292939084019190808314155b8015611b74578151845283602001935081840315611b7457602082015160019060011b01838110611b4357600182039150611b3d611b2b838560069190911b015190565b600684901b8501602001518486611a51565b50611ae7565b611b5281870154828486611a51565b600101838114611b3d57611b6b818701548284866119f4565b50600101611ae7565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08382030160051c83526040525092915050565b600080611bb661160b565b611bc09084611f8a565b90506001600160c01b03811115610832576040517ff6e86d2800000000000000000000000000000000000000000000000000000000815260048101829052602401610592565b60008085548660005260206000206000801986611c5a578715611ccf57878414611c3c5750506001828101895593508181611cdd565b8254898110611c4b5750611cdd565b60039650945060019050611cdd565b60028711611c95578315611ccf5760028703611c8957600184039350838a558383015498508894508315611cdd575b50815493506001611cdd565b60038703611cac5750506001820188558181611cdd565b8894508315611cdd578254898110611cc45750611cdd565b945060019050611cdd565b63a6ca772e6000526004601cfd5b5b83811015611d175780830154600182018085015480831087831011611d035750829050815b938501939093555050600181811b01611cde565b8115611d45576001820360011c935083830154808a10611d375750611d45565b808385015550839150611d17565b6001810115611d545788828401555b5050505094509492505050565b611a4b828260006003611c06565b5080546000825560020290600052602060002090810190610e5a91905b80821115611da65760008082556001820155600201611d8c565b5090565b602080825282518282018190526000919060409081850190868401855b82811015611e09578151805185528681015167ffffffffffffffff16878601528501516001600160c01b03168585015260609093019290850190600101611dc7565b5091979650505050505050565b803567ffffffffffffffff81168114611e2e57600080fd5b919050565b60008060408385031215611e4657600080fd5b611e4f83611e16565b9150611e5d60208401611e16565b90509250929050565b600060208284031215611e7857600080fd5b61142d82611e16565b73ffffffffffffffffffffffffffffffffffffffff81168114610e5a57600080fd5b600060208284031215611eb557600080fd5b813561142d81611e81565b600060208284031215611ed257600080fd5b5035919050565b600060208284031215611eeb57600080fd5b8151801515811461142d57600080fd5b600060208284031215611f0d57600080fd5b815161142d81611e81565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115611f4f57611f4f611f18565b5092915050565b8181038181111561083257610832611f18565b67ffffffffffffffff818116838216019080821115611f4f57611f4f611f18565b8082018082111561083257610832611f18565b600082611fba57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006000198203611fe857611fe8611f18565b5060010190565b6001600160c01b03828116828216039080821115611f4f57611f4f611f18565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561203757600080fd5b815163ffffffff8116811461142d57600080fd5b808202811582820484141761083257610832611f1856fea26469706673582212202c34cccc0fc9fba152bd9727b106618fb1739a8716ed8119e95f76f506d1842364736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b5060805161209861003060003960006105f301526120986000f3fe60806040526004361061015f5760003560e01c8063b187bd26116100c0578063c77ed13e11610074578063d29b303e11610059578063d29b303e146103ea578063e49401571461040a578063e9c1bc0f1461041d57600080fd5b8063c77ed13e146103aa578063cadb43e2146103ca57600080fd5b8063bae6c2ad116100a5578063bae6c2ad1461034a578063c1c013c414610377578063c565a2081461038a57600080fd5b8063b187bd26146102cc578063b30906d4146102fd57600080fd5b806354fac919116101175780635c975abb116100fc5780635c975abb14610281578063674a64e014610296578063a8d6fe04146102b757600080fd5b806354fac9191461021e5780635c32e9431461026c57600080fd5b80632dd4f566116101485780632dd4f566146101b157806332052a9b146101d15780633f4ba83a1461020957600080fd5b806317be85c31461016457806320f2f3451461018f575b600080fd5b34801561017057600080fd5b5061017961043d565b6040516101869190611daa565b60405180910390f35b34801561019b57600080fd5b506101af6101aa366004611e33565b6104d0565b005b3480156101bd57600080fd5b506101af6101cc366004611e66565b61073a565b3480156101dd57600080fd5b506101f16101ec366004611ea3565b610810565b6040516001600160c01b039091168152602001610186565b34801561021557600080fd5b506101af610838565b34801561022a57600080fd5b5060035461025390700100000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610186565b34801561027857600080fd5b506101af61090a565b34801561028d57600080fd5b506101af6109a2565b3480156102a257600080fd5b506003546102539067ffffffffffffffff1681565b3480156102c357600080fd5b506101af610a7a565b3480156102d857600080fd5b506003546102ed90600160c01b900460ff1681565b6040519015158152602001610186565b34801561030957600080fd5b5061031d610318366004611ec0565b610b5f565b6040805193845267ffffffffffffffff90921660208401526001600160c01b031690820152606001610186565b34801561035657600080fd5b506003546102539068010000000000000000900467ffffffffffffffff1681565b610253610385366004611e66565b610bae565b34801561039657600080fd5b506101f16103a5366004611ec0565b610c81565b3480156103b657600080fd5b506101af6103c5366004611e66565b610c8f565b3480156103d657600080fd5b506101af6103e5366004611ec0565b610d8b565b3480156103f657600080fd5b506101f1610405366004611e66565b610e5d565b6101af610418366004611ea3565b611068565b34801561042957600080fd5b50610179610438366004611ec0565b611138565b60606002805480602002602001604051908101604052809291908181526020016000905b828210156104c757600084815260209081902060408051606081018252600286029092018054835260019081015467ffffffffffffffff8116848601526801000000000000000090046001600160c01b0316918301919091529083529092019101610461565b50505050905090565b600054610100900460ff16158080156104f05750600054600160ff909116105b8061050a5750303b15801561050a575060005460ff166001145b61059b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105dc576000805461ff0019166101001790555b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610592565b6003805467ffffffffffffffff848116700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffff0000000000000000909216908616171790558015610735576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611ed9565b6107b957604051639531eff160e01b8152336004820152602401610592565b6003805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527fca22875e098f3b9c06ff3950c0cded621c968253a16623e890165451094c1839906020015b60405180910390a150565b60006108328273ffffffffffffffffffffffffffffffffffffffff163f610c81565b92915050565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108989190611ed9565b6108b757604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a9190611ed9565b61098957604051639531eff160e01b8152336004820152602401610592565b610994600019610d8b565b6109a060026000611d6f565b565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa1580156109de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190611ed9565b610a2157604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600080606b73ffffffffffffffffffffffffffffffffffffffff16632d9125e96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611efb565b73ffffffffffffffffffffffffffffffffffffffff164760405160006040518083038185875af1925050503d8060008114610b44576040519150601f19603f3d011682016040523d82523d6000602084013e610b49565b606091505b509150915081610b5b57805160208201fd5b5050565b60028181548110610b6f57600080fd5b60009182526020909120600290910201805460019091015490915067ffffffffffffffff8116906801000000000000000090046001600160c01b031683565b600354600090600160c01b900460ff1615610bf5576040517f8f55c96c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6250000067ffffffffffffffff83161115610c51576040517fe6b801f300000000000000000000000000000000000000000000000000000000815267ffffffffffffffff83166004820152625000006024820152604401610592565b610c5a826112a9565b50506003546108329067ffffffffffffffff68010000000000000000820481169116611f2e565b60006108326104058361138c565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611ed9565b610d0e57604051639531eff160e01b8152336004820152602401610592565b600380547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000067ffffffffffffffff8416908102919091179091556040519081527fd5ad38a519f54c97117f5a79fa7e82b03f32d2719f3ce4a27d4b561217cfea0c90602001610805565b6040516304ddefed60e31b8152336004820152606b906326ef7f6890602401602060405180830381865afa158015610dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610deb9190611ed9565b610e0a57604051639531eff160e01b8152336004820152602401610592565b60015415801590610e1b5750600081115b15610e5a57600080610e38610e306001611434565b604081901c91565b91509150610e468282611444565b610e51600184611f56565b92505050610e0a565b50565b60035460009067ffffffffffffffff9081169083161115610ec9576003546040517fbcc27c3700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8085166004830152600060248301529091166044820152606401610592565b61100067ffffffffffffffff83161015610ee557611000610ee7565b815b600354909250600090610f1190849068010000000000000000900467ffffffffffffffff16611f69565b60035467ffffffffffffffff9182169250168111610f325750600092915050565b600354600090610f4c9067ffffffffffffffff1683611f56565b905060006110006001610f5f8285611f8a565b610f699190611f56565b610f739190611f9d565b90506000610f8082611138565b905060005b815181101561102857818181518110610fa057610fa0611fbf565b60200260200101516020015167ffffffffffffffff168411610fe157818181518110610fce57610fce611fbf565b6020026020010151604001519550611028565b818181518110610ff357610ff3611fbf565b60200260200101516020015167ffffffffffffffff16846110149190611f56565b93508061102081611fd5565b915050610f85565b50600061103361160b565b905080866001600160c01b03161015611053575060009695505050505050565b61105d8187611fef565b979650505050505050565b600354600160c01b900460ff16156110ac576040517f8f55c96c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81163f6110cd8161163e565b15611107576040517fc7e2d8e500000000000000000000000000000000000000000000000000000000815260048101829052602401610592565b60006111128261138c565b9050600080611120836112a9565b9150915061113182868686856116bb565b5050505050565b60608161114460015490565b10156111505760015491505b600061115d6001846119ed565b9050805167ffffffffffffffff8111156111795761117961200f565b6040519080825280602002602001820160405280156111c457816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816111975790505b50915060005b81518110156112a25760006111fa8383815181106111ea576111ea611fbf565b6020026020010151604081901c91565b91505060028167ffffffffffffffff168154811061121a5761121a611fbf565b600091825260209182902060408051606081018252600293909302909101805483526001015467ffffffffffffffff811693830193909352680100000000000000009092046001600160c01b031691810191909152845185908490811061128357611283611fbf565b602002602001018190525050808061129a90611fd5565b9150506111ca565b5050919050565b6000806112b534611bab565b600254600354919350915060009067ffffffffffffffff165b60035467ffffffffffffffff808316916112f691889168010000000000000000900416611f69565b67ffffffffffffffff16111561132657611313610e306001611434565b935091506113218284611444565b6112ce565b816001600160c01b0316846001600160c01b03161015611385576040517fdf370e480000000000000000000000000000000000000000000000000000000081526001600160c01b03808616600483015283166024820152604401610592565b5050915091565b6040517f4089267f000000000000000000000000000000000000000000000000000000008152600481018290526000908190607190634089267f90602401602060405180830381865afa1580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612025565b905061100063ffffffff821610156114255761100061142d565b8063ffffffff165b9392505050565b600061142d826000806002611c06565b600060028267ffffffffffffffff168154811061146357611463611fbf565b600091825260209182902060408051606081018252600293909302909101805480845260019091015467ffffffffffffffff811694840194909452680100000000000000009093046001600160c01b031682820152517fce9720130000000000000000000000000000000000000000000000000000000081526004810192909252915060729063ce97201390602401600060405180830381600087803b15801561150c57600080fd5b505af1158015611520573d6000803e3d6000fd5b505050508060200151600360088282829054906101000a900467ffffffffffffffff1661154d9190611f2e565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555080600001517f65905594d332f592fa6d4b86efc250c300a286b9d4f07f2ae89c3147dc4f39e78483602001516040516115cb9291906001600160c01b0392909216825267ffffffffffffffff16602082015260400190565b60405180910390a260028267ffffffffffffffff16815481106115f0576115f0611fbf565b60009182526020822060029091020181815560010155505050565b60035460009061163990700100000000000000000000000000000000900467ffffffffffffffff164261204b565b905090565b6040517fa72f179b0000000000000000000000000000000000000000000000000000000081526004810182905260009060729063a72f179b90602401602060405180830381865afa158015611697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108329190611ed9565b60035467ffffffffffffffff808216916116e391859168010000000000000000900416611f69565b67ffffffffffffffff161115611750576003546040517fbcc27c3700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8085166004830152680100000000000000008304811660248301529091166044820152606401610592565b6040805160608101825284815267ffffffffffffffff841660208201526001600160c01b0387168183015290517fe73ac9f200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015260729063e73ac9f290602401600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b506118229250505067ffffffffffffffff19604088901b1667ffffffffffffffff841617600190611d61565b82600360088282829054906101000a900467ffffffffffffffff166118479190611f69565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506002805490508267ffffffffffffffff160361191257600280546001810182556000829052825191027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810191909155602082015160408301516001600160c01b0316680100000000000000000267ffffffffffffffff909116177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf9091015561197b565b8060028367ffffffffffffffff168154811061193057611930611fbf565b60009182526020918290208351600290920201908155908201516040909201516001600160c01b0316680100000000000000000267ffffffffffffffff909216919091176001909101555b6040805173ffffffffffffffffffffffffffffffffffffffff871681526001600160c01b038816602082015267ffffffffffffffff851681830152905185917fb9271ce6a232cb5e0010e10fc10b38fe5d25dd27f8c03beef068a581cfc21bec919081900360600190a2505050505050565b6060611aad565b6001820360011c611a0b818360069190911b015190565b85108302611a195750611a3a565b600681811b830180516020918201519286901b8501908152015291506119f4565b600682901b81018481526020018390525b50505050565b600060015b83811015611aa0576001810184118101600690811b84015182821b8501511190910180821b840180516020918201519385901b860190815201919091529050600181811b01611a56565b50611131858583856119f4565b5060408051600084815260208082208654815487821882891002821860051b86018085019182529096019390935292939084019190808314155b8015611b74578151845283602001935081840315611b7457602082015160019060011b01838110611b4357600182039150611b3d611b2b838560069190911b015190565b600684901b8501602001518486611a51565b50611ae7565b611b5281870154828486611a51565b600101838114611b3d57611b6b818701548284866119f4565b50600101611ae7565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08382030160051c83526040525092915050565b600080611bb661160b565b611bc09084611f8a565b90506001600160c01b03811115610832576040517ff6e86d2800000000000000000000000000000000000000000000000000000000815260048101829052602401610592565b60008085548660005260206000206000801986611c5a578715611ccf57878414611c3c5750506001828101895593508181611cdd565b8254898110611c4b5750611cdd565b60039650945060019050611cdd565b60028711611c95578315611ccf5760028703611c8957600184039350838a558383015498508894508315611cdd575b50815493506001611cdd565b60038703611cac5750506001820188558181611cdd565b8894508315611cdd578254898110611cc45750611cdd565b945060019050611cdd565b63a6ca772e6000526004601cfd5b5b83811015611d175780830154600182018085015480831087831011611d035750829050815b938501939093555050600181811b01611cde565b8115611d45576001820360011c935083830154808a10611d375750611d45565b808385015550839150611d17565b6001810115611d545788828401555b5050505094509492505050565b611a4b828260006003611c06565b5080546000825560020290600052602060002090810190610e5a91905b80821115611da65760008082556001820155600201611d8c565b5090565b602080825282518282018190526000919060409081850190868401855b82811015611e09578151805185528681015167ffffffffffffffff16878601528501516001600160c01b03168585015260609093019290850190600101611dc7565b5091979650505050505050565b803567ffffffffffffffff81168114611e2e57600080fd5b919050565b60008060408385031215611e4657600080fd5b611e4f83611e16565b9150611e5d60208401611e16565b90509250929050565b600060208284031215611e7857600080fd5b61142d82611e16565b73ffffffffffffffffffffffffffffffffffffffff81168114610e5a57600080fd5b600060208284031215611eb557600080fd5b813561142d81611e81565b600060208284031215611ed257600080fd5b5035919050565b600060208284031215611eeb57600080fd5b8151801515811461142d57600080fd5b600060208284031215611f0d57600080fd5b815161142d81611e81565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115611f4f57611f4f611f18565b5092915050565b8181038181111561083257610832611f18565b67ffffffffffffffff818116838216019080821115611f4f57611f4f611f18565b8082018082111561083257610832611f18565b600082611fba57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006000198203611fe857611fe8611f18565b5060010190565b6001600160c01b03828116828216039080821115611f4f57611f4f611f18565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561203757600080fd5b815163ffffffff8116811461142d57600080fd5b808202811582820484141761083257610832611f1856fea2646970667358221220079d8e4533b4befaac452da853a3110b7bc6704af3d87d6e1bcdcb54cfbcd29864736f6c63430008110033", } // CacheManagerABI is the input ABI used to generate the binding from. diff --git a/solgen/go/challengeV2gen/challengeV2gen.go b/solgen/go/challengeV2gen/challengeV2gen.go index 66057e6bc..95adc5204 100644 --- a/solgen/go/challengeV2gen/challengeV2gen.go +++ b/solgen/go/challengeV2gen/challengeV2gen.go @@ -96,7 +96,7 @@ type OneStepData struct { // EdgeChallengeManagerMetaData contains all meta data concerning the EdgeChallengeManager contract. var EdgeChallengeManagerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"AccountHasMadeLayerZeroRival\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssertionHashEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"h2\",\"type\":\"bytes32\"}],\"name\":\"AssertionHashMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssertionNoSibling\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AssertionNotPending\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"levels\",\"type\":\"uint8\"}],\"name\":\"BigStepLevelsTooMany\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"CachedTimeSufficient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lowerChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"upperChildId\",\"type\":\"bytes32\"}],\"name\":\"ChildrenAlreadySet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"argLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"claimLevel\",\"type\":\"uint8\"}],\"name\":\"ClaimEdgeInvalidLevel\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"ClaimEdgeNotLengthOneRival\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimEdgeNotPending\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"EdgeAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"EdgeAlreadyRefunded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimingEdgeId\",\"type\":\"bytes32\"}],\"name\":\"EdgeClaimMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"edgeId2\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"level1\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"level2\",\"type\":\"uint8\"}],\"name\":\"EdgeLevelInvalid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"enumEdgeStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"EdgeNotConfirmed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"EdgeNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"EdgeNotLayerZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EdgeNotLengthOne\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"enumEdgeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"EdgeNotPending\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"}],\"name\":\"EdgeTypeNotSmallStep\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"EdgeUnrivaled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyArray\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAssertionChain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyChallengePeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyClaimId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyEdgeSpecificProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyEndMachineStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyEndRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyFirstRival\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyOneStepProofEntry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyOriginId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyPrefixProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyStakeReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyStaker\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyStartMachineStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyStartRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"assertionEndRoot\",\"type\":\"bytes32\"}],\"name\":\"EndHistoryRootMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"h2\",\"type\":\"uint256\"}],\"name\":\"HeightDiffLtTwo\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thresholdBlocks\",\"type\":\"uint256\"}],\"name\":\"InsufficientConfirmationBlocks\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumEdgeType\",\"name\":\"edgeType\",\"type\":\"uint8\"}],\"name\":\"InvalidEdgeType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedHeight\",\"type\":\"uint256\"}],\"name\":\"InvalidEndHeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"InvalidHeights\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevels\",\"type\":\"uint8\"}],\"name\":\"LevelTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxProofLength\",\"type\":\"uint256\"}],\"name\":\"MerkleProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"NotPowerOfTwo\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"}],\"name\":\"OriginIdMutualIdMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"confirmedRivalId\",\"type\":\"bytes32\"}],\"name\":\"RivalEdgeConfirmed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeLevels\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numLevels\",\"type\":\"uint256\"}],\"name\":\"StakeAmountsMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroBigStepLevels\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"hasRival\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isLayerZero\",\"type\":\"bool\"}],\"name\":\"EdgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"lowerChildId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"upperChildId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"lowerChildAlreadyExists\",\"type\":\"bool\"}],\"name\":\"EdgeBisected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"EdgeConfirmedByOneStepProof\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalTimeUnrivaled\",\"type\":\"uint256\"}],\"name\":\"EdgeConfirmedByTime\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"EdgeRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"TimerCacheUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LAYERZERO_BIGSTEPEDGE_HEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LAYERZERO_BLOCKEDGE_HEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LAYERZERO_SMALLSTEPEDGE_HEIGHT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NUM_BIGSTEP_LEVEL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionChain\",\"outputs\":[{\"internalType\":\"contractIAssertionChain\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bisectionHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"}],\"name\":\"bisectEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"name\":\"calculateEdgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"}],\"name\":\"calculateMutualId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structOneStepData\",\"name\":\"oneStepData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"prevConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"beforeHistoryInclusionProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"afterHistoryInclusionProof\",\"type\":\"bytes32[]\"}],\"name\":\"confirmEdgeByOneStepProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"assertionState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionStateData\",\"name\":\"claimStateData\",\"type\":\"tuple\"}],\"name\":\"confirmEdgeByTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"confirmedRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structCreateEdgeArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createLayerZeroEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excessStakeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"firstRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getEdge\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"lowerChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"upperChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"confirmedAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"enumEdgeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"refunded\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalTimeUnrivaledCache\",\"type\":\"uint64\"}],\"internalType\":\"structChallengeEdge\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumEdgeType\",\"name\":\"eType\",\"type\":\"uint8\"}],\"name\":\"getLayerZeroEndHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getPrevAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasLengthOneRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"hasMadeLayerZeroRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIAssertionChain\",\"name\":\"_assertionChain\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_challengePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"_oneStepProofEntry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20\",\"name\":\"_stakeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_excessStakeReceiver\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"_stakeAmounts\",\"type\":\"uint256[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"edgeIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"multiUpdateTimeCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oneStepProofEntry\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"refundStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakeAmounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"timeUnrivaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimingEdgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615bf780620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063655b42f31161010f578063c32d8c63116100a2578063eae0328b11610071578063eae0328b146104b1578063edaab54a146104c4578063f8ee77d6146104d7578063fda2892e146104e057600080fd5b8063c32d8c6314610443578063c8bc4e4314610456578063e5b123da1461047e578063e94e051e1461049e57600080fd5b80638c1b3a40116100de5780638c1b3a40146103ea578063908517e9146103fd578063b2a1408e14610410578063bce6f54f1461042357600080fd5b8063655b42f314610378578063748926f3146103b1578063750e0c0f146103c45780638826a370146103d757600080fd5b8063432bb78a1161018757806351ed6a301161015657806351ed6a301461031057806354b64151146103235780635a48e0f4146103465780635d9e24441461035957600080fd5b8063432bb78a1461028d57806346c2781a146102a057806348923bc5146102cb57806348dd2924146102f657600080fd5b80631dce5166116101c35780631dce5166146102555780633e35f5e81461025e578063416e66571461027157806342e1aaa81461027a57600080fd5b80624d8efe146101f457806305fae1411461021a5780631a72d54c1461022d5780631c1b4f3a14610242575b600080fd5b610207610202366004614c06565b610500565b6040519081526020015b60405180910390f35b610207610228366004614c50565b61051b565b61024061023b366004614d02565b610aa3565b005b610207610250366004614dd5565b610e20565b610207600a5481565b61020761026c366004614dd5565b610e41565b610207600b5481565b610207610288366004614e06565b610e54565b61024061029b366004614e23565b610ed8565b6008546102b3906001600160401b031681565b6040516001600160401b039091168152602001610211565b6009546102de906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b6008546102de90600160401b90046001600160a01b031681565b6006546102de906001600160a01b031681565b610336610331366004614dd5565b610f73565b6040519015158152602001610211565b610207610354366004614dd5565b610f80565b600d546103669060ff1681565b60405160ff9091168152602001610211565b610336610386366004614e6e565b6001600160a01b03919091166000908152600460209081526040808320938352929052205460ff1690565b6102406103bf366004614dd5565b610f8d565b6103366103d2366004614dd5565b611080565b6102406103e5366004614e9a565b611097565b6102406103f8366004614ec6565b6110ff565b61033661040b366004614dd5565b6112ae565b61024061041e366004614f8e565b6112bb565b610207610431366004614dd5565b60009081526002602052604090205490565b610207610451366004614fc8565b6115c4565b61046961046436600461500a565b6115dd565b60408051928352602083019190915201610211565b61020761048c366004614dd5565b60009081526003602052604090205490565b6005546102de906001600160a01b031681565b6102076104bf366004614dd5565b611799565b6102406104d2366004615089565b6117ae565b610207600c5481565b6104f36104ee366004614dd5565b611807565b60405161021191906150d5565b6000610510878787878787611926565b979650505050505050565b60008060088054906101000a90046001600160a01b03166001600160a01b03166312ab3d3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059391906151bd565b159050808015610612575060085460405163facd743b60e01b8152336004820152600160401b9091046001600160a01b03169063facd743b90602401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061091906151bd565b155b1561063757604051633b4f6e2b60e21b81523360048201526024015b60405180910390fd5b61063f614a15565b600061065c61065160208701876151df565b600d5460ff1661196b565b9050600061066982610e54565b9050610673614a59565b6000836002811115610687576106876150ab565b036109525761069960a08801886151fa565b90506000036106bb57604051630c9ccac560e41b815260040160405180910390fd5b6000806106cb60a08a018a6151fa565b8101906106d8919061548e565b925092505060088054906101000a90046001600160a01b03166001600160a01b031663e51019a68a606001358360000151846020015185604001516040518563ffffffff1660e01b81526004016107329493929190615562565b60006040518083038186803b15801561074a57600080fd5b505afa15801561075e573d6000803e3d6000fd5b505060085460208481015186519187015160408089015190516372880cd360e11b8152600160401b9095046001600160a01b0316965063e51019a695506107aa94929392600401615562565b60006040518083038186803b1580156107c257600080fd5b505afa1580156107d6573d6000803e3d6000fd5b5050505080600001516040015189602001351461081b5780516040908101519051631d31f4cd60e11b815260208b01356004820152602481019190915260440161062e565b6040805160c08101825260608b013580825260208481015190830152600854835163e531d8c760e01b815260048101929092529192830191600160401b90046001600160a01b03169063e531d8c790602401602060405180830381865afa15801561088a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ae91906151bd565b15158152600854602084810151604051632b5de4f360e11b81526004810191909152920191600091600160401b90046001600160a01b0316906356bbc9e690602401602060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093191906155af565b6001600160401b031611815292516020840152905160409092019190915290505b600954600d5461097a916001918a9185916001600160a01b0390911690879060ff168b6119da565b6006549094506001600160a01b03166000600761099a60208b018b6151df565b60ff16815481106109ad576109ad6155cc565b60009182526020909120015490506001600160a01b038216158015906109d257508015155b15610a0e5760008660c001516109e857306109f5565b6005546001600160a01b03165b9050610a0c6001600160a01b038416338385611ab0565b505b8560400151866020015187600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a489606001518a608001518b60a001518c60c001518d60e00151604051610a8d959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a4505092519695505050505050565b600054610100900460ff1615808015610ac35750600054600160ff909116105b80610add5750303b158015610add575060005460ff166001145b610b405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161062e565b6000805460ff191660011790558015610b63576000805461ff0019166101001790555b6001600160a01b038c16610b8a5760405163641f043160e11b815260040160405180910390fd5b600880546001600160a01b03808f16600160401b0268010000000000000000600160e01b0319909216919091179091558a16610bd95760405163fb60b0ef60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b038c161790556001600160401b038b16600003610c1e57604051632283bb7360e21b815260040160405180910390fd5b6008805467ffffffffffffffff19166001600160401b038d16179055600680546001600160a01b0319166001600160a01b03888116919091179091558516610c79576040516301e1d91560e31b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b038716179055610c9d89611b1b565b610cbd57604051633abfb6ff60e21b8152600481018a905260240161062e565b600a899055610ccb88611b1b565b610ceb57604051633abfb6ff60e21b81526004810189905260240161062e565b600b889055610cf987611b1b565b610d1957604051633abfb6ff60e21b81526004810188905260240161062e565b600c87905560ff8416600003610d4257604051632a18f5b960e21b815260040160405180910390fd5b60fd8460ff161115610d6c5760405163040d23bf60e41b815260ff8516600482015260240161062e565b600d805460ff191660ff861617905581610d878560026155f8565b60ff1614610dbf5781610d9b8560026155f8565b604051622bb3a760e61b8152600481019290925260ff16602482015260440161062e565b610dcb60078484614a9b565b508015610e12576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b60078181548110610e3057600080fd5b600091825260209091200154905081565b6000610e4e600183611b45565b92915050565b600080826002811115610e6957610e696150ab565b03610e76575050600a5490565b6001826002811115610e8a57610e8a6150ab565b03610e97575050600b5490565b6002826002811115610eab57610eab6150ab565b03610eb8575050600c5490565b81604051630efcb87b60e21b815260040161062e9190615611565b919050565b6000829003610efa5760405163521299a960e01b815260040160405180910390fd5b610f2b8383610f0a600182615624565b818110610f1957610f196155cc565b60019260209091020135905083611ccf565b5060005b82811015610f6d57610f5b848483818110610f4c57610f4c6155cc565b905060200201356000196117ae565b80610f6581615637565b915050610f2f565b50505050565b6000610e4e600183611d25565b6000610e4e600183611d59565b6000610f9a600183611daa565b9050610fa581611df3565b6006546009820154600780546001600160a01b0390931692600092600160481b900460ff16908110610fd957610fd96155cc565b60009182526020909120015490506001600160a01b03821615801590610ffe57508015155b1561101f57600883015461101f906001600160a01b03848116911683611eb6565b600084815260016020526040902061103690611eeb565b604080516001600160a01b03851681526020810184905286917fa635398959ddb5ce3b14537edfc25b2e671274c9b8cad0f4bd634752e69007b6910160405180910390a350505050565b6000818152600160205260408120610e4e90611f1b565b600d5460009081906110b3906001908790879060ff1687611f34565b9150915081156110f857847fbe17755d8d836ad67bfaf8e5b3869aedb4cba03f295a167c5547feddd9ef50ad826040516110ef91815260200190565b60405180910390a25b5050505050565b600061110c600189611d59565b6008546040516304972af960e01b8152919250600160401b90046001600160a01b0316906304972af9906111469084908a90600401615650565b60006040518083038186803b15801561115e57600080fd5b505afa158015611172573d6000803e3d6000fd5b505050506000604051806060016040528088608001602081019061119691906156c9565b6001600160401b0316815260200160088054906101000a90046001600160a01b03166001600160a01b031663e78cea926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121991906156e6565b6001600160a01b0390811682528935602090920191909152600954600d54600b54600c54949550611261946001948f9416928e9288928e928e928e928e9260ff169190611f9b565b600089815260016020526040902061127890611eeb565b6040518a907fe11db4b27bc8c6ea5943ecbb205ae1ca8d56c42c719717aaf8a53d43d0cee7c290600090a3505050505050505050565b6000610e4e600183612301565b60006112c8600184611daa565b90506112d3816123bc565b61131c576112e0816123e0565b60088201546007830154604051631cb1906160e31b815260048101939093526001600160a01b039091166024830152604482015260640161062e565b600080806009840154600d5461133f9160ff600160481b9091048116911661196b565b6002811115611350576113506150ab565b1490508080156113d4575060085460078401546040516306106c4560e31b81526004810191909152600160401b9091046001600160a01b031690633083622890602401602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d491906151bd565b156115495760085460078401546040516372880cd360e11b8152600160401b9092046001600160a01b03169163e51019a69161142091889060c08201359060e083013590600401615703565b60006040518083038186803b15801561143857600080fd5b505afa15801561144c573d6000803e3d6000fd5b5050600854604051631171558560e01b815260c08801356004820152600160401b9091046001600160a01b0316925063117155859150602401602060405180830381865afa1580156114a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c691906155af565b600854604051632b5de4f360e11b815260c08701356004820152600160401b9091046001600160a01b0316906356bbc9e690602401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c91906155af565b6115469190615790565b91505b60085460009061156890600190889086906001600160401b0316612415565b600087815260016020526040902090915061158290611eeb565b867f2e0808830a22204cb3fb8f8d784b28bc97e9ce2e39d2f9cde2860de0957d68eb836040516115b491815260200190565b60405180910390a3505050505050565b60006115d386868686866124d4565b9695505050505050565b600080600080600061162c898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600195949392505061252e9050565b8151929550909350915015806116c4578260400151836020015184600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a4866060015187608001518860a001518960c001518a60e001516040516116bb959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a45b8160400151826020015183600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a4856060015186608001518760a001518860c001518960e00151604051611743959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a48151604051821515815285908c907f7340510d24b7ec9b5c100f5500d93429d80d00d46f0d18e4e85d0c4cc22b99249060200160405180910390a45051919350909150505b94509492505050565b6000610e4e6117a9600184611daa565b61282f565b6000806117bd60018585612874565b915091508115610f6d57837fbe17755d8d836ad67bfaf8e5b3869aedb4cba03f295a167c5547feddd9ef50ad826040516117f991815260200190565b60405180910390a250505050565b61180f614ae6565b61181a600183611daa565b604080516101e0810182528254815260018084015460208301526002840154928201929092526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e082015260088301546001600160a01b038116610100830152600160a01b90046001600160401b039081166101208301526009840154908116610140830152909291610160840191600160401b900460ff16908111156118d0576118d06150ab565b60018111156118e1576118e16150ab565b81526009919091015460ff600160481b820481166020840152600160501b820416151560408301526001600160401b03600160581b9091041660609091015292915050565b600061193587878787876124d4565b60408051602081019290925281018390526060016040516020818303038152906040528051906020012090509695505050505050565b60008260ff1660000361198057506000610e4e565b8160ff168360ff161161199557506001610e4e565b6119a08260016155f8565b60ff168360ff16036119b457506002610e4e565b6040516315c1b4af60e31b815260ff80851660048301528316602482015260440161062e565b6119e2614a15565b6000806119f28a8a8a8a89612898565b915091506000611a03838b89612d19565b90506000611a1283838d612e2c565b90508515611a96576000611a2582612e5f565b33600090815260038f016020908152604080832084845290915290205490915060ff1615611a6f57604051632d23561d60e11b81523360048201526024810182905260440161062e565b33600090815260038e016020908152604080832093835292905220805460ff191660011790555b611aa08c82612e83565b9c9b505050505050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610f6d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261317a565b600081600003611b2d57506000919050565b6000611b3a600184615624565b929092161592915050565b6000818152602083905260408120611b5c90611f1b565b611b7b5760405162a7b02b60e01b81526004810183905260240161062e565b6000828152602084905260408120611b9290611eeb565b6000818152600186016020526040812054919250819003611bc6576040516336843d9f60e21b815260040160405180910390fd5b6040516815539492559053115160ba1b6020820152602901604051602081830303815290604052805190602001208103611c2f57600084815260208690526040902060080154611c2690600160a01b90046001600160401b031643615624565b92505050610e4e565b6000818152602086905260409020611c4690611f1b565b611c655760405162a7b02b60e01b81526004810182905260240161062e565b60008181526020869052604080822060089081015487845291909220909101546001600160401b03600160a01b928390048116929091041680821115611cba57611caf8183615624565b945050505050610e4e565b6000945050505050610e4e565b505092915050565b600082815260208490526040812060090154600160581b90046001600160401b0316828110611d1b5760405163d1f5928160e01b8152600481018290526024810184905260440161062e565b90505b9392505050565b6000611d318383612301565b8015611d1e57506000828152602084905260409020611d4f9061282f565b6001149392505050565b600080611d668484611daa565b90505b6009810154600160481b900460ff1615611da25780546000908152600185016020526040902054611d9a8582611daa565b915050611d69565b549392505050565b6000818152602083905260408120611dc190611f1b565b611de05760405162a7b02b60e01b81526004810183905260240161062e565b5060009081526020919091526040902090565b60016009820154600160401b900460ff166001811115611e1557611e156150ab565b14611e4d57611e23816123e0565b6009820154604051633bc499ed60e21b815261062e9291600160401b900460ff16906004016157b0565b611e56816123bc565b611e63576112e0816123e0565b6009810154600160501b900460ff161515600103611ea057611e84816123e0565b60405163307f766960e01b815260040161062e91815260200190565b600901805460ff60501b1916600160501b179055565b6040516001600160a01b038316602482015260448101829052611ee690849063a9059cbb60e01b90606401611ae4565b505050565b6000610e4e8260090160099054906101000a900460ff1683600001548460020154856001015486600401546124d4565b60080154600160a01b90046001600160401b0316151590565b6000806000611f438888611b45565b9050611f518888888861324c565b600086815260208990526040902060090154611f7d90600160581b90046001600160401b0316826157c4565b9050611f8b888883876133c3565b92509250505b9550959350505050565b60008b815260208d905260409020611fb290611f1b565b611fd15760405162a7b02b60e01b8152600481018c905260240161062e565b600260008c815260208e90526040902060090154611ff990600160481b900460ff168561196b565b600281111561200a5761200a6150ab565b146120475760008b815260208d905260409081902060090154905163348aefdf60e01b8152600160481b90910460ff16600482015260240161062e565b60008b815260208d90526040902061205e9061282f565b6001146120985760008b815260208d90526040902061207c9061282f565b6040516306b595e560e41b815260040161062e91815260200190565b60008b815260208d905260409020600201548b825b60018f600001600084815260200190815260200160002060090160099054906101000a900460ff1660ff1611156121555760008f60000160008481526020019081526020016000206000015490508f60010160008281526020019081526020016000205492508f6000016000848152602001908152602001600020600201548261213791906157d7565b61214190856157c4565b935061214d86836157d7565b9150506120ad565b50506121b28d60000160008e8152602001908152602001600020600101548b60000135838b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061344992505050565b60008b6001600160a01b031663b5112fd28b848e600001358f80602001906121da91906151fa565b6040518663ffffffff1660e01b81526004016121fa9594939291906157ee565b602060405180830381865afa158015612217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223b919061584f565b90506122a08e60000160008f8152602001908152602001600020600301548284600161226791906157c4565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061344992505050565b60008d815260208f9052604090206122b7906134cf565b6122c18e8e613551565b5050506000998a5250505060209790975250506040909320600901805467ffffffffffffffff60581b191667ffffffffffffffff60581b17905550505050565b600081815260208390526040812061231890611f1b565b6123375760405162a7b02b60e01b81526004810183905260240161062e565b600082815260208490526040812061234e90611eeb565b6000818152600186016020526040812054919250819003612382576040516336843d9f60e21b815260040160405180910390fd5b6040516815539492559053115160ba1b602082015260290160408051601f1981840301815291905280516020909101201415949350505050565b600781015460009015801590610e4e575050600801546001600160a01b0316151590565b6000610e4e8260090160099054906101000a900460ff1683600001548460020154856001015486600401548760030154611926565b600083815260208590526040812061242c90611f1b565b61244b5760405162a7b02b60e01b81526004810185905260240161062e565b600061245786866135bb565b905061246c6001600160401b038516826157c4565b9050826001600160401b03168110156124aa5760405163011a8d4d60e41b8152600481018290526001600160401b038416602482015260440161062e565b60008581526020879052604090206124c1906134cf565b6124cb8686613551565b95945050505050565b6040516001600160f81b031960f887901b1660208201526021810185905260418101849052606181018390526081810182905260009060a10160405160208183030381529060405280519060200120905095945050505050565b6000612538614a15565b612540614a15565b60008087815260208990526040902060090154600160401b900460ff16600181111561256e5761256e6150ab565b146125ad57600086815260208890526040908190206009015490516323f8405d60e01b815261062e918891600160401b90910460ff16906004016157b0565b6125b78787612301565b6125d7576040516380e07e4560e01b81526004810187905260240161062e565b6000868152602088905260408120604080516101e0810182528254815260018084015460208301526002840154928201929092526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e082015260088301546001600160a01b038116610100830152600160a01b90046001600160401b039081166101208301526009840154908116610140830152909291610160840191600160401b900460ff169081111561269b5761269b6150ab565b60018111156126ac576126ac6150ab565b815260099190910154600160481b810460ff9081166020840152600160501b8204161515604080840191909152600160581b9091046001600160401b0316606090920191909152810151608082015191925060009161270b9190613640565b90506000808780602001905181019061272491906158c3565b9092509050612754896127388560016157c4565b6060870151608088015161274d9060016157c4565b86866136d4565b50506000612760614a15565b60006127818560000151866020015187604001518d888a61018001516139a5565b905061278c81613a3d565b600081815260208e9052604090209093506127a690611f1b565b6127b7576127b48c82612e83565b91505b506127c0614a15565b60006127e186600001518c8789606001518a608001518b61018001516139a5565b90506127ed8d82612e83565b91505061281d8382600001518e60000160008f8152602001908152602001600020613a669092919063ffffffff16565b919b909a509098509650505050505050565b600080826002015483600401546128469190615624565b905080600003610e4e57612859836123e0565b60405162a7b02b60e01b815260040161062e91815260200190565b60008061288c858561288688886135bb565b866133c3565b91509150935093915050565b604080516060808201835260008083526020830152918101919091526000806128cd6128c760208901896151df565b8561196b565b60028111156128de576128de6150ab565b03612b67576020850151855160000361290a576040516374b5e30d60e11b815260040160405180910390fd5b855160608801351461293f5785516040516316c5de8f60e21b815260048101919091526060880135602482015260440161062e565b8560400151612961576040516360b4921b60e11b815260040160405180910390fd5b856060015161298357604051635a2e8e1d60e11b815260040160405180910390fd5b61299060a08801886151fa565b90506000036129b257604051630c9ccac560e41b815260040160405180910390fd5b60006129c160a08901896151fa565b8101906129ce919061548e565b509091506000905087608001516020015160028111156129f0576129f06150ab565b03612a0e5760405163231b2f2960e11b815260040160405180910390fd5b60008760a00151602001516002811115612a2a57612a2a6150ab565b03612a4857604051638999857d60e01b815260040160405180910390fd5b6000866001600160a01b031663c39619c4612a668a60800151613acd565b6040518263ffffffff1660e01b8152600401612a829190615926565b602060405180830381865afa158015612a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac3919061584f565b90506000876001600160a01b031663c39619c4612ae38b60a00151613acd565b6040518263ffffffff1660e01b8152600401612aff9190615926565b602060405180830381865afa158015612b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b40919061584f565b6040805160608101825293845260208401919091528201929092529350909150611f919050565b612b75878760600135611d25565b612b9b5760405160016292642960e01b031981526060870135600482015260240161062e565b6060860135600090815260208890526040812090612bb882611eeb565b905060006009830154600160401b900460ff166001811115612bdc57612bdc6150ab565b14612bfa576040516312459ffd60e01b815260040160405180910390fd5b6009820154612c1390600160481b900460ff1686613b08565b60ff16612c2360208a018a6151df565b60ff1614612c6c57612c3860208901896151df565b600983015460405163564f308b60e11b815260ff9283166004820152600160481b909104909116602482015260440161062e565b612c7960a08901896151fa565b9050600003612c9b57604051630c9ccac560e41b815260040160405180910390fd5b600080808080612cae60a08e018e6151fa565b810190612cbb9190615954565b94509450945094509450612cd9876001015486896002015486613449565b612ced876003015485896004015485613449565b604051806060016040528086815260200185815260200182815250869850985050505050505050611f91565b604080516000808252602082019092528190612d3f90612d3a908751613b2a565b613b60565b9050612d4a83611b1b565b612d6a57604051633abfb6ff60e21b81526004810184905260240161062e565b82846040013514612d9b57604080516337f318af60e21b81529085013560048201526024810184905260440161062e565b612db78460200135866020015186604001358860400151613449565b612dc460808501856151fa565b9050600003612de657604051631a1503a960e11b815260040160405180910390fd5b600080612df660808701876151fa565b810190612e0391906159ef565b9092509050612e21836001602089013561274d60408b0135836157c4565b509095945050505050565b612e34614ae6565b611d1b84846000602086018035906040880135906060890135903390612e5a908b6151df565b613cf9565b6000610e4e82610180015183600001518460400151856020015186608001516124d4565b612e8b614a15565b6000612e9683613a3d565b6000818152602086905260409020909150612eb090611f1b565b15612ed157604051635e76f9ef60e11b81526004810182905260240161062e565b600081815260208581526040918290208551815590850151600180830191909155918501516002820155606085015160038201556080850151600482015560a0850151600582015560c0850151600682015560e085015160078201556101008501516008820180546101208801516001600160401b03908116600160a01b026001600160e01b03199092166001600160a01b03909416939093171790556101408601516009830180549190921667ffffffffffffffff19821681178355610160880151889590939268ffffffffffffffffff191690911790600160401b908490811115612fc057612fc06150ab565b021790555061018082810151600990920180546101a08501516101c0909501516001600160401b0316600160581b0267ffffffffffffffff60581b19951515600160501b0260ff60501b1960ff909616600160481b02959095166affff00000000000000000019909216919091179390931793909316919091179091558301518351604085015160208601516080870151600094613063949093909290916124d4565b60008181526001870160205260408120549192508190036130c2576040516815539492559053115160ba1b602082015260290160408051601f198184030181529181528151602092830120600085815260018a0190935291205561310a565b6040516815539492559053115160ba1b602082015260290160405160208183030381529060405280519060200120810361310a57600082815260018701602052604090208390555b6040805161010081018252848152602080820185905287518284015260e0880151606083015260008681529089905291909120608082019061314b9061282f565b815261018087015160ff166020820152911515604083015260e090950151151560609091015250919392505050565b60006131cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e029092919063ffffffff16565b805190915015611ee657808060200190518101906131ed91906151bd565b611ee65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161062e565b600082815260208590526040902060070154831461329b5760008281526020859052604090819020600701549051631855b87d60e31b815261062e918591600401918252602082015260400190565b6000828152602085905260408082205485835291206132b990611eeb565b146133075760008381526020859052604090206132d590611eeb565b6000838152602086905260409081902054905163e2e27f8760e01b81526004810192909252602482015260440161062e565b600082815260208590526040808220600990810154868452919092209091015460ff600160481b9283900481169261334192041683613b08565b60ff1614610f6d576000838152602085905260409020600901548390839061337390600160481b900460ff1684613b08565b60008581526020889052604090819020600901549051637e726d1560e01b81526004810194909452602484019290925260ff9081166044840152600160481b90910416606482015260840161062e565b60008060006133d3878786611ccf565b90506001600160401b0385116133e957846133f2565b6001600160401b035b94508085111561343b575050506000838152602085905260409020600901805467ffffffffffffffff60581b1916600160581b6001600160401b03851602179055600182611790565b600097909650945050505050565b600061347e82848660405160200161346391815260200190565b60405160208183030381529060405280519060200120613e11565b90508085146110f85760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f66000000000000000000604482015260640161062e565b60006009820154600160401b900460ff1660018111156134f1576134f16150ab565b14613529576134ff816123e0565b60098201546040516323f8405d60e01b815261062e9291600160401b900460ff16906004016157b0565b60090180546001600160401b03431668ffffffffffffffffff1990911617600160401b179055565b600081815260208390526040812061356890611eeb565b600081815260028501602052604090205490915080156135a557604051630dd7028f60e41b8152600481018490526024810182905260440161062e565b5060009081526002909201602052604090912055565b6000806135c88484611b45565b60008481526020869052604090206005015490915015611d1e576000838152602085905260408082206005810154835281832060099081015460069092015484529190922001546001600160401b03600160581b92839004811692909104168082106136345780613636565b815b6115d390846157c4565b6000600261364e8484615624565b10156136775760405163240a616560e21b8152600481018490526024810183905260440161062e565b6136818383615624565b60020361369a576136938360016157c4565b9050610e4e565b6000836136a8600185615624565b18905060006136b682613eb3565b9050600019811b806136c9600187615624565b169695505050505050565b6000851161371b5760405162461bcd60e51b815260206004820152601460248201527305072652d73697a652063616e6e6f7420626520360641b604482015260640161062e565b8561372583613b60565b146137725760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d617463680000000000604482015260640161062e565b8461377c83613fe2565b146137d35760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f6044820152603760f91b606482015260840161062e565b8285106138225760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a65604482015260640161062e565b6000859050600080613837856000875161403d565b90505b858310156138ef57600061384e8488614199565b9050845183106138955760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161062e565b6138b982828786815181106138ac576138ac6155cc565b602002602001015161427d565b91506001811b6138c981866157c4565b9450878511156138db576138db615a48565b836138e581615637565b945050505061383a565b866138f982613b60565b146139515760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f6044820152611cdd60f21b606482015260840161062e565b8351821461399a5760405162461bcd60e51b8152602060048201526016602482015275496e636f6d706c6574652070726f6f6620757361676560501b604482015260640161062e565b505050505050505050565b6139ad614ae6565b6139ba87878787876147b9565b50604080516101e08101825296875260208701959095529385019290925260608401526080830152600060a0830181905260c0830181905260e0830181905261010083018190526001600160401b0343166101208401526101408301819052610160830181905260ff9091166101808301526101a082018190526101c082015290565b6000610e4e82610180015183600001518460400151856020015186608001518760600151611926565b6005830154151580613a7b5750600683015415155b15613abd57613a89836123e0565b600584015460068501546040516308b0e71d60e41b815260048101939093526024830191909152604482015260640161062e565b6005830191909155600690910155565b613ad5614b60565b60405180604001604052808360000151815260200183602001516002811115613b0057613b006150ab565b905292915050565b600080613b168460016155f8565b9050613b22818461196b565b509392505050565b6060611d1e83600084604051602001613b4591815260200190565b6040516020818303038152906040528051906020012061427d565b600080825111613bab5760405162461bcd60e51b815260206004820152601660248201527522b6b83a3c9036b2b935b6329032bc3830b739b4b7b760511b604482015260640161062e565b604082511115613bfd5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c61726765000000000000604482015260640161062e565b6000805b8351811015613cf2576000848281518110613c1e57613c1e6155cc565b60200260200101519050826000801b03613c8a578015613c855780925060018551613c499190615624565b8214613c8557604051613c6c908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b613cdf565b8015613ca9576040805160208101839052908101849052606001613c6c565b604051613cc6908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080613cea81615637565b915050613c01565b5092915050565b613d01614ae6565b6001600160a01b038316613d285760405163f289e65760e01b815260040160405180910390fd5b6000849003613d4a57604051636932bcfd60e01b815260040160405180910390fd5b613d5789898989896147b9565b604051806101e001604052808a81526020018981526020018881526020018781526020018681526020016000801b81526020016000801b8152602001858152602001846001600160a01b03168152602001436001600160401b0316815260200160006001600160401b0316815260200160006001811115613dda57613dda6150ab565b815260ff84166020820152600060408201819052606090910152905098975050505050505050565b6060611d1b8484600085614849565b8251600090610100811115613e4457604051637ed6198f60e11b815260048101829052610100602482015260440161062e565b8260005b82811015613ea9576000878281518110613e6457613e646155cc565b60200260200101519050816001901b8716600003613e9057826000528060205260406000209250613ea0565b8060005282602052604060002092505b50600101613e48565b5095945050505050565b600081600003613f055760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e74206269747300000000604482015260640161062e565b600160801b8210613f2357608091821c91613f2090826157c4565b90505b600160401b8210613f4157604091821c91613f3e90826157c4565b90505b6401000000008210613f6057602091821c91613f5d90826157c4565b90505b620100008210613f7d57601091821c91613f7a90826157c4565b90505b6101008210613f9957600891821c91613f9690826157c4565b90505b60108210613fb457600491821c91613fb190826157c4565b90505b60048210613fcf57600291821c91613fcc90826157c4565b90505b60028210610ed357610e4e6001826157c4565b600080805b8351811015613cf257838181518110614002576140026155cc565b60200260200101516000801b1461402b5761401e816002615b42565b61402890836157c4565b91505b8061403581615637565b915050613fe7565b60608183106140885760405162461bcd60e51b815260206004820152601760248201527614dd185c9d081b9bdd081b195cdcc81d1a185b88195b99604a1b604482015260640161062e565b83518211156140e35760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e67746044820152600d60fb1b606482015260840161062e565b60006140ef8484615624565b6001600160401b0381111561410657614106615240565b60405190808252806020026020018201604052801561412f578160200160208202803683370190505b509050835b838110156141905785818151811061414e5761414e6155cc565b60200260200101518286836141639190615624565b81518110614173576141736155cc565b60209081029190910101528061418881615637565b915050614134565b50949350505050565b60008183106141e45760405162461bcd60e51b815260206004820152601760248201527614dd185c9d081b9bdd081b195cdcc81d1a185b88195b99604a1b604482015260640161062e565b60006141f1838518613eb3565b90506000600161420183826157c4565b6001901b61420f9190615624565b9050848116848216811561422657611caf8261496f565b801561423557611caf81613eb3565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f0000000000604482015260640161062e565b6060604083106142c05760405162461bcd60e51b815260206004820152600e60248201526d098caeccad840e8dede40d0d2ced60931b604482015260640161062e565b60008290036143115760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d70747920737562747265650000000000604482015260640161062e565b6040845111156143635760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c61726765000000000000604482015260640161062e565b83516000036143e15760006143798460016157c4565b6001600160401b0381111561439057614390615240565b6040519080825280602002602001820160405280156143b9578160200160208202803683370190505b509050828185815181106143cf576143cf6155cc565b60209081029190910101529050611d1e565b8351831061444f5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c6044820152741037b31031bab93932b73a1032bc3830b739b4b7b760591b606482015260840161062e565b81600061445b86613fe2565b9050600061446a866002615b42565b61447490836157c4565b9050600061448183613eb3565b61448a83613eb3565b116144d75787516001600160401b038111156144a8576144a8615240565b6040519080825280602002602001820160405280156144d1578160200160208202803683370190505b50614526565b87516144e49060016157c4565b6001600160401b038111156144fb576144fb615240565b604051908082528060200260200182016040528015614524578160200160208202803683370190505b505b905060408151111561457a5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a65207472656500000000604482015260640161062e565b60005b885181101561471b5787811015614609578881815181106145a0576145a06155cc565b60200260200101516000801b146146045760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e7420626044820152611a5d60f21b606482015260840161062e565b614709565b600085900361464f57888181518110614624576146246155cc565b602002602001015182828151811061463e5761463e6155cc565b602002602001018181525050614709565b888181518110614661576146616155cc565b60200260200101516000801b036146995784828281518110614685576146856155cc565b602090810291909101015260009450614709565b6000801b8282815181106146af576146af6155cc565b6020026020010181815250508881815181106146cd576146cd6155cc565b6020026020010151856040516020016146f0929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b8061471381615637565b91505061457d565b50831561474f578381600183516147329190615624565b81518110614742576147426155cc565b6020026020010181815250505b806001825161475e9190615624565b8151811061476e5761476e6155cc565b60200260200101516000801b036105105760405162461bcd60e51b815260206004820152600f60248201526e4c61737420656e747279207a65726f60881b604482015260640161062e565b60008590036147db5760405163235e76ef60e21b815260040160405180910390fd5b828111614805576040516308183ebd60e21b8152600481018490526024810182905260440161062e565b6000849003614827576040516320f1a0f960e21b815260040160405180910390fd5b60008290036110f857604051635cb6e5bb60e01b815260040160405180910390fd5b6060824710156148aa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161062e565b6001600160a01b0385163b6149015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161062e565b600080866001600160a01b0316858760405161491d9190615b72565b60006040518083038185875af1925050503d806000811461495a576040519150601f19603f3d011682016040523d82523d6000602084013e61495f565b606091505b50915091506105108282866149dc565b60008082116149c05760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e74206269747300000000604482015260640161062e565b600082806149cf600182615624565b16189050611d1e81613eb3565b606083156149eb575081611d1e565b8251156149fb5782518084602001fd5b8160405162461bcd60e51b815260040161062e9190615b8e565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101614a89614b7f565b8152602001614a96614b7f565b905290565b828054828255906000526020600020908101928215614ad6579160200282015b82811115614ad6578235825591602001919060010190614abb565b50614ae2929150614ba6565b5090565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290529061016082019081526000602082018190526040820181905260609091015290565b6040518060400160405280614b73614bbb565b81526020016000905290565b6040518060600160405280614b92614bbb565b815260200160008152600060209091015290565b5b80821115614ae25760008155600101614ba7565b6040518060400160405280614bce614bd7565b8152602001614a965b60405180604001604052806002906020820280368337509192915050565b803560ff81168114610ed357600080fd5b60008060008060008060c08789031215614c1f57600080fd5b614c2887614bf5565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b600060208284031215614c6257600080fd5b81356001600160401b03811115614c7857600080fd5b820160c08185031215611d1e57600080fd5b6001600160a01b0381168114614c9f57600080fd5b50565b6001600160401b0381168114614c9f57600080fd5b60008083601f840112614cc957600080fd5b5081356001600160401b03811115614ce057600080fd5b6020830191508360208260051b8501011115614cfb57600080fd5b9250929050565b60008060008060008060008060008060006101408c8e031215614d2457600080fd5b8b35614d2f81614c8a565b9a5060208c0135614d3f81614ca2565b995060408c0135614d4f81614c8a565b985060608c0135975060808c0135965060a08c0135955060c08c0135614d7481614c8a565b945060e08c0135614d8481614c8a565b9350614d936101008d01614bf5565b92506101208c01356001600160401b03811115614daf57600080fd5b614dbb8e828f01614cb7565b915080935050809150509295989b509295989b9093969950565b600060208284031215614de757600080fd5b5035919050565b60038110614c9f57600080fd5b8035610ed381614dee565b600060208284031215614e1857600080fd5b8135611d1e81614dee565b600080600060408486031215614e3857600080fd5b83356001600160401b03811115614e4e57600080fd5b614e5a86828701614cb7565b909790965060209590950135949350505050565b60008060408385031215614e8157600080fd5b8235614e8c81614c8a565b946020939093013593505050565b600080600060608486031215614eaf57600080fd5b505081359360208301359350604090920135919050565b6000806000806000806000878903610120811215614ee357600080fd5b8835975060208901356001600160401b0380821115614f0157600080fd5b908a01906040828d031215614f1557600080fd5b81985060a0603f1984011215614f2a57600080fd5b60408b01975060e08b0135925080831115614f4457600080fd5b614f508c848d01614cb7565b90975095506101008b0135925086915080831115614f6d57600080fd5b5050614f7b8a828b01614cb7565b989b979a50959850939692959293505050565b600080828403610120811215614fa357600080fd5b83359250610100601f1982011215614fba57600080fd5b506020830190509250929050565b600080600080600060a08688031215614fe057600080fd5b614fe986614bf5565b97602087013597506040870135966060810135965060800135945092505050565b6000806000806060858703121561502057600080fd5b843593506020850135925060408501356001600160401b038082111561504557600080fd5b818701915087601f83011261505957600080fd5b81358181111561506857600080fd5b88602082850101111561507a57600080fd5b95989497505060200194505050565b6000806040838503121561509c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b600281106150d1576150d16150ab565b9052565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151615143828501826001600160a01b03169052565b5050610120838101516001600160401b038116848301525050610140838101516001600160401b03811684830152505061016080840151615186828501826150c1565b50506101808381015160ff16908301526101a0808401511515908301526101c0808401516001600160401b03811682850152611cc7565b6000602082840312156151cf57600080fd5b81518015158114611d1e57600080fd5b6000602082840312156151f157600080fd5b611d1e82614bf5565b6000808335601e1984360301811261521157600080fd5b8301803591506001600160401b0382111561522b57600080fd5b602001915036819003821315614cfb57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561527857615278615240565b60405290565b604080519081016001600160401b038111828210171561527857615278615240565b604051601f8201601f191681016001600160401b03811182821017156152c8576152c8615240565b604052919050565b60006001600160401b038211156152e9576152e9615240565b5060051b60200190565b600082601f83011261530457600080fd5b81356020615319615314836152d0565b6152a0565b82815260059290921b8401810191818101908684111561533857600080fd5b8286015b84811015615353578035835291830191830161533c565b509695505050505050565b600082601f83011261536f57600080fd5b61537761527e565b80604084018581111561538957600080fd5b845b81811015612e2157803561539e81614ca2565b84526020938401930161538b565b60008183036101008112156153c057600080fd5b6153c8615256565b915060c08112156153d857600080fd5b6153e0615256565b60808212156153ee57600080fd5b6153f661527e565b915084601f85011261540757600080fd5b61540f61527e565b80604086018781111561542157600080fd5b865b8181101561543b578035845260209384019301615423565b50818552615449888261535e565b602086015250505081815261546060808501614dfb565b602082015260a08401356040820152808352505060c0820135602082015260e0820135604082015292915050565b600080600061022084860312156154a457600080fd5b83356001600160401b038111156154ba57600080fd5b6154c6868287016152f3565b9350506154d685602086016153ac565b91506154e68561012086016153ac565b90509250925092565b80518260005b60028110156155145782518252602092830192909101906001016154f5565b5050506020808201516040840160005b600281101561554a5782516001600160401b031682529183019190830190600101615524565b505050505050565b60038110614c9f57614c9f6150ab565b60006101208201905085825261557c6020830186516154ef565b602085015161558a81615552565b60a08301526040949094015160c082015260e081019290925261010090910152919050565b6000602082840312156155c157600080fd5b8151611d1e81614ca2565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115610e4e57610e4e6155e2565b6020810161561e83615552565b91905290565b81810381811115610e4e57610e4e6155e2565b600060018201615649576156496155e2565b5060010190565b600060c0820190508382528235602083015260208301356040830152604083013561567a81614c8a565b6001600160a01b031660608381019190915283013561569881614ca2565b6001600160401b038082166080850152608085013591506156b882614ca2565b80821660a085015250509392505050565b6000602082840312156156db57600080fd5b8135611d1e81614ca2565b6000602082840312156156f857600080fd5b8151611d1e81614c8a565b8481526101208101602060408682850137606083016040870160005b600281101561574e57813561573381614ca2565b6001600160401b03168352918301919083019060010161571f565b50505050608085013561576081614dee565b61576981615552565b8060a08401525060a085013560c08301528360e08301528261010083015295945050505050565b6001600160401b03828116828216039080821115613cf257613cf26155e2565b82815260408101611d1e60208301846150c1565b80820180821115610e4e57610e4e6155e2565b8082028115828204841417610e4e57610e4e6155e2565b8551815260018060a01b0360208701511660208201526040860151604082015284606082015283608082015260c060a08201528160c0820152818360e0830137600081830160e090810191909152601f909201601f19160101949350505050565b60006020828403121561586157600080fd5b5051919050565b600082601f83011261587957600080fd5b81516020615889615314836152d0565b82815260059290921b840181019181810190868411156158a857600080fd5b8286015b8481101561535357805183529183019183016158ac565b600080604083850312156158d657600080fd5b82516001600160401b03808211156158ed57600080fd5b6158f986838701615868565b9350602085015191508082111561590f57600080fd5b5061591c85828601615868565b9150509250929050565b600060a0820190506159398284516154ef565b602083015161594781615552565b8060808401525092915050565b600080600080600060a0868803121561596c57600080fd5b853594506020860135935060408601356001600160401b038082111561599157600080fd5b61599d89838a016152f3565b945060608801359150808211156159b357600080fd5b6159bf89838a016152f3565b935060808801359150808211156159d557600080fd5b506159e2888289016152f3565b9150509295509295909350565b60008060408385031215615a0257600080fd5b82356001600160401b0380821115615a1957600080fd5b615a25868387016152f3565b93506020850135915080821115615a3b57600080fd5b5061591c858286016152f3565b634e487b7160e01b600052600160045260246000fd5b600181815b80851115615a99578160001904821115615a7f57615a7f6155e2565b80851615615a8c57918102915b93841c9390800290615a63565b509250929050565b600082615ab057506001610e4e565b81615abd57506000610e4e565b8160018114615ad35760028114615add57615af9565b6001915050610e4e565b60ff841115615aee57615aee6155e2565b50506001821b610e4e565b5060208310610133831016604e8410600b8410161715615b1c575081810a610e4e565b615b268383615a5e565b8060001904821115615b3a57615b3a6155e2565b029392505050565b6000611d1e8383615aa1565b60005b83811015615b69578181015183820152602001615b51565b50506000910152565b60008251615b84818460208701615b4e565b9190910192915050565b6020815260008251806020840152615bad816040850160208701615b4e565b601f01601f1916919091016040019291505056fea264697066735822122097d0ba40e9e0a9f7a6f82b5fe8628bb556c0116ecf86a87484d30243f5d7fc7c64736f6c63430008110033", + Bin: "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615bf780620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063655b42f31161010f578063c32d8c63116100a2578063eae0328b11610071578063eae0328b146104b1578063edaab54a146104c4578063f8ee77d6146104d7578063fda2892e146104e057600080fd5b8063c32d8c6314610443578063c8bc4e4314610456578063e5b123da1461047e578063e94e051e1461049e57600080fd5b80638c1b3a40116100de5780638c1b3a40146103ea578063908517e9146103fd578063b2a1408e14610410578063bce6f54f1461042357600080fd5b8063655b42f314610378578063748926f3146103b1578063750e0c0f146103c45780638826a370146103d757600080fd5b8063432bb78a1161018757806351ed6a301161015657806351ed6a301461031057806354b64151146103235780635a48e0f4146103465780635d9e24441461035957600080fd5b8063432bb78a1461028d57806346c2781a146102a057806348923bc5146102cb57806348dd2924146102f657600080fd5b80631dce5166116101c35780631dce5166146102555780633e35f5e81461025e578063416e66571461027157806342e1aaa81461027a57600080fd5b80624d8efe146101f457806305fae1411461021a5780631a72d54c1461022d5780631c1b4f3a14610242575b600080fd5b610207610202366004614c06565b610500565b6040519081526020015b60405180910390f35b610207610228366004614c50565b61051b565b61024061023b366004614d02565b610aa3565b005b610207610250366004614dd5565b610e20565b610207600a5481565b61020761026c366004614dd5565b610e41565b610207600b5481565b610207610288366004614e06565b610e54565b61024061029b366004614e23565b610ed8565b6008546102b3906001600160401b031681565b6040516001600160401b039091168152602001610211565b6009546102de906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b6008546102de90600160401b90046001600160a01b031681565b6006546102de906001600160a01b031681565b610336610331366004614dd5565b610f73565b6040519015158152602001610211565b610207610354366004614dd5565b610f80565b600d546103669060ff1681565b60405160ff9091168152602001610211565b610336610386366004614e6e565b6001600160a01b03919091166000908152600460209081526040808320938352929052205460ff1690565b6102406103bf366004614dd5565b610f8d565b6103366103d2366004614dd5565b611080565b6102406103e5366004614e9a565b611097565b6102406103f8366004614ec6565b6110ff565b61033661040b366004614dd5565b6112ae565b61024061041e366004614f8e565b6112bb565b610207610431366004614dd5565b60009081526002602052604090205490565b610207610451366004614fc8565b6115c4565b61046961046436600461500a565b6115dd565b60408051928352602083019190915201610211565b61020761048c366004614dd5565b60009081526003602052604090205490565b6005546102de906001600160a01b031681565b6102076104bf366004614dd5565b611799565b6102406104d2366004615089565b6117ae565b610207600c5481565b6104f36104ee366004614dd5565b611807565b60405161021191906150d5565b6000610510878787878787611926565b979650505050505050565b60008060088054906101000a90046001600160a01b03166001600160a01b03166312ab3d3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059391906151bd565b159050808015610612575060085460405163facd743b60e01b8152336004820152600160401b9091046001600160a01b03169063facd743b90602401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061091906151bd565b155b1561063757604051633b4f6e2b60e21b81523360048201526024015b60405180910390fd5b61063f614a15565b600061065c61065160208701876151df565b600d5460ff1661196b565b9050600061066982610e54565b9050610673614a59565b6000836002811115610687576106876150ab565b036109525761069960a08801886151fa565b90506000036106bb57604051630c9ccac560e41b815260040160405180910390fd5b6000806106cb60a08a018a6151fa565b8101906106d8919061548e565b925092505060088054906101000a90046001600160a01b03166001600160a01b031663e51019a68a606001358360000151846020015185604001516040518563ffffffff1660e01b81526004016107329493929190615562565b60006040518083038186803b15801561074a57600080fd5b505afa15801561075e573d6000803e3d6000fd5b505060085460208481015186519187015160408089015190516372880cd360e11b8152600160401b9095046001600160a01b0316965063e51019a695506107aa94929392600401615562565b60006040518083038186803b1580156107c257600080fd5b505afa1580156107d6573d6000803e3d6000fd5b5050505080600001516040015189602001351461081b5780516040908101519051631d31f4cd60e11b815260208b01356004820152602481019190915260440161062e565b6040805160c08101825260608b013580825260208481015190830152600854835163e531d8c760e01b815260048101929092529192830191600160401b90046001600160a01b03169063e531d8c790602401602060405180830381865afa15801561088a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ae91906151bd565b15158152600854602084810151604051632b5de4f360e11b81526004810191909152920191600091600160401b90046001600160a01b0316906356bbc9e690602401602060405180830381865afa15801561090d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093191906155af565b6001600160401b031611815292516020840152905160409092019190915290505b600954600d5461097a916001918a9185916001600160a01b0390911690879060ff168b6119da565b6006549094506001600160a01b03166000600761099a60208b018b6151df565b60ff16815481106109ad576109ad6155cc565b60009182526020909120015490506001600160a01b038216158015906109d257508015155b15610a0e5760008660c001516109e857306109f5565b6005546001600160a01b03165b9050610a0c6001600160a01b038416338385611ab0565b505b8560400151866020015187600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a489606001518a608001518b60a001518c60c001518d60e00151604051610a8d959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a4505092519695505050505050565b600054610100900460ff1615808015610ac35750600054600160ff909116105b80610add5750303b158015610add575060005460ff166001145b610b405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161062e565b6000805460ff191660011790558015610b63576000805461ff0019166101001790555b6001600160a01b038c16610b8a5760405163641f043160e11b815260040160405180910390fd5b600880546001600160a01b03808f16600160401b0268010000000000000000600160e01b0319909216919091179091558a16610bd95760405163fb60b0ef60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b038c161790556001600160401b038b16600003610c1e57604051632283bb7360e21b815260040160405180910390fd5b6008805467ffffffffffffffff19166001600160401b038d16179055600680546001600160a01b0319166001600160a01b03888116919091179091558516610c79576040516301e1d91560e31b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b038716179055610c9d89611b1b565b610cbd57604051633abfb6ff60e21b8152600481018a905260240161062e565b600a899055610ccb88611b1b565b610ceb57604051633abfb6ff60e21b81526004810189905260240161062e565b600b889055610cf987611b1b565b610d1957604051633abfb6ff60e21b81526004810188905260240161062e565b600c87905560ff8416600003610d4257604051632a18f5b960e21b815260040160405180910390fd5b60fd8460ff161115610d6c5760405163040d23bf60e41b815260ff8516600482015260240161062e565b600d805460ff191660ff861617905581610d878560026155f8565b60ff1614610dbf5781610d9b8560026155f8565b604051622bb3a760e61b8152600481019290925260ff16602482015260440161062e565b610dcb60078484614a9b565b508015610e12576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b60078181548110610e3057600080fd5b600091825260209091200154905081565b6000610e4e600183611b45565b92915050565b600080826002811115610e6957610e696150ab565b03610e76575050600a5490565b6001826002811115610e8a57610e8a6150ab565b03610e97575050600b5490565b6002826002811115610eab57610eab6150ab565b03610eb8575050600c5490565b81604051630efcb87b60e21b815260040161062e9190615611565b919050565b6000829003610efa5760405163521299a960e01b815260040160405180910390fd5b610f2b8383610f0a600182615624565b818110610f1957610f196155cc565b60019260209091020135905083611ccf565b5060005b82811015610f6d57610f5b848483818110610f4c57610f4c6155cc565b905060200201356000196117ae565b80610f6581615637565b915050610f2f565b50505050565b6000610e4e600183611d25565b6000610e4e600183611d59565b6000610f9a600183611daa565b9050610fa581611df3565b6006546009820154600780546001600160a01b0390931692600092600160481b900460ff16908110610fd957610fd96155cc565b60009182526020909120015490506001600160a01b03821615801590610ffe57508015155b1561101f57600883015461101f906001600160a01b03848116911683611eb6565b600084815260016020526040902061103690611eeb565b604080516001600160a01b03851681526020810184905286917fa635398959ddb5ce3b14537edfc25b2e671274c9b8cad0f4bd634752e69007b6910160405180910390a350505050565b6000818152600160205260408120610e4e90611f1b565b600d5460009081906110b3906001908790879060ff1687611f34565b9150915081156110f857847fbe17755d8d836ad67bfaf8e5b3869aedb4cba03f295a167c5547feddd9ef50ad826040516110ef91815260200190565b60405180910390a25b5050505050565b600061110c600189611d59565b6008546040516304972af960e01b8152919250600160401b90046001600160a01b0316906304972af9906111469084908a90600401615650565b60006040518083038186803b15801561115e57600080fd5b505afa158015611172573d6000803e3d6000fd5b505050506000604051806060016040528088608001602081019061119691906156c9565b6001600160401b0316815260200160088054906101000a90046001600160a01b03166001600160a01b031663e78cea926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121991906156e6565b6001600160a01b0390811682528935602090920191909152600954600d54600b54600c54949550611261946001948f9416928e9288928e928e928e928e9260ff169190611f9b565b600089815260016020526040902061127890611eeb565b6040518a907fe11db4b27bc8c6ea5943ecbb205ae1ca8d56c42c719717aaf8a53d43d0cee7c290600090a3505050505050505050565b6000610e4e600183612301565b60006112c8600184611daa565b90506112d3816123bc565b61131c576112e0816123e0565b60088201546007830154604051631cb1906160e31b815260048101939093526001600160a01b039091166024830152604482015260640161062e565b600080806009840154600d5461133f9160ff600160481b9091048116911661196b565b6002811115611350576113506150ab565b1490508080156113d4575060085460078401546040516306106c4560e31b81526004810191909152600160401b9091046001600160a01b031690633083622890602401602060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d491906151bd565b156115495760085460078401546040516372880cd360e11b8152600160401b9092046001600160a01b03169163e51019a69161142091889060c08201359060e083013590600401615703565b60006040518083038186803b15801561143857600080fd5b505afa15801561144c573d6000803e3d6000fd5b5050600854604051631171558560e01b815260c08801356004820152600160401b9091046001600160a01b0316925063117155859150602401602060405180830381865afa1580156114a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c691906155af565b600854604051632b5de4f360e11b815260c08701356004820152600160401b9091046001600160a01b0316906356bbc9e690602401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c91906155af565b6115469190615790565b91505b60085460009061156890600190889086906001600160401b0316612415565b600087815260016020526040902090915061158290611eeb565b867f2e0808830a22204cb3fb8f8d784b28bc97e9ce2e39d2f9cde2860de0957d68eb836040516115b491815260200190565b60405180910390a3505050505050565b60006115d386868686866124d4565b9695505050505050565b600080600080600061162c898989898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600195949392505061252e9050565b8151929550909350915015806116c4578260400151836020015184600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a4866060015187608001518860a001518960c001518a60e001516040516116bb959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a45b8160400151826020015183600001517faa4b66b1ce938c06e2a3f8466bae10ef62e747630e3859889f4719fc6427b5a4856060015186608001518760a001518860c001518960e00151604051611743959493929190948552602085019390935260ff919091166040840152151560608301521515608082015260a00190565b60405180910390a48151604051821515815285908c907f7340510d24b7ec9b5c100f5500d93429d80d00d46f0d18e4e85d0c4cc22b99249060200160405180910390a45051919350909150505b94509492505050565b6000610e4e6117a9600184611daa565b61282f565b6000806117bd60018585612874565b915091508115610f6d57837fbe17755d8d836ad67bfaf8e5b3869aedb4cba03f295a167c5547feddd9ef50ad826040516117f991815260200190565b60405180910390a250505050565b61180f614ae6565b61181a600183611daa565b604080516101e0810182528254815260018084015460208301526002840154928201929092526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e082015260088301546001600160a01b038116610100830152600160a01b90046001600160401b039081166101208301526009840154908116610140830152909291610160840191600160401b900460ff16908111156118d0576118d06150ab565b60018111156118e1576118e16150ab565b81526009919091015460ff600160481b820481166020840152600160501b820416151560408301526001600160401b03600160581b9091041660609091015292915050565b600061193587878787876124d4565b60408051602081019290925281018390526060016040516020818303038152906040528051906020012090509695505050505050565b60008260ff1660000361198057506000610e4e565b8160ff168360ff161161199557506001610e4e565b6119a08260016155f8565b60ff168360ff16036119b457506002610e4e565b6040516315c1b4af60e31b815260ff80851660048301528316602482015260440161062e565b6119e2614a15565b6000806119f28a8a8a8a89612898565b915091506000611a03838b89612d19565b90506000611a1283838d612e2c565b90508515611a96576000611a2582612e5f565b33600090815260038f016020908152604080832084845290915290205490915060ff1615611a6f57604051632d23561d60e11b81523360048201526024810182905260440161062e565b33600090815260038e016020908152604080832093835292905220805460ff191660011790555b611aa08c82612e83565b9c9b505050505050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610f6d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261317a565b600081600003611b2d57506000919050565b6000611b3a600184615624565b929092161592915050565b6000818152602083905260408120611b5c90611f1b565b611b7b5760405162a7b02b60e01b81526004810183905260240161062e565b6000828152602084905260408120611b9290611eeb565b6000818152600186016020526040812054919250819003611bc6576040516336843d9f60e21b815260040160405180910390fd5b6040516815539492559053115160ba1b6020820152602901604051602081830303815290604052805190602001208103611c2f57600084815260208690526040902060080154611c2690600160a01b90046001600160401b031643615624565b92505050610e4e565b6000818152602086905260409020611c4690611f1b565b611c655760405162a7b02b60e01b81526004810182905260240161062e565b60008181526020869052604080822060089081015487845291909220909101546001600160401b03600160a01b928390048116929091041680821115611cba57611caf8183615624565b945050505050610e4e565b6000945050505050610e4e565b505092915050565b600082815260208490526040812060090154600160581b90046001600160401b0316828110611d1b5760405163d1f5928160e01b8152600481018290526024810184905260440161062e565b90505b9392505050565b6000611d318383612301565b8015611d1e57506000828152602084905260409020611d4f9061282f565b6001149392505050565b600080611d668484611daa565b90505b6009810154600160481b900460ff1615611da25780546000908152600185016020526040902054611d9a8582611daa565b915050611d69565b549392505050565b6000818152602083905260408120611dc190611f1b565b611de05760405162a7b02b60e01b81526004810183905260240161062e565b5060009081526020919091526040902090565b60016009820154600160401b900460ff166001811115611e1557611e156150ab565b14611e4d57611e23816123e0565b6009820154604051633bc499ed60e21b815261062e9291600160401b900460ff16906004016157b0565b611e56816123bc565b611e63576112e0816123e0565b6009810154600160501b900460ff161515600103611ea057611e84816123e0565b60405163307f766960e01b815260040161062e91815260200190565b600901805460ff60501b1916600160501b179055565b6040516001600160a01b038316602482015260448101829052611ee690849063a9059cbb60e01b90606401611ae4565b505050565b6000610e4e8260090160099054906101000a900460ff1683600001548460020154856001015486600401546124d4565b60080154600160a01b90046001600160401b0316151590565b6000806000611f438888611b45565b9050611f518888888861324c565b600086815260208990526040902060090154611f7d90600160581b90046001600160401b0316826157c4565b9050611f8b888883876133c3565b92509250505b9550959350505050565b60008b815260208d905260409020611fb290611f1b565b611fd15760405162a7b02b60e01b8152600481018c905260240161062e565b600260008c815260208e90526040902060090154611ff990600160481b900460ff168561196b565b600281111561200a5761200a6150ab565b146120475760008b815260208d905260409081902060090154905163348aefdf60e01b8152600160481b90910460ff16600482015260240161062e565b60008b815260208d90526040902061205e9061282f565b6001146120985760008b815260208d90526040902061207c9061282f565b6040516306b595e560e41b815260040161062e91815260200190565b60008b815260208d905260409020600201548b825b60018f600001600084815260200190815260200160002060090160099054906101000a900460ff1660ff1611156121555760008f60000160008481526020019081526020016000206000015490508f60010160008281526020019081526020016000205492508f6000016000848152602001908152602001600020600201548261213791906157d7565b61214190856157c4565b935061214d86836157d7565b9150506120ad565b50506121b28d60000160008e8152602001908152602001600020600101548b60000135838b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061344992505050565b60008b6001600160a01b031663b5112fd28b848e600001358f80602001906121da91906151fa565b6040518663ffffffff1660e01b81526004016121fa9594939291906157ee565b602060405180830381865afa158015612217573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223b919061584f565b90506122a08e60000160008f8152602001908152602001600020600301548284600161226791906157c4565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061344992505050565b60008d815260208f9052604090206122b7906134cf565b6122c18e8e613551565b5050506000998a5250505060209790975250506040909320600901805467ffffffffffffffff60581b191667ffffffffffffffff60581b17905550505050565b600081815260208390526040812061231890611f1b565b6123375760405162a7b02b60e01b81526004810183905260240161062e565b600082815260208490526040812061234e90611eeb565b6000818152600186016020526040812054919250819003612382576040516336843d9f60e21b815260040160405180910390fd5b6040516815539492559053115160ba1b602082015260290160408051601f1981840301815291905280516020909101201415949350505050565b600781015460009015801590610e4e575050600801546001600160a01b0316151590565b6000610e4e8260090160099054906101000a900460ff1683600001548460020154856001015486600401548760030154611926565b600083815260208590526040812061242c90611f1b565b61244b5760405162a7b02b60e01b81526004810185905260240161062e565b600061245786866135bb565b905061246c6001600160401b038516826157c4565b9050826001600160401b03168110156124aa5760405163011a8d4d60e41b8152600481018290526001600160401b038416602482015260440161062e565b60008581526020879052604090206124c1906134cf565b6124cb8686613551565b95945050505050565b6040516001600160f81b031960f887901b1660208201526021810185905260418101849052606181018390526081810182905260009060a10160405160208183030381529060405280519060200120905095945050505050565b6000612538614a15565b612540614a15565b60008087815260208990526040902060090154600160401b900460ff16600181111561256e5761256e6150ab565b146125ad57600086815260208890526040908190206009015490516323f8405d60e01b815261062e918891600160401b90910460ff16906004016157b0565b6125b78787612301565b6125d7576040516380e07e4560e01b81526004810187905260240161062e565b6000868152602088905260408120604080516101e0810182528254815260018084015460208301526002840154928201929092526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e082015260088301546001600160a01b038116610100830152600160a01b90046001600160401b039081166101208301526009840154908116610140830152909291610160840191600160401b900460ff169081111561269b5761269b6150ab565b60018111156126ac576126ac6150ab565b815260099190910154600160481b810460ff9081166020840152600160501b8204161515604080840191909152600160581b9091046001600160401b0316606090920191909152810151608082015191925060009161270b9190613640565b90506000808780602001905181019061272491906158c3565b9092509050612754896127388560016157c4565b6060870151608088015161274d9060016157c4565b86866136d4565b50506000612760614a15565b60006127818560000151866020015187604001518d888a61018001516139a5565b905061278c81613a3d565b600081815260208e9052604090209093506127a690611f1b565b6127b7576127b48c82612e83565b91505b506127c0614a15565b60006127e186600001518c8789606001518a608001518b61018001516139a5565b90506127ed8d82612e83565b91505061281d8382600001518e60000160008f8152602001908152602001600020613a669092919063ffffffff16565b919b909a509098509650505050505050565b600080826002015483600401546128469190615624565b905080600003610e4e57612859836123e0565b60405162a7b02b60e01b815260040161062e91815260200190565b60008061288c858561288688886135bb565b866133c3565b91509150935093915050565b604080516060808201835260008083526020830152918101919091526000806128cd6128c760208901896151df565b8561196b565b60028111156128de576128de6150ab565b03612b67576020850151855160000361290a576040516374b5e30d60e11b815260040160405180910390fd5b855160608801351461293f5785516040516316c5de8f60e21b815260048101919091526060880135602482015260440161062e565b8560400151612961576040516360b4921b60e11b815260040160405180910390fd5b856060015161298357604051635a2e8e1d60e11b815260040160405180910390fd5b61299060a08801886151fa565b90506000036129b257604051630c9ccac560e41b815260040160405180910390fd5b60006129c160a08901896151fa565b8101906129ce919061548e565b509091506000905087608001516020015160028111156129f0576129f06150ab565b03612a0e5760405163231b2f2960e11b815260040160405180910390fd5b60008760a00151602001516002811115612a2a57612a2a6150ab565b03612a4857604051638999857d60e01b815260040160405180910390fd5b6000866001600160a01b031663c39619c4612a668a60800151613acd565b6040518263ffffffff1660e01b8152600401612a829190615926565b602060405180830381865afa158015612a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac3919061584f565b90506000876001600160a01b031663c39619c4612ae38b60a00151613acd565b6040518263ffffffff1660e01b8152600401612aff9190615926565b602060405180830381865afa158015612b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b40919061584f565b6040805160608101825293845260208401919091528201929092529350909150611f919050565b612b75878760600135611d25565b612b9b5760405160016292642960e01b031981526060870135600482015260240161062e565b6060860135600090815260208890526040812090612bb882611eeb565b905060006009830154600160401b900460ff166001811115612bdc57612bdc6150ab565b14612bfa576040516312459ffd60e01b815260040160405180910390fd5b6009820154612c1390600160481b900460ff1686613b08565b60ff16612c2360208a018a6151df565b60ff1614612c6c57612c3860208901896151df565b600983015460405163564f308b60e11b815260ff9283166004820152600160481b909104909116602482015260440161062e565b612c7960a08901896151fa565b9050600003612c9b57604051630c9ccac560e41b815260040160405180910390fd5b600080808080612cae60a08e018e6151fa565b810190612cbb9190615954565b94509450945094509450612cd9876001015486896002015486613449565b612ced876003015485896004015485613449565b604051806060016040528086815260200185815260200182815250869850985050505050505050611f91565b604080516000808252602082019092528190612d3f90612d3a908751613b2a565b613b60565b9050612d4a83611b1b565b612d6a57604051633abfb6ff60e21b81526004810184905260240161062e565b82846040013514612d9b57604080516337f318af60e21b81529085013560048201526024810184905260440161062e565b612db78460200135866020015186604001358860400151613449565b612dc460808501856151fa565b9050600003612de657604051631a1503a960e11b815260040160405180910390fd5b600080612df660808701876151fa565b810190612e0391906159ef565b9092509050612e21836001602089013561274d60408b0135836157c4565b509095945050505050565b612e34614ae6565b611d1b84846000602086018035906040880135906060890135903390612e5a908b6151df565b613cf9565b6000610e4e82610180015183600001518460400151856020015186608001516124d4565b612e8b614a15565b6000612e9683613a3d565b6000818152602086905260409020909150612eb090611f1b565b15612ed157604051635e76f9ef60e11b81526004810182905260240161062e565b600081815260208581526040918290208551815590850151600180830191909155918501516002820155606085015160038201556080850151600482015560a0850151600582015560c0850151600682015560e085015160078201556101008501516008820180546101208801516001600160401b03908116600160a01b026001600160e01b03199092166001600160a01b03909416939093171790556101408601516009830180549190921667ffffffffffffffff19821681178355610160880151889590939268ffffffffffffffffff191690911790600160401b908490811115612fc057612fc06150ab565b021790555061018082810151600990920180546101a08501516101c0909501516001600160401b0316600160581b0267ffffffffffffffff60581b19951515600160501b0260ff60501b1960ff909616600160481b02959095166affff00000000000000000019909216919091179390931793909316919091179091558301518351604085015160208601516080870151600094613063949093909290916124d4565b60008181526001870160205260408120549192508190036130c2576040516815539492559053115160ba1b602082015260290160408051601f198184030181529181528151602092830120600085815260018a0190935291205561310a565b6040516815539492559053115160ba1b602082015260290160405160208183030381529060405280519060200120810361310a57600082815260018701602052604090208390555b6040805161010081018252848152602080820185905287518284015260e0880151606083015260008681529089905291909120608082019061314b9061282f565b815261018087015160ff166020820152911515604083015260e090950151151560609091015250919392505050565b60006131cf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613e029092919063ffffffff16565b805190915015611ee657808060200190518101906131ed91906151bd565b611ee65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161062e565b600082815260208590526040902060070154831461329b5760008281526020859052604090819020600701549051631855b87d60e31b815261062e918591600401918252602082015260400190565b6000828152602085905260408082205485835291206132b990611eeb565b146133075760008381526020859052604090206132d590611eeb565b6000838152602086905260409081902054905163e2e27f8760e01b81526004810192909252602482015260440161062e565b600082815260208590526040808220600990810154868452919092209091015460ff600160481b9283900481169261334192041683613b08565b60ff1614610f6d576000838152602085905260409020600901548390839061337390600160481b900460ff1684613b08565b60008581526020889052604090819020600901549051637e726d1560e01b81526004810194909452602484019290925260ff9081166044840152600160481b90910416606482015260840161062e565b60008060006133d3878786611ccf565b90506001600160401b0385116133e957846133f2565b6001600160401b035b94508085111561343b575050506000838152602085905260409020600901805467ffffffffffffffff60581b1916600160581b6001600160401b03851602179055600182611790565b600097909650945050505050565b600061347e82848660405160200161346391815260200190565b60405160208183030381529060405280519060200120613e11565b90508085146110f85760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f66000000000000000000604482015260640161062e565b60006009820154600160401b900460ff1660018111156134f1576134f16150ab565b14613529576134ff816123e0565b60098201546040516323f8405d60e01b815261062e9291600160401b900460ff16906004016157b0565b60090180546001600160401b03431668ffffffffffffffffff1990911617600160401b179055565b600081815260208390526040812061356890611eeb565b600081815260028501602052604090205490915080156135a557604051630dd7028f60e41b8152600481018490526024810182905260440161062e565b5060009081526002909201602052604090912055565b6000806135c88484611b45565b60008481526020869052604090206005015490915015611d1e576000838152602085905260408082206005810154835281832060099081015460069092015484529190922001546001600160401b03600160581b92839004811692909104168082106136345780613636565b815b6115d390846157c4565b6000600261364e8484615624565b10156136775760405163240a616560e21b8152600481018490526024810183905260440161062e565b6136818383615624565b60020361369a576136938360016157c4565b9050610e4e565b6000836136a8600185615624565b18905060006136b682613eb3565b9050600019811b806136c9600187615624565b169695505050505050565b6000851161371b5760405162461bcd60e51b815260206004820152601460248201527305072652d73697a652063616e6e6f7420626520360641b604482015260640161062e565b8561372583613b60565b146137725760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d617463680000000000604482015260640161062e565b8461377c83613fe2565b146137d35760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f6044820152603760f91b606482015260840161062e565b8285106138225760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a65604482015260640161062e565b6000859050600080613837856000875161403d565b90505b858310156138ef57600061384e8488614199565b9050845183106138955760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161062e565b6138b982828786815181106138ac576138ac6155cc565b602002602001015161427d565b91506001811b6138c981866157c4565b9450878511156138db576138db615a48565b836138e581615637565b945050505061383a565b866138f982613b60565b146139515760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f6044820152611cdd60f21b606482015260840161062e565b8351821461399a5760405162461bcd60e51b8152602060048201526016602482015275496e636f6d706c6574652070726f6f6620757361676560501b604482015260640161062e565b505050505050505050565b6139ad614ae6565b6139ba87878787876147b9565b50604080516101e08101825296875260208701959095529385019290925260608401526080830152600060a0830181905260c0830181905260e0830181905261010083018190526001600160401b0343166101208401526101408301819052610160830181905260ff9091166101808301526101a082018190526101c082015290565b6000610e4e82610180015183600001518460400151856020015186608001518760600151611926565b6005830154151580613a7b5750600683015415155b15613abd57613a89836123e0565b600584015460068501546040516308b0e71d60e41b815260048101939093526024830191909152604482015260640161062e565b6005830191909155600690910155565b613ad5614b60565b60405180604001604052808360000151815260200183602001516002811115613b0057613b006150ab565b905292915050565b600080613b168460016155f8565b9050613b22818461196b565b509392505050565b6060611d1e83600084604051602001613b4591815260200190565b6040516020818303038152906040528051906020012061427d565b600080825111613bab5760405162461bcd60e51b815260206004820152601660248201527522b6b83a3c9036b2b935b6329032bc3830b739b4b7b760511b604482015260640161062e565b604082511115613bfd5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c61726765000000000000604482015260640161062e565b6000805b8351811015613cf2576000848281518110613c1e57613c1e6155cc565b60200260200101519050826000801b03613c8a578015613c855780925060018551613c499190615624565b8214613c8557604051613c6c908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b613cdf565b8015613ca9576040805160208101839052908101849052606001613c6c565b604051613cc6908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080613cea81615637565b915050613c01565b5092915050565b613d01614ae6565b6001600160a01b038316613d285760405163f289e65760e01b815260040160405180910390fd5b6000849003613d4a57604051636932bcfd60e01b815260040160405180910390fd5b613d5789898989896147b9565b604051806101e001604052808a81526020018981526020018881526020018781526020018681526020016000801b81526020016000801b8152602001858152602001846001600160a01b03168152602001436001600160401b0316815260200160006001600160401b0316815260200160006001811115613dda57613dda6150ab565b815260ff84166020820152600060408201819052606090910152905098975050505050505050565b6060611d1b8484600085614849565b8251600090610100811115613e4457604051637ed6198f60e11b815260048101829052610100602482015260440161062e565b8260005b82811015613ea9576000878281518110613e6457613e646155cc565b60200260200101519050816001901b8716600003613e9057826000528060205260406000209250613ea0565b8060005282602052604060002092505b50600101613e48565b5095945050505050565b600081600003613f055760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e74206269747300000000604482015260640161062e565b600160801b8210613f2357608091821c91613f2090826157c4565b90505b600160401b8210613f4157604091821c91613f3e90826157c4565b90505b6401000000008210613f6057602091821c91613f5d90826157c4565b90505b620100008210613f7d57601091821c91613f7a90826157c4565b90505b6101008210613f9957600891821c91613f9690826157c4565b90505b60108210613fb457600491821c91613fb190826157c4565b90505b60048210613fcf57600291821c91613fcc90826157c4565b90505b60028210610ed357610e4e6001826157c4565b600080805b8351811015613cf257838181518110614002576140026155cc565b60200260200101516000801b1461402b5761401e816002615b42565b61402890836157c4565b91505b8061403581615637565b915050613fe7565b60608183106140885760405162461bcd60e51b815260206004820152601760248201527614dd185c9d081b9bdd081b195cdcc81d1a185b88195b99604a1b604482015260640161062e565b83518211156140e35760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e67746044820152600d60fb1b606482015260840161062e565b60006140ef8484615624565b6001600160401b0381111561410657614106615240565b60405190808252806020026020018201604052801561412f578160200160208202803683370190505b509050835b838110156141905785818151811061414e5761414e6155cc565b60200260200101518286836141639190615624565b81518110614173576141736155cc565b60209081029190910101528061418881615637565b915050614134565b50949350505050565b60008183106141e45760405162461bcd60e51b815260206004820152601760248201527614dd185c9d081b9bdd081b195cdcc81d1a185b88195b99604a1b604482015260640161062e565b60006141f1838518613eb3565b90506000600161420183826157c4565b6001901b61420f9190615624565b9050848116848216811561422657611caf8261496f565b801561423557611caf81613eb3565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f0000000000604482015260640161062e565b6060604083106142c05760405162461bcd60e51b815260206004820152600e60248201526d098caeccad840e8dede40d0d2ced60931b604482015260640161062e565b60008290036143115760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d70747920737562747265650000000000604482015260640161062e565b6040845111156143635760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c61726765000000000000604482015260640161062e565b83516000036143e15760006143798460016157c4565b6001600160401b0381111561439057614390615240565b6040519080825280602002602001820160405280156143b9578160200160208202803683370190505b509050828185815181106143cf576143cf6155cc565b60209081029190910101529050611d1e565b8351831061444f5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c6044820152741037b31031bab93932b73a1032bc3830b739b4b7b760591b606482015260840161062e565b81600061445b86613fe2565b9050600061446a866002615b42565b61447490836157c4565b9050600061448183613eb3565b61448a83613eb3565b116144d75787516001600160401b038111156144a8576144a8615240565b6040519080825280602002602001820160405280156144d1578160200160208202803683370190505b50614526565b87516144e49060016157c4565b6001600160401b038111156144fb576144fb615240565b604051908082528060200260200182016040528015614524578160200160208202803683370190505b505b905060408151111561457a5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a65207472656500000000604482015260640161062e565b60005b885181101561471b5787811015614609578881815181106145a0576145a06155cc565b60200260200101516000801b146146045760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e7420626044820152611a5d60f21b606482015260840161062e565b614709565b600085900361464f57888181518110614624576146246155cc565b602002602001015182828151811061463e5761463e6155cc565b602002602001018181525050614709565b888181518110614661576146616155cc565b60200260200101516000801b036146995784828281518110614685576146856155cc565b602090810291909101015260009450614709565b6000801b8282815181106146af576146af6155cc565b6020026020010181815250508881815181106146cd576146cd6155cc565b6020026020010151856040516020016146f0929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b8061471381615637565b91505061457d565b50831561474f578381600183516147329190615624565b81518110614742576147426155cc565b6020026020010181815250505b806001825161475e9190615624565b8151811061476e5761476e6155cc565b60200260200101516000801b036105105760405162461bcd60e51b815260206004820152600f60248201526e4c61737420656e747279207a65726f60881b604482015260640161062e565b60008590036147db5760405163235e76ef60e21b815260040160405180910390fd5b828111614805576040516308183ebd60e21b8152600481018490526024810182905260440161062e565b6000849003614827576040516320f1a0f960e21b815260040160405180910390fd5b60008290036110f857604051635cb6e5bb60e01b815260040160405180910390fd5b6060824710156148aa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161062e565b6001600160a01b0385163b6149015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161062e565b600080866001600160a01b0316858760405161491d9190615b72565b60006040518083038185875af1925050503d806000811461495a576040519150601f19603f3d011682016040523d82523d6000602084013e61495f565b606091505b50915091506105108282866149dc565b60008082116149c05760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e74206269747300000000604482015260640161062e565b600082806149cf600182615624565b16189050611d1e81613eb3565b606083156149eb575081611d1e565b8251156149fb5782518084602001fd5b8160405162461bcd60e51b815260040161062e9190615b8e565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101614a89614b7f565b8152602001614a96614b7f565b905290565b828054828255906000526020600020908101928215614ad6579160200282015b82811115614ad6578235825591602001919060010190614abb565b50614ae2929150614ba6565b5090565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081018290529061016082019081526000602082018190526040820181905260609091015290565b6040518060400160405280614b73614bbb565b81526020016000905290565b6040518060600160405280614b92614bbb565b815260200160008152600060209091015290565b5b80821115614ae25760008155600101614ba7565b6040518060400160405280614bce614bd7565b8152602001614a965b60405180604001604052806002906020820280368337509192915050565b803560ff81168114610ed357600080fd5b60008060008060008060c08789031215614c1f57600080fd5b614c2887614bf5565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b600060208284031215614c6257600080fd5b81356001600160401b03811115614c7857600080fd5b820160c08185031215611d1e57600080fd5b6001600160a01b0381168114614c9f57600080fd5b50565b6001600160401b0381168114614c9f57600080fd5b60008083601f840112614cc957600080fd5b5081356001600160401b03811115614ce057600080fd5b6020830191508360208260051b8501011115614cfb57600080fd5b9250929050565b60008060008060008060008060008060006101408c8e031215614d2457600080fd5b8b35614d2f81614c8a565b9a5060208c0135614d3f81614ca2565b995060408c0135614d4f81614c8a565b985060608c0135975060808c0135965060a08c0135955060c08c0135614d7481614c8a565b945060e08c0135614d8481614c8a565b9350614d936101008d01614bf5565b92506101208c01356001600160401b03811115614daf57600080fd5b614dbb8e828f01614cb7565b915080935050809150509295989b509295989b9093969950565b600060208284031215614de757600080fd5b5035919050565b60038110614c9f57600080fd5b8035610ed381614dee565b600060208284031215614e1857600080fd5b8135611d1e81614dee565b600080600060408486031215614e3857600080fd5b83356001600160401b03811115614e4e57600080fd5b614e5a86828701614cb7565b909790965060209590950135949350505050565b60008060408385031215614e8157600080fd5b8235614e8c81614c8a565b946020939093013593505050565b600080600060608486031215614eaf57600080fd5b505081359360208301359350604090920135919050565b6000806000806000806000878903610120811215614ee357600080fd5b8835975060208901356001600160401b0380821115614f0157600080fd5b908a01906040828d031215614f1557600080fd5b81985060a0603f1984011215614f2a57600080fd5b60408b01975060e08b0135925080831115614f4457600080fd5b614f508c848d01614cb7565b90975095506101008b0135925086915080831115614f6d57600080fd5b5050614f7b8a828b01614cb7565b989b979a50959850939692959293505050565b600080828403610120811215614fa357600080fd5b83359250610100601f1982011215614fba57600080fd5b506020830190509250929050565b600080600080600060a08688031215614fe057600080fd5b614fe986614bf5565b97602087013597506040870135966060810135965060800135945092505050565b6000806000806060858703121561502057600080fd5b843593506020850135925060408501356001600160401b038082111561504557600080fd5b818701915087601f83011261505957600080fd5b81358181111561506857600080fd5b88602082850101111561507a57600080fd5b95989497505060200194505050565b6000806040838503121561509c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b600281106150d1576150d16150ab565b9052565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151615143828501826001600160a01b03169052565b5050610120838101516001600160401b038116848301525050610140838101516001600160401b03811684830152505061016080840151615186828501826150c1565b50506101808381015160ff16908301526101a0808401511515908301526101c0808401516001600160401b03811682850152611cc7565b6000602082840312156151cf57600080fd5b81518015158114611d1e57600080fd5b6000602082840312156151f157600080fd5b611d1e82614bf5565b6000808335601e1984360301811261521157600080fd5b8301803591506001600160401b0382111561522b57600080fd5b602001915036819003821315614cfb57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561527857615278615240565b60405290565b604080519081016001600160401b038111828210171561527857615278615240565b604051601f8201601f191681016001600160401b03811182821017156152c8576152c8615240565b604052919050565b60006001600160401b038211156152e9576152e9615240565b5060051b60200190565b600082601f83011261530457600080fd5b81356020615319615314836152d0565b6152a0565b82815260059290921b8401810191818101908684111561533857600080fd5b8286015b84811015615353578035835291830191830161533c565b509695505050505050565b600082601f83011261536f57600080fd5b61537761527e565b80604084018581111561538957600080fd5b845b81811015612e2157803561539e81614ca2565b84526020938401930161538b565b60008183036101008112156153c057600080fd5b6153c8615256565b915060c08112156153d857600080fd5b6153e0615256565b60808212156153ee57600080fd5b6153f661527e565b915084601f85011261540757600080fd5b61540f61527e565b80604086018781111561542157600080fd5b865b8181101561543b578035845260209384019301615423565b50818552615449888261535e565b602086015250505081815261546060808501614dfb565b602082015260a08401356040820152808352505060c0820135602082015260e0820135604082015292915050565b600080600061022084860312156154a457600080fd5b83356001600160401b038111156154ba57600080fd5b6154c6868287016152f3565b9350506154d685602086016153ac565b91506154e68561012086016153ac565b90509250925092565b80518260005b60028110156155145782518252602092830192909101906001016154f5565b5050506020808201516040840160005b600281101561554a5782516001600160401b031682529183019190830190600101615524565b505050505050565b60038110614c9f57614c9f6150ab565b60006101208201905085825261557c6020830186516154ef565b602085015161558a81615552565b60a08301526040949094015160c082015260e081019290925261010090910152919050565b6000602082840312156155c157600080fd5b8151611d1e81614ca2565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115610e4e57610e4e6155e2565b6020810161561e83615552565b91905290565b81810381811115610e4e57610e4e6155e2565b600060018201615649576156496155e2565b5060010190565b600060c0820190508382528235602083015260208301356040830152604083013561567a81614c8a565b6001600160a01b031660608381019190915283013561569881614ca2565b6001600160401b038082166080850152608085013591506156b882614ca2565b80821660a085015250509392505050565b6000602082840312156156db57600080fd5b8135611d1e81614ca2565b6000602082840312156156f857600080fd5b8151611d1e81614c8a565b8481526101208101602060408682850137606083016040870160005b600281101561574e57813561573381614ca2565b6001600160401b03168352918301919083019060010161571f565b50505050608085013561576081614dee565b61576981615552565b8060a08401525060a085013560c08301528360e08301528261010083015295945050505050565b6001600160401b03828116828216039080821115613cf257613cf26155e2565b82815260408101611d1e60208301846150c1565b80820180821115610e4e57610e4e6155e2565b8082028115828204841417610e4e57610e4e6155e2565b8551815260018060a01b0360208701511660208201526040860151604082015284606082015283608082015260c060a08201528160c0820152818360e0830137600081830160e090810191909152601f909201601f19160101949350505050565b60006020828403121561586157600080fd5b5051919050565b600082601f83011261587957600080fd5b81516020615889615314836152d0565b82815260059290921b840181019181810190868411156158a857600080fd5b8286015b8481101561535357805183529183019183016158ac565b600080604083850312156158d657600080fd5b82516001600160401b03808211156158ed57600080fd5b6158f986838701615868565b9350602085015191508082111561590f57600080fd5b5061591c85828601615868565b9150509250929050565b600060a0820190506159398284516154ef565b602083015161594781615552565b8060808401525092915050565b600080600080600060a0868803121561596c57600080fd5b853594506020860135935060408601356001600160401b038082111561599157600080fd5b61599d89838a016152f3565b945060608801359150808211156159b357600080fd5b6159bf89838a016152f3565b935060808801359150808211156159d557600080fd5b506159e2888289016152f3565b9150509295509295909350565b60008060408385031215615a0257600080fd5b82356001600160401b0380821115615a1957600080fd5b615a25868387016152f3565b93506020850135915080821115615a3b57600080fd5b5061591c858286016152f3565b634e487b7160e01b600052600160045260246000fd5b600181815b80851115615a99578160001904821115615a7f57615a7f6155e2565b80851615615a8c57918102915b93841c9390800290615a63565b509250929050565b600082615ab057506001610e4e565b81615abd57506000610e4e565b8160018114615ad35760028114615add57615af9565b6001915050610e4e565b60ff841115615aee57615aee6155e2565b50506001821b610e4e565b5060208310610133831016604e8410600b8410161715615b1c575081810a610e4e565b615b268383615a5e565b8060001904821115615b3a57615b3a6155e2565b029392505050565b6000611d1e8383615aa1565b60005b83811015615b69578181015183820152602001615b51565b50506000910152565b60008251615b84818460208701615b4e565b9190910192915050565b6020815260008251806020840152615bad816040850160208701615b4e565b601f01601f1916919091016040019291505056fea2646970667358221220be58ff753a772f5eac411153528470a00d3296a9952fd0d965a20c027d345f0664736f6c63430008110033", } // EdgeChallengeManagerABI is the input ABI used to generate the binding from. @@ -2698,7 +2698,7 @@ func (_IAssertionChain *IAssertionChainCallerSession) ValidatorWhitelistDisabled // IEdgeChallengeManagerMetaData contains all meta data concerning the IEdgeChallengeManager contract. var IEdgeChallengeManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bisectionHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"}],\"name\":\"bisectEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"name\":\"calculateEdgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"}],\"name\":\"calculateMutualId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structOneStepData\",\"name\":\"oneStepData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"prevConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"beforeHistoryInclusionProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"afterHistoryInclusionProof\",\"type\":\"bytes32[]\"}],\"name\":\"confirmEdgeByOneStepProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"assertionState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionStateData\",\"name\":\"claimStateData\",\"type\":\"tuple\"}],\"name\":\"confirmEdgeByTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"confirmedRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structCreateEdgeArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createLayerZeroEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"firstRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getEdge\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"lowerChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"upperChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"confirmedAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"enumEdgeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"refunded\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalTimeUnrivaledCache\",\"type\":\"uint64\"}],\"internalType\":\"structChallengeEdge\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumEdgeType\",\"name\":\"eType\",\"type\":\"uint8\"}],\"name\":\"getLayerZeroEndHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getPrevAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasLengthOneRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"hasMadeLayerZeroRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIAssertionChain\",\"name\":\"_assertionChain\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_challengePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"_oneStepProofEntry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20\",\"name\":\"_stakeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_excessStakeReceiver\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"_stakeAmounts\",\"type\":\"uint256[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"edgeIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"multiUpdateTimeCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oneStepProofEntry\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"refundStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"timeUnrivaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimingEdgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bisectionHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"}],\"name\":\"bisectEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"name\":\"calculateEdgeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"}],\"name\":\"calculateMutualId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structOneStepData\",\"name\":\"oneStepData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"prevConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"beforeHistoryInclusionProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"afterHistoryInclusionProof\",\"type\":\"bytes32[]\"}],\"name\":\"confirmEdgeByOneStepProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"assertionState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionStateData\",\"name\":\"claimStateData\",\"type\":\"tuple\"}],\"name\":\"confirmEdgeByTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"confirmedRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"prefixProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"structCreateEdgeArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createLayerZeroEdge\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"edgeLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"firstRival\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getEdge\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"originId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"startHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"startHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"endHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"lowerChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"upperChildId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"confirmedAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"enumEdgeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"refunded\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"totalTimeUnrivaledCache\",\"type\":\"uint64\"}],\"internalType\":\"structChallengeEdge\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enumEdgeType\",\"name\":\"eType\",\"type\":\"uint8\"}],\"name\":\"getLayerZeroEndHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"getPrevAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasLengthOneRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mutualId\",\"type\":\"bytes32\"}],\"name\":\"hasMadeLayerZeroRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"hasRival\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIAssertionChain\",\"name\":\"_assertionChain\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_challengePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"_oneStepProofEntry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20\",\"name\":\"_stakeToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_excessStakeReceiver\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"_stakeAmounts\",\"type\":\"uint256[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"edgeIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"multiUpdateTimeCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oneStepProofEntry\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"refundStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"stakeAmounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"}],\"name\":\"timeUnrivaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByChildren\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"edgeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"claimingEdgeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"maximumCachedTime\",\"type\":\"uint256\"}],\"name\":\"updateTimerCacheByClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IEdgeChallengeManagerABI is the input ABI used to generate the binding from. @@ -3281,6 +3281,68 @@ func (_IEdgeChallengeManager *IEdgeChallengeManagerCallerSession) OneStepProofEn return _IEdgeChallengeManager.Contract.OneStepProofEntry(&_IEdgeChallengeManager.CallOpts) } +// StakeAmounts is a free data retrieval call binding the contract method 0x1c1b4f3a. +// +// Solidity: function stakeAmounts(uint256 ) view returns(uint256) +func (_IEdgeChallengeManager *IEdgeChallengeManagerCaller) StakeAmounts(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var out []interface{} + err := _IEdgeChallengeManager.contract.Call(opts, &out, "stakeAmounts", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// StakeAmounts is a free data retrieval call binding the contract method 0x1c1b4f3a. +// +// Solidity: function stakeAmounts(uint256 ) view returns(uint256) +func (_IEdgeChallengeManager *IEdgeChallengeManagerSession) StakeAmounts(arg0 *big.Int) (*big.Int, error) { + return _IEdgeChallengeManager.Contract.StakeAmounts(&_IEdgeChallengeManager.CallOpts, arg0) +} + +// StakeAmounts is a free data retrieval call binding the contract method 0x1c1b4f3a. +// +// Solidity: function stakeAmounts(uint256 ) view returns(uint256) +func (_IEdgeChallengeManager *IEdgeChallengeManagerCallerSession) StakeAmounts(arg0 *big.Int) (*big.Int, error) { + return _IEdgeChallengeManager.Contract.StakeAmounts(&_IEdgeChallengeManager.CallOpts, arg0) +} + +// StakeToken is a free data retrieval call binding the contract method 0x51ed6a30. +// +// Solidity: function stakeToken() view returns(address) +func (_IEdgeChallengeManager *IEdgeChallengeManagerCaller) StakeToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _IEdgeChallengeManager.contract.Call(opts, &out, "stakeToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// StakeToken is a free data retrieval call binding the contract method 0x51ed6a30. +// +// Solidity: function stakeToken() view returns(address) +func (_IEdgeChallengeManager *IEdgeChallengeManagerSession) StakeToken() (common.Address, error) { + return _IEdgeChallengeManager.Contract.StakeToken(&_IEdgeChallengeManager.CallOpts) +} + +// StakeToken is a free data retrieval call binding the contract method 0x51ed6a30. +// +// Solidity: function stakeToken() view returns(address) +func (_IEdgeChallengeManager *IEdgeChallengeManagerCallerSession) StakeToken() (common.Address, error) { + return _IEdgeChallengeManager.Contract.StakeToken(&_IEdgeChallengeManager.CallOpts) +} + // TimeUnrivaled is a free data retrieval call binding the contract method 0x3e35f5e8. // // Solidity: function timeUnrivaled(bytes32 edgeId) view returns(uint256) diff --git a/solgen/go/express_lane_auctiongen/BUILD.bazel b/solgen/go/express_lane_auctiongen/BUILD.bazel new file mode 100644 index 000000000..fb157f5a6 --- /dev/null +++ b/solgen/go/express_lane_auctiongen/BUILD.bazel @@ -0,0 +1,16 @@ +load("@rules_go//go:def.bzl", "go_library") + +go_library( + name = "express_lane_auctiongen", + srcs = ["express_lane_auctiongen.go"], + importpath = "github.com/offchainlabs/bold/solgen/go/express_lane_auctiongen", + visibility = ["//visibility:public"], + deps = [ + "@com_github_ethereum_go_ethereum//:go-ethereum", + "@com_github_ethereum_go_ethereum//accounts/abi", + "@com_github_ethereum_go_ethereum//accounts/abi/bind", + "@com_github_ethereum_go_ethereum//common", + "@com_github_ethereum_go_ethereum//core/types", + "@com_github_ethereum_go_ethereum//event", + ], +) diff --git a/solgen/go/express_lane_auctiongen/express_lane_auctiongen.go b/solgen/go/express_lane_auctiongen/express_lane_auctiongen.go new file mode 100644 index 000000000..f3eb8e2b9 --- /dev/null +++ b/solgen/go/express_lane_auctiongen/express_lane_auctiongen.go @@ -0,0 +1,7693 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package express_lane_auctiongen + +import ( + "errors" + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = errors.New + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription + _ = abi.ConvertType +) + +// Bid is an auto generated low-level Go binding around an user-defined struct. +type Bid struct { + ExpressLaneController common.Address + Amount *big.Int + Signature []byte +} + +// ELCRound is an auto generated low-level Go binding around an user-defined struct. +type ELCRound struct { + ExpressLaneController common.Address + Round uint64 +} + +// InitArgs is an auto generated low-level Go binding around an user-defined struct. +type InitArgs struct { + Auctioneer common.Address + BiddingToken common.Address + Beneficiary common.Address + RoundTimingInfo RoundTimingInfo + MinReservePrice *big.Int + AuctioneerAdmin common.Address + MinReservePriceSetter common.Address + ReservePriceSetter common.Address + ReservePriceSetterAdmin common.Address + BeneficiarySetter common.Address + RoundTimingSetter common.Address + MasterAdmin common.Address +} + +// RoundTimingInfo is an auto generated low-level Go binding around an user-defined struct. +type RoundTimingInfo struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +} + +// Transferor is an auto generated low-level Go binding around an user-defined struct. +type Transferor struct { + Addr common.Address + FixedUntilRound uint64 +} + +// BalanceLibMetaData contains all meta data concerning the BalanceLib contract. +var BalanceLibMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220301bbe798c874e41585214eb8f3ae9d8921c3c8b36a26d0a38d6d83db6b852be64736f6c63430008110033", +} + +// BalanceLibABI is the input ABI used to generate the binding from. +// Deprecated: Use BalanceLibMetaData.ABI instead. +var BalanceLibABI = BalanceLibMetaData.ABI + +// BalanceLibBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use BalanceLibMetaData.Bin instead. +var BalanceLibBin = BalanceLibMetaData.Bin + +// DeployBalanceLib deploys a new Ethereum contract, binding an instance of BalanceLib to it. +func DeployBalanceLib(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BalanceLib, error) { + parsed, err := BalanceLibMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BalanceLibBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &BalanceLib{BalanceLibCaller: BalanceLibCaller{contract: contract}, BalanceLibTransactor: BalanceLibTransactor{contract: contract}, BalanceLibFilterer: BalanceLibFilterer{contract: contract}}, nil +} + +// BalanceLib is an auto generated Go binding around an Ethereum contract. +type BalanceLib struct { + BalanceLibCaller // Read-only binding to the contract + BalanceLibTransactor // Write-only binding to the contract + BalanceLibFilterer // Log filterer for contract events +} + +// BalanceLibCaller is an auto generated read-only Go binding around an Ethereum contract. +type BalanceLibCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BalanceLibTransactor is an auto generated write-only Go binding around an Ethereum contract. +type BalanceLibTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BalanceLibFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type BalanceLibFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BalanceLibSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type BalanceLibSession struct { + Contract *BalanceLib // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BalanceLibCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type BalanceLibCallerSession struct { + Contract *BalanceLibCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// BalanceLibTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type BalanceLibTransactorSession struct { + Contract *BalanceLibTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BalanceLibRaw is an auto generated low-level Go binding around an Ethereum contract. +type BalanceLibRaw struct { + Contract *BalanceLib // Generic contract binding to access the raw methods on +} + +// BalanceLibCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type BalanceLibCallerRaw struct { + Contract *BalanceLibCaller // Generic read-only contract binding to access the raw methods on +} + +// BalanceLibTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type BalanceLibTransactorRaw struct { + Contract *BalanceLibTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewBalanceLib creates a new instance of BalanceLib, bound to a specific deployed contract. +func NewBalanceLib(address common.Address, backend bind.ContractBackend) (*BalanceLib, error) { + contract, err := bindBalanceLib(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &BalanceLib{BalanceLibCaller: BalanceLibCaller{contract: contract}, BalanceLibTransactor: BalanceLibTransactor{contract: contract}, BalanceLibFilterer: BalanceLibFilterer{contract: contract}}, nil +} + +// NewBalanceLibCaller creates a new read-only instance of BalanceLib, bound to a specific deployed contract. +func NewBalanceLibCaller(address common.Address, caller bind.ContractCaller) (*BalanceLibCaller, error) { + contract, err := bindBalanceLib(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BalanceLibCaller{contract: contract}, nil +} + +// NewBalanceLibTransactor creates a new write-only instance of BalanceLib, bound to a specific deployed contract. +func NewBalanceLibTransactor(address common.Address, transactor bind.ContractTransactor) (*BalanceLibTransactor, error) { + contract, err := bindBalanceLib(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BalanceLibTransactor{contract: contract}, nil +} + +// NewBalanceLibFilterer creates a new log filterer instance of BalanceLib, bound to a specific deployed contract. +func NewBalanceLibFilterer(address common.Address, filterer bind.ContractFilterer) (*BalanceLibFilterer, error) { + contract, err := bindBalanceLib(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BalanceLibFilterer{contract: contract}, nil +} + +// bindBalanceLib binds a generic wrapper to an already deployed contract. +func bindBalanceLib(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BalanceLibMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BalanceLib *BalanceLibRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BalanceLib.Contract.BalanceLibCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BalanceLib *BalanceLibRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BalanceLib.Contract.BalanceLibTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BalanceLib *BalanceLibRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BalanceLib.Contract.BalanceLibTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_BalanceLib *BalanceLibCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _BalanceLib.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_BalanceLib *BalanceLibTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _BalanceLib.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_BalanceLib *BalanceLibTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _BalanceLib.Contract.contract.Transact(opts, method, params...) +} + +// BurnerMetaData contains all meta data concerning the Burner contract. +var BurnerMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contractERC20BurnableUpgradeable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60a060405234801561001057600080fd5b506040516102a33803806102a383398101604081905261002f91610067565b6001600160a01b0381166100565760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0316608052610097565b60006020828403121561007957600080fd5b81516001600160a01b038116811461009057600080fd5b9392505050565b6080516101ec6100b760003960008181604a015260c301526101ec6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806344df8e701461003b578063fc0c546a14610045575b600080fd5b610043610095565b005b61006c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906342966c689082906370a0823190602401602060405180830381865afa158015610127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014b919061019d565b6040518263ffffffff1660e01b815260040161016991815260200190565b600060405180830381600087803b15801561018357600080fd5b505af1158015610197573d6000803e3d6000fd5b50505050565b6000602082840312156101af57600080fd5b505191905056fea2646970667358221220151b7bb5a8b8e838041af342c4b353932ddaf5692053ccf3784e39b4e1d561ee64736f6c63430008110033", +} + +// BurnerABI is the input ABI used to generate the binding from. +// Deprecated: Use BurnerMetaData.ABI instead. +var BurnerABI = BurnerMetaData.ABI + +// BurnerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use BurnerMetaData.Bin instead. +var BurnerBin = BurnerMetaData.Bin + +// DeployBurner deploys a new Ethereum contract, binding an instance of Burner to it. +func DeployBurner(auth *bind.TransactOpts, backend bind.ContractBackend, _token common.Address) (common.Address, *types.Transaction, *Burner, error) { + parsed, err := BurnerMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BurnerBin), backend, _token) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Burner{BurnerCaller: BurnerCaller{contract: contract}, BurnerTransactor: BurnerTransactor{contract: contract}, BurnerFilterer: BurnerFilterer{contract: contract}}, nil +} + +// Burner is an auto generated Go binding around an Ethereum contract. +type Burner struct { + BurnerCaller // Read-only binding to the contract + BurnerTransactor // Write-only binding to the contract + BurnerFilterer // Log filterer for contract events +} + +// BurnerCaller is an auto generated read-only Go binding around an Ethereum contract. +type BurnerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BurnerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type BurnerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BurnerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type BurnerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// BurnerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type BurnerSession struct { + Contract *Burner // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BurnerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type BurnerCallerSession struct { + Contract *BurnerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// BurnerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type BurnerTransactorSession struct { + Contract *BurnerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// BurnerRaw is an auto generated low-level Go binding around an Ethereum contract. +type BurnerRaw struct { + Contract *Burner // Generic contract binding to access the raw methods on +} + +// BurnerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type BurnerCallerRaw struct { + Contract *BurnerCaller // Generic read-only contract binding to access the raw methods on +} + +// BurnerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type BurnerTransactorRaw struct { + Contract *BurnerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewBurner creates a new instance of Burner, bound to a specific deployed contract. +func NewBurner(address common.Address, backend bind.ContractBackend) (*Burner, error) { + contract, err := bindBurner(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Burner{BurnerCaller: BurnerCaller{contract: contract}, BurnerTransactor: BurnerTransactor{contract: contract}, BurnerFilterer: BurnerFilterer{contract: contract}}, nil +} + +// NewBurnerCaller creates a new read-only instance of Burner, bound to a specific deployed contract. +func NewBurnerCaller(address common.Address, caller bind.ContractCaller) (*BurnerCaller, error) { + contract, err := bindBurner(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &BurnerCaller{contract: contract}, nil +} + +// NewBurnerTransactor creates a new write-only instance of Burner, bound to a specific deployed contract. +func NewBurnerTransactor(address common.Address, transactor bind.ContractTransactor) (*BurnerTransactor, error) { + contract, err := bindBurner(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &BurnerTransactor{contract: contract}, nil +} + +// NewBurnerFilterer creates a new log filterer instance of Burner, bound to a specific deployed contract. +func NewBurnerFilterer(address common.Address, filterer bind.ContractFilterer) (*BurnerFilterer, error) { + contract, err := bindBurner(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &BurnerFilterer{contract: contract}, nil +} + +// bindBurner binds a generic wrapper to an already deployed contract. +func bindBurner(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := BurnerMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Burner *BurnerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Burner.Contract.BurnerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Burner *BurnerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Burner.Contract.BurnerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Burner *BurnerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Burner.Contract.BurnerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Burner *BurnerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Burner.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Burner *BurnerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Burner.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Burner *BurnerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Burner.Contract.contract.Transact(opts, method, params...) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() view returns(address) +func (_Burner *BurnerCaller) Token(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _Burner.contract.Call(opts, &out, "token") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() view returns(address) +func (_Burner *BurnerSession) Token() (common.Address, error) { + return _Burner.Contract.Token(&_Burner.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() view returns(address) +func (_Burner *BurnerCallerSession) Token() (common.Address, error) { + return _Burner.Contract.Token(&_Burner.CallOpts) +} + +// Burn is a paid mutator transaction binding the contract method 0x44df8e70. +// +// Solidity: function burn() returns() +func (_Burner *BurnerTransactor) Burn(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Burner.contract.Transact(opts, "burn") +} + +// Burn is a paid mutator transaction binding the contract method 0x44df8e70. +// +// Solidity: function burn() returns() +func (_Burner *BurnerSession) Burn() (*types.Transaction, error) { + return _Burner.Contract.Burn(&_Burner.TransactOpts) +} + +// Burn is a paid mutator transaction binding the contract method 0x44df8e70. +// +// Solidity: function burn() returns() +func (_Burner *BurnerTransactorSession) Burn() (*types.Transaction, error) { + return _Burner.Contract.Burn(&_Burner.TransactOpts) +} + +// ExpressLaneAuctionMetaData contains all meta data concerning the ExpressLaneAuction contract. +var ExpressLaneAuctionMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[],\"name\":\"AuctionNotClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BidsWrongOrder\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"name\":\"FixedTransferor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountRequested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountRequested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalanceAcc\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"currentRound\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"newRound\",\"type\":\"uint64\"}],\"name\":\"InvalidNewRound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"currentStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"newStart\",\"type\":\"uint64\"}],\"name\":\"InvalidNewStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeOffset\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int64\",\"name\":\"roundStart\",\"type\":\"int64\"}],\"name\":\"NegativeRoundStart\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotExpressLaneController\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"expectedTransferor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"NotTransferor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NothingToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReserveBlackout\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reservePrice\",\"type\":\"uint256\"}],\"name\":\"ReservePriceNotMet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reservePrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReservePrice\",\"type\":\"uint256\"}],\"name\":\"ReservePriceTooLow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"RoundAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RoundDurationTooShort\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"RoundNotResolved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"}],\"name\":\"RoundTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currentRound\",\"type\":\"uint64\"}],\"name\":\"RoundTooOld\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SameBidder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TieBidsWrongOrder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalMaxRound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAuctionClosingSeconds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroBiddingToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isMultiBidAuction\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstPriceBidder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstPriceExpressLaneController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPriceAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundStartTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundEndTimestamp\",\"type\":\"uint64\"}],\"name\":\"AuctionResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"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\":false,\"internalType\":\"address\",\"name\":\"oldBeneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBeneficiary\",\"type\":\"address\"}],\"name\":\"SetBeneficiary\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousExpressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newExpressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTimestamp\",\"type\":\"uint64\"}],\"name\":\"SetExpressLaneController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"SetMinReservePrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldReservePrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReservePrice\",\"type\":\"uint256\"}],\"name\":\"SetReservePrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"currentRound\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"name\":\"SetRoundTimingInfo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"name\":\"SetTransferor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawalAmount\",\"type\":\"uint256\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawalAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roundWithdrawable\",\"type\":\"uint256\"}],\"name\":\"WithdrawalInitiated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AUCTIONEER_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTIONEER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BENEFICIARY_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_RESERVE_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESERVE_SETTER_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESERVE_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_TIMING_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"balanceOfAtRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiaryBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"biddingToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizeWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flushBeneficiaryBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getBidHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_auctioneer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_biddingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"internalType\":\"structRoundTimingInfo\",\"name\":\"_roundTimingInfo\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_minReservePrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_auctioneerAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_minReservePriceSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_reservePriceSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_reservePriceSetterAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiarySetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_roundTimingSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_masterAdmin\",\"type\":\"address\"}],\"internalType\":\"structInitArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiateWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isAuctionRoundClosed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReserveBlackout\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minReservePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reservePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"firstPriceBid\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"secondPriceBid\",\"type\":\"tuple\"}],\"name\":\"resolveMultiBidAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"firstPriceBid\",\"type\":\"tuple\"}],\"name\":\"resolveSingleBidAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedRounds\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"internalType\":\"structELCRound\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"internalType\":\"structELCRound\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"roundTimestamps\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundTimingInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBeneficiary\",\"type\":\"address\"}],\"name\":\"setBeneficiary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinReservePrice\",\"type\":\"uint256\"}],\"name\":\"setMinReservePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newReservePrice\",\"type\":\"uint256\"}],\"name\":\"setReservePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"internalType\":\"structRoundTimingInfo\",\"name\":\"newRoundTimingInfo\",\"type\":\"tuple\"}],\"name\":\"setRoundTimingInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"internalType\":\"structTransferor\",\"name\":\"transferor\",\"type\":\"tuple\"}],\"name\":\"setTransferor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newExpressLaneController\",\"type\":\"address\"}],\"name\":\"transferExpressLaneController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"transferorOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"withdrawableBalanceAtRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60a06040523060805234801561001457600080fd5b506080516147d7610030600039600061173901526147d76000f3fe608060405234801561001057600080fd5b50600436106103145760003560e01c80637b617f94116101a7578063c5b6aa2f116100ee578063e2fc6f6811610097578063e4d20c1d11610071578063e4d20c1d146107de578063f698da25146107f1578063fed87be8146107f957600080fd5b8063e2fc6f68146107a5578063e3f7bb55146107af578063e460d2c5146107d657600080fd5b8063cfe9232b116100c8578063cfe9232b14610761578063d547741f14610788578063db2e1eed1461079b57600080fd5b8063c5b6aa2f14610733578063ca15c8731461073b578063ce9c7c0d1461074e57600080fd5b80639a1fadd311610150578063b51d1d4f1161012a578063b51d1d4f14610705578063b6b55f251461070d578063bef0ec741461072057600080fd5b80639a1fadd3146106c3578063a217fddf146106d6578063b3ee252f146106de57600080fd5b80638a19c8bc116101815780638a19c8bc146106565780639010d07c1461067757806391d148541461068a57600080fd5b80637b617f94146105f157806383af0a1f146106255780638948cc4e1461062f57600080fd5b80632f2ff15d1161026b578063639d7566116102145780636dc4fc4e116101ee5780636dc4fc4e146105b85780636e8cace5146105cb57806370a08231146105de57600080fd5b8063639d7566146105375780636a514beb1461054b5780636ad72517146105b057600080fd5b806338af3eed1161024557806338af3eed146104e5578063447a709e146105115780635633c3371461052457600080fd5b80632f2ff15d14610498578063336a5b5e146104ab57806336568abe146104d257600080fd5b80630d253fbe116102cd5780631c31f710116102a75780631c31f7101461045a578063248a9ca31461046d5780632d668ce71461049057600080fd5b80630d253fbe146103f657806314d963161461040c5780631682e50b1461043357600080fd5b806301ffc9a7116102fe57806301ffc9a71461039f57806302b62938146103c257806304c584ad146103e357600080fd5b80627be2fe146103195780630152682d1461032e575b600080fd5b61032c610327366004613e9b565b61080c565b005b6101045461036590600781900b9067ffffffffffffffff600160401b8204811691600160801b8104821691600160c01b9091041684565b6040805160079590950b855267ffffffffffffffff9384166020860152918316918401919091521660608201526080015b60405180910390f35b6103b26103ad366004613ed4565b610ab2565b6040519015158152602001610396565b6103d56103d0366004613efe565b610af6565b604051908152602001610396565b6103d56103f1366004613f1b565b610b6f565b6103fe610bf0565b604051610396929190613f5c565b6103d57f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f65826181565b6103d57f6d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256f81565b61032c610468366004613efe565b610cb1565b6103d561047b366004613faa565b60009081526065602052604090206001015490565b6103b2610d54565b61032c6104a6366004613fc3565b610db0565b6103d57fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf476181565b61032c6104e0366004613fc3565b610dda565b610100546104f9906001600160a01b031681565b6040516001600160a01b039091168152602001610396565b61032c61051f366004614000565b610e66565b6103d5610532366004614064565b611145565b610101546104f9906001600160a01b031681565b610588610559366004613efe565b610106602052600090815260409020546001600160a01b03811690600160a01b900467ffffffffffffffff1682565b604080516001600160a01b03909316835267ffffffffffffffff909116602083015201610396565b61032c611275565b61032c6105c6366004614092565b6112c3565b6103d56105d9366004614064565b61142b565b6103d56105ec366004613efe565b611515565b6106046105ff3660046140cf565b61158e565b6040805167ffffffffffffffff938416815292909116602083015201610396565b6103d56101035481565b6103d57fb07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d14181565b61065e6115f1565b60405167ffffffffffffffff9091168152602001610396565b6104f96106853660046140ec565b611648565b6103b2610698366004613fc3565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61032c6106d136600461410e565b611660565b6103d5600081565b6103d57f19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf981565b61032c611c2b565b61032c61071b366004613faa565b611cf3565b61032c61072e366004614121565b611d5e565b61032c611ec4565b6103d5610749366004613faa565b611f81565b61032c61075c366004613faa565b611f98565b6103d57f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a781565b61032c610796366004613fc3565b612070565b6103d56101025481565b6103d56101055481565b6103d57fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a9681565b6103b2612095565b61032c6107ec366004613faa565b61210a565b6103d561218b565b61032c610807366004614133565b612195565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061086282612348565b90508067ffffffffffffffff168467ffffffffffffffff1610156108cb576040517f395f4fd600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8086166004830152821660248201526044015b60405180910390fd5b60006108d860fe8661237e565b80546001600160a01b039081166000818152610106602052604090205492935091168015610968576001600160a01b0381163314610963576040517f7621d94a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff881660048201526001600160a01b03821660248201523360448201526064016108c2565b6109cb565b6001600160a01b03821633146109cb576040517f660af6d200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff881660048201526001600160a01b03831660248201523360448201526064016108c2565b825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387161783556000806109fe878a61241d565b90925090506001600160a01b038316610a175783610a19565b825b6001600160a01b0316886001600160a01b0316856001600160a01b03167fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b8c4267ffffffffffffffff168767ffffffffffffffff1610610a795786610a7b565b425b6040805167ffffffffffffffff938416815291831660208301529187168183015290519081900360600190a4505050505050505050565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610af05750610af0826124b5565b92915050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610af090610b5190612348565b6001600160a01b038416600090815260fd602052604090209061251c565b604080517f0358b2b705d5c5ef47651be44f418326852a390f3b4c933661a5f4f0d8fa1ee3602082015267ffffffffffffffff8516918101919091526001600160a01b038316606082015260808101829052600090610be69060a00160405160208183030381529060405280519060200120612546565b90505b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260fe60010154600160a01b900467ffffffffffffffff1660fe60000154600160a01b900467ffffffffffffffff1611610c545760ff60fe610c59565b60fe60ff5b60408051808201825292546001600160a01b03808216855267ffffffffffffffff600160a01b928390048116602080880191909152845180860190955294549182168452919004169181019190915290939092509050565b7fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf4761610cdb816125af565b61010054604080516001600160a01b03928316815291841660208301527f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6910160405180910390a150610100805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610dab906125b9565b905090565b600082815260656020526040902060010154610dcb816125af565b610dd58383612625565b505050565b6001600160a01b0381163314610e585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016108c2565b610e628282612647565b5050565b7f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7610e90816125af565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152610ee4816125b9565b610f1a576040517fb9adeefd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826020013584602001351015610f5c576040517fa234cb1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101025483602001351015610faf57610102546040517f56f9b75a0000000000000000000000000000000000000000000000000000000081526020850135600482015260248101919091526044016108c2565b6000610fba82612348565b90506000610fc9826001614171565b9050600080610fe0610fda89614202565b84612669565b91509150600080610ffa89610ff490614202565b86612669565b91509150816001600160a01b0316846001600160a01b031603611049576040517ff4a3e48500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b88602001358a602001351480156110db57506040516bffffffffffffffffffffffff19606084901b1660208201526034810182905260540160408051808303601f190181529082905280516020918201206bffffffffffffffffffffffff19606088901b169183019190915260348201859052906054016040516020818303038152906040528051906020012060001c105b15611112576040517f9185a0ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061111f898861241d565b9150915061113760018d888e602001358c8787612760565b505050505050505050505050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061119c90612348565b67ffffffffffffffff168267ffffffffffffffff161015611253576040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152829061120d90612348565b6040517f395f4fd600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9283166004820152911660248201526044016108c2565b6001600160a01b038316600090815260fd60205260409020610be990836128b8565b61010554600081900361129b57604051631f2a200560e01b815260040160405180910390fd5b60006101055561010054610101546112c0916001600160a01b039182169116836128d0565b50565b7f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a76112ed816125af565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611341816125b9565b611377576040517fb9adeefd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010254836020013510156113ca57610102546040517f56f9b75a0000000000000000000000000000000000000000000000000000000081526020850135600482015260248101919091526044016108c2565b60006113d582612348565b905060006113e4826001614171565b905060006113fa6113f487614202565b83612669565b50905060008061140a868561241d565b915091506114216000898561010254898787612760565b5050505050505050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009061148290612348565b67ffffffffffffffff168267ffffffffffffffff1610156114f3576040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152829061120d90612348565b6001600160a01b038316600090815260fd60205260409020610be9908361251c565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610af09061157090612348565b6001600160a01b038416600090815260fd60205260409020906128b8565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004909116606082015260009081906115e8908461241d565b91509150915091565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090610dab90612348565b6000828152609760205260408120610be99083612961565b600054610100900460ff16158080156116805750600054600160ff909116105b8061169a5750303b15801561169a575060005460ff166001145b61170c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108c2565b6000805460ff19166001179055801561172f576000805461ff0019166101001790555b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036117cd5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016108c2565b6117d561296d565b6118496040518060400160405280601281526020017f457870726573734c616e6541756374696f6e00000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506129ec565b600061185b6040840160208501613efe565b6001600160a01b03160361189b576040517f3fb3c7af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118ab6040830160208401613efe565b610101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556118e96060830160408401613efe565b610100805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557f8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6600061194a6060850160408601613efe565b604080516001600160a01b0393841681529290911660208301520160405180910390a160e0820135610103819055604080516000815260208101929092527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a160e0820135610102819055604080516000815260208101929092527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a16000611a0b60808401606085016142ca565b60070b1215611a46576040517f16f46dfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a5282606001612a73565b611a6e6000611a696101e085016101c08601613efe565b612625565b611aa47fb07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141611a6961014085016101208601613efe565b611ada7fc1b97c934675624ef2089089ac12ae8922988c11dc8a578dfbac10d9eecf4761611a696101a085016101808601613efe565b611b437f1d693f62a755e2b3c6494da41af454605b9006057cb3c79b6adda1378f2a50a7611b0b6020850185613efe565b7f3fb9f0655b78e8eabe9e0f51d65db56c7690d4329012c3faf1fbd6d43f658261611b3e61012087016101008801613efe565b612c82565b611bac7f19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf9611b7961016085016101408601613efe565b7fa8131bb4589277d6866d942849029b416b39e61eb3969a32787130bbdd292a96611b3e61018087016101608801613efe565b611be27f6d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256f611a696101c085016101a08601613efe565b8015610e62576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611c8290612348565b611c8d906002614171565b33600090815260fd602052604090208054919250611cab9083612ca6565b6040805182815267ffffffffffffffff8416602082015233917f31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401910160405180910390a25050565b33600090815260fd60205260409020611d0c9082612d83565b61010154611d25906001600160a01b0316333084612df5565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526101066020526040902080546001600160a01b031615801590611df157506040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152611dd690612348565b815467ffffffffffffffff918216600160a01b909104909116115b15611e3d5780546040517f75d899f2000000000000000000000000000000000000000000000000000000008152600160a01b90910467ffffffffffffffff1660048201526024016108c2565b336000908152610106602052604090208290611e5982826142e7565b50611e6990506020830183613efe565b6001600160a01b0316337ff6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0611ea460408601602087016140cf565b60405167ffffffffffffffff909116815260200160405180910390a35050565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600090611f3490611f1f90612348565b33600090815260fd6020526040902090612e46565b61010154909150611f4f906001600160a01b031633836128d0565b60405181815233907f9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda890602001611d53565b6000818152609760205260408120610af090612ee8565b7f19e6f23df7275b48d1c33822c6ad041a743378552246ac819f578ae1d6709cf9611fc2816125af565b6000611fce60fe612ef2565b5080546040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004821660608201529293506120309291600160a01b900416612f36565b15612067576040517f4f00697800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dd583612fef565b60008281526065602052604090206001015461208b816125af565b610dd58383612647565b6000806120a260fe612ef2565b5080546040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b9004821660608201529293506121049291600160a01b900416612f36565b91505090565b7fb07567e7223e21f7dce4c0a89131ce9c32d0d3484085f3f331dea8caef56d141612134816125af565b6101035460408051918252602082018490527f5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0910160405180910390a161010382905561010254821115610e6257610e6282612fef565b6000610dab61307e565b7f6d8dad7188c7ed005c55bf77fbf589583d8668b0dad30a9b9dd016321a5c256f6121bf816125af565b6040805160808101825261010454600781900b825267ffffffffffffffff600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152600061221582612348565b9050600061223061222b36879003870187614363565b612348565b90508067ffffffffffffffff168267ffffffffffffffff1614612293576040517f68c18ca900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8084166004830152821660248201526044016108c2565b60006122aa6122a3846001614171565b859061241d565b50905060006122d26122bd846001614171565b6122cc368a90038a018a614363565b9061241d565b5090508067ffffffffffffffff168267ffffffffffffffff1614612336576040517fa0e269d800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8084166004830152821660248201526044016108c2565b61233f87612a73565b50505050505050565b8051600090600790810b4290910b121561236457506000919050565b60208201518251612374906130f9565b610af091906143fe565b600067ffffffffffffffff821683820154600160a01b900467ffffffffffffffff16036123b1578260005b019050610af0565b67ffffffffffffffff82168360010154600160a01b900467ffffffffffffffff16036123df578260016123a9565b6040517ffbb052d800000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016108c2565b60008060008385602001516124329190614425565b855161243e9190614451565b905060008160070b1215612484576040517ff160ad79000000000000000000000000000000000000000000000000000000008152600782900b60048201526024016108c2565b6020850151819060009060019061249b9084614171565b6124a59190614480565b91945090925050505b9250929050565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610af057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610af0565b600182015460009067ffffffffffffffff9081169083161015612540576000610be9565b50505490565b6000610af061255361307e565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6112c08133613105565b8051600090600790810b4290910b12156125d557506000919050565b60006125e483600001516130f9565b905060008360200151826125f891906144a1565b90508360400151846020015161260e9190614480565b67ffffffffffffffff908116911610159392505050565b61262f8282613185565b6000828152609760205260409020610dd59082613227565b612651828261323c565b6000828152609760205260409020610dd590826132bf565b60008060006126818486600001518760200151610b6f565b9050600061269c8660400151836132d490919063ffffffff16565b905060006126ab600187614480565b6020808901516001600160a01b038516600090815260fd9092526040909120919250906126d890836128b8565b1015612755576020808801516001600160a01b038416600090815260fd909252604090912083919061270a90846128b8565b6040517f36b24c140000000000000000000000000000000000000000000000000000000081526001600160a01b039093166004840152602483019190915260448201526064016108c2565b509590945092505050565b600061276d846001614171565b90506127898161278060208a018a613efe565b60fe91906132f8565b6001600160a01b038616600090815260fd602052604090206127ac9086866133e8565b8461010560008282546127bf91906144c8565b90915550600090506127d46020890189613efe565b6040805167ffffffffffffffff8581168252878116602083015286168183015290516001600160a01b0392909216916000917fb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b919081900360600190a461283e6020880188613efe565b6040805167ffffffffffffffff848116825260208b8101359083015281830189905286811660608301528516608082015290516001600160a01b03928316928916918b1515917f7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d479181900360a00190a45050505050505050565b60006128c4838361251c565b8354610be991906144db565b6040516001600160a01b038316602482015260448101829052610dd59084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152613462565b6000610be98383613547565b600054610100900460ff166129ea5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c2565b565b600054610100900460ff16612a695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c2565b610e628282613571565b612a8360608201604083016140cf565b67ffffffffffffffff16600003612ac6576040517f047bad5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b62015180612ada60408301602084016140cf565b67ffffffffffffffff161115612b3957612afa60408201602083016140cf565b6040517fc34a76cf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016108c2565b612b4960408201602083016140cf565b67ffffffffffffffff16612b6360608301604084016140cf565b612b7360808401606085016140cf565b612b7d9190614171565b67ffffffffffffffff161115612bbf576040517f326de36000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80610104612bcd82826144ee565b507f982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd479050612c0361222b36849003840184614363565b612c1060208401846142ca565b612c2060408501602086016140cf565b612c3060608601604087016140cf565b612c4060808701606088016140cf565b6040805167ffffffffffffffff968716815260079590950b6020860152928516848401529084166060840152909216608082015290519081900360a00190a150565b612c8c8484612625565b612c968282612625565b612ca08483613608565b50505050565b8154600003612cc857604051631f2a200560e01b815260040160405180910390fd5b67fffffffffffffffe1967ffffffffffffffff821601612d14576040517f3d89ddde00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600182015467ffffffffffffffff90811614612d5c576040517f04eb6b3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600191909101805467ffffffffffffffff191667ffffffffffffffff909216919091179055565b80600003612da457604051631f2a200560e01b815260040160405180910390fd5b600182015467ffffffffffffffff90811614612dd85760018201805467ffffffffffffffff191667ffffffffffffffff1790555b80826000016000828254612dec91906144c8565b90915550505050565b6040516001600160a01b0380851660248301528316604482015260648101829052612ca09085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401612915565b600067fffffffffffffffe1967ffffffffffffffff831601612e94576040517f3d89ddde00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ea0848461251c565b905080600003612edc576040517fd0d04f6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008455905092915050565b6000610af0825490565b60008080838101905060008460010154825467ffffffffffffffff600160a01b92839004811692909104161015612f2c5750506001808401905b9094909350915050565b8151600090600790810b4290910b1215612f5257506000610af0565b6000612f5d84612348565b9050612f6a816001614171565b67ffffffffffffffff168367ffffffffffffffff1610612f8e576000915050610af0565b6000612f9d85600001516130f9565b90506000856020015182612fb191906144a1565b9050856060015186604001518760200151612fcc9190614480565b612fd69190614480565b67ffffffffffffffff9081169116101595945050505050565b6101035481101561303b57610103546040517fda4f272e0000000000000000000000000000000000000000000000000000000081526108c2918391600401918252602082015260400190565b6101025460408051918252602082018390527f9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794910160405180910390a161010255565b6000610dab7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6130ad60c95490565b60ca546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6000610af082426145e4565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e6257613143816001600160a01b03166014613653565b61314e836020613653565b60405160200161315f929190614637565b60408051601f198184030181529082905262461bcd60e51b82526108c2916004016146b8565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e625760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556131e33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610be9836001600160a01b03841661387c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e625760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610be9836001600160a01b0384166138cb565b60008060006132e385856139c5565b915091506132f081613a07565b509392505050565b60008061330485612ef2565b8154919350915067ffffffffffffffff808616600160a01b9092041610613363576040517f451f873400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024016108c2565b604080518082019091526001600160a01b038416815267ffffffffffffffff8516602082015260018218908660ff8316600281106133a3576133a3614145565b82519101805460209093015167ffffffffffffffff16600160a01b026001600160e01b03199093166001600160a01b0390921691909117919091179055505050505050565b60006133f484836128b8565b905080158061340257508281105b15613443576040517fcf47918100000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016108c2565b8284600001600082825461345791906144db565b909155505050505050565b60006134b7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613bf39092919063ffffffff16565b805190915015610dd557808060200190518101906134d591906146eb565b610dd55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016108c2565b600082600001828154811061355e5761355e614145565b9060005260206000200154905092915050565b600054610100900460ff166135ee5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108c2565b81516020928301208151919092012060c99190915560ca55565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6060600061366283600261470d565b61366d9060026144c8565b67ffffffffffffffff81111561368557613685614192565b6040519080825280601f01601f1916602001820160405280156136af576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106136e6576136e6614145565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061374957613749614145565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061378584600261470d565b6137909060016144c8565b90505b600181111561382d577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106137d1576137d1614145565b1a60f81b8282815181106137e7576137e7614145565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361382681614724565b9050613793565b508315610be95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108c2565b60008181526001830160205260408120546138c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610af0565b506000610af0565b600081815260018301602052604081205480156139b45760006138ef6001836144db565b8554909150600090613903906001906144db565b905081811461396857600086600001828154811061392357613923614145565b906000526020600020015490508087600001848154811061394657613946614145565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061397957613979614759565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610af0565b6000915050610af0565b5092915050565b60008082516041036139fb5760208301516040840151606085015160001a6139ef87828585613c02565b945094505050506124ae565b506000905060026124ae565b6000816004811115613a1b57613a1b61476f565b03613a235750565b6001816004811115613a3757613a3761476f565b03613a845760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108c2565b6002816004811115613a9857613a9861476f565b03613ae55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108c2565b6003816004811115613af957613af961476f565b03613b6c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108c2565b6004816004811115613b8057613b8061476f565b036112c05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108c2565b6060610be68484600085613cef565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613c395750600090506003613ce6565b8460ff16601b14158015613c5157508460ff16601c14155b15613c625750600090506004613ce6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613cb6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613cdf57600060019250925050613ce6565b9150600090505b94509492505050565b606082471015613d675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016108c2565b6001600160a01b0385163b613dbe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108c2565b600080866001600160a01b03168587604051613dda9190614785565b60006040518083038185875af1925050503d8060008114613e17576040519150601f19603f3d011682016040523d82523d6000602084013e613e1c565b606091505b5091509150613e2c828286613e37565b979650505050505050565b60608315613e46575081610be9565b825115613e565782518084602001fd5b8160405162461bcd60e51b81526004016108c291906146b8565b67ffffffffffffffff811681146112c057600080fd5b6001600160a01b03811681146112c057600080fd5b60008060408385031215613eae57600080fd5b8235613eb981613e70565b91506020830135613ec981613e86565b809150509250929050565b600060208284031215613ee657600080fd5b81356001600160e01b031981168114610be957600080fd5b600060208284031215613f1057600080fd5b8135610be981613e86565b600080600060608486031215613f3057600080fd5b8335613f3b81613e70565b92506020840135613f4b81613e86565b929592945050506040919091013590565b82516001600160a01b0316815260208084015167ffffffffffffffff16908201526080810182516001600160a01b03166040830152602083015167ffffffffffffffff166060830152610be9565b600060208284031215613fbc57600080fd5b5035919050565b60008060408385031215613fd657600080fd5b823591506020830135613ec981613e86565b600060608284031215613ffa57600080fd5b50919050565b6000806040838503121561401357600080fd5b823567ffffffffffffffff8082111561402b57600080fd5b61403786838701613fe8565b9350602085013591508082111561404d57600080fd5b5061405a85828601613fe8565b9150509250929050565b6000806040838503121561407757600080fd5b823561408281613e86565b91506020830135613ec981613e70565b6000602082840312156140a457600080fd5b813567ffffffffffffffff8111156140bb57600080fd5b6140c784828501613fe8565b949350505050565b6000602082840312156140e157600080fd5b8135610be981613e70565b600080604083850312156140ff57600080fd5b50508035926020909101359150565b60006101e08284031215613ffa57600080fd5b600060408284031215613ffa57600080fd5b600060808284031215613ffa57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156139be576139be61415b565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156141cb576141cb614192565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156141fa576141fa614192565b604052919050565b60006060823603121561421457600080fd5b61421c6141a8565b823561422781613e86565b815260208381013581830152604084013567ffffffffffffffff8082111561424e57600080fd5b9085019036601f83011261426157600080fd5b81358181111561427357614273614192565b61428584601f19601f840116016141d1565b9150808252368482850101111561429b57600080fd5b808484018584013760009082019093019290925250604082015292915050565b8060070b81146112c057600080fd5b6000602082840312156142dc57600080fd5b8135610be9816142bb565b81356142f281613e86565b6001600160a01b038116905081548173ffffffffffffffffffffffffffffffffffffffff198216178355602084013561432a81613e70565b7bffffffffffffffff00000000000000000000000000000000000000008160a01b16836001600160e01b03198416171784555050505050565b60006080828403121561437557600080fd5b6040516080810181811067ffffffffffffffff8211171561439857614398614192565b60405282356143a6816142bb565b815260208301356143b681613e70565b602082015260408301356143c981613e70565b604082015260608301356143dc81613e70565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff80841680614419576144196143e8565b92169190910492915050565b67ffffffffffffffff8181168382160280821691908281146144495761444961415b565b505092915050565b600781810b9083900b01677fffffffffffffff8113677fffffffffffffff1982121715610af057610af061415b565b67ffffffffffffffff8281168282160390808211156139be576139be61415b565b600067ffffffffffffffff808416806144bc576144bc6143e8565b92169190910692915050565b80820180821115610af057610af061415b565b81810381811115610af057610af061415b565b81356144f9816142bb565b815467ffffffffffffffff82811667ffffffffffffffff198316178455602085013561452481613e70565b6fffffffffffffffff0000000000000000604091821b16919093167fffffffffffffffffffffffffffffffff000000000000000000000000000000008316811782178555928501359061457682613e70565b77ffffffffffffffff000000000000000000000000000000008260801b1691507fffffffffffffffff0000000000000000000000000000000000000000000000008285828616178317178655606087013593506145d284613e70565b93171760c09190911b90911617905550565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff82131715610af057610af061415b565b60005b8381101561462e578181015183820152602001614616565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161466f816017850160208801614613565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516146ac816028840160208801614613565b01602801949350505050565b60208152600082518060208401526146d7816040850160208701614613565b601f01601f19169190910160400192915050565b6000602082840312156146fd57600080fd5b81518015158114610be957600080fd5b8082028115828204841417610af057610af061415b565b6000816147335761473361415b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008251614797818460208701614613565b919091019291505056fea2646970667358221220d28e36b250079b8bbd5de3a12e920ff46340db4c2ca3fd06c26dc1cd2796c9f264736f6c63430008110033", +} + +// ExpressLaneAuctionABI is the input ABI used to generate the binding from. +// Deprecated: Use ExpressLaneAuctionMetaData.ABI instead. +var ExpressLaneAuctionABI = ExpressLaneAuctionMetaData.ABI + +// ExpressLaneAuctionBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ExpressLaneAuctionMetaData.Bin instead. +var ExpressLaneAuctionBin = ExpressLaneAuctionMetaData.Bin + +// DeployExpressLaneAuction deploys a new Ethereum contract, binding an instance of ExpressLaneAuction to it. +func DeployExpressLaneAuction(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ExpressLaneAuction, error) { + parsed, err := ExpressLaneAuctionMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ExpressLaneAuctionBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ExpressLaneAuction{ExpressLaneAuctionCaller: ExpressLaneAuctionCaller{contract: contract}, ExpressLaneAuctionTransactor: ExpressLaneAuctionTransactor{contract: contract}, ExpressLaneAuctionFilterer: ExpressLaneAuctionFilterer{contract: contract}}, nil +} + +// ExpressLaneAuction is an auto generated Go binding around an Ethereum contract. +type ExpressLaneAuction struct { + ExpressLaneAuctionCaller // Read-only binding to the contract + ExpressLaneAuctionTransactor // Write-only binding to the contract + ExpressLaneAuctionFilterer // Log filterer for contract events +} + +// ExpressLaneAuctionCaller is an auto generated read-only Go binding around an Ethereum contract. +type ExpressLaneAuctionCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExpressLaneAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ExpressLaneAuctionTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExpressLaneAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ExpressLaneAuctionFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ExpressLaneAuctionSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ExpressLaneAuctionSession struct { + Contract *ExpressLaneAuction // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ExpressLaneAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ExpressLaneAuctionCallerSession struct { + Contract *ExpressLaneAuctionCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ExpressLaneAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ExpressLaneAuctionTransactorSession struct { + Contract *ExpressLaneAuctionTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ExpressLaneAuctionRaw is an auto generated low-level Go binding around an Ethereum contract. +type ExpressLaneAuctionRaw struct { + Contract *ExpressLaneAuction // Generic contract binding to access the raw methods on +} + +// ExpressLaneAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ExpressLaneAuctionCallerRaw struct { + Contract *ExpressLaneAuctionCaller // Generic read-only contract binding to access the raw methods on +} + +// ExpressLaneAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ExpressLaneAuctionTransactorRaw struct { + Contract *ExpressLaneAuctionTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewExpressLaneAuction creates a new instance of ExpressLaneAuction, bound to a specific deployed contract. +func NewExpressLaneAuction(address common.Address, backend bind.ContractBackend) (*ExpressLaneAuction, error) { + contract, err := bindExpressLaneAuction(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ExpressLaneAuction{ExpressLaneAuctionCaller: ExpressLaneAuctionCaller{contract: contract}, ExpressLaneAuctionTransactor: ExpressLaneAuctionTransactor{contract: contract}, ExpressLaneAuctionFilterer: ExpressLaneAuctionFilterer{contract: contract}}, nil +} + +// NewExpressLaneAuctionCaller creates a new read-only instance of ExpressLaneAuction, bound to a specific deployed contract. +func NewExpressLaneAuctionCaller(address common.Address, caller bind.ContractCaller) (*ExpressLaneAuctionCaller, error) { + contract, err := bindExpressLaneAuction(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionCaller{contract: contract}, nil +} + +// NewExpressLaneAuctionTransactor creates a new write-only instance of ExpressLaneAuction, bound to a specific deployed contract. +func NewExpressLaneAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*ExpressLaneAuctionTransactor, error) { + contract, err := bindExpressLaneAuction(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionTransactor{contract: contract}, nil +} + +// NewExpressLaneAuctionFilterer creates a new log filterer instance of ExpressLaneAuction, bound to a specific deployed contract. +func NewExpressLaneAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*ExpressLaneAuctionFilterer, error) { + contract, err := bindExpressLaneAuction(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionFilterer{contract: contract}, nil +} + +// bindExpressLaneAuction binds a generic wrapper to an already deployed contract. +func bindExpressLaneAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ExpressLaneAuctionMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ExpressLaneAuction *ExpressLaneAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ExpressLaneAuction.Contract.ExpressLaneAuctionCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ExpressLaneAuction *ExpressLaneAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ExpressLaneAuctionTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ExpressLaneAuction *ExpressLaneAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ExpressLaneAuctionTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ExpressLaneAuction *ExpressLaneAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ExpressLaneAuction.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.contract.Transact(opts, method, params...) +} + +// AUCTIONEERADMINROLE is a free data retrieval call binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) AUCTIONEERADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "AUCTIONEER_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// AUCTIONEERADMINROLE is a free data retrieval call binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) AUCTIONEERADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.AUCTIONEERADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// AUCTIONEERADMINROLE is a free data retrieval call binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) AUCTIONEERADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.AUCTIONEERADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// AUCTIONEERROLE is a free data retrieval call binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) AUCTIONEERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "AUCTIONEER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// AUCTIONEERROLE is a free data retrieval call binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) AUCTIONEERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.AUCTIONEERROLE(&_ExpressLaneAuction.CallOpts) +} + +// AUCTIONEERROLE is a free data retrieval call binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) AUCTIONEERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.AUCTIONEERROLE(&_ExpressLaneAuction.CallOpts) +} + +// BENEFICIARYSETTERROLE is a free data retrieval call binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) BENEFICIARYSETTERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "BENEFICIARY_SETTER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// BENEFICIARYSETTERROLE is a free data retrieval call binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) BENEFICIARYSETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.BENEFICIARYSETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// BENEFICIARYSETTERROLE is a free data retrieval call binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) BENEFICIARYSETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.BENEFICIARYSETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.DEFAULTADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.DEFAULTADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// MINRESERVESETTERROLE is a free data retrieval call binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) MINRESERVESETTERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "MIN_RESERVE_SETTER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// MINRESERVESETTERROLE is a free data retrieval call binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) MINRESERVESETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.MINRESERVESETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// MINRESERVESETTERROLE is a free data retrieval call binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) MINRESERVESETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.MINRESERVESETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// RESERVESETTERADMINROLE is a free data retrieval call binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) RESERVESETTERADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "RESERVE_SETTER_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// RESERVESETTERADMINROLE is a free data retrieval call binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RESERVESETTERADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.RESERVESETTERADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// RESERVESETTERADMINROLE is a free data retrieval call binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) RESERVESETTERADMINROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.RESERVESETTERADMINROLE(&_ExpressLaneAuction.CallOpts) +} + +// RESERVESETTERROLE is a free data retrieval call binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) RESERVESETTERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "RESERVE_SETTER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// RESERVESETTERROLE is a free data retrieval call binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RESERVESETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.RESERVESETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// RESERVESETTERROLE is a free data retrieval call binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) RESERVESETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.RESERVESETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// ROUNDTIMINGSETTERROLE is a free data retrieval call binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) ROUNDTIMINGSETTERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "ROUND_TIMING_SETTER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ROUNDTIMINGSETTERROLE is a free data retrieval call binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) ROUNDTIMINGSETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.ROUNDTIMINGSETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// ROUNDTIMINGSETTERROLE is a free data retrieval call binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) ROUNDTIMINGSETTERROLE() ([32]byte, error) { + return _ExpressLaneAuction.Contract.ROUNDTIMINGSETTERROLE(&_ExpressLaneAuction.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ExpressLaneAuction.Contract.BalanceOf(&_ExpressLaneAuction.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ExpressLaneAuction.Contract.BalanceOf(&_ExpressLaneAuction.CallOpts, account) +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) BalanceOfAtRound(opts *bind.CallOpts, account common.Address, round uint64) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "balanceOfAtRound", account, round) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) BalanceOfAtRound(account common.Address, round uint64) (*big.Int, error) { + return _ExpressLaneAuction.Contract.BalanceOfAtRound(&_ExpressLaneAuction.CallOpts, account, round) +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) BalanceOfAtRound(account common.Address, round uint64) (*big.Int, error) { + return _ExpressLaneAuction.Contract.BalanceOfAtRound(&_ExpressLaneAuction.CallOpts, account, round) +} + +// Beneficiary is a free data retrieval call binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) Beneficiary(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "beneficiary") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// Beneficiary is a free data retrieval call binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) Beneficiary() (common.Address, error) { + return _ExpressLaneAuction.Contract.Beneficiary(&_ExpressLaneAuction.CallOpts) +} + +// Beneficiary is a free data retrieval call binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) Beneficiary() (common.Address, error) { + return _ExpressLaneAuction.Contract.Beneficiary(&_ExpressLaneAuction.CallOpts) +} + +// BeneficiaryBalance is a free data retrieval call binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) BeneficiaryBalance(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "beneficiaryBalance") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BeneficiaryBalance is a free data retrieval call binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) BeneficiaryBalance() (*big.Int, error) { + return _ExpressLaneAuction.Contract.BeneficiaryBalance(&_ExpressLaneAuction.CallOpts) +} + +// BeneficiaryBalance is a free data retrieval call binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) BeneficiaryBalance() (*big.Int, error) { + return _ExpressLaneAuction.Contract.BeneficiaryBalance(&_ExpressLaneAuction.CallOpts) +} + +// BiddingToken is a free data retrieval call binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) BiddingToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "biddingToken") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// BiddingToken is a free data retrieval call binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) BiddingToken() (common.Address, error) { + return _ExpressLaneAuction.Contract.BiddingToken(&_ExpressLaneAuction.CallOpts) +} + +// BiddingToken is a free data retrieval call binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) BiddingToken() (common.Address, error) { + return _ExpressLaneAuction.Contract.BiddingToken(&_ExpressLaneAuction.CallOpts) +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) CurrentRound(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "currentRound") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) CurrentRound() (uint64, error) { + return _ExpressLaneAuction.Contract.CurrentRound(&_ExpressLaneAuction.CallOpts) +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) CurrentRound() (uint64, error) { + return _ExpressLaneAuction.Contract.CurrentRound(&_ExpressLaneAuction.CallOpts) +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) DomainSeparator(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "domainSeparator") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) DomainSeparator() ([32]byte, error) { + return _ExpressLaneAuction.Contract.DomainSeparator(&_ExpressLaneAuction.CallOpts) +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) DomainSeparator() ([32]byte, error) { + return _ExpressLaneAuction.Contract.DomainSeparator(&_ExpressLaneAuction.CallOpts) +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) GetBidHash(opts *bind.CallOpts, round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "getBidHash", round, expressLaneController, amount) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) GetBidHash(round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + return _ExpressLaneAuction.Contract.GetBidHash(&_ExpressLaneAuction.CallOpts, round, expressLaneController, amount) +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) GetBidHash(round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + return _ExpressLaneAuction.Contract.GetBidHash(&_ExpressLaneAuction.CallOpts, round, expressLaneController, amount) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ExpressLaneAuction.Contract.GetRoleAdmin(&_ExpressLaneAuction.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ExpressLaneAuction.Contract.GetRoleAdmin(&_ExpressLaneAuction.CallOpts, role) +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) GetRoleMember(opts *bind.CallOpts, role [32]byte, index *big.Int) (common.Address, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "getRoleMember", role, index) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) GetRoleMember(role [32]byte, index *big.Int) (common.Address, error) { + return _ExpressLaneAuction.Contract.GetRoleMember(&_ExpressLaneAuction.CallOpts, role, index) +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) GetRoleMember(role [32]byte, index *big.Int) (common.Address, error) { + return _ExpressLaneAuction.Contract.GetRoleMember(&_ExpressLaneAuction.CallOpts, role, index) +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) GetRoleMemberCount(opts *bind.CallOpts, role [32]byte) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "getRoleMemberCount", role) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) GetRoleMemberCount(role [32]byte) (*big.Int, error) { + return _ExpressLaneAuction.Contract.GetRoleMemberCount(&_ExpressLaneAuction.CallOpts, role) +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) GetRoleMemberCount(role [32]byte) (*big.Int, error) { + return _ExpressLaneAuction.Contract.GetRoleMemberCount(&_ExpressLaneAuction.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ExpressLaneAuction.Contract.HasRole(&_ExpressLaneAuction.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ExpressLaneAuction.Contract.HasRole(&_ExpressLaneAuction.CallOpts, role, account) +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) IsAuctionRoundClosed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "isAuctionRoundClosed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) IsAuctionRoundClosed() (bool, error) { + return _ExpressLaneAuction.Contract.IsAuctionRoundClosed(&_ExpressLaneAuction.CallOpts) +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) IsAuctionRoundClosed() (bool, error) { + return _ExpressLaneAuction.Contract.IsAuctionRoundClosed(&_ExpressLaneAuction.CallOpts) +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) IsReserveBlackout(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "isReserveBlackout") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) IsReserveBlackout() (bool, error) { + return _ExpressLaneAuction.Contract.IsReserveBlackout(&_ExpressLaneAuction.CallOpts) +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) IsReserveBlackout() (bool, error) { + return _ExpressLaneAuction.Contract.IsReserveBlackout(&_ExpressLaneAuction.CallOpts) +} + +// MinReservePrice is a free data retrieval call binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) MinReservePrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "minReservePrice") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MinReservePrice is a free data retrieval call binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) MinReservePrice() (*big.Int, error) { + return _ExpressLaneAuction.Contract.MinReservePrice(&_ExpressLaneAuction.CallOpts) +} + +// MinReservePrice is a free data retrieval call binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) MinReservePrice() (*big.Int, error) { + return _ExpressLaneAuction.Contract.MinReservePrice(&_ExpressLaneAuction.CallOpts) +} + +// ReservePrice is a free data retrieval call binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) ReservePrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "reservePrice") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ReservePrice is a free data retrieval call binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) ReservePrice() (*big.Int, error) { + return _ExpressLaneAuction.Contract.ReservePrice(&_ExpressLaneAuction.CallOpts) +} + +// ReservePrice is a free data retrieval call binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) ReservePrice() (*big.Int, error) { + return _ExpressLaneAuction.Contract.ReservePrice(&_ExpressLaneAuction.CallOpts) +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) ResolvedRounds(opts *bind.CallOpts) (ELCRound, ELCRound, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "resolvedRounds") + + if err != nil { + return *new(ELCRound), *new(ELCRound), err + } + + out0 := *abi.ConvertType(out[0], new(ELCRound)).(*ELCRound) + out1 := *abi.ConvertType(out[1], new(ELCRound)).(*ELCRound) + + return out0, out1, err + +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) ResolvedRounds() (ELCRound, ELCRound, error) { + return _ExpressLaneAuction.Contract.ResolvedRounds(&_ExpressLaneAuction.CallOpts) +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) ResolvedRounds() (ELCRound, ELCRound, error) { + return _ExpressLaneAuction.Contract.ResolvedRounds(&_ExpressLaneAuction.CallOpts) +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64, uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) RoundTimestamps(opts *bind.CallOpts, round uint64) (uint64, uint64, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "roundTimestamps", round) + + if err != nil { + return *new(uint64), *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + out1 := *abi.ConvertType(out[1], new(uint64)).(*uint64) + + return out0, out1, err + +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64, uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RoundTimestamps(round uint64) (uint64, uint64, error) { + return _ExpressLaneAuction.Contract.RoundTimestamps(&_ExpressLaneAuction.CallOpts, round) +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64, uint64) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) RoundTimestamps(round uint64) (uint64, uint64, error) { + return _ExpressLaneAuction.Contract.RoundTimestamps(&_ExpressLaneAuction.CallOpts, round) +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) RoundTimingInfo(opts *bind.CallOpts) (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "roundTimingInfo") + + outstruct := new(struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.OffsetTimestamp = *abi.ConvertType(out[0], new(int64)).(*int64) + outstruct.RoundDurationSeconds = *abi.ConvertType(out[1], new(uint64)).(*uint64) + outstruct.AuctionClosingSeconds = *abi.ConvertType(out[2], new(uint64)).(*uint64) + outstruct.ReserveSubmissionSeconds = *abi.ConvertType(out[3], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RoundTimingInfo() (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + return _ExpressLaneAuction.Contract.RoundTimingInfo(&_ExpressLaneAuction.CallOpts) +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) RoundTimingInfo() (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + return _ExpressLaneAuction.Contract.RoundTimingInfo(&_ExpressLaneAuction.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ExpressLaneAuction.Contract.SupportsInterface(&_ExpressLaneAuction.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ExpressLaneAuction.Contract.SupportsInterface(&_ExpressLaneAuction.CallOpts, interfaceId) +} + +// TransferorOf is a free data retrieval call binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address ) view returns(address addr, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) TransferorOf(opts *bind.CallOpts, arg0 common.Address) (struct { + Addr common.Address + FixedUntilRound uint64 +}, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "transferorOf", arg0) + + outstruct := new(struct { + Addr common.Address + FixedUntilRound uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + outstruct.FixedUntilRound = *abi.ConvertType(out[1], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// TransferorOf is a free data retrieval call binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address ) view returns(address addr, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) TransferorOf(arg0 common.Address) (struct { + Addr common.Address + FixedUntilRound uint64 +}, error) { + return _ExpressLaneAuction.Contract.TransferorOf(&_ExpressLaneAuction.CallOpts, arg0) +} + +// TransferorOf is a free data retrieval call binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address ) view returns(address addr, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) TransferorOf(arg0 common.Address) (struct { + Addr common.Address + FixedUntilRound uint64 +}, error) { + return _ExpressLaneAuction.Contract.TransferorOf(&_ExpressLaneAuction.CallOpts, arg0) +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) WithdrawableBalance(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "withdrawableBalance", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) WithdrawableBalance(account common.Address) (*big.Int, error) { + return _ExpressLaneAuction.Contract.WithdrawableBalance(&_ExpressLaneAuction.CallOpts, account) +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) WithdrawableBalance(account common.Address) (*big.Int, error) { + return _ExpressLaneAuction.Contract.WithdrawableBalance(&_ExpressLaneAuction.CallOpts, account) +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCaller) WithdrawableBalanceAtRound(opts *bind.CallOpts, account common.Address, round uint64) (*big.Int, error) { + var out []interface{} + err := _ExpressLaneAuction.contract.Call(opts, &out, "withdrawableBalanceAtRound", account, round) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionSession) WithdrawableBalanceAtRound(account common.Address, round uint64) (*big.Int, error) { + return _ExpressLaneAuction.Contract.WithdrawableBalanceAtRound(&_ExpressLaneAuction.CallOpts, account, round) +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_ExpressLaneAuction *ExpressLaneAuctionCallerSession) WithdrawableBalanceAtRound(account common.Address, round uint64) (*big.Int, error) { + return _ExpressLaneAuction.Contract.WithdrawableBalanceAtRound(&_ExpressLaneAuction.CallOpts, account, round) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) Deposit(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "deposit", amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) Deposit(amount *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.Deposit(&_ExpressLaneAuction.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) Deposit(amount *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.Deposit(&_ExpressLaneAuction.TransactOpts, amount) +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) FinalizeWithdrawal(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "finalizeWithdrawal") +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) FinalizeWithdrawal() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.FinalizeWithdrawal(&_ExpressLaneAuction.TransactOpts) +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) FinalizeWithdrawal() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.FinalizeWithdrawal(&_ExpressLaneAuction.TransactOpts) +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) FlushBeneficiaryBalance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "flushBeneficiaryBalance") +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) FlushBeneficiaryBalance() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.FlushBeneficiaryBalance(&_ExpressLaneAuction.TransactOpts) +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) FlushBeneficiaryBalance() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.FlushBeneficiaryBalance(&_ExpressLaneAuction.TransactOpts) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.GrantRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.GrantRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) Initialize(opts *bind.TransactOpts, args InitArgs) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "initialize", args) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) Initialize(args InitArgs) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.Initialize(&_ExpressLaneAuction.TransactOpts, args) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) Initialize(args InitArgs) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.Initialize(&_ExpressLaneAuction.TransactOpts, args) +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) InitiateWithdrawal(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "initiateWithdrawal") +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) InitiateWithdrawal() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.InitiateWithdrawal(&_ExpressLaneAuction.TransactOpts) +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) InitiateWithdrawal() (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.InitiateWithdrawal(&_ExpressLaneAuction.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "renounceRole", role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RenounceRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.RenounceRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) RenounceRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.RenounceRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) ResolveMultiBidAuction(opts *bind.TransactOpts, firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "resolveMultiBidAuction", firstPriceBid, secondPriceBid) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) ResolveMultiBidAuction(firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ResolveMultiBidAuction(&_ExpressLaneAuction.TransactOpts, firstPriceBid, secondPriceBid) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) ResolveMultiBidAuction(firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ResolveMultiBidAuction(&_ExpressLaneAuction.TransactOpts, firstPriceBid, secondPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) ResolveSingleBidAuction(opts *bind.TransactOpts, firstPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "resolveSingleBidAuction", firstPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) ResolveSingleBidAuction(firstPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ResolveSingleBidAuction(&_ExpressLaneAuction.TransactOpts, firstPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) ResolveSingleBidAuction(firstPriceBid Bid) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.ResolveSingleBidAuction(&_ExpressLaneAuction.TransactOpts, firstPriceBid) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.RevokeRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.RevokeRole(&_ExpressLaneAuction.TransactOpts, role, account) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) SetBeneficiary(opts *bind.TransactOpts, newBeneficiary common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "setBeneficiary", newBeneficiary) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SetBeneficiary(newBeneficiary common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetBeneficiary(&_ExpressLaneAuction.TransactOpts, newBeneficiary) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) SetBeneficiary(newBeneficiary common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetBeneficiary(&_ExpressLaneAuction.TransactOpts, newBeneficiary) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) SetMinReservePrice(opts *bind.TransactOpts, newMinReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "setMinReservePrice", newMinReservePrice) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SetMinReservePrice(newMinReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetMinReservePrice(&_ExpressLaneAuction.TransactOpts, newMinReservePrice) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) SetMinReservePrice(newMinReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetMinReservePrice(&_ExpressLaneAuction.TransactOpts, newMinReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) SetReservePrice(opts *bind.TransactOpts, newReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "setReservePrice", newReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SetReservePrice(newReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetReservePrice(&_ExpressLaneAuction.TransactOpts, newReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) SetReservePrice(newReservePrice *big.Int) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetReservePrice(&_ExpressLaneAuction.TransactOpts, newReservePrice) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) SetRoundTimingInfo(opts *bind.TransactOpts, newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "setRoundTimingInfo", newRoundTimingInfo) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SetRoundTimingInfo(newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetRoundTimingInfo(&_ExpressLaneAuction.TransactOpts, newRoundTimingInfo) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) SetRoundTimingInfo(newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetRoundTimingInfo(&_ExpressLaneAuction.TransactOpts, newRoundTimingInfo) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) SetTransferor(opts *bind.TransactOpts, transferor Transferor) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "setTransferor", transferor) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) SetTransferor(transferor Transferor) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetTransferor(&_ExpressLaneAuction.TransactOpts, transferor) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) SetTransferor(transferor Transferor) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.SetTransferor(&_ExpressLaneAuction.TransactOpts, transferor) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactor) TransferExpressLaneController(opts *bind.TransactOpts, round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.contract.Transact(opts, "transferExpressLaneController", round, newExpressLaneController) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionSession) TransferExpressLaneController(round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.TransferExpressLaneController(&_ExpressLaneAuction.TransactOpts, round, newExpressLaneController) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_ExpressLaneAuction *ExpressLaneAuctionTransactorSession) TransferExpressLaneController(round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _ExpressLaneAuction.Contract.TransferExpressLaneController(&_ExpressLaneAuction.TransactOpts, round, newExpressLaneController) +} + +// ExpressLaneAuctionAuctionResolvedIterator is returned from FilterAuctionResolved and is used to iterate over the raw logs and unpacked data for AuctionResolved events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionAuctionResolvedIterator struct { + Event *ExpressLaneAuctionAuctionResolved // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionAuctionResolvedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionAuctionResolved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionAuctionResolved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionAuctionResolvedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionAuctionResolvedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionAuctionResolved represents a AuctionResolved event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionAuctionResolved struct { + IsMultiBidAuction bool + Round uint64 + FirstPriceBidder common.Address + FirstPriceExpressLaneController common.Address + FirstPriceAmount *big.Int + Price *big.Int + RoundStartTimestamp uint64 + RoundEndTimestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAuctionResolved is a free log retrieval operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterAuctionResolved(opts *bind.FilterOpts, isMultiBidAuction []bool, firstPriceBidder []common.Address, firstPriceExpressLaneController []common.Address) (*ExpressLaneAuctionAuctionResolvedIterator, error) { + + var isMultiBidAuctionRule []interface{} + for _, isMultiBidAuctionItem := range isMultiBidAuction { + isMultiBidAuctionRule = append(isMultiBidAuctionRule, isMultiBidAuctionItem) + } + + var firstPriceBidderRule []interface{} + for _, firstPriceBidderItem := range firstPriceBidder { + firstPriceBidderRule = append(firstPriceBidderRule, firstPriceBidderItem) + } + var firstPriceExpressLaneControllerRule []interface{} + for _, firstPriceExpressLaneControllerItem := range firstPriceExpressLaneController { + firstPriceExpressLaneControllerRule = append(firstPriceExpressLaneControllerRule, firstPriceExpressLaneControllerItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "AuctionResolved", isMultiBidAuctionRule, firstPriceBidderRule, firstPriceExpressLaneControllerRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionAuctionResolvedIterator{contract: _ExpressLaneAuction.contract, event: "AuctionResolved", logs: logs, sub: sub}, nil +} + +// WatchAuctionResolved is a free log subscription operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchAuctionResolved(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionAuctionResolved, isMultiBidAuction []bool, firstPriceBidder []common.Address, firstPriceExpressLaneController []common.Address) (event.Subscription, error) { + + var isMultiBidAuctionRule []interface{} + for _, isMultiBidAuctionItem := range isMultiBidAuction { + isMultiBidAuctionRule = append(isMultiBidAuctionRule, isMultiBidAuctionItem) + } + + var firstPriceBidderRule []interface{} + for _, firstPriceBidderItem := range firstPriceBidder { + firstPriceBidderRule = append(firstPriceBidderRule, firstPriceBidderItem) + } + var firstPriceExpressLaneControllerRule []interface{} + for _, firstPriceExpressLaneControllerItem := range firstPriceExpressLaneController { + firstPriceExpressLaneControllerRule = append(firstPriceExpressLaneControllerRule, firstPriceExpressLaneControllerItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "AuctionResolved", isMultiBidAuctionRule, firstPriceBidderRule, firstPriceExpressLaneControllerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionAuctionResolved) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "AuctionResolved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAuctionResolved is a log parse operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseAuctionResolved(log types.Log) (*ExpressLaneAuctionAuctionResolved, error) { + event := new(ExpressLaneAuctionAuctionResolved) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "AuctionResolved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionDepositIterator struct { + Event *ExpressLaneAuctionDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionDeposit represents a Deposit event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionDeposit struct { + Account common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterDeposit(opts *bind.FilterOpts, account []common.Address) (*ExpressLaneAuctionDepositIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "Deposit", accountRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionDepositIterator{contract: _ExpressLaneAuction.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionDeposit, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "Deposit", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionDeposit) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseDeposit(log types.Log) (*ExpressLaneAuctionDeposit, error) { + event := new(ExpressLaneAuctionDeposit) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionInitializedIterator struct { + Event *ExpressLaneAuctionInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionInitialized represents a Initialized event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionInitialized struct { + Version uint8 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterInitialized(opts *bind.FilterOpts) (*ExpressLaneAuctionInitializedIterator, error) { + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ExpressLaneAuctionInitializedIterator{contract: _ExpressLaneAuction.contract, event: "Initialized", logs: logs, sub: sub}, nil +} + +// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionInitialized) (event.Subscription, error) { + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionInitialized) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "Initialized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// +// Solidity: event Initialized(uint8 version) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseInitialized(log types.Log) (*ExpressLaneAuctionInitialized, error) { + event := new(ExpressLaneAuctionInitialized) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleAdminChangedIterator struct { + Event *ExpressLaneAuctionRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionRoleAdminChanged represents a RoleAdminChanged event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ExpressLaneAuctionRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionRoleAdminChangedIterator{contract: _ExpressLaneAuction.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionRoleAdminChanged) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseRoleAdminChanged(log types.Log) (*ExpressLaneAuctionRoleAdminChanged, error) { + event := new(ExpressLaneAuctionRoleAdminChanged) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleGrantedIterator struct { + Event *ExpressLaneAuctionRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionRoleGranted represents a RoleGranted event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ExpressLaneAuctionRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionRoleGrantedIterator{contract: _ExpressLaneAuction.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionRoleGranted) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseRoleGranted(log types.Log) (*ExpressLaneAuctionRoleGranted, error) { + event := new(ExpressLaneAuctionRoleGranted) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleRevokedIterator struct { + Event *ExpressLaneAuctionRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionRoleRevoked represents a RoleRevoked event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ExpressLaneAuctionRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionRoleRevokedIterator{contract: _ExpressLaneAuction.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionRoleRevoked) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseRoleRevoked(log types.Log) (*ExpressLaneAuctionRoleRevoked, error) { + event := new(ExpressLaneAuctionRoleRevoked) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetBeneficiaryIterator is returned from FilterSetBeneficiary and is used to iterate over the raw logs and unpacked data for SetBeneficiary events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetBeneficiaryIterator struct { + Event *ExpressLaneAuctionSetBeneficiary // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetBeneficiaryIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetBeneficiary) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetBeneficiary) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetBeneficiaryIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetBeneficiaryIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetBeneficiary represents a SetBeneficiary event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetBeneficiary struct { + OldBeneficiary common.Address + NewBeneficiary common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetBeneficiary is a free log retrieval operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetBeneficiary(opts *bind.FilterOpts) (*ExpressLaneAuctionSetBeneficiaryIterator, error) { + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetBeneficiary") + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetBeneficiaryIterator{contract: _ExpressLaneAuction.contract, event: "SetBeneficiary", logs: logs, sub: sub}, nil +} + +// WatchSetBeneficiary is a free log subscription operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetBeneficiary(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetBeneficiary) (event.Subscription, error) { + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetBeneficiary") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetBeneficiary) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetBeneficiary", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetBeneficiary is a log parse operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetBeneficiary(log types.Log) (*ExpressLaneAuctionSetBeneficiary, error) { + event := new(ExpressLaneAuctionSetBeneficiary) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetBeneficiary", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetExpressLaneControllerIterator is returned from FilterSetExpressLaneController and is used to iterate over the raw logs and unpacked data for SetExpressLaneController events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetExpressLaneControllerIterator struct { + Event *ExpressLaneAuctionSetExpressLaneController // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetExpressLaneControllerIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetExpressLaneController) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetExpressLaneController) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetExpressLaneControllerIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetExpressLaneControllerIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetExpressLaneController represents a SetExpressLaneController event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetExpressLaneController struct { + Round uint64 + PreviousExpressLaneController common.Address + NewExpressLaneController common.Address + Transferor common.Address + StartTimestamp uint64 + EndTimestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetExpressLaneController is a free log retrieval operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetExpressLaneController(opts *bind.FilterOpts, previousExpressLaneController []common.Address, newExpressLaneController []common.Address, transferor []common.Address) (*ExpressLaneAuctionSetExpressLaneControllerIterator, error) { + + var previousExpressLaneControllerRule []interface{} + for _, previousExpressLaneControllerItem := range previousExpressLaneController { + previousExpressLaneControllerRule = append(previousExpressLaneControllerRule, previousExpressLaneControllerItem) + } + var newExpressLaneControllerRule []interface{} + for _, newExpressLaneControllerItem := range newExpressLaneController { + newExpressLaneControllerRule = append(newExpressLaneControllerRule, newExpressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetExpressLaneController", previousExpressLaneControllerRule, newExpressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetExpressLaneControllerIterator{contract: _ExpressLaneAuction.contract, event: "SetExpressLaneController", logs: logs, sub: sub}, nil +} + +// WatchSetExpressLaneController is a free log subscription operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetExpressLaneController(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetExpressLaneController, previousExpressLaneController []common.Address, newExpressLaneController []common.Address, transferor []common.Address) (event.Subscription, error) { + + var previousExpressLaneControllerRule []interface{} + for _, previousExpressLaneControllerItem := range previousExpressLaneController { + previousExpressLaneControllerRule = append(previousExpressLaneControllerRule, previousExpressLaneControllerItem) + } + var newExpressLaneControllerRule []interface{} + for _, newExpressLaneControllerItem := range newExpressLaneController { + newExpressLaneControllerRule = append(newExpressLaneControllerRule, newExpressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetExpressLaneController", previousExpressLaneControllerRule, newExpressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetExpressLaneController) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetExpressLaneController", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetExpressLaneController is a log parse operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetExpressLaneController(log types.Log) (*ExpressLaneAuctionSetExpressLaneController, error) { + event := new(ExpressLaneAuctionSetExpressLaneController) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetExpressLaneController", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetMinReservePriceIterator is returned from FilterSetMinReservePrice and is used to iterate over the raw logs and unpacked data for SetMinReservePrice events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetMinReservePriceIterator struct { + Event *ExpressLaneAuctionSetMinReservePrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetMinReservePriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetMinReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetMinReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetMinReservePriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetMinReservePriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetMinReservePrice represents a SetMinReservePrice event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetMinReservePrice struct { + OldPrice *big.Int + NewPrice *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetMinReservePrice is a free log retrieval operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetMinReservePrice(opts *bind.FilterOpts) (*ExpressLaneAuctionSetMinReservePriceIterator, error) { + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetMinReservePrice") + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetMinReservePriceIterator{contract: _ExpressLaneAuction.contract, event: "SetMinReservePrice", logs: logs, sub: sub}, nil +} + +// WatchSetMinReservePrice is a free log subscription operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetMinReservePrice(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetMinReservePrice) (event.Subscription, error) { + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetMinReservePrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetMinReservePrice) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetMinReservePrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetMinReservePrice is a log parse operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetMinReservePrice(log types.Log) (*ExpressLaneAuctionSetMinReservePrice, error) { + event := new(ExpressLaneAuctionSetMinReservePrice) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetMinReservePrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetReservePriceIterator is returned from FilterSetReservePrice and is used to iterate over the raw logs and unpacked data for SetReservePrice events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetReservePriceIterator struct { + Event *ExpressLaneAuctionSetReservePrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetReservePriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetReservePriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetReservePriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetReservePrice represents a SetReservePrice event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetReservePrice struct { + OldReservePrice *big.Int + NewReservePrice *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetReservePrice is a free log retrieval operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetReservePrice(opts *bind.FilterOpts) (*ExpressLaneAuctionSetReservePriceIterator, error) { + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetReservePrice") + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetReservePriceIterator{contract: _ExpressLaneAuction.contract, event: "SetReservePrice", logs: logs, sub: sub}, nil +} + +// WatchSetReservePrice is a free log subscription operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetReservePrice(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetReservePrice) (event.Subscription, error) { + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetReservePrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetReservePrice) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetReservePrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetReservePrice is a log parse operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetReservePrice(log types.Log) (*ExpressLaneAuctionSetReservePrice, error) { + event := new(ExpressLaneAuctionSetReservePrice) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetReservePrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetRoundTimingInfoIterator is returned from FilterSetRoundTimingInfo and is used to iterate over the raw logs and unpacked data for SetRoundTimingInfo events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetRoundTimingInfoIterator struct { + Event *ExpressLaneAuctionSetRoundTimingInfo // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetRoundTimingInfoIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetRoundTimingInfo) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetRoundTimingInfo) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetRoundTimingInfoIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetRoundTimingInfoIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetRoundTimingInfo represents a SetRoundTimingInfo event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetRoundTimingInfo struct { + CurrentRound uint64 + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetRoundTimingInfo is a free log retrieval operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetRoundTimingInfo(opts *bind.FilterOpts) (*ExpressLaneAuctionSetRoundTimingInfoIterator, error) { + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetRoundTimingInfo") + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetRoundTimingInfoIterator{contract: _ExpressLaneAuction.contract, event: "SetRoundTimingInfo", logs: logs, sub: sub}, nil +} + +// WatchSetRoundTimingInfo is a free log subscription operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetRoundTimingInfo(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetRoundTimingInfo) (event.Subscription, error) { + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetRoundTimingInfo") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetRoundTimingInfo) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetRoundTimingInfo", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetRoundTimingInfo is a log parse operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetRoundTimingInfo(log types.Log) (*ExpressLaneAuctionSetRoundTimingInfo, error) { + event := new(ExpressLaneAuctionSetRoundTimingInfo) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetRoundTimingInfo", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionSetTransferorIterator is returned from FilterSetTransferor and is used to iterate over the raw logs and unpacked data for SetTransferor events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetTransferorIterator struct { + Event *ExpressLaneAuctionSetTransferor // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionSetTransferorIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetTransferor) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionSetTransferor) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionSetTransferorIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionSetTransferorIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionSetTransferor represents a SetTransferor event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionSetTransferor struct { + ExpressLaneController common.Address + Transferor common.Address + FixedUntilRound uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetTransferor is a free log retrieval operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterSetTransferor(opts *bind.FilterOpts, expressLaneController []common.Address, transferor []common.Address) (*ExpressLaneAuctionSetTransferorIterator, error) { + + var expressLaneControllerRule []interface{} + for _, expressLaneControllerItem := range expressLaneController { + expressLaneControllerRule = append(expressLaneControllerRule, expressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "SetTransferor", expressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionSetTransferorIterator{contract: _ExpressLaneAuction.contract, event: "SetTransferor", logs: logs, sub: sub}, nil +} + +// WatchSetTransferor is a free log subscription operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchSetTransferor(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionSetTransferor, expressLaneController []common.Address, transferor []common.Address) (event.Subscription, error) { + + var expressLaneControllerRule []interface{} + for _, expressLaneControllerItem := range expressLaneController { + expressLaneControllerRule = append(expressLaneControllerRule, expressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "SetTransferor", expressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionSetTransferor) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetTransferor", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetTransferor is a log parse operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseSetTransferor(log types.Log) (*ExpressLaneAuctionSetTransferor, error) { + event := new(ExpressLaneAuctionSetTransferor) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "SetTransferor", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionWithdrawalFinalizedIterator is returned from FilterWithdrawalFinalized and is used to iterate over the raw logs and unpacked data for WithdrawalFinalized events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionWithdrawalFinalizedIterator struct { + Event *ExpressLaneAuctionWithdrawalFinalized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionWithdrawalFinalizedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionWithdrawalFinalized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionWithdrawalFinalized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionWithdrawalFinalizedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionWithdrawalFinalizedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionWithdrawalFinalized represents a WithdrawalFinalized event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionWithdrawalFinalized struct { + Account common.Address + WithdrawalAmount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawalFinalized is a free log retrieval operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterWithdrawalFinalized(opts *bind.FilterOpts, account []common.Address) (*ExpressLaneAuctionWithdrawalFinalizedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "WithdrawalFinalized", accountRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionWithdrawalFinalizedIterator{contract: _ExpressLaneAuction.contract, event: "WithdrawalFinalized", logs: logs, sub: sub}, nil +} + +// WatchWithdrawalFinalized is a free log subscription operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchWithdrawalFinalized(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionWithdrawalFinalized, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "WithdrawalFinalized", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionWithdrawalFinalized) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "WithdrawalFinalized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawalFinalized is a log parse operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseWithdrawalFinalized(log types.Log) (*ExpressLaneAuctionWithdrawalFinalized, error) { + event := new(ExpressLaneAuctionWithdrawalFinalized) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "WithdrawalFinalized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ExpressLaneAuctionWithdrawalInitiatedIterator is returned from FilterWithdrawalInitiated and is used to iterate over the raw logs and unpacked data for WithdrawalInitiated events raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionWithdrawalInitiatedIterator struct { + Event *ExpressLaneAuctionWithdrawalInitiated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ExpressLaneAuctionWithdrawalInitiatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionWithdrawalInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ExpressLaneAuctionWithdrawalInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ExpressLaneAuctionWithdrawalInitiatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ExpressLaneAuctionWithdrawalInitiatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ExpressLaneAuctionWithdrawalInitiated represents a WithdrawalInitiated event raised by the ExpressLaneAuction contract. +type ExpressLaneAuctionWithdrawalInitiated struct { + Account common.Address + WithdrawalAmount *big.Int + RoundWithdrawable *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawalInitiated is a free log retrieval operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) FilterWithdrawalInitiated(opts *bind.FilterOpts, account []common.Address) (*ExpressLaneAuctionWithdrawalInitiatedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.FilterLogs(opts, "WithdrawalInitiated", accountRule) + if err != nil { + return nil, err + } + return &ExpressLaneAuctionWithdrawalInitiatedIterator{contract: _ExpressLaneAuction.contract, event: "WithdrawalInitiated", logs: logs, sub: sub}, nil +} + +// WatchWithdrawalInitiated is a free log subscription operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) WatchWithdrawalInitiated(opts *bind.WatchOpts, sink chan<- *ExpressLaneAuctionWithdrawalInitiated, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ExpressLaneAuction.contract.WatchLogs(opts, "WithdrawalInitiated", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ExpressLaneAuctionWithdrawalInitiated) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "WithdrawalInitiated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawalInitiated is a log parse operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_ExpressLaneAuction *ExpressLaneAuctionFilterer) ParseWithdrawalInitiated(log types.Log) (*ExpressLaneAuctionWithdrawalInitiated, error) { + event := new(ExpressLaneAuctionWithdrawalInitiated) + if err := _ExpressLaneAuction.contract.UnpackLog(event, "WithdrawalInitiated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionMetaData contains all meta data concerning the IExpressLaneAuction contract. +var IExpressLaneAuctionMetaData = &bind.MetaData{ + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isMultiBidAuction\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstPriceBidder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstPriceExpressLaneController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPriceAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundStartTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundEndTimestamp\",\"type\":\"uint64\"}],\"name\":\"AuctionResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"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\":false,\"internalType\":\"address\",\"name\":\"oldBeneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBeneficiary\",\"type\":\"address\"}],\"name\":\"SetBeneficiary\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousExpressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newExpressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTimestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTimestamp\",\"type\":\"uint64\"}],\"name\":\"SetExpressLaneController\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"SetMinReservePrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldReservePrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newReservePrice\",\"type\":\"uint256\"}],\"name\":\"SetReservePrice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"currentRound\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"name\":\"SetRoundTimingInfo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"name\":\"SetTransferor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawalAmount\",\"type\":\"uint256\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawalAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roundWithdrawable\",\"type\":\"uint256\"}],\"name\":\"WithdrawalInitiated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AUCTIONEER_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AUCTIONEER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BENEFICIARY_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_RESERVE_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESERVE_SETTER_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RESERVE_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROUND_TIMING_SETTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"balanceOfAtRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beneficiaryBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"biddingToken\",\"outputs\":[{\"internalType\":\"contractIERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRound\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"domainSeparator\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizeWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flushBeneficiaryBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getBidHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_auctioneer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_biddingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"internalType\":\"structRoundTimingInfo\",\"name\":\"_roundTimingInfo\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_minReservePrice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_auctioneerAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_minReservePriceSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_reservePriceSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_reservePriceSetterAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiarySetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_roundTimingSetter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_masterAdmin\",\"type\":\"address\"}],\"internalType\":\"structInitArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiateWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isAuctionRoundClosed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReserveBlackout\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minReservePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reservePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"firstPriceBid\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"secondPriceBid\",\"type\":\"tuple\"}],\"name\":\"resolveMultiBidAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"structBid\",\"name\":\"firstPriceBid\",\"type\":\"tuple\"}],\"name\":\"resolveSingleBidAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedRounds\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"internalType\":\"structELCRound\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"internalType\":\"structELCRound\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"roundTimestamps\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"start\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"end\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundTimingInfo\",\"outputs\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBeneficiary\",\"type\":\"address\"}],\"name\":\"setBeneficiary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMinReservePrice\",\"type\":\"uint256\"}],\"name\":\"setMinReservePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newReservePrice\",\"type\":\"uint256\"}],\"name\":\"setReservePrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"offsetTimestamp\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"roundDurationSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"auctionClosingSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserveSubmissionSeconds\",\"type\":\"uint64\"}],\"internalType\":\"structRoundTimingInfo\",\"name\":\"newRoundTimingInfo\",\"type\":\"tuple\"}],\"name\":\"setRoundTimingInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"fixedUntilRound\",\"type\":\"uint64\"}],\"internalType\":\"structTransferor\",\"name\":\"transferor\",\"type\":\"tuple\"}],\"name\":\"setTransferor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newExpressLaneController\",\"type\":\"address\"}],\"name\":\"transferExpressLaneController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expressLaneController\",\"type\":\"address\"}],\"name\":\"transferorOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"fixedUntil\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"round\",\"type\":\"uint64\"}],\"name\":\"withdrawableBalanceAtRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", +} + +// IExpressLaneAuctionABI is the input ABI used to generate the binding from. +// Deprecated: Use IExpressLaneAuctionMetaData.ABI instead. +var IExpressLaneAuctionABI = IExpressLaneAuctionMetaData.ABI + +// IExpressLaneAuction is an auto generated Go binding around an Ethereum contract. +type IExpressLaneAuction struct { + IExpressLaneAuctionCaller // Read-only binding to the contract + IExpressLaneAuctionTransactor // Write-only binding to the contract + IExpressLaneAuctionFilterer // Log filterer for contract events +} + +// IExpressLaneAuctionCaller is an auto generated read-only Go binding around an Ethereum contract. +type IExpressLaneAuctionCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IExpressLaneAuctionTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IExpressLaneAuctionTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IExpressLaneAuctionFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IExpressLaneAuctionFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IExpressLaneAuctionSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IExpressLaneAuctionSession struct { + Contract *IExpressLaneAuction // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IExpressLaneAuctionCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IExpressLaneAuctionCallerSession struct { + Contract *IExpressLaneAuctionCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IExpressLaneAuctionTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IExpressLaneAuctionTransactorSession struct { + Contract *IExpressLaneAuctionTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IExpressLaneAuctionRaw is an auto generated low-level Go binding around an Ethereum contract. +type IExpressLaneAuctionRaw struct { + Contract *IExpressLaneAuction // Generic contract binding to access the raw methods on +} + +// IExpressLaneAuctionCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IExpressLaneAuctionCallerRaw struct { + Contract *IExpressLaneAuctionCaller // Generic read-only contract binding to access the raw methods on +} + +// IExpressLaneAuctionTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IExpressLaneAuctionTransactorRaw struct { + Contract *IExpressLaneAuctionTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIExpressLaneAuction creates a new instance of IExpressLaneAuction, bound to a specific deployed contract. +func NewIExpressLaneAuction(address common.Address, backend bind.ContractBackend) (*IExpressLaneAuction, error) { + contract, err := bindIExpressLaneAuction(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IExpressLaneAuction{IExpressLaneAuctionCaller: IExpressLaneAuctionCaller{contract: contract}, IExpressLaneAuctionTransactor: IExpressLaneAuctionTransactor{contract: contract}, IExpressLaneAuctionFilterer: IExpressLaneAuctionFilterer{contract: contract}}, nil +} + +// NewIExpressLaneAuctionCaller creates a new read-only instance of IExpressLaneAuction, bound to a specific deployed contract. +func NewIExpressLaneAuctionCaller(address common.Address, caller bind.ContractCaller) (*IExpressLaneAuctionCaller, error) { + contract, err := bindIExpressLaneAuction(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionCaller{contract: contract}, nil +} + +// NewIExpressLaneAuctionTransactor creates a new write-only instance of IExpressLaneAuction, bound to a specific deployed contract. +func NewIExpressLaneAuctionTransactor(address common.Address, transactor bind.ContractTransactor) (*IExpressLaneAuctionTransactor, error) { + contract, err := bindIExpressLaneAuction(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionTransactor{contract: contract}, nil +} + +// NewIExpressLaneAuctionFilterer creates a new log filterer instance of IExpressLaneAuction, bound to a specific deployed contract. +func NewIExpressLaneAuctionFilterer(address common.Address, filterer bind.ContractFilterer) (*IExpressLaneAuctionFilterer, error) { + contract, err := bindIExpressLaneAuction(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionFilterer{contract: contract}, nil +} + +// bindIExpressLaneAuction binds a generic wrapper to an already deployed contract. +func bindIExpressLaneAuction(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IExpressLaneAuctionMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IExpressLaneAuction *IExpressLaneAuctionRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IExpressLaneAuction.Contract.IExpressLaneAuctionCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IExpressLaneAuction *IExpressLaneAuctionRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.IExpressLaneAuctionTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IExpressLaneAuction *IExpressLaneAuctionRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.IExpressLaneAuctionTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_IExpressLaneAuction *IExpressLaneAuctionCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IExpressLaneAuction.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.contract.Transact(opts, method, params...) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "balanceOf", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IExpressLaneAuction.Contract.BalanceOf(&_IExpressLaneAuction.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _IExpressLaneAuction.Contract.BalanceOf(&_IExpressLaneAuction.CallOpts, account) +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) BalanceOfAtRound(opts *bind.CallOpts, account common.Address, round uint64) (*big.Int, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "balanceOfAtRound", account, round) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) BalanceOfAtRound(account common.Address, round uint64) (*big.Int, error) { + return _IExpressLaneAuction.Contract.BalanceOfAtRound(&_IExpressLaneAuction.CallOpts, account, round) +} + +// BalanceOfAtRound is a free data retrieval call binding the contract method 0x5633c337. +// +// Solidity: function balanceOfAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) BalanceOfAtRound(account common.Address, round uint64) (*big.Int, error) { + return _IExpressLaneAuction.Contract.BalanceOfAtRound(&_IExpressLaneAuction.CallOpts, account, round) +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) CurrentRound(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "currentRound") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) CurrentRound() (uint64, error) { + return _IExpressLaneAuction.Contract.CurrentRound(&_IExpressLaneAuction.CallOpts) +} + +// CurrentRound is a free data retrieval call binding the contract method 0x8a19c8bc. +// +// Solidity: function currentRound() view returns(uint64) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) CurrentRound() (uint64, error) { + return _IExpressLaneAuction.Contract.CurrentRound(&_IExpressLaneAuction.CallOpts) +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) DomainSeparator(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "domainSeparator") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) DomainSeparator() ([32]byte, error) { + return _IExpressLaneAuction.Contract.DomainSeparator(&_IExpressLaneAuction.CallOpts) +} + +// DomainSeparator is a free data retrieval call binding the contract method 0xf698da25. +// +// Solidity: function domainSeparator() view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) DomainSeparator() ([32]byte, error) { + return _IExpressLaneAuction.Contract.DomainSeparator(&_IExpressLaneAuction.CallOpts) +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) GetBidHash(opts *bind.CallOpts, round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "getBidHash", round, expressLaneController, amount) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) GetBidHash(round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + return _IExpressLaneAuction.Contract.GetBidHash(&_IExpressLaneAuction.CallOpts, round, expressLaneController, amount) +} + +// GetBidHash is a free data retrieval call binding the contract method 0x04c584ad. +// +// Solidity: function getBidHash(uint64 round, address expressLaneController, uint256 amount) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) GetBidHash(round uint64, expressLaneController common.Address, amount *big.Int) ([32]byte, error) { + return _IExpressLaneAuction.Contract.GetBidHash(&_IExpressLaneAuction.CallOpts, round, expressLaneController, amount) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _IExpressLaneAuction.Contract.GetRoleAdmin(&_IExpressLaneAuction.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _IExpressLaneAuction.Contract.GetRoleAdmin(&_IExpressLaneAuction.CallOpts, role) +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) GetRoleMember(opts *bind.CallOpts, role [32]byte, index *big.Int) (common.Address, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "getRoleMember", role, index) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) GetRoleMember(role [32]byte, index *big.Int) (common.Address, error) { + return _IExpressLaneAuction.Contract.GetRoleMember(&_IExpressLaneAuction.CallOpts, role, index) +} + +// GetRoleMember is a free data retrieval call binding the contract method 0x9010d07c. +// +// Solidity: function getRoleMember(bytes32 role, uint256 index) view returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) GetRoleMember(role [32]byte, index *big.Int) (common.Address, error) { + return _IExpressLaneAuction.Contract.GetRoleMember(&_IExpressLaneAuction.CallOpts, role, index) +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) GetRoleMemberCount(opts *bind.CallOpts, role [32]byte) (*big.Int, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "getRoleMemberCount", role) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) GetRoleMemberCount(role [32]byte) (*big.Int, error) { + return _IExpressLaneAuction.Contract.GetRoleMemberCount(&_IExpressLaneAuction.CallOpts, role) +} + +// GetRoleMemberCount is a free data retrieval call binding the contract method 0xca15c873. +// +// Solidity: function getRoleMemberCount(bytes32 role) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) GetRoleMemberCount(role [32]byte) (*big.Int, error) { + return _IExpressLaneAuction.Contract.GetRoleMemberCount(&_IExpressLaneAuction.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _IExpressLaneAuction.Contract.HasRole(&_IExpressLaneAuction.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _IExpressLaneAuction.Contract.HasRole(&_IExpressLaneAuction.CallOpts, role, account) +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) IsAuctionRoundClosed(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "isAuctionRoundClosed") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) IsAuctionRoundClosed() (bool, error) { + return _IExpressLaneAuction.Contract.IsAuctionRoundClosed(&_IExpressLaneAuction.CallOpts) +} + +// IsAuctionRoundClosed is a free data retrieval call binding the contract method 0x2d668ce7. +// +// Solidity: function isAuctionRoundClosed() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) IsAuctionRoundClosed() (bool, error) { + return _IExpressLaneAuction.Contract.IsAuctionRoundClosed(&_IExpressLaneAuction.CallOpts) +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) IsReserveBlackout(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "isReserveBlackout") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) IsReserveBlackout() (bool, error) { + return _IExpressLaneAuction.Contract.IsReserveBlackout(&_IExpressLaneAuction.CallOpts) +} + +// IsReserveBlackout is a free data retrieval call binding the contract method 0xe460d2c5. +// +// Solidity: function isReserveBlackout() view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) IsReserveBlackout() (bool, error) { + return _IExpressLaneAuction.Contract.IsReserveBlackout(&_IExpressLaneAuction.CallOpts) +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) ResolvedRounds(opts *bind.CallOpts) (ELCRound, ELCRound, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "resolvedRounds") + + if err != nil { + return *new(ELCRound), *new(ELCRound), err + } + + out0 := *abi.ConvertType(out[0], new(ELCRound)).(*ELCRound) + out1 := *abi.ConvertType(out[1], new(ELCRound)).(*ELCRound) + + return out0, out1, err + +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) ResolvedRounds() (ELCRound, ELCRound, error) { + return _IExpressLaneAuction.Contract.ResolvedRounds(&_IExpressLaneAuction.CallOpts) +} + +// ResolvedRounds is a free data retrieval call binding the contract method 0x0d253fbe. +// +// Solidity: function resolvedRounds() view returns((address,uint64), (address,uint64)) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) ResolvedRounds() (ELCRound, ELCRound, error) { + return _IExpressLaneAuction.Contract.ResolvedRounds(&_IExpressLaneAuction.CallOpts) +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64 start, uint64 end) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) RoundTimestamps(opts *bind.CallOpts, round uint64) (struct { + Start uint64 + End uint64 +}, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "roundTimestamps", round) + + outstruct := new(struct { + Start uint64 + End uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.Start = *abi.ConvertType(out[0], new(uint64)).(*uint64) + outstruct.End = *abi.ConvertType(out[1], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64 start, uint64 end) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RoundTimestamps(round uint64) (struct { + Start uint64 + End uint64 +}, error) { + return _IExpressLaneAuction.Contract.RoundTimestamps(&_IExpressLaneAuction.CallOpts, round) +} + +// RoundTimestamps is a free data retrieval call binding the contract method 0x7b617f94. +// +// Solidity: function roundTimestamps(uint64 round) view returns(uint64 start, uint64 end) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) RoundTimestamps(round uint64) (struct { + Start uint64 + End uint64 +}, error) { + return _IExpressLaneAuction.Contract.RoundTimestamps(&_IExpressLaneAuction.CallOpts, round) +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) RoundTimingInfo(opts *bind.CallOpts) (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "roundTimingInfo") + + outstruct := new(struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 + }) + if err != nil { + return *outstruct, err + } + + outstruct.OffsetTimestamp = *abi.ConvertType(out[0], new(int64)).(*int64) + outstruct.RoundDurationSeconds = *abi.ConvertType(out[1], new(uint64)).(*uint64) + outstruct.AuctionClosingSeconds = *abi.ConvertType(out[2], new(uint64)).(*uint64) + outstruct.ReserveSubmissionSeconds = *abi.ConvertType(out[3], new(uint64)).(*uint64) + + return *outstruct, err + +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RoundTimingInfo() (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + return _IExpressLaneAuction.Contract.RoundTimingInfo(&_IExpressLaneAuction.CallOpts) +} + +// RoundTimingInfo is a free data retrieval call binding the contract method 0x0152682d. +// +// Solidity: function roundTimingInfo() view returns(int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) RoundTimingInfo() (struct { + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 +}, error) { + return _IExpressLaneAuction.Contract.RoundTimingInfo(&_IExpressLaneAuction.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "supportsInterface", interfaceId) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _IExpressLaneAuction.Contract.SupportsInterface(&_IExpressLaneAuction.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _IExpressLaneAuction.Contract.SupportsInterface(&_IExpressLaneAuction.CallOpts, interfaceId) +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) WithdrawableBalance(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "withdrawableBalance", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) WithdrawableBalance(account common.Address) (*big.Int, error) { + return _IExpressLaneAuction.Contract.WithdrawableBalance(&_IExpressLaneAuction.CallOpts, account) +} + +// WithdrawableBalance is a free data retrieval call binding the contract method 0x02b62938. +// +// Solidity: function withdrawableBalance(address account) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) WithdrawableBalance(account common.Address) (*big.Int, error) { + return _IExpressLaneAuction.Contract.WithdrawableBalance(&_IExpressLaneAuction.CallOpts, account) +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCaller) WithdrawableBalanceAtRound(opts *bind.CallOpts, account common.Address, round uint64) (*big.Int, error) { + var out []interface{} + err := _IExpressLaneAuction.contract.Call(opts, &out, "withdrawableBalanceAtRound", account, round) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) WithdrawableBalanceAtRound(account common.Address, round uint64) (*big.Int, error) { + return _IExpressLaneAuction.Contract.WithdrawableBalanceAtRound(&_IExpressLaneAuction.CallOpts, account, round) +} + +// WithdrawableBalanceAtRound is a free data retrieval call binding the contract method 0x6e8cace5. +// +// Solidity: function withdrawableBalanceAtRound(address account, uint64 round) view returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionCallerSession) WithdrawableBalanceAtRound(account common.Address, round uint64) (*big.Int, error) { + return _IExpressLaneAuction.Contract.WithdrawableBalanceAtRound(&_IExpressLaneAuction.CallOpts, account, round) +} + +// AUCTIONEERADMINROLE is a paid mutator transaction binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) AUCTIONEERADMINROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "AUCTIONEER_ADMIN_ROLE") +} + +// AUCTIONEERADMINROLE is a paid mutator transaction binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) AUCTIONEERADMINROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.AUCTIONEERADMINROLE(&_IExpressLaneAuction.TransactOpts) +} + +// AUCTIONEERADMINROLE is a paid mutator transaction binding the contract method 0x14d96316. +// +// Solidity: function AUCTIONEER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) AUCTIONEERADMINROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.AUCTIONEERADMINROLE(&_IExpressLaneAuction.TransactOpts) +} + +// AUCTIONEERROLE is a paid mutator transaction binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) AUCTIONEERROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "AUCTIONEER_ROLE") +} + +// AUCTIONEERROLE is a paid mutator transaction binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) AUCTIONEERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.AUCTIONEERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// AUCTIONEERROLE is a paid mutator transaction binding the contract method 0xcfe9232b. +// +// Solidity: function AUCTIONEER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) AUCTIONEERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.AUCTIONEERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// BENEFICIARYSETTERROLE is a paid mutator transaction binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) BENEFICIARYSETTERROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "BENEFICIARY_SETTER_ROLE") +} + +// BENEFICIARYSETTERROLE is a paid mutator transaction binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) BENEFICIARYSETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BENEFICIARYSETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// BENEFICIARYSETTERROLE is a paid mutator transaction binding the contract method 0x336a5b5e. +// +// Solidity: function BENEFICIARY_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) BENEFICIARYSETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BENEFICIARYSETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// MINRESERVESETTERROLE is a paid mutator transaction binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) MINRESERVESETTERROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "MIN_RESERVE_SETTER_ROLE") +} + +// MINRESERVESETTERROLE is a paid mutator transaction binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) MINRESERVESETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.MINRESERVESETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// MINRESERVESETTERROLE is a paid mutator transaction binding the contract method 0x8948cc4e. +// +// Solidity: function MIN_RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) MINRESERVESETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.MINRESERVESETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// RESERVESETTERADMINROLE is a paid mutator transaction binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) RESERVESETTERADMINROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "RESERVE_SETTER_ADMIN_ROLE") +} + +// RESERVESETTERADMINROLE is a paid mutator transaction binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RESERVESETTERADMINROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RESERVESETTERADMINROLE(&_IExpressLaneAuction.TransactOpts) +} + +// RESERVESETTERADMINROLE is a paid mutator transaction binding the contract method 0xe3f7bb55. +// +// Solidity: function RESERVE_SETTER_ADMIN_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) RESERVESETTERADMINROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RESERVESETTERADMINROLE(&_IExpressLaneAuction.TransactOpts) +} + +// RESERVESETTERROLE is a paid mutator transaction binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) RESERVESETTERROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "RESERVE_SETTER_ROLE") +} + +// RESERVESETTERROLE is a paid mutator transaction binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RESERVESETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RESERVESETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// RESERVESETTERROLE is a paid mutator transaction binding the contract method 0xb3ee252f. +// +// Solidity: function RESERVE_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) RESERVESETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RESERVESETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// ROUNDTIMINGSETTERROLE is a paid mutator transaction binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) ROUNDTIMINGSETTERROLE(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "ROUND_TIMING_SETTER_ROLE") +} + +// ROUNDTIMINGSETTERROLE is a paid mutator transaction binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) ROUNDTIMINGSETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ROUNDTIMINGSETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// ROUNDTIMINGSETTERROLE is a paid mutator transaction binding the contract method 0x1682e50b. +// +// Solidity: function ROUND_TIMING_SETTER_ROLE() returns(bytes32) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) ROUNDTIMINGSETTERROLE() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ROUNDTIMINGSETTERROLE(&_IExpressLaneAuction.TransactOpts) +} + +// Beneficiary is a paid mutator transaction binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) Beneficiary(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "beneficiary") +} + +// Beneficiary is a paid mutator transaction binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) Beneficiary() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Beneficiary(&_IExpressLaneAuction.TransactOpts) +} + +// Beneficiary is a paid mutator transaction binding the contract method 0x38af3eed. +// +// Solidity: function beneficiary() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) Beneficiary() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Beneficiary(&_IExpressLaneAuction.TransactOpts) +} + +// BeneficiaryBalance is a paid mutator transaction binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) BeneficiaryBalance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "beneficiaryBalance") +} + +// BeneficiaryBalance is a paid mutator transaction binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) BeneficiaryBalance() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BeneficiaryBalance(&_IExpressLaneAuction.TransactOpts) +} + +// BeneficiaryBalance is a paid mutator transaction binding the contract method 0xe2fc6f68. +// +// Solidity: function beneficiaryBalance() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) BeneficiaryBalance() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BeneficiaryBalance(&_IExpressLaneAuction.TransactOpts) +} + +// BiddingToken is a paid mutator transaction binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) BiddingToken(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "biddingToken") +} + +// BiddingToken is a paid mutator transaction binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) BiddingToken() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BiddingToken(&_IExpressLaneAuction.TransactOpts) +} + +// BiddingToken is a paid mutator transaction binding the contract method 0x639d7566. +// +// Solidity: function biddingToken() returns(address) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) BiddingToken() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.BiddingToken(&_IExpressLaneAuction.TransactOpts) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) Deposit(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "deposit", amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) Deposit(amount *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Deposit(&_IExpressLaneAuction.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0xb6b55f25. +// +// Solidity: function deposit(uint256 amount) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) Deposit(amount *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Deposit(&_IExpressLaneAuction.TransactOpts, amount) +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) FinalizeWithdrawal(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "finalizeWithdrawal") +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) FinalizeWithdrawal() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.FinalizeWithdrawal(&_IExpressLaneAuction.TransactOpts) +} + +// FinalizeWithdrawal is a paid mutator transaction binding the contract method 0xc5b6aa2f. +// +// Solidity: function finalizeWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) FinalizeWithdrawal() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.FinalizeWithdrawal(&_IExpressLaneAuction.TransactOpts) +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) FlushBeneficiaryBalance(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "flushBeneficiaryBalance") +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) FlushBeneficiaryBalance() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.FlushBeneficiaryBalance(&_IExpressLaneAuction.TransactOpts) +} + +// FlushBeneficiaryBalance is a paid mutator transaction binding the contract method 0x6ad72517. +// +// Solidity: function flushBeneficiaryBalance() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) FlushBeneficiaryBalance() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.FlushBeneficiaryBalance(&_IExpressLaneAuction.TransactOpts) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.GrantRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.GrantRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) Initialize(opts *bind.TransactOpts, args InitArgs) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "initialize", args) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) Initialize(args InitArgs) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Initialize(&_IExpressLaneAuction.TransactOpts, args) +} + +// Initialize is a paid mutator transaction binding the contract method 0x9a1fadd3. +// +// Solidity: function initialize((address,address,address,(int64,uint64,uint64,uint64),uint256,address,address,address,address,address,address,address) args) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) Initialize(args InitArgs) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.Initialize(&_IExpressLaneAuction.TransactOpts, args) +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) InitiateWithdrawal(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "initiateWithdrawal") +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) InitiateWithdrawal() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.InitiateWithdrawal(&_IExpressLaneAuction.TransactOpts) +} + +// InitiateWithdrawal is a paid mutator transaction binding the contract method 0xb51d1d4f. +// +// Solidity: function initiateWithdrawal() returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) InitiateWithdrawal() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.InitiateWithdrawal(&_IExpressLaneAuction.TransactOpts) +} + +// MinReservePrice is a paid mutator transaction binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) MinReservePrice(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "minReservePrice") +} + +// MinReservePrice is a paid mutator transaction binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) MinReservePrice() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.MinReservePrice(&_IExpressLaneAuction.TransactOpts) +} + +// MinReservePrice is a paid mutator transaction binding the contract method 0x83af0a1f. +// +// Solidity: function minReservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) MinReservePrice() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.MinReservePrice(&_IExpressLaneAuction.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "renounceRole", role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RenounceRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RenounceRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) RenounceRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RenounceRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// ReservePrice is a paid mutator transaction binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) ReservePrice(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "reservePrice") +} + +// ReservePrice is a paid mutator transaction binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) ReservePrice() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ReservePrice(&_IExpressLaneAuction.TransactOpts) +} + +// ReservePrice is a paid mutator transaction binding the contract method 0xdb2e1eed. +// +// Solidity: function reservePrice() returns(uint256) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) ReservePrice() (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ReservePrice(&_IExpressLaneAuction.TransactOpts) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) ResolveMultiBidAuction(opts *bind.TransactOpts, firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "resolveMultiBidAuction", firstPriceBid, secondPriceBid) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) ResolveMultiBidAuction(firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ResolveMultiBidAuction(&_IExpressLaneAuction.TransactOpts, firstPriceBid, secondPriceBid) +} + +// ResolveMultiBidAuction is a paid mutator transaction binding the contract method 0x447a709e. +// +// Solidity: function resolveMultiBidAuction((address,uint256,bytes) firstPriceBid, (address,uint256,bytes) secondPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) ResolveMultiBidAuction(firstPriceBid Bid, secondPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ResolveMultiBidAuction(&_IExpressLaneAuction.TransactOpts, firstPriceBid, secondPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) ResolveSingleBidAuction(opts *bind.TransactOpts, firstPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "resolveSingleBidAuction", firstPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) ResolveSingleBidAuction(firstPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ResolveSingleBidAuction(&_IExpressLaneAuction.TransactOpts, firstPriceBid) +} + +// ResolveSingleBidAuction is a paid mutator transaction binding the contract method 0x6dc4fc4e. +// +// Solidity: function resolveSingleBidAuction((address,uint256,bytes) firstPriceBid) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) ResolveSingleBidAuction(firstPriceBid Bid) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.ResolveSingleBidAuction(&_IExpressLaneAuction.TransactOpts, firstPriceBid) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RevokeRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.RevokeRole(&_IExpressLaneAuction.TransactOpts, role, account) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) SetBeneficiary(opts *bind.TransactOpts, newBeneficiary common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "setBeneficiary", newBeneficiary) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SetBeneficiary(newBeneficiary common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetBeneficiary(&_IExpressLaneAuction.TransactOpts, newBeneficiary) +} + +// SetBeneficiary is a paid mutator transaction binding the contract method 0x1c31f710. +// +// Solidity: function setBeneficiary(address newBeneficiary) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) SetBeneficiary(newBeneficiary common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetBeneficiary(&_IExpressLaneAuction.TransactOpts, newBeneficiary) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) SetMinReservePrice(opts *bind.TransactOpts, newMinReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "setMinReservePrice", newMinReservePrice) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SetMinReservePrice(newMinReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetMinReservePrice(&_IExpressLaneAuction.TransactOpts, newMinReservePrice) +} + +// SetMinReservePrice is a paid mutator transaction binding the contract method 0xe4d20c1d. +// +// Solidity: function setMinReservePrice(uint256 newMinReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) SetMinReservePrice(newMinReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetMinReservePrice(&_IExpressLaneAuction.TransactOpts, newMinReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) SetReservePrice(opts *bind.TransactOpts, newReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "setReservePrice", newReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SetReservePrice(newReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetReservePrice(&_IExpressLaneAuction.TransactOpts, newReservePrice) +} + +// SetReservePrice is a paid mutator transaction binding the contract method 0xce9c7c0d. +// +// Solidity: function setReservePrice(uint256 newReservePrice) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) SetReservePrice(newReservePrice *big.Int) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetReservePrice(&_IExpressLaneAuction.TransactOpts, newReservePrice) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) SetRoundTimingInfo(opts *bind.TransactOpts, newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "setRoundTimingInfo", newRoundTimingInfo) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SetRoundTimingInfo(newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetRoundTimingInfo(&_IExpressLaneAuction.TransactOpts, newRoundTimingInfo) +} + +// SetRoundTimingInfo is a paid mutator transaction binding the contract method 0xfed87be8. +// +// Solidity: function setRoundTimingInfo((int64,uint64,uint64,uint64) newRoundTimingInfo) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) SetRoundTimingInfo(newRoundTimingInfo RoundTimingInfo) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetRoundTimingInfo(&_IExpressLaneAuction.TransactOpts, newRoundTimingInfo) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) SetTransferor(opts *bind.TransactOpts, transferor Transferor) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "setTransferor", transferor) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) SetTransferor(transferor Transferor) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetTransferor(&_IExpressLaneAuction.TransactOpts, transferor) +} + +// SetTransferor is a paid mutator transaction binding the contract method 0xbef0ec74. +// +// Solidity: function setTransferor((address,uint64) transferor) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) SetTransferor(transferor Transferor) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.SetTransferor(&_IExpressLaneAuction.TransactOpts, transferor) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) TransferExpressLaneController(opts *bind.TransactOpts, round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "transferExpressLaneController", round, newExpressLaneController) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionSession) TransferExpressLaneController(round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.TransferExpressLaneController(&_IExpressLaneAuction.TransactOpts, round, newExpressLaneController) +} + +// TransferExpressLaneController is a paid mutator transaction binding the contract method 0x007be2fe. +// +// Solidity: function transferExpressLaneController(uint64 round, address newExpressLaneController) returns() +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) TransferExpressLaneController(round uint64, newExpressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.TransferExpressLaneController(&_IExpressLaneAuction.TransactOpts, round, newExpressLaneController) +} + +// TransferorOf is a paid mutator transaction binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address expressLaneController) returns(address addr, uint64 fixedUntil) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactor) TransferorOf(opts *bind.TransactOpts, expressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.contract.Transact(opts, "transferorOf", expressLaneController) +} + +// TransferorOf is a paid mutator transaction binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address expressLaneController) returns(address addr, uint64 fixedUntil) +func (_IExpressLaneAuction *IExpressLaneAuctionSession) TransferorOf(expressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.TransferorOf(&_IExpressLaneAuction.TransactOpts, expressLaneController) +} + +// TransferorOf is a paid mutator transaction binding the contract method 0x6a514beb. +// +// Solidity: function transferorOf(address expressLaneController) returns(address addr, uint64 fixedUntil) +func (_IExpressLaneAuction *IExpressLaneAuctionTransactorSession) TransferorOf(expressLaneController common.Address) (*types.Transaction, error) { + return _IExpressLaneAuction.Contract.TransferorOf(&_IExpressLaneAuction.TransactOpts, expressLaneController) +} + +// IExpressLaneAuctionAuctionResolvedIterator is returned from FilterAuctionResolved and is used to iterate over the raw logs and unpacked data for AuctionResolved events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionAuctionResolvedIterator struct { + Event *IExpressLaneAuctionAuctionResolved // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionAuctionResolvedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionAuctionResolved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionAuctionResolved) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionAuctionResolvedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionAuctionResolvedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionAuctionResolved represents a AuctionResolved event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionAuctionResolved struct { + IsMultiBidAuction bool + Round uint64 + FirstPriceBidder common.Address + FirstPriceExpressLaneController common.Address + FirstPriceAmount *big.Int + Price *big.Int + RoundStartTimestamp uint64 + RoundEndTimestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterAuctionResolved is a free log retrieval operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterAuctionResolved(opts *bind.FilterOpts, isMultiBidAuction []bool, firstPriceBidder []common.Address, firstPriceExpressLaneController []common.Address) (*IExpressLaneAuctionAuctionResolvedIterator, error) { + + var isMultiBidAuctionRule []interface{} + for _, isMultiBidAuctionItem := range isMultiBidAuction { + isMultiBidAuctionRule = append(isMultiBidAuctionRule, isMultiBidAuctionItem) + } + + var firstPriceBidderRule []interface{} + for _, firstPriceBidderItem := range firstPriceBidder { + firstPriceBidderRule = append(firstPriceBidderRule, firstPriceBidderItem) + } + var firstPriceExpressLaneControllerRule []interface{} + for _, firstPriceExpressLaneControllerItem := range firstPriceExpressLaneController { + firstPriceExpressLaneControllerRule = append(firstPriceExpressLaneControllerRule, firstPriceExpressLaneControllerItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "AuctionResolved", isMultiBidAuctionRule, firstPriceBidderRule, firstPriceExpressLaneControllerRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionAuctionResolvedIterator{contract: _IExpressLaneAuction.contract, event: "AuctionResolved", logs: logs, sub: sub}, nil +} + +// WatchAuctionResolved is a free log subscription operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchAuctionResolved(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionAuctionResolved, isMultiBidAuction []bool, firstPriceBidder []common.Address, firstPriceExpressLaneController []common.Address) (event.Subscription, error) { + + var isMultiBidAuctionRule []interface{} + for _, isMultiBidAuctionItem := range isMultiBidAuction { + isMultiBidAuctionRule = append(isMultiBidAuctionRule, isMultiBidAuctionItem) + } + + var firstPriceBidderRule []interface{} + for _, firstPriceBidderItem := range firstPriceBidder { + firstPriceBidderRule = append(firstPriceBidderRule, firstPriceBidderItem) + } + var firstPriceExpressLaneControllerRule []interface{} + for _, firstPriceExpressLaneControllerItem := range firstPriceExpressLaneController { + firstPriceExpressLaneControllerRule = append(firstPriceExpressLaneControllerRule, firstPriceExpressLaneControllerItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "AuctionResolved", isMultiBidAuctionRule, firstPriceBidderRule, firstPriceExpressLaneControllerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionAuctionResolved) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "AuctionResolved", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseAuctionResolved is a log parse operation binding the contract event 0x7f5bdabbd27a8fc572781b177055488d7c6729a2bade4f57da9d200f31c15d47. +// +// Solidity: event AuctionResolved(bool indexed isMultiBidAuction, uint64 round, address indexed firstPriceBidder, address indexed firstPriceExpressLaneController, uint256 firstPriceAmount, uint256 price, uint64 roundStartTimestamp, uint64 roundEndTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseAuctionResolved(log types.Log) (*IExpressLaneAuctionAuctionResolved, error) { + event := new(IExpressLaneAuctionAuctionResolved) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "AuctionResolved", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionDepositIterator struct { + Event *IExpressLaneAuctionDeposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionDepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionDeposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionDepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionDepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionDeposit represents a Deposit event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionDeposit struct { + Account common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposit is a free log retrieval operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterDeposit(opts *bind.FilterOpts, account []common.Address) (*IExpressLaneAuctionDepositIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "Deposit", accountRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionDepositIterator{contract: _IExpressLaneAuction.contract, event: "Deposit", logs: logs, sub: sub}, nil +} + +// WatchDeposit is a free log subscription operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionDeposit, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "Deposit", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionDeposit) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "Deposit", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseDeposit is a log parse operation binding the contract event 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c. +// +// Solidity: event Deposit(address indexed account, uint256 amount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseDeposit(log types.Log) (*IExpressLaneAuctionDeposit, error) { + event := new(IExpressLaneAuctionDeposit) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleAdminChangedIterator struct { + Event *IExpressLaneAuctionRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionRoleAdminChanged represents a RoleAdminChanged event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*IExpressLaneAuctionRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionRoleAdminChangedIterator{contract: _IExpressLaneAuction.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionRoleAdminChanged) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseRoleAdminChanged(log types.Log) (*IExpressLaneAuctionRoleAdminChanged, error) { + event := new(IExpressLaneAuctionRoleAdminChanged) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleGrantedIterator struct { + Event *IExpressLaneAuctionRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionRoleGranted represents a RoleGranted event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*IExpressLaneAuctionRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionRoleGrantedIterator{contract: _IExpressLaneAuction.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionRoleGranted) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseRoleGranted(log types.Log) (*IExpressLaneAuctionRoleGranted, error) { + event := new(IExpressLaneAuctionRoleGranted) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleRevokedIterator struct { + Event *IExpressLaneAuctionRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionRoleRevoked represents a RoleRevoked event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*IExpressLaneAuctionRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionRoleRevokedIterator{contract: _IExpressLaneAuction.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionRoleRevoked) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseRoleRevoked(log types.Log) (*IExpressLaneAuctionRoleRevoked, error) { + event := new(IExpressLaneAuctionRoleRevoked) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetBeneficiaryIterator is returned from FilterSetBeneficiary and is used to iterate over the raw logs and unpacked data for SetBeneficiary events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetBeneficiaryIterator struct { + Event *IExpressLaneAuctionSetBeneficiary // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetBeneficiaryIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetBeneficiary) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetBeneficiary) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetBeneficiaryIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetBeneficiaryIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetBeneficiary represents a SetBeneficiary event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetBeneficiary struct { + OldBeneficiary common.Address + NewBeneficiary common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetBeneficiary is a free log retrieval operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetBeneficiary(opts *bind.FilterOpts) (*IExpressLaneAuctionSetBeneficiaryIterator, error) { + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetBeneficiary") + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetBeneficiaryIterator{contract: _IExpressLaneAuction.contract, event: "SetBeneficiary", logs: logs, sub: sub}, nil +} + +// WatchSetBeneficiary is a free log subscription operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetBeneficiary(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetBeneficiary) (event.Subscription, error) { + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetBeneficiary") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetBeneficiary) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetBeneficiary", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetBeneficiary is a log parse operation binding the contract event 0x8a0149b2f3ddf2c9ee85738165131d82babbb938f749321d59f75750afa7f4e6. +// +// Solidity: event SetBeneficiary(address oldBeneficiary, address newBeneficiary) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetBeneficiary(log types.Log) (*IExpressLaneAuctionSetBeneficiary, error) { + event := new(IExpressLaneAuctionSetBeneficiary) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetBeneficiary", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetExpressLaneControllerIterator is returned from FilterSetExpressLaneController and is used to iterate over the raw logs and unpacked data for SetExpressLaneController events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetExpressLaneControllerIterator struct { + Event *IExpressLaneAuctionSetExpressLaneController // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetExpressLaneControllerIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetExpressLaneController) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetExpressLaneController) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetExpressLaneControllerIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetExpressLaneControllerIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetExpressLaneController represents a SetExpressLaneController event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetExpressLaneController struct { + Round uint64 + PreviousExpressLaneController common.Address + NewExpressLaneController common.Address + Transferor common.Address + StartTimestamp uint64 + EndTimestamp uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetExpressLaneController is a free log retrieval operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetExpressLaneController(opts *bind.FilterOpts, previousExpressLaneController []common.Address, newExpressLaneController []common.Address, transferor []common.Address) (*IExpressLaneAuctionSetExpressLaneControllerIterator, error) { + + var previousExpressLaneControllerRule []interface{} + for _, previousExpressLaneControllerItem := range previousExpressLaneController { + previousExpressLaneControllerRule = append(previousExpressLaneControllerRule, previousExpressLaneControllerItem) + } + var newExpressLaneControllerRule []interface{} + for _, newExpressLaneControllerItem := range newExpressLaneController { + newExpressLaneControllerRule = append(newExpressLaneControllerRule, newExpressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetExpressLaneController", previousExpressLaneControllerRule, newExpressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetExpressLaneControllerIterator{contract: _IExpressLaneAuction.contract, event: "SetExpressLaneController", logs: logs, sub: sub}, nil +} + +// WatchSetExpressLaneController is a free log subscription operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetExpressLaneController(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetExpressLaneController, previousExpressLaneController []common.Address, newExpressLaneController []common.Address, transferor []common.Address) (event.Subscription, error) { + + var previousExpressLaneControllerRule []interface{} + for _, previousExpressLaneControllerItem := range previousExpressLaneController { + previousExpressLaneControllerRule = append(previousExpressLaneControllerRule, previousExpressLaneControllerItem) + } + var newExpressLaneControllerRule []interface{} + for _, newExpressLaneControllerItem := range newExpressLaneController { + newExpressLaneControllerRule = append(newExpressLaneControllerRule, newExpressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetExpressLaneController", previousExpressLaneControllerRule, newExpressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetExpressLaneController) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetExpressLaneController", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetExpressLaneController is a log parse operation binding the contract event 0xb59adc820ca642dad493a0a6e0bdf979dcae037dea114b70d5c66b1c0b791c4b. +// +// Solidity: event SetExpressLaneController(uint64 round, address indexed previousExpressLaneController, address indexed newExpressLaneController, address indexed transferor, uint64 startTimestamp, uint64 endTimestamp) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetExpressLaneController(log types.Log) (*IExpressLaneAuctionSetExpressLaneController, error) { + event := new(IExpressLaneAuctionSetExpressLaneController) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetExpressLaneController", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetMinReservePriceIterator is returned from FilterSetMinReservePrice and is used to iterate over the raw logs and unpacked data for SetMinReservePrice events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetMinReservePriceIterator struct { + Event *IExpressLaneAuctionSetMinReservePrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetMinReservePriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetMinReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetMinReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetMinReservePriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetMinReservePriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetMinReservePrice represents a SetMinReservePrice event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetMinReservePrice struct { + OldPrice *big.Int + NewPrice *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetMinReservePrice is a free log retrieval operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetMinReservePrice(opts *bind.FilterOpts) (*IExpressLaneAuctionSetMinReservePriceIterator, error) { + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetMinReservePrice") + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetMinReservePriceIterator{contract: _IExpressLaneAuction.contract, event: "SetMinReservePrice", logs: logs, sub: sub}, nil +} + +// WatchSetMinReservePrice is a free log subscription operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetMinReservePrice(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetMinReservePrice) (event.Subscription, error) { + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetMinReservePrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetMinReservePrice) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetMinReservePrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetMinReservePrice is a log parse operation binding the contract event 0x5848068f11aa3ba9fe3fc33c5f9f2a3cd1aed67986b85b5e0cedc67dbe96f0f0. +// +// Solidity: event SetMinReservePrice(uint256 oldPrice, uint256 newPrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetMinReservePrice(log types.Log) (*IExpressLaneAuctionSetMinReservePrice, error) { + event := new(IExpressLaneAuctionSetMinReservePrice) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetMinReservePrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetReservePriceIterator is returned from FilterSetReservePrice and is used to iterate over the raw logs and unpacked data for SetReservePrice events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetReservePriceIterator struct { + Event *IExpressLaneAuctionSetReservePrice // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetReservePriceIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetReservePrice) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetReservePriceIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetReservePriceIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetReservePrice represents a SetReservePrice event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetReservePrice struct { + OldReservePrice *big.Int + NewReservePrice *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetReservePrice is a free log retrieval operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetReservePrice(opts *bind.FilterOpts) (*IExpressLaneAuctionSetReservePriceIterator, error) { + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetReservePrice") + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetReservePriceIterator{contract: _IExpressLaneAuction.contract, event: "SetReservePrice", logs: logs, sub: sub}, nil +} + +// WatchSetReservePrice is a free log subscription operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetReservePrice(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetReservePrice) (event.Subscription, error) { + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetReservePrice") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetReservePrice) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetReservePrice", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetReservePrice is a log parse operation binding the contract event 0x9725e37e079c5bda6009a8f54d86265849f30acf61c630f9e1ac91e67de98794. +// +// Solidity: event SetReservePrice(uint256 oldReservePrice, uint256 newReservePrice) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetReservePrice(log types.Log) (*IExpressLaneAuctionSetReservePrice, error) { + event := new(IExpressLaneAuctionSetReservePrice) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetReservePrice", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetRoundTimingInfoIterator is returned from FilterSetRoundTimingInfo and is used to iterate over the raw logs and unpacked data for SetRoundTimingInfo events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetRoundTimingInfoIterator struct { + Event *IExpressLaneAuctionSetRoundTimingInfo // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetRoundTimingInfoIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetRoundTimingInfo) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetRoundTimingInfo) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetRoundTimingInfoIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetRoundTimingInfoIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetRoundTimingInfo represents a SetRoundTimingInfo event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetRoundTimingInfo struct { + CurrentRound uint64 + OffsetTimestamp int64 + RoundDurationSeconds uint64 + AuctionClosingSeconds uint64 + ReserveSubmissionSeconds uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetRoundTimingInfo is a free log retrieval operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetRoundTimingInfo(opts *bind.FilterOpts) (*IExpressLaneAuctionSetRoundTimingInfoIterator, error) { + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetRoundTimingInfo") + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetRoundTimingInfoIterator{contract: _IExpressLaneAuction.contract, event: "SetRoundTimingInfo", logs: logs, sub: sub}, nil +} + +// WatchSetRoundTimingInfo is a free log subscription operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetRoundTimingInfo(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetRoundTimingInfo) (event.Subscription, error) { + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetRoundTimingInfo") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetRoundTimingInfo) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetRoundTimingInfo", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetRoundTimingInfo is a log parse operation binding the contract event 0x982cfb73783b8c64455c76cdeb1351467c4f1e6b3615fec07df232c1b46ffd47. +// +// Solidity: event SetRoundTimingInfo(uint64 currentRound, int64 offsetTimestamp, uint64 roundDurationSeconds, uint64 auctionClosingSeconds, uint64 reserveSubmissionSeconds) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetRoundTimingInfo(log types.Log) (*IExpressLaneAuctionSetRoundTimingInfo, error) { + event := new(IExpressLaneAuctionSetRoundTimingInfo) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetRoundTimingInfo", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionSetTransferorIterator is returned from FilterSetTransferor and is used to iterate over the raw logs and unpacked data for SetTransferor events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetTransferorIterator struct { + Event *IExpressLaneAuctionSetTransferor // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionSetTransferorIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetTransferor) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionSetTransferor) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionSetTransferorIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionSetTransferorIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionSetTransferor represents a SetTransferor event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionSetTransferor struct { + ExpressLaneController common.Address + Transferor common.Address + FixedUntilRound uint64 + Raw types.Log // Blockchain specific contextual infos +} + +// FilterSetTransferor is a free log retrieval operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterSetTransferor(opts *bind.FilterOpts, expressLaneController []common.Address, transferor []common.Address) (*IExpressLaneAuctionSetTransferorIterator, error) { + + var expressLaneControllerRule []interface{} + for _, expressLaneControllerItem := range expressLaneController { + expressLaneControllerRule = append(expressLaneControllerRule, expressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "SetTransferor", expressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionSetTransferorIterator{contract: _IExpressLaneAuction.contract, event: "SetTransferor", logs: logs, sub: sub}, nil +} + +// WatchSetTransferor is a free log subscription operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchSetTransferor(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionSetTransferor, expressLaneController []common.Address, transferor []common.Address) (event.Subscription, error) { + + var expressLaneControllerRule []interface{} + for _, expressLaneControllerItem := range expressLaneController { + expressLaneControllerRule = append(expressLaneControllerRule, expressLaneControllerItem) + } + var transferorRule []interface{} + for _, transferorItem := range transferor { + transferorRule = append(transferorRule, transferorItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "SetTransferor", expressLaneControllerRule, transferorRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionSetTransferor) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetTransferor", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseSetTransferor is a log parse operation binding the contract event 0xf6d28df235d9fa45a42d45dbb7c4f4ac76edb51e528f09f25a0650d32b8b33c0. +// +// Solidity: event SetTransferor(address indexed expressLaneController, address indexed transferor, uint64 fixedUntilRound) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseSetTransferor(log types.Log) (*IExpressLaneAuctionSetTransferor, error) { + event := new(IExpressLaneAuctionSetTransferor) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "SetTransferor", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionWithdrawalFinalizedIterator is returned from FilterWithdrawalFinalized and is used to iterate over the raw logs and unpacked data for WithdrawalFinalized events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionWithdrawalFinalizedIterator struct { + Event *IExpressLaneAuctionWithdrawalFinalized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionWithdrawalFinalizedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionWithdrawalFinalized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionWithdrawalFinalized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionWithdrawalFinalizedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionWithdrawalFinalizedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionWithdrawalFinalized represents a WithdrawalFinalized event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionWithdrawalFinalized struct { + Account common.Address + WithdrawalAmount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawalFinalized is a free log retrieval operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterWithdrawalFinalized(opts *bind.FilterOpts, account []common.Address) (*IExpressLaneAuctionWithdrawalFinalizedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "WithdrawalFinalized", accountRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionWithdrawalFinalizedIterator{contract: _IExpressLaneAuction.contract, event: "WithdrawalFinalized", logs: logs, sub: sub}, nil +} + +// WatchWithdrawalFinalized is a free log subscription operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchWithdrawalFinalized(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionWithdrawalFinalized, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "WithdrawalFinalized", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionWithdrawalFinalized) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "WithdrawalFinalized", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawalFinalized is a log parse operation binding the contract event 0x9e5c4f9f4e46b8629d3dda85f43a69194f50254404a72dc62b9e932d9c94eda8. +// +// Solidity: event WithdrawalFinalized(address indexed account, uint256 withdrawalAmount) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseWithdrawalFinalized(log types.Log) (*IExpressLaneAuctionWithdrawalFinalized, error) { + event := new(IExpressLaneAuctionWithdrawalFinalized) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "WithdrawalFinalized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IExpressLaneAuctionWithdrawalInitiatedIterator is returned from FilterWithdrawalInitiated and is used to iterate over the raw logs and unpacked data for WithdrawalInitiated events raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionWithdrawalInitiatedIterator struct { + Event *IExpressLaneAuctionWithdrawalInitiated // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IExpressLaneAuctionWithdrawalInitiatedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionWithdrawalInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IExpressLaneAuctionWithdrawalInitiated) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IExpressLaneAuctionWithdrawalInitiatedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IExpressLaneAuctionWithdrawalInitiatedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IExpressLaneAuctionWithdrawalInitiated represents a WithdrawalInitiated event raised by the IExpressLaneAuction contract. +type IExpressLaneAuctionWithdrawalInitiated struct { + Account common.Address + WithdrawalAmount *big.Int + RoundWithdrawable *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawalInitiated is a free log retrieval operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) FilterWithdrawalInitiated(opts *bind.FilterOpts, account []common.Address) (*IExpressLaneAuctionWithdrawalInitiatedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.FilterLogs(opts, "WithdrawalInitiated", accountRule) + if err != nil { + return nil, err + } + return &IExpressLaneAuctionWithdrawalInitiatedIterator{contract: _IExpressLaneAuction.contract, event: "WithdrawalInitiated", logs: logs, sub: sub}, nil +} + +// WatchWithdrawalInitiated is a free log subscription operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) WatchWithdrawalInitiated(opts *bind.WatchOpts, sink chan<- *IExpressLaneAuctionWithdrawalInitiated, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _IExpressLaneAuction.contract.WatchLogs(opts, "WithdrawalInitiated", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IExpressLaneAuctionWithdrawalInitiated) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "WithdrawalInitiated", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdrawalInitiated is a log parse operation binding the contract event 0x31f69201fab7912e3ec9850e3ab705964bf46d9d4276bdcbb6d05e965e5f5401. +// +// Solidity: event WithdrawalInitiated(address indexed account, uint256 withdrawalAmount, uint256 roundWithdrawable) +func (_IExpressLaneAuction *IExpressLaneAuctionFilterer) ParseWithdrawalInitiated(log types.Log) (*IExpressLaneAuctionWithdrawalInitiated, error) { + event := new(IExpressLaneAuctionWithdrawalInitiated) + if err := _IExpressLaneAuction.contract.UnpackLog(event, "WithdrawalInitiated", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// LatestELCRoundsLibMetaData contains all meta data concerning the LatestELCRoundsLib contract. +var LatestELCRoundsLibMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205149eb104e8bfd1c6cd79377a8e5710161f5ae9f2d3b715e9cd1f757cd14569064736f6c63430008110033", +} + +// LatestELCRoundsLibABI is the input ABI used to generate the binding from. +// Deprecated: Use LatestELCRoundsLibMetaData.ABI instead. +var LatestELCRoundsLibABI = LatestELCRoundsLibMetaData.ABI + +// LatestELCRoundsLibBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use LatestELCRoundsLibMetaData.Bin instead. +var LatestELCRoundsLibBin = LatestELCRoundsLibMetaData.Bin + +// DeployLatestELCRoundsLib deploys a new Ethereum contract, binding an instance of LatestELCRoundsLib to it. +func DeployLatestELCRoundsLib(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *LatestELCRoundsLib, error) { + parsed, err := LatestELCRoundsLibMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(LatestELCRoundsLibBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &LatestELCRoundsLib{LatestELCRoundsLibCaller: LatestELCRoundsLibCaller{contract: contract}, LatestELCRoundsLibTransactor: LatestELCRoundsLibTransactor{contract: contract}, LatestELCRoundsLibFilterer: LatestELCRoundsLibFilterer{contract: contract}}, nil +} + +// LatestELCRoundsLib is an auto generated Go binding around an Ethereum contract. +type LatestELCRoundsLib struct { + LatestELCRoundsLibCaller // Read-only binding to the contract + LatestELCRoundsLibTransactor // Write-only binding to the contract + LatestELCRoundsLibFilterer // Log filterer for contract events +} + +// LatestELCRoundsLibCaller is an auto generated read-only Go binding around an Ethereum contract. +type LatestELCRoundsLibCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// LatestELCRoundsLibTransactor is an auto generated write-only Go binding around an Ethereum contract. +type LatestELCRoundsLibTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// LatestELCRoundsLibFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type LatestELCRoundsLibFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// LatestELCRoundsLibSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type LatestELCRoundsLibSession struct { + Contract *LatestELCRoundsLib // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// LatestELCRoundsLibCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type LatestELCRoundsLibCallerSession struct { + Contract *LatestELCRoundsLibCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// LatestELCRoundsLibTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type LatestELCRoundsLibTransactorSession struct { + Contract *LatestELCRoundsLibTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// LatestELCRoundsLibRaw is an auto generated low-level Go binding around an Ethereum contract. +type LatestELCRoundsLibRaw struct { + Contract *LatestELCRoundsLib // Generic contract binding to access the raw methods on +} + +// LatestELCRoundsLibCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type LatestELCRoundsLibCallerRaw struct { + Contract *LatestELCRoundsLibCaller // Generic read-only contract binding to access the raw methods on +} + +// LatestELCRoundsLibTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type LatestELCRoundsLibTransactorRaw struct { + Contract *LatestELCRoundsLibTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewLatestELCRoundsLib creates a new instance of LatestELCRoundsLib, bound to a specific deployed contract. +func NewLatestELCRoundsLib(address common.Address, backend bind.ContractBackend) (*LatestELCRoundsLib, error) { + contract, err := bindLatestELCRoundsLib(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &LatestELCRoundsLib{LatestELCRoundsLibCaller: LatestELCRoundsLibCaller{contract: contract}, LatestELCRoundsLibTransactor: LatestELCRoundsLibTransactor{contract: contract}, LatestELCRoundsLibFilterer: LatestELCRoundsLibFilterer{contract: contract}}, nil +} + +// NewLatestELCRoundsLibCaller creates a new read-only instance of LatestELCRoundsLib, bound to a specific deployed contract. +func NewLatestELCRoundsLibCaller(address common.Address, caller bind.ContractCaller) (*LatestELCRoundsLibCaller, error) { + contract, err := bindLatestELCRoundsLib(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &LatestELCRoundsLibCaller{contract: contract}, nil +} + +// NewLatestELCRoundsLibTransactor creates a new write-only instance of LatestELCRoundsLib, bound to a specific deployed contract. +func NewLatestELCRoundsLibTransactor(address common.Address, transactor bind.ContractTransactor) (*LatestELCRoundsLibTransactor, error) { + contract, err := bindLatestELCRoundsLib(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &LatestELCRoundsLibTransactor{contract: contract}, nil +} + +// NewLatestELCRoundsLibFilterer creates a new log filterer instance of LatestELCRoundsLib, bound to a specific deployed contract. +func NewLatestELCRoundsLibFilterer(address common.Address, filterer bind.ContractFilterer) (*LatestELCRoundsLibFilterer, error) { + contract, err := bindLatestELCRoundsLib(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &LatestELCRoundsLibFilterer{contract: contract}, nil +} + +// bindLatestELCRoundsLib binds a generic wrapper to an already deployed contract. +func bindLatestELCRoundsLib(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := LatestELCRoundsLibMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_LatestELCRoundsLib *LatestELCRoundsLibRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _LatestELCRoundsLib.Contract.LatestELCRoundsLibCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_LatestELCRoundsLib *LatestELCRoundsLibRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _LatestELCRoundsLib.Contract.LatestELCRoundsLibTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_LatestELCRoundsLib *LatestELCRoundsLibRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _LatestELCRoundsLib.Contract.LatestELCRoundsLibTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_LatestELCRoundsLib *LatestELCRoundsLibCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _LatestELCRoundsLib.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_LatestELCRoundsLib *LatestELCRoundsLibTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _LatestELCRoundsLib.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_LatestELCRoundsLib *LatestELCRoundsLibTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _LatestELCRoundsLib.Contract.contract.Transact(opts, method, params...) +} + +// RoundTimingInfoLibMetaData contains all meta data concerning the RoundTimingInfoLib contract. +var RoundTimingInfoLibMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208045a4c4c59960fbfd1cb02dad8291d7400ec4475eab6e3d573374409f19f7ab64736f6c63430008110033", +} + +// RoundTimingInfoLibABI is the input ABI used to generate the binding from. +// Deprecated: Use RoundTimingInfoLibMetaData.ABI instead. +var RoundTimingInfoLibABI = RoundTimingInfoLibMetaData.ABI + +// RoundTimingInfoLibBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use RoundTimingInfoLibMetaData.Bin instead. +var RoundTimingInfoLibBin = RoundTimingInfoLibMetaData.Bin + +// DeployRoundTimingInfoLib deploys a new Ethereum contract, binding an instance of RoundTimingInfoLib to it. +func DeployRoundTimingInfoLib(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *RoundTimingInfoLib, error) { + parsed, err := RoundTimingInfoLibMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RoundTimingInfoLibBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &RoundTimingInfoLib{RoundTimingInfoLibCaller: RoundTimingInfoLibCaller{contract: contract}, RoundTimingInfoLibTransactor: RoundTimingInfoLibTransactor{contract: contract}, RoundTimingInfoLibFilterer: RoundTimingInfoLibFilterer{contract: contract}}, nil +} + +// RoundTimingInfoLib is an auto generated Go binding around an Ethereum contract. +type RoundTimingInfoLib struct { + RoundTimingInfoLibCaller // Read-only binding to the contract + RoundTimingInfoLibTransactor // Write-only binding to the contract + RoundTimingInfoLibFilterer // Log filterer for contract events +} + +// RoundTimingInfoLibCaller is an auto generated read-only Go binding around an Ethereum contract. +type RoundTimingInfoLibCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RoundTimingInfoLibTransactor is an auto generated write-only Go binding around an Ethereum contract. +type RoundTimingInfoLibTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RoundTimingInfoLibFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type RoundTimingInfoLibFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RoundTimingInfoLibSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type RoundTimingInfoLibSession struct { + Contract *RoundTimingInfoLib // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RoundTimingInfoLibCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type RoundTimingInfoLibCallerSession struct { + Contract *RoundTimingInfoLibCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// RoundTimingInfoLibTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type RoundTimingInfoLibTransactorSession struct { + Contract *RoundTimingInfoLibTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RoundTimingInfoLibRaw is an auto generated low-level Go binding around an Ethereum contract. +type RoundTimingInfoLibRaw struct { + Contract *RoundTimingInfoLib // Generic contract binding to access the raw methods on +} + +// RoundTimingInfoLibCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type RoundTimingInfoLibCallerRaw struct { + Contract *RoundTimingInfoLibCaller // Generic read-only contract binding to access the raw methods on +} + +// RoundTimingInfoLibTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type RoundTimingInfoLibTransactorRaw struct { + Contract *RoundTimingInfoLibTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewRoundTimingInfoLib creates a new instance of RoundTimingInfoLib, bound to a specific deployed contract. +func NewRoundTimingInfoLib(address common.Address, backend bind.ContractBackend) (*RoundTimingInfoLib, error) { + contract, err := bindRoundTimingInfoLib(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &RoundTimingInfoLib{RoundTimingInfoLibCaller: RoundTimingInfoLibCaller{contract: contract}, RoundTimingInfoLibTransactor: RoundTimingInfoLibTransactor{contract: contract}, RoundTimingInfoLibFilterer: RoundTimingInfoLibFilterer{contract: contract}}, nil +} + +// NewRoundTimingInfoLibCaller creates a new read-only instance of RoundTimingInfoLib, bound to a specific deployed contract. +func NewRoundTimingInfoLibCaller(address common.Address, caller bind.ContractCaller) (*RoundTimingInfoLibCaller, error) { + contract, err := bindRoundTimingInfoLib(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &RoundTimingInfoLibCaller{contract: contract}, nil +} + +// NewRoundTimingInfoLibTransactor creates a new write-only instance of RoundTimingInfoLib, bound to a specific deployed contract. +func NewRoundTimingInfoLibTransactor(address common.Address, transactor bind.ContractTransactor) (*RoundTimingInfoLibTransactor, error) { + contract, err := bindRoundTimingInfoLib(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &RoundTimingInfoLibTransactor{contract: contract}, nil +} + +// NewRoundTimingInfoLibFilterer creates a new log filterer instance of RoundTimingInfoLib, bound to a specific deployed contract. +func NewRoundTimingInfoLibFilterer(address common.Address, filterer bind.ContractFilterer) (*RoundTimingInfoLibFilterer, error) { + contract, err := bindRoundTimingInfoLib(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &RoundTimingInfoLibFilterer{contract: contract}, nil +} + +// bindRoundTimingInfoLib binds a generic wrapper to an already deployed contract. +func bindRoundTimingInfoLib(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := RoundTimingInfoLibMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_RoundTimingInfoLib *RoundTimingInfoLibRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _RoundTimingInfoLib.Contract.RoundTimingInfoLibCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_RoundTimingInfoLib *RoundTimingInfoLibRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _RoundTimingInfoLib.Contract.RoundTimingInfoLibTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_RoundTimingInfoLib *RoundTimingInfoLibRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _RoundTimingInfoLib.Contract.RoundTimingInfoLibTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_RoundTimingInfoLib *RoundTimingInfoLibCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _RoundTimingInfoLib.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_RoundTimingInfoLib *RoundTimingInfoLibTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _RoundTimingInfoLib.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_RoundTimingInfoLib *RoundTimingInfoLibTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _RoundTimingInfoLib.Contract.contract.Transact(opts, method, params...) +} diff --git a/solgen/go/librariesgen/librariesgen.go b/solgen/go/librariesgen/librariesgen.go index 240955816..7cf7166bd 100644 --- a/solgen/go/librariesgen/librariesgen.go +++ b/solgen/go/librariesgen/librariesgen.go @@ -987,7 +987,7 @@ func (_AdminFallbackProxy *AdminFallbackProxyFilterer) ParseUpgradedSecondary(lo // ArbitrumCheckerMetaData contains all meta data concerning the ArbitrumChecker contract. var ArbitrumCheckerMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122050149d2d63507b1a3127de95e1488f248b040be9ce1e05baacb198e1fd3374fb64736f6c63430008110033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209571fb4c71beca0851ed01eef30c68bd2e9b91fc6904d204d6be5aca90ce590164736f6c63430008110033", } // ArbitrumCheckerABI is the input ABI used to generate the binding from. @@ -1157,6 +1157,179 @@ func (_ArbitrumChecker *ArbitrumCheckerTransactorRaw) Transact(opts *bind.Transa return _ArbitrumChecker.Contract.contract.Transact(opts, method, params...) } +// CallerCheckerMetaData contains all meta data concerning the CallerChecker contract. +var CallerCheckerMetaData = &bind.MetaData{ + ABI: "[]", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220575a4d8f611060b57972afe8bc8ee34f72cc8cc9b123ccfcbb44a9817d87912b64736f6c63430008110033", +} + +// CallerCheckerABI is the input ABI used to generate the binding from. +// Deprecated: Use CallerCheckerMetaData.ABI instead. +var CallerCheckerABI = CallerCheckerMetaData.ABI + +// CallerCheckerBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use CallerCheckerMetaData.Bin instead. +var CallerCheckerBin = CallerCheckerMetaData.Bin + +// DeployCallerChecker deploys a new Ethereum contract, binding an instance of CallerChecker to it. +func DeployCallerChecker(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *CallerChecker, error) { + parsed, err := CallerCheckerMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CallerCheckerBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &CallerChecker{CallerCheckerCaller: CallerCheckerCaller{contract: contract}, CallerCheckerTransactor: CallerCheckerTransactor{contract: contract}, CallerCheckerFilterer: CallerCheckerFilterer{contract: contract}}, nil +} + +// CallerChecker is an auto generated Go binding around an Ethereum contract. +type CallerChecker struct { + CallerCheckerCaller // Read-only binding to the contract + CallerCheckerTransactor // Write-only binding to the contract + CallerCheckerFilterer // Log filterer for contract events +} + +// CallerCheckerCaller is an auto generated read-only Go binding around an Ethereum contract. +type CallerCheckerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CallerCheckerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type CallerCheckerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CallerCheckerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type CallerCheckerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CallerCheckerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type CallerCheckerSession struct { + Contract *CallerChecker // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CallerCheckerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type CallerCheckerCallerSession struct { + Contract *CallerCheckerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// CallerCheckerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type CallerCheckerTransactorSession struct { + Contract *CallerCheckerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CallerCheckerRaw is an auto generated low-level Go binding around an Ethereum contract. +type CallerCheckerRaw struct { + Contract *CallerChecker // Generic contract binding to access the raw methods on +} + +// CallerCheckerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type CallerCheckerCallerRaw struct { + Contract *CallerCheckerCaller // Generic read-only contract binding to access the raw methods on +} + +// CallerCheckerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type CallerCheckerTransactorRaw struct { + Contract *CallerCheckerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewCallerChecker creates a new instance of CallerChecker, bound to a specific deployed contract. +func NewCallerChecker(address common.Address, backend bind.ContractBackend) (*CallerChecker, error) { + contract, err := bindCallerChecker(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &CallerChecker{CallerCheckerCaller: CallerCheckerCaller{contract: contract}, CallerCheckerTransactor: CallerCheckerTransactor{contract: contract}, CallerCheckerFilterer: CallerCheckerFilterer{contract: contract}}, nil +} + +// NewCallerCheckerCaller creates a new read-only instance of CallerChecker, bound to a specific deployed contract. +func NewCallerCheckerCaller(address common.Address, caller bind.ContractCaller) (*CallerCheckerCaller, error) { + contract, err := bindCallerChecker(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &CallerCheckerCaller{contract: contract}, nil +} + +// NewCallerCheckerTransactor creates a new write-only instance of CallerChecker, bound to a specific deployed contract. +func NewCallerCheckerTransactor(address common.Address, transactor bind.ContractTransactor) (*CallerCheckerTransactor, error) { + contract, err := bindCallerChecker(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &CallerCheckerTransactor{contract: contract}, nil +} + +// NewCallerCheckerFilterer creates a new log filterer instance of CallerChecker, bound to a specific deployed contract. +func NewCallerCheckerFilterer(address common.Address, filterer bind.ContractFilterer) (*CallerCheckerFilterer, error) { + contract, err := bindCallerChecker(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &CallerCheckerFilterer{contract: contract}, nil +} + +// bindCallerChecker binds a generic wrapper to an already deployed contract. +func bindCallerChecker(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CallerCheckerMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CallerChecker *CallerCheckerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CallerChecker.Contract.CallerCheckerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CallerChecker *CallerCheckerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CallerChecker.Contract.CallerCheckerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CallerChecker *CallerCheckerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CallerChecker.Contract.CallerCheckerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CallerChecker *CallerCheckerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CallerChecker.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CallerChecker *CallerCheckerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CallerChecker.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CallerChecker *CallerCheckerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CallerChecker.Contract.contract.Transact(opts, method, params...) +} + // CryptographyPrimitivesMetaData contains all meta data concerning the CryptographyPrimitives contract. var CryptographyPrimitivesMetaData = &bind.MetaData{ ABI: "[]", @@ -3744,7 +3917,7 @@ func (_IReader4844 *IReader4844CallerSession) GetDataHashes() ([][32]byte, error // MerkleLibMetaData contains all meta data concerning the MerkleLib contract. var MerkleLibMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220968bac2cb01d87cc5232ec5d4048c071c015a63900278a2410d04ba87453684664736f6c63430008110033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220541ea6462f259b3d2d3059880681a8bf0762a5493c8cf4c6abe2d33a4c86baaa64736f6c63430008110033", } // MerkleLibABI is the input ABI used to generate the binding from. diff --git a/solgen/go/mocksgen/mocksgen.go b/solgen/go/mocksgen/mocksgen.go index 1ee22c92d..64976072d 100644 --- a/solgen/go/mocksgen/mocksgen.go +++ b/solgen/go/mocksgen/mocksgen.go @@ -369,7 +369,7 @@ func (_Benchmarks *BenchmarksTransactorSession) FillBlockRecover() (*types.Trans // BridgeStubMetaData contains all meta data concerning the BridgeStub contract. var BridgeStubMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerMessageNumber\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"RollupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptFundsFromOldBridge\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerReportedSubMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610f1e806100206000396000f3fe60806040526004361061018a5760003560e01c8063ab5d8943116100d6578063d5719dc21161007f578063e77145f411610059578063e77145f414610223578063eca067ad14610487578063ee35f3271461049c57600080fd5b8063d5719dc214610427578063e1758bd814610447578063e76f5c8d1461046757600080fd5b8063c4d66de8116100b0578063c4d66de8146102d1578063cb23bcb5146103f7578063cee3d7281461040c57600080fd5b8063ab5d894314610357578063ad48cb5e14610377578063ae60bd13146103bb57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102d1578063945e1147146102f15780639e5d4c491461032957600080fd5b80637a88b1071461025b57806386598a561461027e5780638db5993b146102be57600080fd5b806347fb24c51161016957806347fb24c5146102035780634f61f850146102255780635fca4a161461024557600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506005545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce366004610c28565b6104bc565b3480156101df57600080fd5b506101f36101ee366004610c59565b6104dd565b60405190151581526020016101aa565b34801561020f57600080fd5b5061022361021e366004610c7d565b61052d565b005b34801561023157600080fd5b50610223610240366004610c59565b61077b565b34801561025157600080fd5b506101a060075481565b34801561026757600080fd5b506101a0610276366004610cbb565b600092915050565b34801561028a57600080fd5b5061029e610299366004610ce7565b6107dc565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102cc366004610d19565b61092c565b3480156102dd57600080fd5b506102236102ec366004610c59565b6109a4565b3480156102fd57600080fd5b5061031161030c366004610c28565b6109ec565b6040516001600160a01b0390911681526020016101aa565b34801561033557600080fd5b50610349610344366004610d60565b610a16565b6040516101aa929190610e0d565b34801561036357600080fd5b50600354610311906001600160a01b031681565b34801561038357600080fd5b506008546103a99074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101aa565b3480156103c757600080fd5b506101f36103d6366004610c59565b6001600160a01b031660009081526020819052604090206001015460ff1690565b34801561040357600080fd5b506103116104dd565b34801561041857600080fd5b506102236102ec366004610c7d565b34801561043357600080fd5b506101a0610442366004610c28565b610ab2565b34801561045357600080fd5b50600854610311906001600160a01b031681565b34801561047357600080fd5b50610311610482366004610c28565b610ac2565b34801561049357600080fd5b506004546101a0565b3480156104a857600080fd5b50600654610311906001600160a01b031681565b600581815481106104cc57600080fd5b600091825260209091200154905081565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036105985750505050565b82156106315760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19169091179055610775565b60018054610640908290610e49565b8154811061065057610650610e6a565b6000918252602090912001548254600180546001600160a01b0390931692909190811061067f5761067f610e6a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460008060018560000154815481106106cc576106cc610e6a565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061070257610702610e80565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b60008060008085600754141580156107f357508515155b8015610800575060075415155b15610845576007546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610524565b600785905560055493508315610883576005805461086590600190610e49565b8154811061087557610875610e6a565b906000526020600020015492505b86156108b4576004610896600189610e49565b815481106108a6576108a6610e6a565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff1661098e5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f46524f4d5f494e424f580000000000000000000000000000000000006044820152606401610524565b61099c848443424887610ad2565b949350505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e54454400000000000000000000000000000000006044820152606401610524565b600281815481106109fc57600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610a5b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b8d92505050565b60405191935091506001600160a01b0387169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610aa190899089908990610e96565b60405180910390a394509492505050565b600481815481106104cc57600080fd5b600181815481106109fc57600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a59093019093528151919092012090919060008215610b5d576004610b3f600185610e49565b81548110610b4f57610b4f610e6a565b906000526020600020015490505b6004610b698284610bf9565b81546001810183556000928352602090922090910155509098975050505050505050565b60006060846001600160a01b03168484604051610baa9190610ecc565b60006040518083038185875af1925050503d8060008114610be7576040519150601f19603f3d011682016040523d82523d6000602084013e610bec565b606091505b5090969095509350505050565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b600060208284031215610c3a57600080fd5b5035919050565b6001600160a01b0381168114610c5657600080fd5b50565b600060208284031215610c6b57600080fd5b8135610c7681610c41565b9392505050565b60008060408385031215610c9057600080fd5b8235610c9b81610c41565b915060208301358015158114610cb057600080fd5b809150509250929050565b60008060408385031215610cce57600080fd5b8235610cd981610c41565b946020939093013593505050565b60008060008060808587031215610cfd57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610d2e57600080fd5b833560ff81168114610d3f57600080fd5b92506020840135610d4f81610c41565b929592945050506040919091013590565b60008060008060608587031215610d7657600080fd5b8435610d8181610c41565b935060208501359250604085013567ffffffffffffffff80821115610da557600080fd5b818701915087601f830112610db957600080fd5b813581811115610dc857600080fd5b886020828501011115610dda57600080fd5b95989497505060200194505050565b60005b83811015610e04578181015183820152602001610dec565b50506000910152565b82151581526040602082015260008251806040840152610e34816060850160208701610de9565b601f01601f1916919091016060019392505050565b81810381811115610c2257634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251610ede818460208701610de9565b919091019291505056fea2646970667358221220fcb4657b3fabdc0d3df172efccd07fe401e452450744bacdac8ba5e90229b9c764736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b50610f1e806100206000396000f3fe60806040526004361061018a5760003560e01c8063ab5d8943116100d6578063d5719dc21161007f578063e77145f411610059578063e77145f414610223578063eca067ad14610487578063ee35f3271461049c57600080fd5b8063d5719dc214610427578063e1758bd814610447578063e76f5c8d1461046757600080fd5b8063c4d66de8116100b0578063c4d66de8146102d1578063cb23bcb5146103f7578063cee3d7281461040c57600080fd5b8063ab5d894314610357578063ad48cb5e14610377578063ae60bd13146103bb57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102d1578063945e1147146102f15780639e5d4c491461032957600080fd5b80637a88b1071461025b57806386598a561461027e5780638db5993b146102be57600080fd5b806347fb24c51161016957806347fb24c5146102035780634f61f850146102255780635fca4a161461024557600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506005545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce366004610c28565b6104bc565b3480156101df57600080fd5b506101f36101ee366004610c59565b6104dd565b60405190151581526020016101aa565b34801561020f57600080fd5b5061022361021e366004610c7d565b61052d565b005b34801561023157600080fd5b50610223610240366004610c59565b61077b565b34801561025157600080fd5b506101a060075481565b34801561026757600080fd5b506101a0610276366004610cbb565b600092915050565b34801561028a57600080fd5b5061029e610299366004610ce7565b6107dc565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102cc366004610d19565b61092c565b3480156102dd57600080fd5b506102236102ec366004610c59565b6109a4565b3480156102fd57600080fd5b5061031161030c366004610c28565b6109ec565b6040516001600160a01b0390911681526020016101aa565b34801561033557600080fd5b50610349610344366004610d60565b610a16565b6040516101aa929190610e0d565b34801561036357600080fd5b50600354610311906001600160a01b031681565b34801561038357600080fd5b506008546103a99074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101aa565b3480156103c757600080fd5b506101f36103d6366004610c59565b6001600160a01b031660009081526020819052604090206001015460ff1690565b34801561040357600080fd5b506103116104dd565b34801561041857600080fd5b506102236102ec366004610c7d565b34801561043357600080fd5b506101a0610442366004610c28565b610ab2565b34801561045357600080fd5b50600854610311906001600160a01b031681565b34801561047357600080fd5b50610311610482366004610c28565b610ac2565b34801561049357600080fd5b506004546101a0565b3480156104a857600080fd5b50600654610311906001600160a01b031681565b600581815481106104cc57600080fd5b600091825260209091200154905081565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020600181015492518515158152909360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036105985750505050565b82156106315760408051808201825260018054825260208083018281526001600160a01b0389166000818152928390529482209351845551928201805460ff1916931515939093179092558054808201825591527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19169091179055610775565b60018054610640908290610e49565b8154811061065057610650610e6a565b6000918252602090912001548254600180546001600160a01b0390931692909190811061067f5761067f610e6a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460008060018560000154815481106106cc576106cc610e6a565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600180548061070257610702610e80565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b038616825281905260408120908155600101805460ff191690555b50505050565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b60008060008085600754141580156107f357508515155b8015610800575060075415155b15610845576007546040517fe2051feb000000000000000000000000000000000000000000000000000000008152600481019190915260248101879052604401610524565b600785905560055493508315610883576005805461086590600190610e49565b8154811061087557610875610e6a565b906000526020600020015492505b86156108b4576004610896600189610e49565b815481106108a6576108a6610e6a565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018190559398929750909550919350915050565b3360009081526020819052604081206001015460ff1661098e5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f46524f4d5f494e424f580000000000000000000000000000000000006044820152606401610524565b61099c848443424887610ad2565b949350505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e54454400000000000000000000000000000000006044820152606401610524565b600281815481106109fc57600080fd5b6000918252602090912001546001600160a01b0316905081565b60006060610a5b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b8d92505050565b60405191935091506001600160a01b0387169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610aa190899089908990610e96565b60405180910390a394509492505050565b600481815481106104cc57600080fd5b600181815481106109fc57600080fd5b60045460408051600060208083018290526021830182905260358301829052603d8301829052604583018290526065830182905260858084018790528451808503909101815260a59093019093528151919092012090919060008215610b5d576004610b3f600185610e49565b81548110610b4f57610b4f610e6a565b906000526020600020015490505b6004610b698284610bf9565b81546001810183556000928352602090922090910155509098975050505050505050565b60006060846001600160a01b03168484604051610baa9190610ecc565b60006040518083038185875af1925050503d8060008114610be7576040519150601f19603f3d011682016040523d82523d6000602084013e610bec565b606091505b5090969095509350505050565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b600060208284031215610c3a57600080fd5b5035919050565b6001600160a01b0381168114610c5657600080fd5b50565b600060208284031215610c6b57600080fd5b8135610c7681610c41565b9392505050565b60008060408385031215610c9057600080fd5b8235610c9b81610c41565b915060208301358015158114610cb057600080fd5b809150509250929050565b60008060408385031215610cce57600080fd5b8235610cd981610c41565b946020939093013593505050565b60008060008060808587031215610cfd57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060608486031215610d2e57600080fd5b833560ff81168114610d3f57600080fd5b92506020840135610d4f81610c41565b929592945050506040919091013590565b60008060008060608587031215610d7657600080fd5b8435610d8181610c41565b935060208501359250604085013567ffffffffffffffff80821115610da557600080fd5b818701915087601f830112610db957600080fd5b813581811115610dc857600080fd5b886020828501011115610dda57600080fd5b95989497505060200194505050565b60005b83811015610e04578181015183820152602001610dec565b50506000910152565b82151581526040602082015260008251806040840152610e34816060850160208701610de9565b601f01601f1916919091016060019392505050565b81810381811115610c2257634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251610ede818460208701610de9565b919091019291505056fea2646970667358221220c3c393bb28fa27a5b2613ed54bdc493d71c9012e4f39157d21a4db2df437852564736f6c63430008110033", } // BridgeStubABI is the input ABI used to generate the binding from. @@ -2082,7 +2082,7 @@ func (_BridgeStub *BridgeStubFilterer) ParseSequencerInboxUpdated(log types.Log) // BridgeUnproxiedMetaData contains all meta data concerning the BridgeUnproxied contract. var BridgeUnproxiedMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerMessageNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"InvalidOutboxSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NotContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotDelayedInbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotOutbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotSequencerInbox\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"RollupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DUMMYVAR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptFundsFromOldBridge\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"rollup_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerReportedSubMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMsgCount\",\"type\":\"uint256\"}],\"name\":\"setSequencerReportedSubMessageCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a060405230608052600060335534801561001957600080fd5b50600580546001600160a01b03199081166001600160a01b03179091556008805490911633179055608051611a9261005c6000396000610f4b0152611a926000f3fe60806040526004361061018a5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610478578063ee35f3271461048d578063f81ff3b3146104ad57600080fd5b8063d5719dc214610438578063e76f5c8d14610458578063e77145f41461023f57600080fd5b8063c4d66de8116100b0578063c4d66de8146103d8578063cb23bcb5146103f8578063cee3d7281461041857600080fd5b80639e5d4c4914610358578063ab5d894314610386578063ae60bd131461039b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102ea578063927dcfab1461030a578063945e11471461032057600080fd5b80637a88b1071461027757806386598a56146102975780638db5993b146102d757600080fd5b806347fb24c51161016957806347fb24c51461021f5780634f61f850146102415780635fca4a161461026157600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce366004611782565b6104cd565b3480156101df57600080fd5b5061020f6101ee3660046117b0565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101aa565b34801561022b57600080fd5b5061023f61023a3660046117d4565b6104ee565b005b34801561024d57600080fd5b5061023f61025c3660046117b0565b6107f4565b34801561026d57600080fd5b506101a0600a5481565b34801561028357600080fd5b506101a0610292366004611812565b610920565b3480156102a357600080fd5b506102b76102b236600461183e565b610981565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102e5366004611870565b610b1a565b3480156102f657600080fd5b5061023f6103053660046117b0565b610b30565b34801561031657600080fd5b506101a060335481565b34801561032c57600080fd5b5061034061033b366004611782565b610c55565b6040516001600160a01b0390911681526020016101aa565b34801561036457600080fd5b506103786103733660046118b7565b610c7f565b6040516101aa929190611964565b34801561039257600080fd5b50610340610e15565b3480156103a757600080fd5b5061020f6103b63660046117b0565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103e457600080fd5b5061023f6103f33660046117b0565b610e58565b34801561040457600080fd5b50600854610340906001600160a01b031681565b34801561042457600080fd5b5061023f6104333660046117d4565b61107c565b34801561044457600080fd5b506101a0610453366004611782565b6113ea565b34801561046457600080fd5b50610340610473366004611782565b6113fa565b34801561048457600080fd5b506006546101a0565b34801561049957600080fd5b50600954610340906001600160a01b031681565b3480156104b957600080fd5b5061023f6104c8366004611782565b61140a565b600781815481106104dd57600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146105bd5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e91906119a0565b9050336001600160a01b038216146105bb57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106295750505050565b82156106c457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600380546106d4906001906119bd565b815481106106e4576106e46119de565b6000918252602090912001548254600380546001600160a01b03909316929091908110610713576107136119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610761576107616119de565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610797576107976119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108be5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087491906119a0565b9050336001600160a01b038216146108bc57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610969576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b610978600d84434248876114d9565b90505b92915050565b6009546000908190819081906001600160a01b031633146109d0576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b85600a54141580156109e157508515155b80156109ee5750600a5415155b15610a3357600a546040517fe2051feb0000000000000000000000000000000000000000000000000000000081526004810191909152602481018790526044016105b2565b600a85905560075493508315610a715760078054610a53906001906119bd565b81548110610a6357610a636119de565b906000526020600020015492505b8615610aa2576006610a846001896119bd565b81548110610a9457610a946119de565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b28848484346116ab565b949350505050565b6008546001600160a01b03163314610bfa5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906119a0565b9050336001600160a01b03821614610bf857600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610915565b60048181548110610c6557600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610cd0576040517f32ea82ab0000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b8215801590610ce757506001600160a01b0386163b155b15610d29576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016105b2565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d979189918991899089908190840183828082843760009201919091525061171392505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610e03908a908a908a90611a0a565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e5357600091505090565b919050565b600054610100900460ff1615808015610e785750600054600160ff909116105b80610e925750303b158015610e92575060005460ff166001145b610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b2565b6000805460ff191660011790558015610f41576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b2565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107f0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111465760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc91906119a0565b9050336001600160a01b0382161461114457600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b038316016111b3576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016105b2565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2821515811515036112205750505050565b82156112bc57604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600480546112cc906001906119bd565b815481106112dc576112dc6119de565b6000918252602090912001548254600480546001600160a01b0390931692909190811061130b5761130b6119de565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611359576113596119de565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061138f5761138f6119f4565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104dd57600080fd5b60038181548110610c6557600080fd5b6008546001600160a01b031633146114d45760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a91906119a0565b9050336001600160a01b038216146114d257600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115d65760066115b86001856119bd565b815481106115c8576115c86119de565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116f9576040517fb6c60ea30000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b60006117098686434248896114d9565b9695505050505050565b60006060846001600160a01b031684846040516117309190611a40565b60006040518083038185875af1925050503d806000811461176d576040519150601f19603f3d011682016040523d82523d6000602084013e611772565b606091505b5090969095509350505050565b50565b60006020828403121561179457600080fd5b5035919050565b6001600160a01b038116811461177f57600080fd5b6000602082840312156117c257600080fd5b81356117cd8161179b565b9392505050565b600080604083850312156117e757600080fd5b82356117f28161179b565b91506020830135801515811461180757600080fd5b809150509250929050565b6000806040838503121561182557600080fd5b82356118308161179b565b946020939093013593505050565b6000806000806080858703121561185457600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561188557600080fd5b833560ff8116811461189657600080fd5b925060208401356118a68161179b565b929592945050506040919091013590565b600080600080606085870312156118cd57600080fd5b84356118d88161179b565b935060208501359250604085013567ffffffffffffffff808211156118fc57600080fd5b818701915087601f83011261191057600080fd5b81358181111561191f57600080fd5b88602082850101111561193157600080fd5b95989497505060200194505050565b60005b8381101561195b578181015183820152602001611943565b50506000910152565b8215158152604060208201526000825180604084015261198b816060850160208701611940565b601f01601f1916919091016060019392505050565b6000602082840312156119b257600080fd5b81516117cd8161179b565b8181038181111561097b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a52818460208701611940565b919091019291505056fea264697066735822122097ca2fb64f90b684c5d54ae9f579851f137add6d345d9c88b67a43f9885bdefe64736f6c63430008110033", + Bin: "0x60a060405230608052600060335534801561001957600080fd5b50600580546001600160a01b03199081166001600160a01b03179091556008805490911633179055608051611a8f61005c6000396000610f480152611a8f6000f3fe60806040526004361061018a5760003560e01c80639e5d4c49116100d6578063d5719dc21161007f578063eca067ad11610059578063eca067ad14610478578063ee35f3271461048d578063f81ff3b3146104ad57600080fd5b8063d5719dc214610438578063e76f5c8d14610458578063e77145f41461023f57600080fd5b8063c4d66de8116100b0578063c4d66de8146103d8578063cb23bcb5146103f8578063cee3d7281461041857600080fd5b80639e5d4c4914610358578063ab5d894314610386578063ae60bd131461039b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc706146102ea578063927dcfab1461030a578063945e11471461032057600080fd5b80637a88b1071461027757806386598a56146102975780638db5993b146102d757600080fd5b806347fb24c51161016957806347fb24c51461021f5780634f61f850146102415780635fca4a161461026157600080fd5b806284120c1461018f57806316bf5579146101b3578063413b35bd146101d3575b600080fd5b34801561019b57600080fd5b506007545b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce36600461177f565b6104cd565b3480156101df57600080fd5b5061020f6101ee3660046117ad565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101aa565b34801561022b57600080fd5b5061023f61023a3660046117d1565b6104ee565b005b34801561024d57600080fd5b5061023f61025c3660046117ad565b6107f4565b34801561026d57600080fd5b506101a0600a5481565b34801561028357600080fd5b506101a061029236600461180f565b610920565b3480156102a357600080fd5b506102b76102b236600461183b565b610981565b6040805194855260208501939093529183015260608201526080016101aa565b6101a06102e536600461186d565b610b17565b3480156102f657600080fd5b5061023f6103053660046117ad565b610b2d565b34801561031657600080fd5b506101a060335481565b34801561032c57600080fd5b5061034061033b36600461177f565b610c52565b6040516001600160a01b0390911681526020016101aa565b34801561036457600080fd5b506103786103733660046118b4565b610c7c565b6040516101aa929190611961565b34801561039257600080fd5b50610340610e12565b3480156103a757600080fd5b5061020f6103b63660046117ad565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b3480156103e457600080fd5b5061023f6103f33660046117ad565b610e55565b34801561040457600080fd5b50600854610340906001600160a01b031681565b34801561042457600080fd5b5061023f6104333660046117d1565b611079565b34801561044457600080fd5b506101a061045336600461177f565b6113e7565b34801561046457600080fd5b5061034061047336600461177f565b6113f7565b34801561048457600080fd5b506006546101a0565b34801561049957600080fd5b50600954610340906001600160a01b031681565b3480156104b957600080fd5b5061023f6104c836600461177f565b611407565b600781815481106104dd57600080fd5b600091825260209091200154905081565b6008546001600160a01b031633146105bd5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e919061199d565b9050336001600160a01b038216146105bb57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a2821515811515036106295750505050565b82156106c457604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600380546106d4906001906119ba565b815481106106e4576106e46119db565b6000918252602090912001548254600380546001600160a01b03909316929091908110610713576107136119db565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600160006003856000015481548110610761576107616119db565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610797576107976119f1565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6008546001600160a01b031633146108be5760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610850573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610874919061199d565b9050336001600160a01b038216146108bc57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6009805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a906020015b60405180910390a150565b6009546000906001600160a01b03163314610969576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b610978600d84434248876114d6565b90505b92915050565b6009546000908190819081906001600160a01b031633146109d0576040517f88f84f040000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b85600a54141580156109e157508515155b80156109ee5750600a5415155b15610a3357600a546040517fe2051feb0000000000000000000000000000000000000000000000000000000081526004810191909152602481018790526044016105b2565b600a85905560075493508315610a6e576007610a506001866119ba565b81548110610a6057610a606119db565b906000526020600020015492505b8615610a9f576006610a816001896119ba565b81548110610a9157610a916119db565b906000526020600020015491505b60408051602081018590529081018990526060810183905260800160408051601f198184030181529190528051602090910120600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018190559398929750909550919350915050565b6000610b25848484346116a8565b949350505050565b6008546001600160a01b03163314610bf75760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bad919061199d565b9050336001600160a01b03821614610bf557600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b6008805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fae1f5aa15f6ff844896347ceca2a3c24c8d3a27785efdeacd581a0a95172784a90602001610915565b60048181548110610c6257600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610ccd576040517f32ea82ab0000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b8215801590610ce457506001600160a01b0386163b155b15610d26576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b03871660048201526024016105b2565b6005805473ffffffffffffffffffffffffffffffffffffffff1981163317909155604080516020601f87018190048102820181019092528581526001600160a01b0390921691610d949189918991899089908190840183828082843760009201919091525061171092505050565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610e00908a908a908a90611a07565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff00000000000000000000000000000000000000018101610e5057600091505090565b919050565b600054610100900460ff1615808015610e755750600054600160ff909116105b80610e8f5750303b158015610e8f575060005460ff166001145b610f1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016105b2565b6000805460ff191660011790558015610f3e576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016105b2565b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff1991821681179092556008805490911691841691909117905580156107f0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6008546001600160a01b031633146111435760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f9919061199d565b9050336001600160a01b0382161461114157600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b7fffffffffffffffffffffffff00000000000000000000000000000000000000016001600160a01b038316016111b0576040517f77abed100000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016105b2565b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a28215158115150361121d5750505050565b82156112b957604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff191690911790556107ed565b600480546112c9906001906119ba565b815481106112d9576112d96119db565b6000918252602090912001548254600480546001600160a01b03909316929091908110611308576113086119db565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160000154600260006004856000015481548110611356576113566119db565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061138c5761138c6119f1565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b600681815481106104dd57600080fd5b60038181548110610c6257600080fd5b6008546001600160a01b031633146114d15760085460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015611463573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611487919061199d565b9050336001600160a01b038216146114cf57600854604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064016105b2565b505b600a55565b600654604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156115d35760066115b56001856119ba565b815481106115c5576115c56119db565b906000526020600020015490505b6040805160208082018490528183018590528251808303840181526060830180855281519190920120600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015533905260ff8c1660808201526001600160a01b038b1660a082015260c0810187905260e0810188905267ffffffffffffffff89166101008201529051829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe1918190036101200190a3509098975050505050505050565b3360009081526001602081905260408220015460ff166116f6576040517fb6c60ea30000000000000000000000000000000000000000000000000000000081523360048201526024016105b2565b60006117068686434248896114d6565b9695505050505050565b60006060846001600160a01b0316848460405161172d9190611a3d565b60006040518083038185875af1925050503d806000811461176a576040519150601f19603f3d011682016040523d82523d6000602084013e61176f565b606091505b5090969095509350505050565b50565b60006020828403121561179157600080fd5b5035919050565b6001600160a01b038116811461177c57600080fd5b6000602082840312156117bf57600080fd5b81356117ca81611798565b9392505050565b600080604083850312156117e457600080fd5b82356117ef81611798565b91506020830135801515811461180457600080fd5b809150509250929050565b6000806040838503121561182257600080fd5b823561182d81611798565b946020939093013593505050565b6000806000806080858703121561185157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561188257600080fd5b833560ff8116811461189357600080fd5b925060208401356118a381611798565b929592945050506040919091013590565b600080600080606085870312156118ca57600080fd5b84356118d581611798565b935060208501359250604085013567ffffffffffffffff808211156118f957600080fd5b818701915087601f83011261190d57600080fd5b81358181111561191c57600080fd5b88602082850101111561192e57600080fd5b95989497505060200194505050565b60005b83811015611958578181015183820152602001611940565b50506000910152565b8215158152604060208201526000825180604084015261198881606085016020870161193d565b601f01601f1916919091016060019392505050565b6000602082840312156119af57600080fd5b81516117ca81611798565b8181038181111561097b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251611a4f81846020870161193d565b919091019291505056fea26469706673582212205e0c093acd27e3661bdd3ddfee5e9063c6d477083dad81d3727fdc933b8df7c864736f6c63430008110033", } // BridgeUnproxiedABI is the input ABI used to generate the binding from. @@ -3892,6 +3892,1240 @@ func (_BridgeUnproxied *BridgeUnproxiedFilterer) ParseSequencerInboxUpdated(log return event, nil } +// CreateTestMetaData contains all meta data concerning the CreateTest contract. +var CreateTestMetaData = &bind.MetaData{ + ABI: "[{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"}]", + Bin: "0x608060405234801561001057600080fd5b506102d2806100206000396000f3fe608060405234801561001057600080fd5b50600036606060008383600081811061002b5761002b610206565b919091013560f81c915061004490508360018187610235565b909450925060006100586020828688610235565b6100619161025f565b90506100708460208188610235565b9450945060008260ff166002036100fb576000610090602082888a610235565b6100999161025f565b90506100a8866020818a610235565b96509650600087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935084929150506020830186f592505050610143565b600086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293505060208301905084f09150505b73ffffffffffffffffffffffffffffffffffffffff81166101c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6661696c656420746f2063726561746500000000000000000000000000000000604482015260640160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181526000908060200190933c80519650602001945050505050f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000808585111561024557600080fd5b8386111561025257600080fd5b5050820193919092039150565b80356020831015610296577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b165b9291505056fea26469706673582212209431771ba2c9b8e2676999adcd0dff83847db2d5a6b3805a1b7d04ccc2f5231564736f6c63430008110033", +} + +// CreateTestABI is the input ABI used to generate the binding from. +// Deprecated: Use CreateTestMetaData.ABI instead. +var CreateTestABI = CreateTestMetaData.ABI + +// CreateTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use CreateTestMetaData.Bin instead. +var CreateTestBin = CreateTestMetaData.Bin + +// DeployCreateTest deploys a new Ethereum contract, binding an instance of CreateTest to it. +func DeployCreateTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *CreateTest, error) { + parsed, err := CreateTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CreateTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &CreateTest{CreateTestCaller: CreateTestCaller{contract: contract}, CreateTestTransactor: CreateTestTransactor{contract: contract}, CreateTestFilterer: CreateTestFilterer{contract: contract}}, nil +} + +// CreateTest is an auto generated Go binding around an Ethereum contract. +type CreateTest struct { + CreateTestCaller // Read-only binding to the contract + CreateTestTransactor // Write-only binding to the contract + CreateTestFilterer // Log filterer for contract events +} + +// CreateTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type CreateTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CreateTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type CreateTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CreateTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type CreateTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// CreateTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type CreateTestSession struct { + Contract *CreateTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CreateTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type CreateTestCallerSession struct { + Contract *CreateTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// CreateTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type CreateTestTransactorSession struct { + Contract *CreateTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// CreateTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type CreateTestRaw struct { + Contract *CreateTest // Generic contract binding to access the raw methods on +} + +// CreateTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type CreateTestCallerRaw struct { + Contract *CreateTestCaller // Generic read-only contract binding to access the raw methods on +} + +// CreateTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type CreateTestTransactorRaw struct { + Contract *CreateTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewCreateTest creates a new instance of CreateTest, bound to a specific deployed contract. +func NewCreateTest(address common.Address, backend bind.ContractBackend) (*CreateTest, error) { + contract, err := bindCreateTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &CreateTest{CreateTestCaller: CreateTestCaller{contract: contract}, CreateTestTransactor: CreateTestTransactor{contract: contract}, CreateTestFilterer: CreateTestFilterer{contract: contract}}, nil +} + +// NewCreateTestCaller creates a new read-only instance of CreateTest, bound to a specific deployed contract. +func NewCreateTestCaller(address common.Address, caller bind.ContractCaller) (*CreateTestCaller, error) { + contract, err := bindCreateTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &CreateTestCaller{contract: contract}, nil +} + +// NewCreateTestTransactor creates a new write-only instance of CreateTest, bound to a specific deployed contract. +func NewCreateTestTransactor(address common.Address, transactor bind.ContractTransactor) (*CreateTestTransactor, error) { + contract, err := bindCreateTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &CreateTestTransactor{contract: contract}, nil +} + +// NewCreateTestFilterer creates a new log filterer instance of CreateTest, bound to a specific deployed contract. +func NewCreateTestFilterer(address common.Address, filterer bind.ContractFilterer) (*CreateTestFilterer, error) { + contract, err := bindCreateTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &CreateTestFilterer{contract: contract}, nil +} + +// bindCreateTest binds a generic wrapper to an already deployed contract. +func bindCreateTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := CreateTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CreateTest *CreateTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CreateTest.Contract.CreateTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CreateTest *CreateTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CreateTest.Contract.CreateTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CreateTest *CreateTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CreateTest.Contract.CreateTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_CreateTest *CreateTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _CreateTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_CreateTest *CreateTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _CreateTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_CreateTest *CreateTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _CreateTest.Contract.contract.Transact(opts, method, params...) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() returns() +func (_CreateTest *CreateTestTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) { + return _CreateTest.contract.RawTransact(opts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() returns() +func (_CreateTest *CreateTestSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _CreateTest.Contract.Fallback(&_CreateTest.TransactOpts, calldata) +} + +// Fallback is a paid mutator transaction binding the contract fallback function. +// +// Solidity: fallback() returns() +func (_CreateTest *CreateTestTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) { + return _CreateTest.Contract.Fallback(&_CreateTest.TransactOpts, calldata) +} + +// HostioTestMetaData contains all meta data concerning the HostioTest contract. +var HostioTestMetaData = &bind.MetaData{ + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accountBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accountCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accountCodeSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"accountCodehash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"int8\",\"name\":\"n\",\"type\":\"int8\"},{\"internalType\":\"bytes32\",\"name\":\"t1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"t2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"t3\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"t4\",\"type\":\"bytes32\"}],\"name\":\"emitLog\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"evmGasLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"evmInkLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exitEarly\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"preimage\",\"type\":\"bytes\"}],\"name\":\"keccak\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"c\",\"type\":\"uint256\"}],\"name\":\"mathAddMod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"mathDiv\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"mathMod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"c\",\"type\":\"uint256\"}],\"name\":\"mathMulMod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"mathPow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"transientLoadBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"transientStoreBytes32\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"txGasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"txInkPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"txOrigin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b506108488061001d5f395ff3fe60806040526004361061017e575f3560e01c806398071112116100d4578063d294cb0f11610083578063d294cb0f1461039c578063d737d0c7146103c3578063ddf363d7146103d5578063e5c47e1d146103db578063e6334eea146103ed578063f6b4dfb4146103fe578063f7be3e8d14610410578063f96757d11461042f575f80fd5b806398071112146102cb5780639c16cfe8146102f7578063a520508f14610315578063a83ede1c14610333578063adb6183214610352578063cd84980e14610364578063cebcbba914610376575f80fd5b806357e871e71161013057806357e871e7146102385780636417b4d51461024a5780637877a797146102695780637c6aa4661461027b5780637d00629614610226578063860e61991461029a57806389995319146102ac575f80fd5b8063131260d0146101825780632233a918146101b457806323fc7ef3146101d257806328ed15d5146101f15780632dc26516146101f157806334eb2d6b14610205578063534ca05414610226575b5f80fd5b34801561018d575f80fd5b506101a161019c3660046105fa565b610441565b6040519081526020015b60405180910390f35b3480156101bf575f80fd5b506101a16101ce366004610623565b3f90565b3480156101dd575f80fd5b506101a16101ec36600461068e565b61045b565b3480156101fc575f80fd5b506101a161047c565b348015610210575f80fd5b5061022461021f3660046106cd565b610483565b005b348015610231575f80fd5b503a6101a1565b348015610243575f80fd5b50436101a1565b348015610255575f80fd5b506102246102643660046106ed565b61048a565b348015610274575f80fd5b50456101a1565b348015610286575f80fd5b506101a16102953660046106cd565b610588565b3480156102a5575f80fd5b503d6101a1565b3480156102b7575f80fd5b506101a16102c63660046106cd565b900a90565b3480156102d6575f80fd5b506102ea6102e5366004610623565b61059a565b6040516101ab9190610766565b348015610302575f80fd5b506101a16103113660046107b2565b5c90565b348015610320575f80fd5b506101a161032f366004610623565b3b90565b34801561033e575f80fd5b506101a161034d3660046105fa565b6105d5565b34801561035d575f80fd5b50426101a1565b34801561036f575f80fd5b50466101a1565b348015610381575f80fd5b50415b6040516001600160a01b0390911681526020016101ab565b3480156103a7575f80fd5b506101a16103b6366004610623565b6001600160a01b03163190565b3480156103ce575f80fd5b5033610384565b346101a1565b3480156103e6575f80fd5b50486101a1565b3480156103f8575f80fd5b50610224005b348015610409575f80fd5b5030610384565b34801561041b575f80fd5b506101a161042a3660046106cd565b6105ef565b34801561043a575f80fd5b5032610384565b5f8180610450576104506107c9565b838509949350505050565b5f828260405161046c9291906107dd565b6040518091039020905092915050565b5f5a905090565b80825d5050565b5f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093945050505086810b90036104d757805160208201a061057e565b855f0b6001036104ee5784815160208301a161057e565b855f0b600203610506578385825160208401a261057e565b855f0b60030361051f57828486835160208501a361057e565b855f0b6004036105395781838587845160208601a461057e565b60405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206e20666f7220656d6974206c6f6760501b604482015260640160405180910390fd5b5050505050505050565b5f61059382846107ec565b9392505050565b604080516127108082526127408201909252606091905f9082602082018180368337019050509050815f60208301863c923b83525090919050565b5f81806105e4576105e46107c9565b838508949350505050565b5f61059382846107ff565b5f805f6060848603121561060c575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610633575f80fd5b81356001600160a01b0381168114610593575f80fd5b5f8083601f840112610659575f80fd5b50813567ffffffffffffffff811115610670575f80fd5b602083019150836020828501011115610687575f80fd5b9250929050565b5f806020838503121561069f575f80fd5b823567ffffffffffffffff8111156106b5575f80fd5b6106c185828601610649565b90969095509350505050565b5f80604083850312156106de575f80fd5b50508035926020909101359150565b5f805f805f805f60c0888a031215610703575f80fd5b873567ffffffffffffffff811115610719575f80fd5b6107258a828b01610649565b90985096505060208801355f81900b811461073e575f80fd5b96999598509596604081013596506060810135956080820135955060a0909101359350915050565b5f602080835283518060208501525f5b8181101561079257858101830151858201604001528201610776565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156107c2575f80fd5b5035919050565b634e487b7160e01b5f52601260045260245ffd5b818382375f9101908152919050565b5f826107fa576107fa6107c9565b500490565b5f8261080d5761080d6107c9565b50069056fea2646970667358221220b82665ce76e0c9d76faef6a2899b8ef792948f56982119651414ba91ade9434864736f6c63430008180033", +} + +// HostioTestABI is the input ABI used to generate the binding from. +// Deprecated: Use HostioTestMetaData.ABI instead. +var HostioTestABI = HostioTestMetaData.ABI + +// HostioTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use HostioTestMetaData.Bin instead. +var HostioTestBin = HostioTestMetaData.Bin + +// DeployHostioTest deploys a new Ethereum contract, binding an instance of HostioTest to it. +func DeployHostioTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *HostioTest, error) { + parsed, err := HostioTestMetaData.GetAbi() + if err != nil { + return common.Address{}, nil, nil, err + } + if parsed == nil { + return common.Address{}, nil, nil, errors.New("GetABI returned nil") + } + + address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(HostioTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &HostioTest{HostioTestCaller: HostioTestCaller{contract: contract}, HostioTestTransactor: HostioTestTransactor{contract: contract}, HostioTestFilterer: HostioTestFilterer{contract: contract}}, nil +} + +// HostioTest is an auto generated Go binding around an Ethereum contract. +type HostioTest struct { + HostioTestCaller // Read-only binding to the contract + HostioTestTransactor // Write-only binding to the contract + HostioTestFilterer // Log filterer for contract events +} + +// HostioTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type HostioTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// HostioTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type HostioTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// HostioTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type HostioTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// HostioTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type HostioTestSession struct { + Contract *HostioTest // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// HostioTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type HostioTestCallerSession struct { + Contract *HostioTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// HostioTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type HostioTestTransactorSession struct { + Contract *HostioTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// HostioTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type HostioTestRaw struct { + Contract *HostioTest // Generic contract binding to access the raw methods on +} + +// HostioTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type HostioTestCallerRaw struct { + Contract *HostioTestCaller // Generic read-only contract binding to access the raw methods on +} + +// HostioTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type HostioTestTransactorRaw struct { + Contract *HostioTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewHostioTest creates a new instance of HostioTest, bound to a specific deployed contract. +func NewHostioTest(address common.Address, backend bind.ContractBackend) (*HostioTest, error) { + contract, err := bindHostioTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &HostioTest{HostioTestCaller: HostioTestCaller{contract: contract}, HostioTestTransactor: HostioTestTransactor{contract: contract}, HostioTestFilterer: HostioTestFilterer{contract: contract}}, nil +} + +// NewHostioTestCaller creates a new read-only instance of HostioTest, bound to a specific deployed contract. +func NewHostioTestCaller(address common.Address, caller bind.ContractCaller) (*HostioTestCaller, error) { + contract, err := bindHostioTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &HostioTestCaller{contract: contract}, nil +} + +// NewHostioTestTransactor creates a new write-only instance of HostioTest, bound to a specific deployed contract. +func NewHostioTestTransactor(address common.Address, transactor bind.ContractTransactor) (*HostioTestTransactor, error) { + contract, err := bindHostioTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &HostioTestTransactor{contract: contract}, nil +} + +// NewHostioTestFilterer creates a new log filterer instance of HostioTest, bound to a specific deployed contract. +func NewHostioTestFilterer(address common.Address, filterer bind.ContractFilterer) (*HostioTestFilterer, error) { + contract, err := bindHostioTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &HostioTestFilterer{contract: contract}, nil +} + +// bindHostioTest binds a generic wrapper to an already deployed contract. +func bindHostioTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := HostioTestMetaData.GetAbi() + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_HostioTest *HostioTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _HostioTest.Contract.HostioTestCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_HostioTest *HostioTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _HostioTest.Contract.HostioTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_HostioTest *HostioTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _HostioTest.Contract.HostioTestTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_HostioTest *HostioTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _HostioTest.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_HostioTest *HostioTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _HostioTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_HostioTest *HostioTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _HostioTest.Contract.contract.Transact(opts, method, params...) +} + +// AccountBalance is a free data retrieval call binding the contract method 0xd294cb0f. +// +// Solidity: function accountBalance(address account) view returns(uint256) +func (_HostioTest *HostioTestCaller) AccountBalance(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "accountBalance", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AccountBalance is a free data retrieval call binding the contract method 0xd294cb0f. +// +// Solidity: function accountBalance(address account) view returns(uint256) +func (_HostioTest *HostioTestSession) AccountBalance(account common.Address) (*big.Int, error) { + return _HostioTest.Contract.AccountBalance(&_HostioTest.CallOpts, account) +} + +// AccountBalance is a free data retrieval call binding the contract method 0xd294cb0f. +// +// Solidity: function accountBalance(address account) view returns(uint256) +func (_HostioTest *HostioTestCallerSession) AccountBalance(account common.Address) (*big.Int, error) { + return _HostioTest.Contract.AccountBalance(&_HostioTest.CallOpts, account) +} + +// AccountCode is a free data retrieval call binding the contract method 0x98071112. +// +// Solidity: function accountCode(address account) view returns(bytes) +func (_HostioTest *HostioTestCaller) AccountCode(opts *bind.CallOpts, account common.Address) ([]byte, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "accountCode", account) + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// AccountCode is a free data retrieval call binding the contract method 0x98071112. +// +// Solidity: function accountCode(address account) view returns(bytes) +func (_HostioTest *HostioTestSession) AccountCode(account common.Address) ([]byte, error) { + return _HostioTest.Contract.AccountCode(&_HostioTest.CallOpts, account) +} + +// AccountCode is a free data retrieval call binding the contract method 0x98071112. +// +// Solidity: function accountCode(address account) view returns(bytes) +func (_HostioTest *HostioTestCallerSession) AccountCode(account common.Address) ([]byte, error) { + return _HostioTest.Contract.AccountCode(&_HostioTest.CallOpts, account) +} + +// AccountCodeSize is a free data retrieval call binding the contract method 0xa520508f. +// +// Solidity: function accountCodeSize(address account) view returns(uint256) +func (_HostioTest *HostioTestCaller) AccountCodeSize(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "accountCodeSize", account) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// AccountCodeSize is a free data retrieval call binding the contract method 0xa520508f. +// +// Solidity: function accountCodeSize(address account) view returns(uint256) +func (_HostioTest *HostioTestSession) AccountCodeSize(account common.Address) (*big.Int, error) { + return _HostioTest.Contract.AccountCodeSize(&_HostioTest.CallOpts, account) +} + +// AccountCodeSize is a free data retrieval call binding the contract method 0xa520508f. +// +// Solidity: function accountCodeSize(address account) view returns(uint256) +func (_HostioTest *HostioTestCallerSession) AccountCodeSize(account common.Address) (*big.Int, error) { + return _HostioTest.Contract.AccountCodeSize(&_HostioTest.CallOpts, account) +} + +// AccountCodehash is a free data retrieval call binding the contract method 0x2233a918. +// +// Solidity: function accountCodehash(address account) view returns(bytes32) +func (_HostioTest *HostioTestCaller) AccountCodehash(opts *bind.CallOpts, account common.Address) ([32]byte, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "accountCodehash", account) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// AccountCodehash is a free data retrieval call binding the contract method 0x2233a918. +// +// Solidity: function accountCodehash(address account) view returns(bytes32) +func (_HostioTest *HostioTestSession) AccountCodehash(account common.Address) ([32]byte, error) { + return _HostioTest.Contract.AccountCodehash(&_HostioTest.CallOpts, account) +} + +// AccountCodehash is a free data retrieval call binding the contract method 0x2233a918. +// +// Solidity: function accountCodehash(address account) view returns(bytes32) +func (_HostioTest *HostioTestCallerSession) AccountCodehash(account common.Address) ([32]byte, error) { + return _HostioTest.Contract.AccountCodehash(&_HostioTest.CallOpts, account) +} + +// BlockBasefee is a free data retrieval call binding the contract method 0xe5c47e1d. +// +// Solidity: function blockBasefee() view returns(uint256) +func (_HostioTest *HostioTestCaller) BlockBasefee(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "blockBasefee") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BlockBasefee is a free data retrieval call binding the contract method 0xe5c47e1d. +// +// Solidity: function blockBasefee() view returns(uint256) +func (_HostioTest *HostioTestSession) BlockBasefee() (*big.Int, error) { + return _HostioTest.Contract.BlockBasefee(&_HostioTest.CallOpts) +} + +// BlockBasefee is a free data retrieval call binding the contract method 0xe5c47e1d. +// +// Solidity: function blockBasefee() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) BlockBasefee() (*big.Int, error) { + return _HostioTest.Contract.BlockBasefee(&_HostioTest.CallOpts) +} + +// BlockCoinbase is a free data retrieval call binding the contract method 0xcebcbba9. +// +// Solidity: function blockCoinbase() view returns(address) +func (_HostioTest *HostioTestCaller) BlockCoinbase(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "blockCoinbase") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// BlockCoinbase is a free data retrieval call binding the contract method 0xcebcbba9. +// +// Solidity: function blockCoinbase() view returns(address) +func (_HostioTest *HostioTestSession) BlockCoinbase() (common.Address, error) { + return _HostioTest.Contract.BlockCoinbase(&_HostioTest.CallOpts) +} + +// BlockCoinbase is a free data retrieval call binding the contract method 0xcebcbba9. +// +// Solidity: function blockCoinbase() view returns(address) +func (_HostioTest *HostioTestCallerSession) BlockCoinbase() (common.Address, error) { + return _HostioTest.Contract.BlockCoinbase(&_HostioTest.CallOpts) +} + +// BlockGasLimit is a free data retrieval call binding the contract method 0x7877a797. +// +// Solidity: function blockGasLimit() view returns(uint256) +func (_HostioTest *HostioTestCaller) BlockGasLimit(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "blockGasLimit") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BlockGasLimit is a free data retrieval call binding the contract method 0x7877a797. +// +// Solidity: function blockGasLimit() view returns(uint256) +func (_HostioTest *HostioTestSession) BlockGasLimit() (*big.Int, error) { + return _HostioTest.Contract.BlockGasLimit(&_HostioTest.CallOpts) +} + +// BlockGasLimit is a free data retrieval call binding the contract method 0x7877a797. +// +// Solidity: function blockGasLimit() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) BlockGasLimit() (*big.Int, error) { + return _HostioTest.Contract.BlockGasLimit(&_HostioTest.CallOpts) +} + +// BlockNumber is a free data retrieval call binding the contract method 0x57e871e7. +// +// Solidity: function blockNumber() view returns(uint256) +func (_HostioTest *HostioTestCaller) BlockNumber(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "blockNumber") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BlockNumber is a free data retrieval call binding the contract method 0x57e871e7. +// +// Solidity: function blockNumber() view returns(uint256) +func (_HostioTest *HostioTestSession) BlockNumber() (*big.Int, error) { + return _HostioTest.Contract.BlockNumber(&_HostioTest.CallOpts) +} + +// BlockNumber is a free data retrieval call binding the contract method 0x57e871e7. +// +// Solidity: function blockNumber() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) BlockNumber() (*big.Int, error) { + return _HostioTest.Contract.BlockNumber(&_HostioTest.CallOpts) +} + +// BlockTimestamp is a free data retrieval call binding the contract method 0xadb61832. +// +// Solidity: function blockTimestamp() view returns(uint256) +func (_HostioTest *HostioTestCaller) BlockTimestamp(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "blockTimestamp") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// BlockTimestamp is a free data retrieval call binding the contract method 0xadb61832. +// +// Solidity: function blockTimestamp() view returns(uint256) +func (_HostioTest *HostioTestSession) BlockTimestamp() (*big.Int, error) { + return _HostioTest.Contract.BlockTimestamp(&_HostioTest.CallOpts) +} + +// BlockTimestamp is a free data retrieval call binding the contract method 0xadb61832. +// +// Solidity: function blockTimestamp() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) BlockTimestamp() (*big.Int, error) { + return _HostioTest.Contract.BlockTimestamp(&_HostioTest.CallOpts) +} + +// Chainid is a free data retrieval call binding the contract method 0xcd84980e. +// +// Solidity: function chainid() view returns(uint256) +func (_HostioTest *HostioTestCaller) Chainid(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "chainid") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Chainid is a free data retrieval call binding the contract method 0xcd84980e. +// +// Solidity: function chainid() view returns(uint256) +func (_HostioTest *HostioTestSession) Chainid() (*big.Int, error) { + return _HostioTest.Contract.Chainid(&_HostioTest.CallOpts) +} + +// Chainid is a free data retrieval call binding the contract method 0xcd84980e. +// +// Solidity: function chainid() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) Chainid() (*big.Int, error) { + return _HostioTest.Contract.Chainid(&_HostioTest.CallOpts) +} + +// ContractAddress is a free data retrieval call binding the contract method 0xf6b4dfb4. +// +// Solidity: function contractAddress() view returns(address) +func (_HostioTest *HostioTestCaller) ContractAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "contractAddress") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ContractAddress is a free data retrieval call binding the contract method 0xf6b4dfb4. +// +// Solidity: function contractAddress() view returns(address) +func (_HostioTest *HostioTestSession) ContractAddress() (common.Address, error) { + return _HostioTest.Contract.ContractAddress(&_HostioTest.CallOpts) +} + +// ContractAddress is a free data retrieval call binding the contract method 0xf6b4dfb4. +// +// Solidity: function contractAddress() view returns(address) +func (_HostioTest *HostioTestCallerSession) ContractAddress() (common.Address, error) { + return _HostioTest.Contract.ContractAddress(&_HostioTest.CallOpts) +} + +// EvmGasLeft is a free data retrieval call binding the contract method 0x28ed15d5. +// +// Solidity: function evmGasLeft() view returns(uint256) +func (_HostioTest *HostioTestCaller) EvmGasLeft(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "evmGasLeft") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EvmGasLeft is a free data retrieval call binding the contract method 0x28ed15d5. +// +// Solidity: function evmGasLeft() view returns(uint256) +func (_HostioTest *HostioTestSession) EvmGasLeft() (*big.Int, error) { + return _HostioTest.Contract.EvmGasLeft(&_HostioTest.CallOpts) +} + +// EvmGasLeft is a free data retrieval call binding the contract method 0x28ed15d5. +// +// Solidity: function evmGasLeft() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) EvmGasLeft() (*big.Int, error) { + return _HostioTest.Contract.EvmGasLeft(&_HostioTest.CallOpts) +} + +// EvmInkLeft is a free data retrieval call binding the contract method 0x2dc26516. +// +// Solidity: function evmInkLeft() view returns(uint256) +func (_HostioTest *HostioTestCaller) EvmInkLeft(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "evmInkLeft") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// EvmInkLeft is a free data retrieval call binding the contract method 0x2dc26516. +// +// Solidity: function evmInkLeft() view returns(uint256) +func (_HostioTest *HostioTestSession) EvmInkLeft() (*big.Int, error) { + return _HostioTest.Contract.EvmInkLeft(&_HostioTest.CallOpts) +} + +// EvmInkLeft is a free data retrieval call binding the contract method 0x2dc26516. +// +// Solidity: function evmInkLeft() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) EvmInkLeft() (*big.Int, error) { + return _HostioTest.Contract.EvmInkLeft(&_HostioTest.CallOpts) +} + +// ExitEarly is a free data retrieval call binding the contract method 0xe6334eea. +// +// Solidity: function exitEarly() pure returns() +func (_HostioTest *HostioTestCaller) ExitEarly(opts *bind.CallOpts) error { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "exitEarly") + + if err != nil { + return err + } + + return err + +} + +// ExitEarly is a free data retrieval call binding the contract method 0xe6334eea. +// +// Solidity: function exitEarly() pure returns() +func (_HostioTest *HostioTestSession) ExitEarly() error { + return _HostioTest.Contract.ExitEarly(&_HostioTest.CallOpts) +} + +// ExitEarly is a free data retrieval call binding the contract method 0xe6334eea. +// +// Solidity: function exitEarly() pure returns() +func (_HostioTest *HostioTestCallerSession) ExitEarly() error { + return _HostioTest.Contract.ExitEarly(&_HostioTest.CallOpts) +} + +// Keccak is a free data retrieval call binding the contract method 0x23fc7ef3. +// +// Solidity: function keccak(bytes preimage) pure returns(bytes32) +func (_HostioTest *HostioTestCaller) Keccak(opts *bind.CallOpts, preimage []byte) ([32]byte, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "keccak", preimage) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// Keccak is a free data retrieval call binding the contract method 0x23fc7ef3. +// +// Solidity: function keccak(bytes preimage) pure returns(bytes32) +func (_HostioTest *HostioTestSession) Keccak(preimage []byte) ([32]byte, error) { + return _HostioTest.Contract.Keccak(&_HostioTest.CallOpts, preimage) +} + +// Keccak is a free data retrieval call binding the contract method 0x23fc7ef3. +// +// Solidity: function keccak(bytes preimage) pure returns(bytes32) +func (_HostioTest *HostioTestCallerSession) Keccak(preimage []byte) ([32]byte, error) { + return _HostioTest.Contract.Keccak(&_HostioTest.CallOpts, preimage) +} + +// MathAddMod is a free data retrieval call binding the contract method 0xa83ede1c. +// +// Solidity: function mathAddMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestCaller) MathAddMod(opts *bind.CallOpts, a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "mathAddMod", a, b, c) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MathAddMod is a free data retrieval call binding the contract method 0xa83ede1c. +// +// Solidity: function mathAddMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestSession) MathAddMod(a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathAddMod(&_HostioTest.CallOpts, a, b, c) +} + +// MathAddMod is a free data retrieval call binding the contract method 0xa83ede1c. +// +// Solidity: function mathAddMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) MathAddMod(a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathAddMod(&_HostioTest.CallOpts, a, b, c) +} + +// MathDiv is a free data retrieval call binding the contract method 0x7c6aa466. +// +// Solidity: function mathDiv(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCaller) MathDiv(opts *bind.CallOpts, a *big.Int, b *big.Int) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "mathDiv", a, b) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MathDiv is a free data retrieval call binding the contract method 0x7c6aa466. +// +// Solidity: function mathDiv(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestSession) MathDiv(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathDiv(&_HostioTest.CallOpts, a, b) +} + +// MathDiv is a free data retrieval call binding the contract method 0x7c6aa466. +// +// Solidity: function mathDiv(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) MathDiv(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathDiv(&_HostioTest.CallOpts, a, b) +} + +// MathMod is a free data retrieval call binding the contract method 0xf7be3e8d. +// +// Solidity: function mathMod(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCaller) MathMod(opts *bind.CallOpts, a *big.Int, b *big.Int) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "mathMod", a, b) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MathMod is a free data retrieval call binding the contract method 0xf7be3e8d. +// +// Solidity: function mathMod(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestSession) MathMod(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathMod(&_HostioTest.CallOpts, a, b) +} + +// MathMod is a free data retrieval call binding the contract method 0xf7be3e8d. +// +// Solidity: function mathMod(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) MathMod(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathMod(&_HostioTest.CallOpts, a, b) +} + +// MathMulMod is a free data retrieval call binding the contract method 0x131260d0. +// +// Solidity: function mathMulMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestCaller) MathMulMod(opts *bind.CallOpts, a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "mathMulMod", a, b, c) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MathMulMod is a free data retrieval call binding the contract method 0x131260d0. +// +// Solidity: function mathMulMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestSession) MathMulMod(a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathMulMod(&_HostioTest.CallOpts, a, b, c) +} + +// MathMulMod is a free data retrieval call binding the contract method 0x131260d0. +// +// Solidity: function mathMulMod(uint256 a, uint256 b, uint256 c) pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) MathMulMod(a *big.Int, b *big.Int, c *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathMulMod(&_HostioTest.CallOpts, a, b, c) +} + +// MathPow is a free data retrieval call binding the contract method 0x89995319. +// +// Solidity: function mathPow(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCaller) MathPow(opts *bind.CallOpts, a *big.Int, b *big.Int) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "mathPow", a, b) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MathPow is a free data retrieval call binding the contract method 0x89995319. +// +// Solidity: function mathPow(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestSession) MathPow(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathPow(&_HostioTest.CallOpts, a, b) +} + +// MathPow is a free data retrieval call binding the contract method 0x89995319. +// +// Solidity: function mathPow(uint256 a, uint256 b) pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) MathPow(a *big.Int, b *big.Int) (*big.Int, error) { + return _HostioTest.Contract.MathPow(&_HostioTest.CallOpts, a, b) +} + +// MsgSender is a free data retrieval call binding the contract method 0xd737d0c7. +// +// Solidity: function msgSender() view returns(address) +func (_HostioTest *HostioTestCaller) MsgSender(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "msgSender") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// MsgSender is a free data retrieval call binding the contract method 0xd737d0c7. +// +// Solidity: function msgSender() view returns(address) +func (_HostioTest *HostioTestSession) MsgSender() (common.Address, error) { + return _HostioTest.Contract.MsgSender(&_HostioTest.CallOpts) +} + +// MsgSender is a free data retrieval call binding the contract method 0xd737d0c7. +// +// Solidity: function msgSender() view returns(address) +func (_HostioTest *HostioTestCallerSession) MsgSender() (common.Address, error) { + return _HostioTest.Contract.MsgSender(&_HostioTest.CallOpts) +} + +// ReturnDataSize is a free data retrieval call binding the contract method 0x860e6199. +// +// Solidity: function returnDataSize() pure returns(uint256) +func (_HostioTest *HostioTestCaller) ReturnDataSize(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "returnDataSize") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// ReturnDataSize is a free data retrieval call binding the contract method 0x860e6199. +// +// Solidity: function returnDataSize() pure returns(uint256) +func (_HostioTest *HostioTestSession) ReturnDataSize() (*big.Int, error) { + return _HostioTest.Contract.ReturnDataSize(&_HostioTest.CallOpts) +} + +// ReturnDataSize is a free data retrieval call binding the contract method 0x860e6199. +// +// Solidity: function returnDataSize() pure returns(uint256) +func (_HostioTest *HostioTestCallerSession) ReturnDataSize() (*big.Int, error) { + return _HostioTest.Contract.ReturnDataSize(&_HostioTest.CallOpts) +} + +// TransientLoadBytes32 is a free data retrieval call binding the contract method 0x9c16cfe8. +// +// Solidity: function transientLoadBytes32(bytes32 key) view returns(bytes32) +func (_HostioTest *HostioTestCaller) TransientLoadBytes32(opts *bind.CallOpts, key [32]byte) ([32]byte, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "transientLoadBytes32", key) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// TransientLoadBytes32 is a free data retrieval call binding the contract method 0x9c16cfe8. +// +// Solidity: function transientLoadBytes32(bytes32 key) view returns(bytes32) +func (_HostioTest *HostioTestSession) TransientLoadBytes32(key [32]byte) ([32]byte, error) { + return _HostioTest.Contract.TransientLoadBytes32(&_HostioTest.CallOpts, key) +} + +// TransientLoadBytes32 is a free data retrieval call binding the contract method 0x9c16cfe8. +// +// Solidity: function transientLoadBytes32(bytes32 key) view returns(bytes32) +func (_HostioTest *HostioTestCallerSession) TransientLoadBytes32(key [32]byte) ([32]byte, error) { + return _HostioTest.Contract.TransientLoadBytes32(&_HostioTest.CallOpts, key) +} + +// TxGasPrice is a free data retrieval call binding the contract method 0x534ca054. +// +// Solidity: function txGasPrice() view returns(uint256) +func (_HostioTest *HostioTestCaller) TxGasPrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "txGasPrice") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TxGasPrice is a free data retrieval call binding the contract method 0x534ca054. +// +// Solidity: function txGasPrice() view returns(uint256) +func (_HostioTest *HostioTestSession) TxGasPrice() (*big.Int, error) { + return _HostioTest.Contract.TxGasPrice(&_HostioTest.CallOpts) +} + +// TxGasPrice is a free data retrieval call binding the contract method 0x534ca054. +// +// Solidity: function txGasPrice() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) TxGasPrice() (*big.Int, error) { + return _HostioTest.Contract.TxGasPrice(&_HostioTest.CallOpts) +} + +// TxInkPrice is a free data retrieval call binding the contract method 0x7d006296. +// +// Solidity: function txInkPrice() view returns(uint256) +func (_HostioTest *HostioTestCaller) TxInkPrice(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "txInkPrice") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// TxInkPrice is a free data retrieval call binding the contract method 0x7d006296. +// +// Solidity: function txInkPrice() view returns(uint256) +func (_HostioTest *HostioTestSession) TxInkPrice() (*big.Int, error) { + return _HostioTest.Contract.TxInkPrice(&_HostioTest.CallOpts) +} + +// TxInkPrice is a free data retrieval call binding the contract method 0x7d006296. +// +// Solidity: function txInkPrice() view returns(uint256) +func (_HostioTest *HostioTestCallerSession) TxInkPrice() (*big.Int, error) { + return _HostioTest.Contract.TxInkPrice(&_HostioTest.CallOpts) +} + +// TxOrigin is a free data retrieval call binding the contract method 0xf96757d1. +// +// Solidity: function txOrigin() view returns(address) +func (_HostioTest *HostioTestCaller) TxOrigin(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _HostioTest.contract.Call(opts, &out, "txOrigin") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// TxOrigin is a free data retrieval call binding the contract method 0xf96757d1. +// +// Solidity: function txOrigin() view returns(address) +func (_HostioTest *HostioTestSession) TxOrigin() (common.Address, error) { + return _HostioTest.Contract.TxOrigin(&_HostioTest.CallOpts) +} + +// TxOrigin is a free data retrieval call binding the contract method 0xf96757d1. +// +// Solidity: function txOrigin() view returns(address) +func (_HostioTest *HostioTestCallerSession) TxOrigin() (common.Address, error) { + return _HostioTest.Contract.TxOrigin(&_HostioTest.CallOpts) +} + +// EmitLog is a paid mutator transaction binding the contract method 0x6417b4d5. +// +// Solidity: function emitLog(bytes _data, int8 n, bytes32 t1, bytes32 t2, bytes32 t3, bytes32 t4) returns() +func (_HostioTest *HostioTestTransactor) EmitLog(opts *bind.TransactOpts, _data []byte, n int8, t1 [32]byte, t2 [32]byte, t3 [32]byte, t4 [32]byte) (*types.Transaction, error) { + return _HostioTest.contract.Transact(opts, "emitLog", _data, n, t1, t2, t3, t4) +} + +// EmitLog is a paid mutator transaction binding the contract method 0x6417b4d5. +// +// Solidity: function emitLog(bytes _data, int8 n, bytes32 t1, bytes32 t2, bytes32 t3, bytes32 t4) returns() +func (_HostioTest *HostioTestSession) EmitLog(_data []byte, n int8, t1 [32]byte, t2 [32]byte, t3 [32]byte, t4 [32]byte) (*types.Transaction, error) { + return _HostioTest.Contract.EmitLog(&_HostioTest.TransactOpts, _data, n, t1, t2, t3, t4) +} + +// EmitLog is a paid mutator transaction binding the contract method 0x6417b4d5. +// +// Solidity: function emitLog(bytes _data, int8 n, bytes32 t1, bytes32 t2, bytes32 t3, bytes32 t4) returns() +func (_HostioTest *HostioTestTransactorSession) EmitLog(_data []byte, n int8, t1 [32]byte, t2 [32]byte, t3 [32]byte, t4 [32]byte) (*types.Transaction, error) { + return _HostioTest.Contract.EmitLog(&_HostioTest.TransactOpts, _data, n, t1, t2, t3, t4) +} + +// MsgValue is a paid mutator transaction binding the contract method 0xddf363d7. +// +// Solidity: function msgValue() payable returns(uint256) +func (_HostioTest *HostioTestTransactor) MsgValue(opts *bind.TransactOpts) (*types.Transaction, error) { + return _HostioTest.contract.Transact(opts, "msgValue") +} + +// MsgValue is a paid mutator transaction binding the contract method 0xddf363d7. +// +// Solidity: function msgValue() payable returns(uint256) +func (_HostioTest *HostioTestSession) MsgValue() (*types.Transaction, error) { + return _HostioTest.Contract.MsgValue(&_HostioTest.TransactOpts) +} + +// MsgValue is a paid mutator transaction binding the contract method 0xddf363d7. +// +// Solidity: function msgValue() payable returns(uint256) +func (_HostioTest *HostioTestTransactorSession) MsgValue() (*types.Transaction, error) { + return _HostioTest.Contract.MsgValue(&_HostioTest.TransactOpts) +} + +// TransientStoreBytes32 is a paid mutator transaction binding the contract method 0x34eb2d6b. +// +// Solidity: function transientStoreBytes32(bytes32 key, bytes32 value) returns() +func (_HostioTest *HostioTestTransactor) TransientStoreBytes32(opts *bind.TransactOpts, key [32]byte, value [32]byte) (*types.Transaction, error) { + return _HostioTest.contract.Transact(opts, "transientStoreBytes32", key, value) +} + +// TransientStoreBytes32 is a paid mutator transaction binding the contract method 0x34eb2d6b. +// +// Solidity: function transientStoreBytes32(bytes32 key, bytes32 value) returns() +func (_HostioTest *HostioTestSession) TransientStoreBytes32(key [32]byte, value [32]byte) (*types.Transaction, error) { + return _HostioTest.Contract.TransientStoreBytes32(&_HostioTest.TransactOpts, key, value) +} + +// TransientStoreBytes32 is a paid mutator transaction binding the contract method 0x34eb2d6b. +// +// Solidity: function transientStoreBytes32(bytes32 key, bytes32 value) returns() +func (_HostioTest *HostioTestTransactorSession) TransientStoreBytes32(key [32]byte, value [32]byte) (*types.Transaction, error) { + return _HostioTest.Contract.TransientStoreBytes32(&_HostioTest.TransactOpts, key, value) +} + // IWETH9MetaData contains all meta data concerning the IWETH9 contract. var IWETH9MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", @@ -4088,7 +5322,7 @@ func (_IWETH9 *IWETH9TransactorSession) Withdraw(_amount *big.Int) (*types.Trans // InboxStubMetaData contains all meta data concerning the InboxStub contract. var InboxStubMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowListEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"calculateRetryableSubmissionFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"createRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedContractTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendL1FundedUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2Message\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"messageData\",\"type\":\"bytes\"}],\"name\":\"sendL2MessageFromOrigin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"sendUnsignedTransactionToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"sendWithdrawEthToFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"name\":\"setAllowList\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"name\":\"setAllowListEnabled\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"unsafeCreateRetryableTicket\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x60a060405234801561001057600080fd5b506201cccc608052608051610dee61003360003960006103fb0152610dee6000f3fe6080604052600436106101a05760003560e01c80638456cb59116100e1578063c474d2c51161008a578063e78cea9211610064578063e78cea92146103bc578063e8eb1dc3146103e9578063ee35f3271461041d578063efeadb6d1461044a57600080fd5b8063c474d2c51461037e578063e3de72a51461039c578063e6bd12cf146102aa57600080fd5b8063a66b327d116100bb578063a66b327d14610328578063b75436bb14610343578063babcc5391461036357600080fd5b80638456cb591461021d5780638a631aa6146102d35780638b3240a0146102ee57600080fd5b80635075788b1161014e578063679b6ded11610128578063679b6ded1461029c57806367ef3ab8146102aa5780636e6e8a6a1461029c57806370665f14146102b857600080fd5b80635075788b146101a55780635c975abb1461025c5780635e9167581461028e57600080fd5b80633f4ba83a1161017f5780633f4ba83a1461021d578063439370b114610234578063485cc9551461023c57600080fd5b8062f72382146101a55780631fe927cf146101d857806322bd5c1c146101f8575b600080fd5b3480156101b157600080fd5b506101c56101c0366004610816565b610465565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101c56101f3366004610893565b6104b5565b34801561020457600080fd5b5061020d610465565b60405190151581526020016101cf565b34801561022957600080fd5b50610232610560565b005b6101c5610465565b34801561024857600080fd5b506102326102573660046108d5565b6105a8565b34801561026857600080fd5b5060015461020d9074010000000000000000000000000000000000000000900460ff1681565b6101c56101c036600461090e565b6101c56101c0366004610978565b6101c56101c0366004610a1d565b3480156102c457600080fd5b506101c56101c0366004610a90565b3480156102df57600080fd5b506101c56101c0366004610add565b3480156102fa57600080fd5b50610303610465565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101cf565b34801561033457600080fd5b506101c56101c0366004610b32565b34801561034f57600080fd5b506101c561035e366004610893565b610656565b34801561036f57600080fd5b5061020d6101c0366004610b54565b34801561038a57600080fd5b50610232610399366004610b54565b50565b3480156103a857600080fd5b506102326103b7366004610c83565b6106b2565b3480156103c857600080fd5b506000546103039073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f557600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b506001546103039073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045657600080fd5b506102326103b7366004610d45565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b60003332146105065760405162461bcd60e51b815260206004820152600b60248201527f6f726967696e206f6e6c7900000000000000000000000000000000000000000060448201526064016104ac565b600061052b600333868660405161051e929190610d60565b60405180910390206106fa565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f5420494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b60005473ffffffffffffffffffffffffffffffffffffffff161561060e5760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f494e4954000000000000000000000000000000000000000060448201526064016104ac565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061066f600333868660405161051e929190610d60565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85856040516106a3929190610d70565b60405180910390a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b600080546040517f8db5993b00000000000000000000000000000000000000000000000000000000815260ff8616600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526044820185905290911690638db5993b90349060640160206040518083038185885af115801561077e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a39190610d9f565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039957600080fd5b60008083601f8401126107df57600080fd5b50813567ffffffffffffffff8111156107f757600080fd5b60208301915083602082850101111561080f57600080fd5b9250929050565b600080600080600080600060c0888a03121561083157600080fd5b8735965060208801359550604088013594506060880135610851816107ab565b93506080880135925060a088013567ffffffffffffffff81111561087457600080fd5b6108808a828b016107cd565b989b979a50959850939692959293505050565b600080602083850312156108a657600080fd5b823567ffffffffffffffff8111156108bd57600080fd5b6108c9858286016107cd565b90969095509350505050565b600080604083850312156108e857600080fd5b82356108f3816107ab565b91506020830135610903816107ab565b809150509250929050565b60008060008060006080868803121561092657600080fd5b8535945060208601359350604086013561093f816107ab565b9250606086013567ffffffffffffffff81111561095b57600080fd5b610967888289016107cd565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561099757600080fd5b89356109a2816107ab565b985060208a0135975060408a0135965060608a01356109c0816107ab565b955060808a01356109d0816107ab565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156109fa57600080fd5b610a068c828d016107cd565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215610a3657600080fd5b8635955060208701359450604087013593506060870135610a56816107ab565b9250608087013567ffffffffffffffff811115610a7257600080fd5b610a7e89828a016107cd565b979a9699509497509295939492505050565b600080600080600060a08688031215610aa857600080fd5b853594506020860135935060408601359250606086013591506080860135610acf816107ab565b809150509295509295909350565b60008060008060008060a08789031215610af657600080fd5b86359550602087013594506040870135610b0f816107ab565b935060608701359250608087013567ffffffffffffffff811115610a7257600080fd5b60008060408385031215610b4557600080fd5b50508035926020909101359150565b600060208284031215610b6657600080fd5b8135610b71816107ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610bd057610bd0610b78565b604052919050565b600067ffffffffffffffff821115610bf257610bf2610b78565b5060051b60200190565b80358015158114610c0c57600080fd5b919050565b600082601f830112610c2257600080fd5b81356020610c37610c3283610bd8565b610ba7565b82815260059290921b84018101918181019086841115610c5657600080fd5b8286015b84811015610c7857610c6b81610bfc565b8352918301918301610c5a565b509695505050505050565b60008060408385031215610c9657600080fd5b823567ffffffffffffffff80821115610cae57600080fd5b818501915085601f830112610cc257600080fd5b81356020610cd2610c3283610bd8565b82815260059290921b84018101918181019089841115610cf157600080fd5b948201945b83861015610d18578535610d09816107ab565b82529482019490820190610cf6565b96505086013592505080821115610d2e57600080fd5b50610d3b85828601610c11565b9150509250929050565b600060208284031215610d5757600080fd5b610b7182610bfc565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610db157600080fd5b505191905056fea26469706673582212205631a10cc781787f8492f64c05c078d15090b549dbf5958003740194159d1eaa64736f6c63430008110033", + Bin: "0x60a060405234801561001057600080fd5b506201cccc608052608051610dee61003360003960006103fb0152610dee6000f3fe6080604052600436106101a05760003560e01c80638456cb59116100e1578063c474d2c51161008a578063e78cea9211610064578063e78cea92146103bc578063e8eb1dc3146103e9578063ee35f3271461041d578063efeadb6d1461044a57600080fd5b8063c474d2c51461037e578063e3de72a51461039c578063e6bd12cf146102aa57600080fd5b8063a66b327d116100bb578063a66b327d14610328578063b75436bb14610343578063babcc5391461036357600080fd5b80638456cb591461021d5780638a631aa6146102d35780638b3240a0146102ee57600080fd5b80635075788b1161014e578063679b6ded11610128578063679b6ded1461029c57806367ef3ab8146102aa5780636e6e8a6a1461029c57806370665f14146102b857600080fd5b80635075788b146101a55780635c975abb1461025c5780635e9167581461028e57600080fd5b80633f4ba83a1161017f5780633f4ba83a1461021d578063439370b114610234578063485cc9551461023c57600080fd5b8062f72382146101a55780631fe927cf146101d857806322bd5c1c146101f8575b600080fd5b3480156101b157600080fd5b506101c56101c0366004610816565b610465565b6040519081526020015b60405180910390f35b3480156101e457600080fd5b506101c56101f3366004610893565b6104b5565b34801561020457600080fd5b5061020d610465565b60405190151581526020016101cf565b34801561022957600080fd5b50610232610560565b005b6101c5610465565b34801561024857600080fd5b506102326102573660046108d5565b6105a8565b34801561026857600080fd5b5060015461020d9074010000000000000000000000000000000000000000900460ff1681565b6101c56101c036600461090e565b6101c56101c0366004610978565b6101c56101c0366004610a1d565b3480156102c457600080fd5b506101c56101c0366004610a90565b3480156102df57600080fd5b506101c56101c0366004610add565b3480156102fa57600080fd5b50610303610465565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101cf565b34801561033457600080fd5b506101c56101c0366004610b32565b34801561034f57600080fd5b506101c561035e366004610893565b610656565b34801561036f57600080fd5b5061020d6101c0366004610b54565b34801561038a57600080fd5b50610232610399366004610b54565b50565b3480156103a857600080fd5b506102326103b7366004610c83565b6106b2565b3480156103c857600080fd5b506000546103039073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f557600080fd5b506101c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561042957600080fd5b506001546103039073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045657600080fd5b506102326103b7366004610d45565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526000906064015b60405180910390fd5b60003332146105065760405162461bcd60e51b815260206004820152600b60248201527f6f726967696e206f6e6c7900000000000000000000000000000000000000000060448201526064016104ac565b600061052b600333868660405161051e929190610d60565b60405180910390206106fa565b60405190915081907fab532385be8f1005a4b6ba8fa20a2245facb346134ac739fe9a5198dc1580b9c90600090a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f5420494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b60005473ffffffffffffffffffffffffffffffffffffffff161561060e5760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f494e4954000000000000000000000000000000000000000060448201526064016104ac565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061066f600333868660405161051e929190610d60565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b85856040516106a3929190610d70565b60405180910390a29392505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e4f545f494d504c454d454e544544000000000000000000000000000000000060448201526064016104ac565b600080546040517f8db5993b00000000000000000000000000000000000000000000000000000000815260ff8616600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526044820185905290911690638db5993b90349060640160206040518083038185885af115801561077e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a39190610d9f565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039957600080fd5b60008083601f8401126107df57600080fd5b50813567ffffffffffffffff8111156107f757600080fd5b60208301915083602082850101111561080f57600080fd5b9250929050565b600080600080600080600060c0888a03121561083157600080fd5b8735965060208801359550604088013594506060880135610851816107ab565b93506080880135925060a088013567ffffffffffffffff81111561087457600080fd5b6108808a828b016107cd565b989b979a50959850939692959293505050565b600080602083850312156108a657600080fd5b823567ffffffffffffffff8111156108bd57600080fd5b6108c9858286016107cd565b90969095509350505050565b600080604083850312156108e857600080fd5b82356108f3816107ab565b91506020830135610903816107ab565b809150509250929050565b60008060008060006080868803121561092657600080fd5b8535945060208601359350604086013561093f816107ab565b9250606086013567ffffffffffffffff81111561095b57600080fd5b610967888289016107cd565b969995985093965092949392505050565b60008060008060008060008060006101008a8c03121561099757600080fd5b89356109a2816107ab565b985060208a0135975060408a0135965060608a01356109c0816107ab565b955060808a01356109d0816107ab565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156109fa57600080fd5b610a068c828d016107cd565b915080935050809150509295985092959850929598565b60008060008060008060a08789031215610a3657600080fd5b8635955060208701359450604087013593506060870135610a56816107ab565b9250608087013567ffffffffffffffff811115610a7257600080fd5b610a7e89828a016107cd565b979a9699509497509295939492505050565b600080600080600060a08688031215610aa857600080fd5b853594506020860135935060408601359250606086013591506080860135610acf816107ab565b809150509295509295909350565b60008060008060008060a08789031215610af657600080fd5b86359550602087013594506040870135610b0f816107ab565b935060608701359250608087013567ffffffffffffffff811115610a7257600080fd5b60008060408385031215610b4557600080fd5b50508035926020909101359150565b600060208284031215610b6657600080fd5b8135610b71816107ab565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610bd057610bd0610b78565b604052919050565b600067ffffffffffffffff821115610bf257610bf2610b78565b5060051b60200190565b80358015158114610c0c57600080fd5b919050565b600082601f830112610c2257600080fd5b81356020610c37610c3283610bd8565b610ba7565b82815260059290921b84018101918181019086841115610c5657600080fd5b8286015b84811015610c7857610c6b81610bfc565b8352918301918301610c5a565b509695505050505050565b60008060408385031215610c9657600080fd5b823567ffffffffffffffff80821115610cae57600080fd5b818501915085601f830112610cc257600080fd5b81356020610cd2610c3283610bd8565b82815260059290921b84018101918181019089841115610cf157600080fd5b948201945b83861015610d18578535610d09816107ab565b82529482019490820190610cf6565b96505086013592505080821115610d2e57600080fd5b50610d3b85828601610c11565b9150509250929050565b600060208284031215610d5757600080fd5b610b7182610bfc565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208284031215610db157600080fd5b505191905056fea2646970667358221220e59236b39b72fa4f85e8062efd24b3a04a647d04a6151107c47dea1015c48de764736f6c63430008110033", } // InboxStubABI is the input ABI used to generate the binding from. @@ -5248,7 +6482,7 @@ func (_InboxStub *InboxStubFilterer) ParseInboxMessageDeliveredFromOrigin(log ty // MerkleTreeAccessMetaData contains all meta data concerning the MerkleTreeAccess contract. var MerkleTreeAccessMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxProofLength\",\"type\":\"uint256\"}],\"name\":\"MerkleProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"me\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"subtreeRoot\",\"type\":\"bytes32\"}],\"name\":\"appendCompleteSubTree\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"me\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"leaf\",\"type\":\"bytes32\"}],\"name\":\"appendLeaf\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"leastSignificantBit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endSize\",\"type\":\"uint256\"}],\"name\":\"maximumAppendBetween\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"mostSignificantBit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"me\",\"type\":\"bytes32[]\"}],\"name\":\"root\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"leaf\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyInclusionProof\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"preRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"postRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"postSize\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"preExpansion\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyPrefixProof\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506116b8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c22c47a41161005b578063c22c47a4146100ff578063ca11325314610112578063d230d23f14610125578063e6bcbc651461013857600080fd5b80635fb9c3d41461008d57806367905a7e146100a25780636bd58993146100cb578063bc2f0640146100de575b600080fd5b6100a061009b3660046112de565b61014b565b005b6100b56100b0366004611367565b610161565b6040516100c291906113b5565b60405180910390f35b6100a06100d93660046113f9565b610178565b6100f16100ec366004611453565b61018a565b6040519081526020016100c2565b6100b561010d366004611475565b61019f565b6100f16101203660046114ba565b6101ab565b6100f16101333660046114f7565b6101b6565b6100f16101463660046114f7565b6101c1565b6101598686868686866101cc565b505050505050565b606061016e8484846104f4565b90505b9392505050565b61018484848484610a7e565b50505050565b60006101968383610b0b565b90505b92915050565b60606101968383610c00565b600061019982610c36565b600061019982610dd6565b600061019982610e3f565b600085116102215760405162461bcd60e51b815260206004820152601460248201527f5072652d73697a652063616e6e6f74206265203000000000000000000000000060448201526064015b60405180910390fd5b8561022b83610c36565b146102785760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d6174636800000000006044820152606401610218565b8461028283610f85565b146102f55760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b8285106103445760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a656044820152606401610218565b60008590506000806103598560008751610fe0565b90505b8583101561041c5760006103708488610b0b565b9050845183106103c25760405162461bcd60e51b815260206004820152601260248201527f496e646578206f7574206f662072616e676500000000000000000000000000006044820152606401610218565b6103e682828786815181106103d9576103d9611510565b60200260200101516104f4565b91506001811b6103f6818661153c565b9450878511156104085761040861154f565b8361041281611565565b945050505061035c565b8661042682610c36565b146104995760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f60448201527f73740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b835182146104e95760405162461bcd60e51b815260206004820152601660248201527f496e636f6d706c6574652070726f6f66207573616765000000000000000000006044820152606401610218565b505050505050505050565b6060604083106105465760405162461bcd60e51b815260206004820152600e60248201527f4c6576656c20746f6f20686967680000000000000000000000000000000000006044820152606401610218565b60008290036105975760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d707479207375627472656500000000006044820152606401610218565b6040845111156105e95760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b83516000036106685760006105ff84600161153c565b67ffffffffffffffff8111156106175761061761121a565b604051908082528060200260200182016040528015610640578160200160208202803683370190505b5090508281858151811061065657610656611510565b60209081029190910101529050610171565b835183106106de5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c60448201527f206f662063757272656e7420657870616e73696f6e00000000000000000000006064820152608401610218565b8160006106ea86610f85565b905060006106f9866002611663565b610703908361153c565b9050600061071083610e3f565b61071983610e3f565b1161076757875167ffffffffffffffff8111156107385761073861121a565b604051908082528060200260200182016040528015610761578160200160208202803683370190505b506107b7565b875161077490600161153c565b67ffffffffffffffff81111561078c5761078c61121a565b6040519080825280602002602001820160405280156107b5578160200160208202803683370190505b505b905060408151111561080b5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a652074726565000000006044820152606401610218565b60005b88518110156109c757878110156108b55788818151811061083157610831611510565b60200260200101516000801b146108b05760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e74206260448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b6109b5565b60008590036108fb578881815181106108d0576108d0611510565b60200260200101518282815181106108ea576108ea611510565b6020026020010181815250506109b5565b88818151811061090d5761090d611510565b60200260200101516000801b03610945578482828151811061093157610931611510565b6020908102919091010152600094506109b5565b6000801b82828151811061095b5761095b611510565b60200260200101818152505088818151811061097957610979611510565b60200260200101518560405160200161099c929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b806109bf81611565565b91505061080e565b5083156109fb578381600183516109de919061166f565b815181106109ee576109ee611510565b6020026020010181815250505b8060018251610a0a919061166f565b81518110610a1a57610a1a611510565b60200260200101516000801b03610a735760405162461bcd60e51b815260206004820152600f60248201527f4c61737420656e747279207a65726f00000000000000000000000000000000006044820152606401610218565b979650505050505050565b6000610ab3828486604051602001610a9891815260200190565b6040516020818303038152906040528051906020012061115f565b9050808514610b045760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f660000000000000000006044820152606401610218565b5050505050565b6000818310610b5c5760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b6000610b69838518610e3f565b905060006001610b79838261153c565b6001901b610b87919061166f565b90508481168482168115610ba957610b9e82610dd6565b945050505050610199565b8015610bb857610b9e81610e3f565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f00000000006044820152606401610218565b606061019683600084604051602001610c1b91815260200190565b604051602081830303815290604052805190602001206104f4565b600080825111610c885760405162461bcd60e51b815260206004820152601660248201527f456d707479206d65726b6c6520657870616e73696f6e000000000000000000006044820152606401610218565b604082511115610cda5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b6000805b8351811015610dcf576000848281518110610cfb57610cfb611510565b60200260200101519050826000801b03610d67578015610d625780925060018551610d26919061166f565b8214610d6257604051610d49908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b610dbc565b8015610d86576040805160208101839052908101849052606001610d49565b604051610da3908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080610dc781611565565b915050610cde565b5092915050565b6000808211610e275760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b60008280610e3660018261166f565b16189050610171815b600081600003610e915760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b7001000000000000000000000000000000008210610ebc57608091821c91610eb9908261153c565b90505b680100000000000000008210610edf57604091821c91610edc908261153c565b90505b6401000000008210610efe57602091821c91610efb908261153c565b90505b620100008210610f1b57601091821c91610f18908261153c565b90505b6101008210610f3757600891821c91610f34908261153c565b90505b60108210610f5257600491821c91610f4f908261153c565b90505b60048210610f6d57600291821c91610f6a908261153c565b90505b60028210610f805761019960018261153c565b919050565b600080805b8351811015610dcf57838181518110610fa557610fa5611510565b60200260200101516000801b14610fce57610fc1816002611663565b610fcb908361153c565b91505b80610fd881611565565b915050610f8a565b60608183106110315760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b83518211156110a85760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e677460448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b60006110b4848461166f565b67ffffffffffffffff8111156110cc576110cc61121a565b6040519080825280602002602001820160405280156110f5578160200160208202803683370190505b509050835b838110156111565785818151811061111457611114611510565b6020026020010151828683611129919061166f565b8151811061113957611139611510565b60209081029190910101528061114e81611565565b9150506110fa565b50949350505050565b82516000906101008111156111ab576040517ffdac331e000000000000000000000000000000000000000000000000000000008152600481018290526101006024820152604401610218565b8260005b828110156112105760008782815181106111cb576111cb611510565b60200260200101519050816001901b87166000036111f757826000528060205260406000209250611207565b8060005282602052604060002092505b506001016111af565b5095945050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261124157600080fd5b8135602067ffffffffffffffff8083111561125e5761125e61121a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156112a1576112a161121a565b6040529384528581018301938381019250878511156112bf57600080fd5b83870191505b84821015610a73578135835291830191908301906112c5565b60008060008060008060c087890312156112f757600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff8082111561132b57600080fd5b6113378a838b01611230565b935060a089013591508082111561134d57600080fd5b5061135a89828a01611230565b9150509295509295509295565b60008060006060848603121561137c57600080fd5b833567ffffffffffffffff81111561139357600080fd5b61139f86828701611230565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b818110156113ed578351835292840192918401916001016113d1565b50909695505050505050565b6000806000806080858703121561140f57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561143b57600080fd5b61144787828801611230565b91505092959194509250565b6000806040838503121561146657600080fd5b50508035926020909101359150565b6000806040838503121561148857600080fd5b823567ffffffffffffffff81111561149f57600080fd5b6114ab85828601611230565b95602094909401359450505050565b6000602082840312156114cc57600080fd5b813567ffffffffffffffff8111156114e357600080fd5b6114ef84828501611230565b949350505050565b60006020828403121561150957600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561019957610199611526565b634e487b7160e01b600052600160045260246000fd5b6000600019820361157857611578611526565b5060010190565b600181815b808511156115ba5781600019048211156115a0576115a0611526565b808516156115ad57918102915b93841c9390800290611584565b509250929050565b6000826115d157506001610199565b816115de57506000610199565b81600181146115f457600281146115fe5761161a565b6001915050610199565b60ff84111561160f5761160f611526565b50506001821b610199565b5060208310610133831016604e8410600b841016171561163d575081810a610199565b611647838361157f565b806000190482111561165b5761165b611526565b029392505050565b600061019683836115c2565b818103818111156101995761019961152656fea264697066735822122046002eb5a8afdf73e4b78ff50aaee83e24878cd2a54f7db44c4ab09d70f8f7c864736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b506116b8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c22c47a41161005b578063c22c47a4146100ff578063ca11325314610112578063d230d23f14610125578063e6bcbc651461013857600080fd5b80635fb9c3d41461008d57806367905a7e146100a25780636bd58993146100cb578063bc2f0640146100de575b600080fd5b6100a061009b3660046112de565b61014b565b005b6100b56100b0366004611367565b610161565b6040516100c291906113b5565b60405180910390f35b6100a06100d93660046113f9565b610178565b6100f16100ec366004611453565b61018a565b6040519081526020016100c2565b6100b561010d366004611475565b61019f565b6100f16101203660046114ba565b6101ab565b6100f16101333660046114f7565b6101b6565b6100f16101463660046114f7565b6101c1565b6101598686868686866101cc565b505050505050565b606061016e8484846104f4565b90505b9392505050565b61018484848484610a7e565b50505050565b60006101968383610b0b565b90505b92915050565b60606101968383610c00565b600061019982610c36565b600061019982610dd6565b600061019982610e3f565b600085116102215760405162461bcd60e51b815260206004820152601460248201527f5072652d73697a652063616e6e6f74206265203000000000000000000000000060448201526064015b60405180910390fd5b8561022b83610c36565b146102785760405162461bcd60e51b815260206004820152601b60248201527f50726520657870616e73696f6e20726f6f74206d69736d6174636800000000006044820152606401610218565b8461028283610f85565b146102f55760405162461bcd60e51b815260206004820152602160248201527f5072652073697a6520646f6573206e6f74206d6174636820657870616e73696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b8285106103445760405162461bcd60e51b815260206004820181905260248201527f5072652073697a65206e6f74206c657373207468616e20706f73742073697a656044820152606401610218565b60008590506000806103598560008751610fe0565b90505b8583101561041c5760006103708488610b0b565b9050845183106103c25760405162461bcd60e51b815260206004820152601260248201527f496e646578206f7574206f662072616e676500000000000000000000000000006044820152606401610218565b6103e682828786815181106103d9576103d9611510565b60200260200101516104f4565b91506001811b6103f6818661153c565b9450878511156104085761040861154f565b8361041281611565565b945050505061035c565b8661042682610c36565b146104995760405162461bcd60e51b815260206004820152602260248201527f506f737420657870616e73696f6e20726f6f74206e6f7420657175616c20706f60448201527f73740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b835182146104e95760405162461bcd60e51b815260206004820152601660248201527f496e636f6d706c6574652070726f6f66207573616765000000000000000000006044820152606401610218565b505050505050505050565b6060604083106105465760405162461bcd60e51b815260206004820152600e60248201527f4c6576656c20746f6f20686967680000000000000000000000000000000000006044820152606401610218565b60008290036105975760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420617070656e6420656d707479207375627472656500000000006044820152606401610218565b6040845111156105e95760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b83516000036106685760006105ff84600161153c565b67ffffffffffffffff8111156106175761061761121a565b604051908082528060200260200182016040528015610640578160200160208202803683370190505b5090508281858151811061065657610656611510565b60209081029190910101529050610171565b835183106106de5760405162461bcd60e51b815260206004820152603560248201527f4c6576656c2067726561746572207468616e2068696768657374206c6576656c60448201527f206f662063757272656e7420657870616e73696f6e00000000000000000000006064820152608401610218565b8160006106ea86610f85565b905060006106f9866002611663565b610703908361153c565b9050600061071083610e3f565b61071983610e3f565b1161076757875167ffffffffffffffff8111156107385761073861121a565b604051908082528060200260200182016040528015610761578160200160208202803683370190505b506107b7565b875161077490600161153c565b67ffffffffffffffff81111561078c5761078c61121a565b6040519080825280602002602001820160405280156107b5578160200160208202803683370190505b505b905060408151111561080b5760405162461bcd60e51b815260206004820152601c60248201527f417070656e642063726561746573206f76657273697a652074726565000000006044820152606401610218565b60005b88518110156109c757878110156108b55788818151811061083157610831611510565b60200260200101516000801b146108b05760405162461bcd60e51b815260206004820152602260248201527f417070656e642061626f7665206c65617374207369676e69666963616e74206260448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610218565b6109b5565b60008590036108fb578881815181106108d0576108d0611510565b60200260200101518282815181106108ea576108ea611510565b6020026020010181815250506109b5565b88818151811061090d5761090d611510565b60200260200101516000801b03610945578482828151811061093157610931611510565b6020908102919091010152600094506109b5565b6000801b82828151811061095b5761095b611510565b60200260200101818152505088818151811061097957610979611510565b60200260200101518560405160200161099c929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b806109bf81611565565b91505061080e565b5083156109fb578381600183516109de919061166f565b815181106109ee576109ee611510565b6020026020010181815250505b8060018251610a0a919061166f565b81518110610a1a57610a1a611510565b60200260200101516000801b03610a735760405162461bcd60e51b815260206004820152600f60248201527f4c61737420656e747279207a65726f00000000000000000000000000000000006044820152606401610218565b979650505050505050565b6000610ab3828486604051602001610a9891815260200190565b6040516020818303038152906040528051906020012061115f565b9050808514610b045760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420696e636c7573696f6e2070726f6f660000000000000000006044820152606401610218565b5050505050565b6000818310610b5c5760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b6000610b69838518610e3f565b905060006001610b79838261153c565b6001901b610b87919061166f565b90508481168482168115610ba957610b9e82610dd6565b945050505050610199565b8015610bb857610b9e81610e3f565b60405162461bcd60e51b815260206004820152601b60248201527f426f7468207920616e64207a2063616e6e6f74206265207a65726f00000000006044820152606401610218565b606061019683600084604051602001610c1b91815260200190565b604051602081830303815290604052805190602001206104f4565b600080825111610c885760405162461bcd60e51b815260206004820152601660248201527f456d707479206d65726b6c6520657870616e73696f6e000000000000000000006044820152606401610218565b604082511115610cda5760405162461bcd60e51b815260206004820152601a60248201527f4d65726b6c6520657870616e73696f6e20746f6f206c617267650000000000006044820152606401610218565b6000805b8351811015610dcf576000848281518110610cfb57610cfb611510565b60200260200101519050826000801b03610d67578015610d625780925060018551610d26919061166f565b8214610d6257604051610d49908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b610dbc565b8015610d86576040805160208101839052908101849052606001610d49565b604051610da3908490600090602001918252602082015260400190565b6040516020818303038152906040528051906020012092505b5080610dc781611565565b915050610cde565b5092915050565b6000808211610e275760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b60008280610e3660018261166f565b16189050610171815b600081600003610e915760405162461bcd60e51b815260206004820152601c60248201527f5a65726f20686173206e6f207369676e69666963616e742062697473000000006044820152606401610218565b7001000000000000000000000000000000008210610ebc57608091821c91610eb9908261153c565b90505b680100000000000000008210610edf57604091821c91610edc908261153c565b90505b6401000000008210610efe57602091821c91610efb908261153c565b90505b620100008210610f1b57601091821c91610f18908261153c565b90505b6101008210610f3757600891821c91610f34908261153c565b90505b60108210610f5257600491821c91610f4f908261153c565b90505b60048210610f6d57600291821c91610f6a908261153c565b90505b60028210610f805761019960018261153c565b919050565b600080805b8351811015610dcf57838181518110610fa557610fa5611510565b60200260200101516000801b14610fce57610fc1816002611663565b610fcb908361153c565b91505b80610fd881611565565b915050610f8a565b60608183106110315760405162461bcd60e51b815260206004820152601760248201527f5374617274206e6f74206c657373207468616e20656e640000000000000000006044820152606401610218565b83518211156110a85760405162461bcd60e51b815260206004820152602160248201527f456e64206e6f74206c657373206f7220657175616c207468616e206c656e677460448201527f68000000000000000000000000000000000000000000000000000000000000006064820152608401610218565b60006110b4848461166f565b67ffffffffffffffff8111156110cc576110cc61121a565b6040519080825280602002602001820160405280156110f5578160200160208202803683370190505b509050835b838110156111565785818151811061111457611114611510565b6020026020010151828683611129919061166f565b8151811061113957611139611510565b60209081029190910101528061114e81611565565b9150506110fa565b50949350505050565b82516000906101008111156111ab576040517ffdac331e000000000000000000000000000000000000000000000000000000008152600481018290526101006024820152604401610218565b8260005b828110156112105760008782815181106111cb576111cb611510565b60200260200101519050816001901b87166000036111f757826000528060205260406000209250611207565b8060005282602052604060002092505b506001016111af565b5095945050505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261124157600080fd5b8135602067ffffffffffffffff8083111561125e5761125e61121a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156112a1576112a161121a565b6040529384528581018301938381019250878511156112bf57600080fd5b83870191505b84821015610a73578135835291830191908301906112c5565b60008060008060008060c087890312156112f757600080fd5b86359550602087013594506040870135935060608701359250608087013567ffffffffffffffff8082111561132b57600080fd5b6113378a838b01611230565b935060a089013591508082111561134d57600080fd5b5061135a89828a01611230565b9150509295509295509295565b60008060006060848603121561137c57600080fd5b833567ffffffffffffffff81111561139357600080fd5b61139f86828701611230565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b818110156113ed578351835292840192918401916001016113d1565b50909695505050505050565b6000806000806080858703121561140f57600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561143b57600080fd5b61144787828801611230565b91505092959194509250565b6000806040838503121561146657600080fd5b50508035926020909101359150565b6000806040838503121561148857600080fd5b823567ffffffffffffffff81111561149f57600080fd5b6114ab85828601611230565b95602094909401359450505050565b6000602082840312156114cc57600080fd5b813567ffffffffffffffff8111156114e357600080fd5b6114ef84828501611230565b949350505050565b60006020828403121561150957600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561019957610199611526565b634e487b7160e01b600052600160045260246000fd5b6000600019820361157857611578611526565b5060010190565b600181815b808511156115ba5781600019048211156115a0576115a0611526565b808516156115ad57918102915b93841c9390800290611584565b509250929050565b6000826115d157506001610199565b816115de57506000610199565b81600181146115f457600281146115fe5761161a565b6001915050610199565b60ff84111561160f5761160f611526565b50506001821b610199565b5060208310610133831016604e8410600b841016171561163d575081810a610199565b611647838361157f565b806000190482111561165b5761165b611526565b029392505050565b600061019683836115c2565b818103818111156101995761019961152656fea2646970667358221220b4aa3efa4e06032b90a32c1a4417cca3ae54fae064000b1131d708653d38e3e564736f6c63430008110033", } // MerkleTreeAccessABI is the input ABI used to generate the binding from. @@ -5665,7 +6899,7 @@ func (_MerkleTreeAccess *MerkleTreeAccessCallerSession) VerifyPrefixProof(preRoo // MockRollupEventInboxMetaData contains all meta data concerning the MockRollupEventInbox contract. var MockRollupEventInboxMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"}],\"name\":\"rollupInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b506080516109ae6100366000396000818160e801526102a701526109ae6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b6100746100843660046107a2565b61029d565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c63660046107c6565b610491565b60005461009c906001600160a01b031681565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036101815760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146101f7576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610178565b60008054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026c9190610842565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361033b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610178565b6000546001600160a01b03161561037e576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166103be576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa15801561043d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104619190610842565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b031633146104eb5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610178565b806105385760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610178565b6001806105436106c4565b156105b857606c6001600160a01b031663f5d6ded76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ab919061085f565b6105b59082610878565b90505b600085838387876040516020016105d39594939291906108b8565b60408051808303601f190181529082905260008054825160208401207f8db5993b000000000000000000000000000000000000000000000000000000008552600b6004860152602485018390526044850152919350916001600160a01b0390911690638db5993b906064016020604051808303816000875af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610681919061085f565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516106b39190610929565b60405180910390a250505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491610730919061095c565b600060405180830381855afa9150503d806000811461076b576040519150601f19603f3d011682016040523d82523d6000602084013e610770565b606091505b5091509150818015610783575080516020145b9250505090565b6001600160a01b038116811461079f57600080fd5b50565b6000602082840312156107b457600080fd5b81356107bf8161078a565b9392505050565b6000806000604084860312156107db57600080fd5b83359250602084013567ffffffffffffffff808211156107fa57600080fd5b818601915086601f83011261080e57600080fd5b81358181111561081d57600080fd5b87602082850101111561082f57600080fd5b6020830194508093505050509250925092565b60006020828403121561085457600080fd5b81516107bf8161078a565b60006020828403121561087157600080fd5b5051919050565b808201808211156108b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b60005b83811015610920578181015183820152602001610908565b50506000910152565b6020815260008251806020840152610948816040850160208701610905565b601f01601f19169190910160400192915050565b6000825161096e818460208701610905565b919091019291505056fea2646970667358221220880972fe3d005e0bdd0b3eac48c4d82dcbd8b102ee927909729b66dff7cb127864736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b506080516109ae6100366000396000818160e801526102a701526109ae6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b6100746100843660046107a2565b61029d565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c63660046107c6565b610491565b60005461009c906001600160a01b031681565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036101815760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b038216146101f7576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610178565b60008054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026c9190610842565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361033b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610178565b6000546001600160a01b03161561037e576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166103be576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa15801561043d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104619190610842565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b031633146104eb5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610178565b806105385760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610178565b6001806105436106c4565b156105b857606c6001600160a01b031663f5d6ded76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ab919061085f565b6105b59082610878565b90505b600085838387876040516020016105d39594939291906108b8565b60408051808303601f190181529082905260008054825160208401207f8db5993b000000000000000000000000000000000000000000000000000000008552600b6004860152602485018390526044850152919350916001600160a01b0390911690638db5993b906064016020604051808303816000875af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610681919061085f565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516106b39190610929565b60405180910390a250505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491610730919061095c565b600060405180830381855afa9150503d806000811461076b576040519150601f19603f3d011682016040523d82523d6000602084013e610770565b606091505b5091509150818015610783575080516020145b9250505090565b6001600160a01b038116811461079f57600080fd5b50565b6000602082840312156107b457600080fd5b81356107bf8161078a565b9392505050565b6000806000604084860312156107db57600080fd5b83359250602084013567ffffffffffffffff808211156107fa57600080fd5b818601915086601f83011261080e57600080fd5b81358181111561081d57600080fd5b87602082850101111561082f57600080fd5b6020830194508093505050509250925092565b60006020828403121561085457600080fd5b81516107bf8161078a565b60006020828403121561087157600080fd5b5051919050565b808201808211156108b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b60005b83811015610920578181015183820152602001610908565b50506000910152565b6020815260008251806020840152610948816040850160208701610905565b601f01601f19169190910160400192915050565b6000825161096e818460208701610905565b919091019291505056fea2646970667358221220e671ee7ba0f7a0055b05c96a92e2bef31fdfcad362cfb66b44559a6c2be8d7da64736f6c63430008110033", } // MockRollupEventInboxABI is the input ABI used to generate the binding from. @@ -6719,7 +7953,7 @@ func (_MultiCallTest *MultiCallTestFilterer) ParseStorage(log types.Log) (*Multi // PendingBlkTimeAndNrAdvanceCheckMetaData contains all meta data concerning the PendingBlkTimeAndNrAdvanceCheck contract. var PendingBlkTimeAndNrAdvanceCheckMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"}],\"name\":\"checkArbBlockHashReturnsLatest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isAdvancing\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60c060405234801561001057600080fd5b50426080818152505060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061007c9190610084565b60a05261009d565b60006020828403121561009657600080fd5b5051919050565b60805160a0516103f06100c0600039600060ce01526000605a01526103f06000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634bc05a231461003b578063e46c80b614610045575b600080fd5b610043610058565b005b610043610053366004610348565b6101ac565b7f000000000000000000000000000000000000000000000000000000000000000042116100cc5760405162461bcd60e51b815260206004820152601360248201527f54696d65206469646e277420616476616e63650000000000000000000000000060448201526064015b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000606473ffffffffffffffffffffffffffffffffffffffff1663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015d9190610361565b116101aa5760405162461bcd60e51b815260206004820152601460248201527f426c6f636b206469646e277420616476616e636500000000000000000000000060448201526064016100c3565b565b6000606473ffffffffffffffffffffffffffffffffffffffff16632b407a826001606473ffffffffffffffffffffffffffffffffffffffff1663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023d9190610361565b610247919061037a565b6040518263ffffffff1660e01b815260040161026591815260200190565b602060405180830381865afa158015610282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a69190610361565b9050806102f55760405162461bcd60e51b815260206004820152600f60248201527f5a45524f5f424c4f434b5f48415348000000000000000000000000000000000060448201526064016100c3565b8181146103445760405162461bcd60e51b815260206004820152601060248201527f57524f4e475f424c4f434b5f484153480000000000000000000000000000000060448201526064016100c3565b5050565b60006020828403121561035a57600080fd5b5035919050565b60006020828403121561037357600080fd5b5051919050565b818103818111156103b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fea2646970667358221220ca18a8b989c702e3174663053cdeb8f141f7ba0d5ce77f4299255a854fb0d0d164736f6c63430008110033", + Bin: "0x60c060405234801561001057600080fd5b50426080818152505060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061007c9190610084565b60a05261009d565b60006020828403121561009657600080fd5b5051919050565b60805160a0516103f06100c0600039600060ce01526000605a01526103f06000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634bc05a231461003b578063e46c80b614610045575b600080fd5b610043610058565b005b610043610053366004610348565b6101ac565b7f000000000000000000000000000000000000000000000000000000000000000042116100cc5760405162461bcd60e51b815260206004820152601360248201527f54696d65206469646e277420616476616e63650000000000000000000000000060448201526064015b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000606473ffffffffffffffffffffffffffffffffffffffff1663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015d9190610361565b116101aa5760405162461bcd60e51b815260206004820152601460248201527f426c6f636b206469646e277420616476616e636500000000000000000000000060448201526064016100c3565b565b6000606473ffffffffffffffffffffffffffffffffffffffff16632b407a826001606473ffffffffffffffffffffffffffffffffffffffff1663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023d9190610361565b610247919061037a565b6040518263ffffffff1660e01b815260040161026591815260200190565b602060405180830381865afa158015610282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a69190610361565b9050806102f55760405162461bcd60e51b815260206004820152600f60248201527f5a45524f5f424c4f434b5f48415348000000000000000000000000000000000060448201526064016100c3565b8181146103445760405162461bcd60e51b815260206004820152601060248201527f57524f4e475f424c4f434b5f484153480000000000000000000000000000000060448201526064016100c3565b5050565b60006020828403121561035a57600080fd5b5035919050565b60006020828403121561037357600080fd5b5051919050565b818103818111156103b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fea26469706673582212205b1b78584f6e234c4d8d9963cfc3df6919a84cc716800734cbbc77a021c6e60364736f6c63430008110033", } // PendingBlkTimeAndNrAdvanceCheckABI is the input ABI used to generate the binding from. @@ -6934,7 +8168,7 @@ func (_PendingBlkTimeAndNrAdvanceCheck *PendingBlkTimeAndNrAdvanceCheckTransacto // ProgramTestMetaData contains all meta data concerning the ProgramTest contract. var ProgramTestMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"name\":\"Hash\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"callKeccak\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"expected\",\"type\":\"bytes\"}],\"name\":\"checkRevertData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"mathTest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fundedAccount\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticcallEvmData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticcallProgram\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506111ff806100206000396000f3fe60806040526004361061005a5760003560e01c806396ec12e51161004357806396ec12e5146100b7578063aba8c4ba146100ca578063fd424462146100ea57600080fd5b80631d00bae41461005f5780633fdd58e214610081575b600080fd5b34801561006b57600080fd5b5061007f61007a366004610f0a565b61010a565b005b34801561008d57600080fd5b506100a161009c366004610f0a565b61022a565b6040516100ae9190610fc1565b60405180910390f35b6100a16100c5366004610fdb565b6102d2565b3480156100d657600080fd5b506100a16100e536600461105c565b6104c5565b3480156100f657600080fd5b5061007f6101053660046110bf565b610c17565b600080846001600160a01b031684846040516101279291906110da565b6000604051808303816000865af19150503d8060008114610164576040519150601f19603f3d011682016040523d82523d6000602084013e610169565b606091505b5091509150816101ae5760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064015b60405180910390fd5b60006101b9826110ea565b90507f224c8d9ad1bbf0f44a61d7bd8e7e9049b1a320e04b047da9910945675c31ba43816040516101ec91815260200190565b60405180910390a16102018460018188611111565b60405161020f9291906110da565b6040518091039020811461022257600080fd5b505050505050565b6060600080856001600160a01b031685856040516102499291906110da565b600060405180830381855afa9150503d8060008114610284576040519150601f19603f3d011682016040523d82523d6000602084013e610289565b606091505b5091509150816102c95760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b95945050505050565b6060600080876001600160a01b03163488886040516102f29291906110da565b60006040518083038185875af1925050503d806000811461032f576040519150601f19603f3d011682016040523d82523d6000602084013e610334565b606091505b509150915081156103875760405162461bcd60e51b815260206004820152601260248201527f756e65787065637465642073756363657373000000000000000000000000000060448201526064016101a5565b805184146103d75760405162461bcd60e51b815260206004820152601860248201527f77726f6e67207265766572742064617461206c656e677468000000000000000060448201526064016101a5565b60005b81518110156104b9578585828181106103f5576103f561113b565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168282815181106104335761043361113b565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016146104a75760405162461bcd60e51b815260206004820152601460248201527f7265766572742064617461206d69736d6174636800000000000000000000000060448201526064016101a5565b806104b181611167565b9150506103da565b50979650505050505050565b6060600080876001600160a01b03168667ffffffffffffffff1686866040516104ef9291906110da565b6000604051808303818686fa925050503d806000811461052b576040519150601f19603f3d011682016040523d82523d6000602084013e610530565b606091505b5091509150816105705760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b60408051808201909152600d81527f626c6f636b206e756d626572200000000000000000000000000000000000000060208201526069906001906105bf9084906105ba8443611181565b610d82565b9250610601836040518060400160405280600d81526020017f636861696e20696420202020200000000000000000000000000000000000000081525046610d82565b9250610643836040518060400160405280600d81526020017f626173652066656520202020200000000000000000000000000000000000000081525048610d82565b9250610685836040518060400160405280600d81526020017f67617320707269636520202020000000000000000000000000000000000000008152503a610d82565b92506106c7836040518060400160405280600d81526020017f676173206c696d6974202020200000000000000000000000000000000000000081525045610d82565b925061070a836040518060400160405280600d81526020017f76616c75652020202020202020000000000000000000000000000000000000008152506000610d82565b925061074c836040518060400160405280600d81526020017f74696d657374616d70202020200000000000000000000000000000000000000081525042610d82565b9250610798836040518060400160405280600d81526020017f62616c616e6365202020202020000000000000000000000000000000000000008152508b6001600160a01b031631610d82565b92506107e3836040518060400160405280600d81526020017f72757374206164647265737320000000000000000000000000000000000000008152508c6001600160a01b0316610d82565b925061082e836040518060400160405280600d81526020017f73656e6465722020202020202000000000000000000000000000000000000000815250306001600160a01b0316610d82565b9250610879836040518060400160405280600d81526020017f6f726967696e2020202020202000000000000000000000000000000000000000815250326001600160a01b0316610d82565b92506108c4836040518060400160405280600d81526020017f636f696e62617365202020202000000000000000000000000000000000000000815250416001600160a01b0316610d82565b9250610913836040518060400160405280600d81526020017f7275737420636f646568617368000000000000000000000000000000000000008152508c6001600160a01b03163f60001c610d82565b9250610962836040518060400160405280600d81526020017f61726220636f6465686173682000000000000000000000000000000000000000815250846001600160a01b03163f60001c610d82565b92506109b1836040518060400160405280600d81526020017f65746820636f6465686173682000000000000000000000000000000000000000815250836001600160a01b03163f60001c610d82565b925060008a6001600160a01b03163b67ffffffffffffffff8111156109d8576109d861119a565b6040519080825280601f01601f191660200182016040528015610a02576020820181803683370190505b50905060005b8b6001600160a01b03163b811015610a8a57848181518110610a2c57610a2c61113b565b602001015160f81c60f81b828281518110610a4957610a4961113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610a8281611167565b915050610a08565b508a6001600160a01b0316803b806020016040519081016040528181526000908060200190933c80519060200120818051906020012014610b0f5760405162461bcd60e51b81526004016101a59060208082526004908201527f636f646500000000000000000000000000000000000000000000000000000000604082015260600190565b60008b6001600160a01b03163b8551610b289190611181565b67ffffffffffffffff811115610b4057610b4061119a565b6040519080825280601f01601f191660200182016040528015610b6a576020820181803683370190505b5090506001600160a01b038c163b5b8551811015610c0757858181518110610b9457610b9461113b565b602001015160f81c60f81b828e6001600160a01b03163b83610bb69190611181565b81518110610bc657610bc661113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610bff81611167565b915050610b79565b509b9a5050505050505050505050565b7feddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d43677866401000003d0197fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f820990507fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f6401000003d0198208905067eddecf107b5740ce8167fffffffefffffc2f9190040a905067c6178c2de1078cd381069050600080836001600160a01b03166040516000604051808303816000865af19150503d8060008114610d03576040519150601f19603f3d011682016040523d82523d6000602084013e610d08565b606091505b509150915081610d485760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b60408051602081018590520160405160208183030381529060405280519060200120818051906020012014610d7c57600080fd5b50505050565b6060600084806020019051810190610d9a91906111b0565b905083838214610dbd5760405162461bcd60e51b81526004016101a59190610fc1565b50600060208651610dce9190611181565b67ffffffffffffffff811115610de657610de661119a565b6040519080825280601f01601f191660200182016040528015610e10576020820181803683370190505b50905060205b8651811015610e9b57868181518110610e3157610e3161113b565b602001015160f81c60f81b82602083610e4a9190611181565b81518110610e5a57610e5a61113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610e9381611167565b915050610e16565b5095945050505050565b80356001600160a01b0381168114610ebc57600080fd5b919050565b60008083601f840112610ed357600080fd5b50813567ffffffffffffffff811115610eeb57600080fd5b602083019150836020828501011115610f0357600080fd5b9250929050565b600080600060408486031215610f1f57600080fd5b610f2884610ea5565b9250602084013567ffffffffffffffff811115610f4457600080fd5b610f5086828701610ec1565b9497909650939450505050565b6000815180845260005b81811015610f8357602081850181015186830182015201610f67565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610fd46020830184610f5d565b9392505050565b600080600080600060608688031215610ff357600080fd5b610ffc86610ea5565b9450602086013567ffffffffffffffff8082111561101957600080fd5b61102589838a01610ec1565b9096509450604088013591508082111561103e57600080fd5b5061104b88828901610ec1565b969995985093965092949392505050565b60008060008060006080868803121561107457600080fd5b61107d86610ea5565b945061108b60208701610ea5565b9350604086013567ffffffffffffffff80821682146110a957600080fd5b9093506060870135908082111561103e57600080fd5b6000602082840312156110d157600080fd5b610fd482610ea5565b8183823760009101908152919050565b8051602080830151919081101561110b576000198160200360031b1b821691505b50919050565b6000808585111561112157600080fd5b8386111561112e57600080fd5b5050820193919092039150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361117a5761117a611151565b5060010190565b8181038181111561119457611194611151565b92915050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156111c257600080fd5b505191905056fea26469706673582212202a83d560892f7076d22a96cf74fca619b0bec3ea41dab017205aa884453ea45b64736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b506111ff806100206000396000f3fe60806040526004361061005a5760003560e01c806396ec12e51161004357806396ec12e5146100b7578063aba8c4ba146100ca578063fd424462146100ea57600080fd5b80631d00bae41461005f5780633fdd58e214610081575b600080fd5b34801561006b57600080fd5b5061007f61007a366004610f0a565b61010a565b005b34801561008d57600080fd5b506100a161009c366004610f0a565b61022a565b6040516100ae9190610fc1565b60405180910390f35b6100a16100c5366004610fdb565b6102d2565b3480156100d657600080fd5b506100a16100e536600461105c565b6104c5565b3480156100f657600080fd5b5061007f6101053660046110bf565b610c17565b600080846001600160a01b031684846040516101279291906110da565b6000604051808303816000865af19150503d8060008114610164576040519150601f19603f3d011682016040523d82523d6000602084013e610169565b606091505b5091509150816101ae5760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064015b60405180910390fd5b60006101b9826110ea565b90507f224c8d9ad1bbf0f44a61d7bd8e7e9049b1a320e04b047da9910945675c31ba43816040516101ec91815260200190565b60405180910390a16102018460018188611111565b60405161020f9291906110da565b6040518091039020811461022257600080fd5b505050505050565b6060600080856001600160a01b031685856040516102499291906110da565b600060405180830381855afa9150503d8060008114610284576040519150601f19603f3d011682016040523d82523d6000602084013e610289565b606091505b5091509150816102c95760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b95945050505050565b6060600080876001600160a01b03163488886040516102f29291906110da565b60006040518083038185875af1925050503d806000811461032f576040519150601f19603f3d011682016040523d82523d6000602084013e610334565b606091505b509150915081156103875760405162461bcd60e51b815260206004820152601260248201527f756e65787065637465642073756363657373000000000000000000000000000060448201526064016101a5565b805184146103d75760405162461bcd60e51b815260206004820152601860248201527f77726f6e67207265766572742064617461206c656e677468000000000000000060448201526064016101a5565b60005b81518110156104b9578585828181106103f5576103f561113b565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168282815181106104335761043361113b565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016146104a75760405162461bcd60e51b815260206004820152601460248201527f7265766572742064617461206d69736d6174636800000000000000000000000060448201526064016101a5565b806104b181611167565b9150506103da565b50979650505050505050565b6060600080876001600160a01b03168667ffffffffffffffff1686866040516104ef9291906110da565b6000604051808303818686fa925050503d806000811461052b576040519150601f19603f3d011682016040523d82523d6000602084013e610530565b606091505b5091509150816105705760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b60408051808201909152600d81527f626c6f636b206e756d626572200000000000000000000000000000000000000060208201526069906001906105bf9084906105ba8443611181565b610d82565b9250610601836040518060400160405280600d81526020017f636861696e20696420202020200000000000000000000000000000000000000081525046610d82565b9250610643836040518060400160405280600d81526020017f626173652066656520202020200000000000000000000000000000000000000081525048610d82565b9250610685836040518060400160405280600d81526020017f67617320707269636520202020000000000000000000000000000000000000008152503a610d82565b92506106c7836040518060400160405280600d81526020017f676173206c696d6974202020200000000000000000000000000000000000000081525045610d82565b925061070a836040518060400160405280600d81526020017f76616c75652020202020202020000000000000000000000000000000000000008152506000610d82565b925061074c836040518060400160405280600d81526020017f74696d657374616d70202020200000000000000000000000000000000000000081525042610d82565b9250610798836040518060400160405280600d81526020017f62616c616e6365202020202020000000000000000000000000000000000000008152508b6001600160a01b031631610d82565b92506107e3836040518060400160405280600d81526020017f72757374206164647265737320000000000000000000000000000000000000008152508c6001600160a01b0316610d82565b925061082e836040518060400160405280600d81526020017f73656e6465722020202020202000000000000000000000000000000000000000815250306001600160a01b0316610d82565b9250610879836040518060400160405280600d81526020017f6f726967696e2020202020202000000000000000000000000000000000000000815250326001600160a01b0316610d82565b92506108c4836040518060400160405280600d81526020017f636f696e62617365202020202000000000000000000000000000000000000000815250416001600160a01b0316610d82565b9250610913836040518060400160405280600d81526020017f7275737420636f646568617368000000000000000000000000000000000000008152508c6001600160a01b03163f60001c610d82565b9250610962836040518060400160405280600d81526020017f61726220636f6465686173682000000000000000000000000000000000000000815250846001600160a01b03163f60001c610d82565b92506109b1836040518060400160405280600d81526020017f65746820636f6465686173682000000000000000000000000000000000000000815250836001600160a01b03163f60001c610d82565b925060008a6001600160a01b03163b67ffffffffffffffff8111156109d8576109d861119a565b6040519080825280601f01601f191660200182016040528015610a02576020820181803683370190505b50905060005b8b6001600160a01b03163b811015610a8a57848181518110610a2c57610a2c61113b565b602001015160f81c60f81b828281518110610a4957610a4961113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610a8281611167565b915050610a08565b508a6001600160a01b0316803b806020016040519081016040528181526000908060200190933c80519060200120818051906020012014610b0f5760405162461bcd60e51b81526004016101a59060208082526004908201527f636f646500000000000000000000000000000000000000000000000000000000604082015260600190565b60008b6001600160a01b03163b8551610b289190611181565b67ffffffffffffffff811115610b4057610b4061119a565b6040519080825280601f01601f191660200182016040528015610b6a576020820181803683370190505b5090506001600160a01b038c163b5b8551811015610c0757858181518110610b9457610b9461113b565b602001015160f81c60f81b828e6001600160a01b03163b83610bb69190611181565b81518110610bc657610bc661113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610bff81611167565b915050610b79565b509b9a5050505050505050505050565b7feddecf107b5740cef7f5a01e3ea7e287665c4e75a8eb6afae2fda2e3d43677866401000003d0197fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f820990507fc6178c2de1078cd36c3bd302cde755340d7f17fcb3fcc0b9c333ba03b217029f6401000003d0198208905067eddecf107b5740ce8167fffffffefffffc2f9190040a905067c6178c2de1078cd381069050600080836001600160a01b03166040516000604051808303816000865af19150503d8060008114610d03576040519150601f19603f3d011682016040523d82523d6000602084013e610d08565b606091505b509150915081610d485760405162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b60448201526064016101a5565b60408051602081018590520160405160208183030381529060405280519060200120818051906020012014610d7c57600080fd5b50505050565b6060600084806020019051810190610d9a91906111b0565b905083838214610dbd5760405162461bcd60e51b81526004016101a59190610fc1565b50600060208651610dce9190611181565b67ffffffffffffffff811115610de657610de661119a565b6040519080825280601f01601f191660200182016040528015610e10576020820181803683370190505b50905060205b8651811015610e9b57868181518110610e3157610e3161113b565b602001015160f81c60f81b82602083610e4a9190611181565b81518110610e5a57610e5a61113b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610e9381611167565b915050610e16565b5095945050505050565b80356001600160a01b0381168114610ebc57600080fd5b919050565b60008083601f840112610ed357600080fd5b50813567ffffffffffffffff811115610eeb57600080fd5b602083019150836020828501011115610f0357600080fd5b9250929050565b600080600060408486031215610f1f57600080fd5b610f2884610ea5565b9250602084013567ffffffffffffffff811115610f4457600080fd5b610f5086828701610ec1565b9497909650939450505050565b6000815180845260005b81811015610f8357602081850181015186830182015201610f67565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610fd46020830184610f5d565b9392505050565b600080600080600060608688031215610ff357600080fd5b610ffc86610ea5565b9450602086013567ffffffffffffffff8082111561101957600080fd5b61102589838a01610ec1565b9096509450604088013591508082111561103e57600080fd5b5061104b88828901610ec1565b969995985093965092949392505050565b60008060008060006080868803121561107457600080fd5b61107d86610ea5565b945061108b60208701610ea5565b9350604086013567ffffffffffffffff80821682146110a957600080fd5b9093506060870135908082111561103e57600080fd5b6000602082840312156110d157600080fd5b610fd482610ea5565b8183823760009101908152919050565b8051602080830151919081101561110b576000198160200360031b1b821691505b50919050565b6000808585111561112157600080fd5b8386111561112e57600080fd5b5050820193919092039150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361117a5761117a611151565b5060010190565b8181038181111561119457611194611151565b92915050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156111c257600080fd5b505191905056fea2646970667358221220597cde1bb7eee207d3d4952b075dafdb1bb7db5e9892e0371a5a1c3aabcdf00f64736f6c63430008110033", } // ProgramTestABI is the input ABI used to generate the binding from. @@ -8104,8 +9338,8 @@ func (_SdkStorage *SdkStorageTransactorSession) Remove() (*types.Transaction, er // SequencerInboxBlobMockMetaData contains all meta data concerning the SequencerInboxBlobMock contract. var SequencerInboxBlobMockMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxDataSize_\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isUsingFeeToken_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x610180604052306080526202000060a05246610100526200002b62000115602090811b62002ea417901c565b1515610120523480156200003e57600080fd5b50604051620053eb380380620053eb8339810160408190526200006191620001c8565b838383838360e081815250506101205115620000a6576001600160a01b03831615620000a0576040516386657a5360e01b815260040160405180910390fd5b620000ef565b6001600160a01b038316620000ef576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0390921660c052151561014052151561016052506200025b9350505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200015591906200022a565b600060405180830381855afa9150503d806000811462000192576040519150601f19603f3d011682016040523d82523d6000602084013e62000197565b606091505b5091509150818015620001ab575080516020145b9250505090565b80518015158114620001c357600080fd5b919050565b60008060008060808587031215620001df57600080fd5b845160208601519094506001600160a01b0381168114620001ff57600080fd5b92506200020f60408601620001b2565b91506200021f60608601620001b2565b905092959194509250565b6000825160005b818110156200024d576020818601810151858301520162000231565b506000920191825250919050565b60805160a05160c05160e05161010051610120516101405161016051615089620003626000396000818161043701528181610b86015281816113f3015281816118e201528181611fb401528181612416015281816129ef01528181612b840152818161309801526132da0152600081816105f401528181610a45015281816134480152613ac20152600081816127d0015281816133e60152613ca8015260008181612271015261373901526000818161070e01528181613f910152613fe601526000818161058f0152818161109b0152611f5d01526000818161127b015281816115af01528181611e52015261216701526000818161089301526122f001526150896000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c80637fa3a40e11610191578063d1ce8da8116100e3578063e78cea9211610097578063edaafe2011610071578063edaafe2014610758578063f1981578146107e1578063f60a5091146107f457600080fd5b8063e78cea92146106f6578063e8eb1dc314610709578063ebea461d1461073057600080fd5b8063dd44e6e0116100c8578063dd44e6e014610690578063e0bc9729146106bc578063e5a358c8146106cf57600080fd5b8063d1ce8da81461066a578063d9dd67ab1461067d57600080fd5b806392d9f78211610145578063b31761f81161011f578063b31761f814610631578063cb23bcb514610644578063cc2a1a0c1461065757600080fd5b806392d9f782146105ef57806396cc5c7814610616578063a655d9371461061e57600080fd5b80638d910dde116101765780638d910dde1461058a5780638f111f3c146105c9578063917cf8ac146105dc57600080fd5b80637fa3a40e1461056e578063844208601461057757600080fd5b80633e5aa0821161024a5780636d46e987116101fe5780636f12b0c9116101d85780636f12b0c9146104e4578063715ea34b146104f757806371c3e6fe1461054b57600080fd5b80636d46e9871461049b5780636e620055146104be5780636e7df3e7146104d157600080fd5b806369cacded1161022f57806369cacded146104595780636ae71f121461046c5780636c8904501461047457600080fd5b80633e5aa0821461041f5780634b678a661461043257600080fd5b80631f956632116102ac57806327957a491161028657806327957a49146103dd5780632cbf74e5146103e55780632f3985a71461040c57600080fd5b80631f956632146103a45780631ff64790146103b7578063258f0495146103ca57600080fd5b80631637be48116102dd5780631637be481461035457806316af91a7146103875780631ad87e451461038f57600080fd5b806302c99275146102f957806306f130561461033e575b600080fd5b6103207f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b6103466107ff565b604051908152602001610335565b6103776103623660046144b2565b60009081526008602052604090205460ff1690565b6040519015158152602001610335565b610320600081565b6103a261039d3660046145ff565b610889565b005b6103a26103b2366004614660565b610bb9565b6103a26103c5366004614699565b610d24565b6103466103d83660046144b2565b610ef2565b610346602881565b6103207f500000000000000000000000000000000000000000000000000000000000000081565b6103a261041a3660046146b6565b610f5f565b6103a261042d3660046146d2565b611098565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a261046736600461477d565b611381565b6103a26116b7565b6103207f080000000000000000000000000000000000000000000000000000000000000081565b6103776104a9366004614699565b60096020526000908152604090205460ff1681565b6103a26104cc36600461477d565b61188f565b6103a26104df366004614660565b611941565b6103a26104f236600461480b565b611aac565b61052b6105053660046144b2565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610335565b610377610559366004614699565b60036020526000908152604090205460ff1681565b61034660005481565b6103a26105853660046144b2565b611ade565b6105b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610335565b6103a26105d7366004614876565b611c53565b6103a26105ea3660046148f3565b611f5a565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a261226e565b6103a261062c3660046146b6565b6122e6565b6103a261063f36600461494f565b6124a4565b6002546105b1906001600160a01b031681565b600b546105b1906001600160a01b031681565b6103a26106783660046149b5565b612603565b61034661068b3660046144b2565b612950565b6106a361069e3660046149f7565b6129dd565b60405167ffffffffffffffff9091168152602001610335565b6103a26106ca366004614876565b612a40565b6103207f400000000000000000000000000000000000000000000000000000000000000081565b6001546105b1906001600160a01b031681565b6103467f000000000000000000000000000000000000000000000000000000000000000081565b610738612ac8565b604080519485526020850193909352918301526060820152608001610335565b600c54600d5461079e9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610335565b6103a26107ef366004614a23565b612b01565b610320600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190614a8b565b905090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b031615610989576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109c9576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a25575060408051601f3d908101601f19168201909252610a2291810190614aa4565b60015b15610a40576001600160a01b03811615610a3e57600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610a9d576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190614aa4565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b84610b7f3685900385018561494f565b612f6a565b7f000000000000000000000000000000000000000000000000000000000000000015610bb357610bb382613096565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190614aa4565b6001600160a01b0316336001600160a01b031614158015610c5c5750600b546001600160a01b03163314155b15610c95576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190614aa4565b6001600160a01b0316336001600160a01b031614610e655760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190614aa4565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529116602482015260440161093d565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4b5760405162f20c5d60e01b81526004810184905260240161093d565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190614aa4565b6001600160a01b0316336001600160a01b0316146110375760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b61104081613096565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f057604051632dd9fc9760e01b815260040160405180910390fd5b6110f9876132d6565b1561111757604051630e5da8fb60e01b815260040160405180910390fd5b6111238888878761331e565b6001600160a01b0383161561137757366000602061114283601f614ad7565b61114c9190614aea565b905061020061115c600283614bf0565b6111669190614aea565b611171826006614bff565b61117b9190614ad7565b6111859084614ad7565b925033321461119757600091506112ca565b6001600160a01b038416156112ca57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120557506040513d6000823e601f3d908101601f191682016040526112029190810190614c16565b60015b156112ca578051156112c8576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611251573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112759190614a8b565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112a69190614bff565b6112b09190614bff565b6112ba9190614aea565b6112c49086614ad7565b9450505b505b846001600160a01b031663e3db8a49335a6112e59087614cbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113739190614ccf565b5050505b5050505050505050565b836000805a90503332146113c1576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff166113f157604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061142f57604051631192b39960e31b815260040160405180910390fd5b6114478861144236879003870187614cec565b61347a565b6114578b8b8b8b8a8a6001613587565b6001600160a01b0383161561137357366000602061147683601f614ad7565b6114809190614aea565b9050610200611490600283614bf0565b61149a9190614aea565b6114a5826006614bff565b6114af9190614ad7565b6114b99084614ad7565b92503332146114cb57600091506115fe565b6001600160a01b038416156115fe57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561153957506040513d6000823e601f3d908101601f191682016040526115369190810190614c16565b60015b156115fe578051156115fc576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a99190614a8b565b905048817f000000000000000000000000000000000000000000000000000000000000000084516115da9190614bff565b6115e49190614bff565b6115ee9190614aea565b6115f89086614ad7565b9450505b505b846001600160a01b031663e3db8a49335a6116199087614cbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a79190614ccf565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172e9190614aa4565b6001600160a01b0316336001600160a01b03161461178f5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190614aa4565b6002549091506001600160a01b03808316911603611860576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff161580156118c257506002546001600160a01b03163314155b156118e057604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061191e57604051631192b39960e31b815260040160405180910390fd5b6119318861144236879003870187614cec565b6114578b8b8b8b8a8a6000613587565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b89190614aa4565b6001600160a01b0316336001600160a01b0316141580156119e45750600b546001600160a01b03163314155b15611a1d576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b559190614aa4565b6001600160a01b0316336001600160a01b031614611bb65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b60008181526008602052604090205460ff16611be75760405162f20c5d60e01b81526004810182905260240161093d565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050333214611c93576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611cc357604051632dd9fc9760e01b815260040160405180910390fd5b611ccc876132d6565b15611cea57604051630e5da8fb60e01b815260040160405180910390fd5b611cfa8a8a8a8a89896001613587565b6001600160a01b03831615611f4e573660006020611d1983601f614ad7565b611d239190614aea565b9050610200611d33600283614bf0565b611d3d9190614aea565b611d48826006614bff565b611d529190614ad7565b611d5c9084614ad7565b9250333214611d6e5760009150611ea1565b6001600160a01b03841615611ea157836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015611ddc57506040513d6000823e601f3d908101601f19168201604052611dd99190810190614c16565b60015b15611ea157805115611e9f576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190614a8b565b905048817f00000000000000000000000000000000000000000000000000000000000000008451611e7d9190614bff565b611e879190614bff565b611e919190614aea565b611e9b9086614ad7565b9450505b505b846001600160a01b031663e3db8a49335a611ebc9087614cbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a9190614ccf565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16611fb257604051632dd9fc9760e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611ff057604051631192b39960e31b815260040160405180910390fd5b6120038861144236879003870187614cec565b61200f8989888861331e565b6001600160a01b0383161561226357366000602061202e83601f614ad7565b6120389190614aea565b9050610200612048600283614bf0565b6120529190614aea565b61205d826006614bff565b6120679190614ad7565b6120719084614ad7565b925033321461208357600091506121b6565b6001600160a01b038416156121b657836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156120f157506040513d6000823e601f3d908101601f191682016040526120ee9190810190614c16565b60015b156121b6578051156121b4576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561213d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121619190614a8b565b905048817f000000000000000000000000000000000000000000000000000000000000000084516121929190614bff565b61219c9190614bff565b6121a69190614aea565b6121b09086614ad7565b9450505b505b846001600160a01b031663e3db8a49335a6121d19087614cbc565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225f9190614ccf565b5050505b505050505050505050565b467f0000000000000000000000000000000000000000000000000000000000000000036122c7576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161093d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614612414576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161093d565b7f000000000000000000000000000000000000000000000000000000000000000061245257604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff1615612496576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61249f83613096565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251b9190614aa4565b6001600160a01b0316336001600160a01b03161461257c5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b61258581612f6a565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a9190614aa4565b6001600160a01b0316336001600160a01b0316146126db5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600082826040516126ed929190614d9a565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310612781576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156127cd576040517ffa2fddda0000000000000000000000000000000000000000000000000000000081526004810182905260240161093d565b437f00000000000000000000000000000000000000000000000000000000000000001561285a5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128579190614a8b565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef655722906129159088908890614daa565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa1580156129b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d79190614a8b565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612a2f576000612a20600c856136b2565b9050612a2b81613701565b9150505b612a398184614dd9565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612a7357506002546001600160a01b03163314155b15612a9157604051632dd9fc9760e01b815260040160405180910390fd5b612a9a876132d6565b15612ab857604051630e5da8fb60e01b815260040160405180910390fd5b611cfa8a8a8a8a89896000613587565b600080600080600080600080612adc613731565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612b3c576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612b728684612b5060208901896149f7565b612b6060408a0160208b016149f7565b612b6b60018d614cbc565b89886137a8565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612be357612bc0612bb860208801886149f7565b600c9061384d565b600c54612bd69067ffffffffffffffff16613701565b67ffffffffffffffff1690505b4381612bf260208901896149f7565b67ffffffffffffffff16612c069190614ad7565b10612c3d576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612cc6576001546001600160a01b031663d5719dc2612c6460028c614cbc565b6040518263ffffffff1660e01b8152600401612c8291815260200190565b602060405180830381865afa158015612c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc39190614a8b565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612d0c908d614cbc565b6040518263ffffffff1660e01b8152600401612d2a91815260200190565b602060405180830381865afa158015612d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6b9190614a8b565b14612da2576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612dae8b6138d3565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e309190614a8b565b9050806000808080612e458988838880613918565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d6002604051612e889493929190614e17565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491612f109190614eb0565b600060405180830381855afa9150503d8060008114612f4b576040519150601f19603f3d011682016040523d82523d6000602084013e612f50565b606091505b5091509150818015612f63575080516020145b9250505090565b805167ffffffffffffffff1080612f8c5750602081015167ffffffffffffffff105b80612fa25750604081015167ffffffffffffffff105b80612fb85750606081015167ffffffffffffffff105b15612fef576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006130d457604051631192b39960e31b815260040160405180910390fd5b6130dd81613b01565b613113576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061313f57506020810151600c5467ffffffffffffffff9182169116115b1561316b576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156131a8578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa15801561329f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c39190614a8b565b036132d3576132d3600c4361384d565b50565b60007f00000000000000000000000000000000000000000000000000000000000000008015613306575060005482115b80156129d75750613317600c613b69565b1592915050565b600080600061332c86613b9c565b925092509250600080600080613346878b60008c8c613918565b93509350935093508a841415801561336057506000198b14155b156133a1576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c905260440161093d565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516133dc9493929190614e17565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000001561343c576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214801561346957507f0000000000000000000000000000000000000000000000000000000000000000155b156113735761137387854888613ca5565b6000548211156135835761348e600c613ee7565b1561358357600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc2916134e29160040190815260200190565b602060405180830381865afa1580156134ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135239190614a8b565b90506135388183600001518460200151613f18565b61356e576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60208201516040015161249f90600c9061384d565b5050565b600080613595888888613f5d565b915091506000806000806135b9868b896135b05760006135b2565b8d5b8c8c613918565b93509350935093508c84141580156135d357506000198d14155b15613614576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e905260440161093d565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d61364957600161364c565b60005b60405161365c9493929190614e17565b60405180910390a486611f4a57837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d60405161369b929190614daa565b60405180910390a250505050505050505050505050565b81546001830154600091612a399167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b81048316939190048216911661416b565b600a5460009067ffffffffffffffff9081169083161061372d57600a5467ffffffffffffffff166129d7565b5090565b6000808080467f00000000000000000000000000000000000000000000000000000000000000001461376e57506001925082915081905080612afb565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612afb565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b61385782826136b2565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b604080516080810182526000808252602082018190529181018290526060810182905260008061390285614232565b8151602090920191909120969095509350505050565b60008060008060005488101561395a576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139d19190614a8b565b881115613a0a576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa79190614ecc565b60008c9055929650909450925090508615801590613ae357507f0000000000000000000000000000000000000000000000000000000000000000155b15613af557613af58985486000613ca5565b95509550955095915050565b805160009067ffffffffffffffff1615801590613b2b5750602082015167ffffffffffffffff1615155b8015613b475750612710826040015167ffffffffffffffff1611155b80156129d75750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613b9491600160c01b9091041643614cbc565b111592915050565b604080516080810182526000808252602082018190529181018290526060810182905260408051606081018252600080825260208201819052918101829052600080613be787614232565b9092509050633b9aca0060006003613c026202000084614bff565b613c0c9190614bff565b60405190915084907f500000000000000000000000000000000000000000000000000000000000000090613c44908890602001614f02565b60408051601f1981840301815290829052613c63939291602001614f36565b604051602081830303815290604052805190602001208360004811613c89576000613c93565b613c934884614aea565b97509750975050505050509193909250565b327f000000000000000000000000000000000000000000000000000000000000000015613d4b576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d319190614a8b565b9050613d3d4882614aea565b613d479084614ad7565b9250505b67ffffffffffffffff821115613d8d576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af1158015613e80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ea49190614a8b565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051613ed69190614f79565b60405180910390a250505050505050565b6000613ef282613b69565b15806129d75750505467ffffffffffffffff680100000000000000008204811691161090565b6000613f5383613f278461430a565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b60408051608081018252600080825260208201819052918101829052606081018290526000613f8d856028614ad7565b90507f0000000000000000000000000000000000000000000000000000000000000000811115614012576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161093d565b60008061401e86614232565b909250905086156141315761404e8888600081811061403f5761403f614e01565b9050013560f81c60f81b614337565b6140a6578787600081811061406557614065614e01565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b03191660048301525060240161093d565b600160ff1b88886000816140bc576140bc614e01565b6001600160f81b0319920135929092161615801591506140dd575060218710155b156141315760006140f2602160018a8c614fac565b6140fb91614fd6565b60008181526008602052604090205490915060ff1661412f5760405162f20c5d60e01b81526004810182905260240161093d565b505b81888860405160200161414693929190614ff4565b60408051601f1981840301815291905280516020909101209890975095505050505050565b60008088881161417c576000614186565b6141868989614cbc565b905060008987116141985760006141a2565b6141a28a88614cbc565b90506127106141b18584614bff565b6141bb9190614aea565b6141c59089614ad7565b975060008682116141d75760006141e1565b6141e18783614cbc565b9050828111156141ee5750815b8089111561422357614200818a614cbc565b985086891115614223578589116142175788614219565b855b9350505050613842565b50949998505050505050505050565b6040805160808101825260008082526020820181905291810182905260608082018390529161425f6143ca565b905060008160000151826020015183604001518460600151886040516020016142df95949392919060c095861b7fffffffffffffffff000000000000000000000000000000000000000000000000908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b604051602081830303815290604052905060288151146143015761430161501c565b94909350915050565b60006129d7826000015183602001518460400151856060015186608001518760a001518860c001516137a8565b60006001600160f81b03198216158061435d57506001600160f81b03198216600160ff1b145b8061439157506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b806129d757506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b604080516080810182526000808252602082018190529181018290526060810191909152604080516080810182526000808252602082018190529181018290526060810191909152600080600080614420613731565b93509350935093508167ffffffffffffffff16421115614451576144448242615032565b67ffffffffffffffff1685525b61445b8142614dd9565b67ffffffffffffffff9081166020870152841643111561448f5761447f8443615032565b67ffffffffffffffff1660408601525b6144998343614dd9565b67ffffffffffffffff1660608601525092949350505050565b6000602082840312156144c457600080fd5b5035919050565b6001600160a01b03811681146132d357600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614519576145196144e0565b60405290565b60405160e0810167ffffffffffffffff81118282101715614519576145196144e0565b604051601f8201601f1916810167ffffffffffffffff8111828210171561456b5761456b6144e0565b604052919050565b803567ffffffffffffffff8116811461458b57600080fd5b919050565b6000606082840312156145a257600080fd5b6040516060810181811067ffffffffffffffff821117156145c5576145c56144e0565b6040529050806145d483614573565b81526145e260208401614573565b60208201526145f360408401614573565b60408201525092915050565b600080600083850361010081121561461657600080fd5b8435614621816144cb565b93506080601f198201121561463557600080fd5b506020840191506146498560a08601614590565b90509250925092565b80151581146132d357600080fd5b6000806040838503121561467357600080fd5b823561467e816144cb565b9150602083013561468e81614652565b809150509250929050565b6000602082840312156146ab57600080fd5b8135612a39816144cb565b6000606082840312156146c857600080fd5b612a398383614590565b600080600080600060a086880312156146ea57600080fd5b85359450602086013593506040860135614703816144cb565b94979396509394606081013594506080013592915050565b60008083601f84011261472d57600080fd5b50813567ffffffffffffffff81111561474557600080fd5b60208301915083602082850101111561475d57600080fd5b9250929050565b6000610100828403121561477757600080fd5b50919050565b6000806000806000806000806101c0898b03121561479a57600080fd5b88359750602089013567ffffffffffffffff8111156147b857600080fd5b6147c48b828c0161471b565b9098509650506040890135945060608901356147df816144cb565b93506080890135925060a089013591506147fc8a60c08b01614764565b90509295985092959890939650565b60008060008060006080868803121561482357600080fd5b85359450602086013567ffffffffffffffff81111561484157600080fd5b61484d8882890161471b565b909550935050604086013591506060860135614868816144cb565b809150509295509295909350565b600080600080600080600060c0888a03121561489157600080fd5b87359650602088013567ffffffffffffffff8111156148af57600080fd5b6148bb8a828b0161471b565b9097509550506040880135935060608801356148d6816144cb565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a0878903121561490d57600080fd5b86359550602087013594506040870135614926816144cb565b935060608701359250608087013591506149438860a08901614764565b90509295509295509295565b60006080828403121561496157600080fd5b6040516080810181811067ffffffffffffffff82111715614984576149846144e0565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156149c857600080fd5b823567ffffffffffffffff8111156149df57600080fd5b6149eb8582860161471b565b90969095509350505050565b600060208284031215614a0957600080fd5b612a3982614573565b803560ff8116811461458b57600080fd5b60008060008060008060e08789031215614a3c57600080fd5b86359550614a4c60208801614a12565b94506080870188811115614a5f57600080fd5b60408801945035925060a0870135614a76816144cb565b8092505060c087013590509295509295509295565b600060208284031215614a9d57600080fd5b5051919050565b600060208284031215614ab657600080fd5b8151612a39816144cb565b634e487b7160e01b600052601160045260246000fd5b808201808211156129d7576129d7614ac1565b600082614b0757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614b47578160001904821115614b2d57614b2d614ac1565b80851615614b3a57918102915b93841c9390800290614b11565b509250929050565b600082614b5e575060016129d7565b81614b6b575060006129d7565b8160018114614b815760028114614b8b57614ba7565b60019150506129d7565b60ff841115614b9c57614b9c614ac1565b50506001821b6129d7565b5060208310610133831016604e8410600b8410161715614bca575081810a6129d7565b614bd48383614b0c565b8060001904821115614be857614be8614ac1565b029392505050565b6000612a3960ff841683614b4f565b80820281158282048414176129d7576129d7614ac1565b60006020808385031215614c2957600080fd5b825167ffffffffffffffff80821115614c4157600080fd5b818501915085601f830112614c5557600080fd5b815181811115614c6757614c676144e0565b8060051b9150614c78848301614542565b8181529183018401918481019088841115614c9257600080fd5b938501935b83851015614cb057845182529385019390850190614c97565b98975050505050505050565b818103818111156129d7576129d7614ac1565b600060208284031215614ce157600080fd5b8151612a3981614652565b6000818303610100811215614d0057600080fd5b614d086144f6565b8335815260e0601f1983011215614d1e57600080fd5b614d2661451f565b9150614d3460208501614a12565b82526040840135614d44816144cb565b6020830152614d5560608501614573565b6040830152614d6660808501614573565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff818116838216019080821115614dfa57614dfa614ac1565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a08401525060048310614e7d57634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b60005b83811015614ea7578181015183820152602001614e8f565b50506000910152565b60008251614ec2818460208701614e8c565b9190910192915050565b60008060008060808587031215614ee257600080fd5b505082516020840151604085015160609095015191969095509092509050565b60008183825b6003811015614f27578151835260209283019290910190600101614f08565b50505060608201905092915050565b60008451614f48818460208901614e8c565b6001600160f81b031985169083019081528351614f6c816001840160208801614e8c565b0160010195945050505050565b6020815260008251806020840152614f98816040850160208701614e8c565b601f01601f19169190910160400192915050565b60008085851115614fbc57600080fd5b83861115614fc957600080fd5b5050820193919092039150565b803560208310156129d757600019602084900360031b1b1692915050565b60008451615006818460208901614e8c565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fd5b67ffffffffffffffff828116828216039080821115614dfa57614dfa614ac156fea2646970667358221220c28e6e821fbfe3ca801cc0632161efc2e8d1229b98ec517d709446368191b1cf64736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxDataSize_\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isUsingFeeToken_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x610180604052306080526202000060a05246610100526200002b62000115602090811b62002ec217901c565b1515610120523480156200003e57600080fd5b5060405162005421380380620054218339810160408190526200006191620001c8565b838383838360e081815250506101205115620000a6576001600160a01b03831615620000a0576040516386657a5360e01b815260040160405180910390fd5b620000ef565b6001600160a01b038316620000ef576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0390921660c052151561014052151561016052506200025b9350505050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200015591906200022a565b600060405180830381855afa9150503d806000811462000192576040519150601f19603f3d011682016040523d82523d6000602084013e62000197565b606091505b5091509150818015620001ab575080516020145b9250505090565b80518015158114620001c357600080fd5b919050565b60008060008060808587031215620001df57600080fd5b845160208601519094506001600160a01b0381168114620001ff57600080fd5b92506200020f60408601620001b2565b91506200021f60608601620001b2565b905092959194509250565b6000825160005b818110156200024d576020818601810151858301520162000231565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051610160516150bf620003626000396000818161043701528181610b86015281816113fd015281816118f101528181611fcd0152818161243401528181612a0d01528181612ba2015281816130b601526132f80152600081816105f401528181610a450152818161346b0152613af80152600081816127ee015281816134040152613cde01526000818161228f015261376f01526000818161070e01528181613fc7015261401c01526000818161058f0152818161109b0152611f76015260008181611280015281816115be01528181611e6b0152612185015260008181610893015261230e01526150bf6000f3fe608060405234801561001057600080fd5b50600436106102f45760003560e01c80637fa3a40e11610191578063d1ce8da8116100e3578063e78cea9211610097578063edaafe2011610071578063edaafe2014610758578063f1981578146107e1578063f60a5091146107f457600080fd5b8063e78cea92146106f6578063e8eb1dc314610709578063ebea461d1461073057600080fd5b8063dd44e6e0116100c8578063dd44e6e014610690578063e0bc9729146106bc578063e5a358c8146106cf57600080fd5b8063d1ce8da81461066a578063d9dd67ab1461067d57600080fd5b806392d9f78211610145578063b31761f81161011f578063b31761f814610631578063cb23bcb514610644578063cc2a1a0c1461065757600080fd5b806392d9f782146105ef57806396cc5c7814610616578063a655d9371461061e57600080fd5b80638d910dde116101765780638d910dde1461058a5780638f111f3c146105c9578063917cf8ac146105dc57600080fd5b80637fa3a40e1461056e578063844208601461057757600080fd5b80633e5aa0821161024a5780636d46e987116101fe5780636f12b0c9116101d85780636f12b0c9146104e4578063715ea34b146104f757806371c3e6fe1461054b57600080fd5b80636d46e9871461049b5780636e620055146104be5780636e7df3e7146104d157600080fd5b806369cacded1161022f57806369cacded146104595780636ae71f121461046c5780636c8904501461047457600080fd5b80633e5aa0821461041f5780634b678a661461043257600080fd5b80631f956632116102ac57806327957a491161028657806327957a49146103dd5780632cbf74e5146103e55780632f3985a71461040c57600080fd5b80631f956632146103a45780631ff64790146103b7578063258f0495146103ca57600080fd5b80631637be48116102dd5780631637be481461035457806316af91a7146103875780631ad87e451461038f57600080fd5b806302c99275146102f957806306f130561461033e575b600080fd5b6103207f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b6103466107ff565b604051908152602001610335565b6103776103623660046144e8565b60009081526008602052604090205460ff1690565b6040519015158152602001610335565b610320600081565b6103a261039d366004614635565b610889565b005b6103a26103b2366004614696565b610bb9565b6103a26103c53660046146cf565b610d24565b6103466103d83660046144e8565b610ef2565b610346602881565b6103207f500000000000000000000000000000000000000000000000000000000000000081565b6103a261041a3660046146ec565b610f5f565b6103a261042d366004614708565b611098565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a26104673660046147b3565b611386565b6103a26116c6565b6103207f080000000000000000000000000000000000000000000000000000000000000081565b6103776104a93660046146cf565b60096020526000908152604090205460ff1681565b6103a26104cc3660046147b3565b61189e565b6103a26104df366004614696565b611950565b6103a26104f2366004614841565b611abb565b61052b6105053660046144e8565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610335565b6103776105593660046146cf565b60036020526000908152604090205460ff1681565b61034660005481565b6103a26105853660046144e8565b611aed565b6105b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610335565b6103a26105d73660046148ac565b611c62565b6103a26105ea366004614929565b611f73565b6103777f000000000000000000000000000000000000000000000000000000000000000081565b6103a261228c565b6103a261062c3660046146ec565b612304565b6103a261063f366004614985565b6124c2565b6002546105b1906001600160a01b031681565b600b546105b1906001600160a01b031681565b6103a26106783660046149eb565b612621565b61034661068b3660046144e8565b61296e565b6106a361069e366004614a2d565b6129fb565b60405167ffffffffffffffff9091168152602001610335565b6103a26106ca3660046148ac565b612a5e565b6103207f400000000000000000000000000000000000000000000000000000000000000081565b6001546105b1906001600160a01b031681565b6103467f000000000000000000000000000000000000000000000000000000000000000081565b610738612ae6565b604080519485526020850193909352918301526060820152608001610335565b600c54600d5461079e9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610335565b6103a26107ef366004614a59565b612b1f565b610320600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190614ac1565b905090565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b031615610989576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109c9576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a25575060408051601f3d908101601f19168201909252610a2291810190614ada565b60015b15610a40576001600160a01b03811615610a3e57600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610a9d576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b409190614ada565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b84610b7f36859003850185614985565b612f88565b7f000000000000000000000000000000000000000000000000000000000000000015610bb357610bb3826130b4565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190614ada565b6001600160a01b0316336001600160a01b031614158015610c5c5750600b546001600160a01b03163314155b15610c95576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190614ada565b6001600160a01b0316336001600160a01b031614610e655760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190614ada565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529116602482015260440161093d565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4b5760405162f20c5d60e01b81526004810184905260240161093d565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd69190614ada565b6001600160a01b0316336001600160a01b0316146110375760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b611040816130b4565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f057604051632dd9fc9760e01b815260040160405180910390fd5b6110f9876132f4565b1561111757604051630e5da8fb60e01b815260040160405180910390fd5b6111238888878761333c565b6001600160a01b0383161561137c57366000602061114283601f614b0d565b61114c9190614b20565b905061020061115c600283614c26565b6111669190614b20565b611171826006614c35565b61117b9190614b0d565b6111859084614b0d565b925061118f61349d565b61119c57600091506112cf565b6001600160a01b038416156112cf57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120a57506040513d6000823e601f3d908101601f191682016040526112079190810190614c4c565b60015b156112cf578051156112cd576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190614ac1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112ab9190614c35565b6112b59190614c35565b6112bf9190614b20565b6112c99086614b0d565b9450505b505b846001600160a01b031663e3db8a49335a6112ea9087614cf2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113789190614d05565b5050505b5050505050505050565b836000805a905061139561349d565b6113cb576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff166113fb57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061143957604051631192b39960e31b815260040160405180910390fd5b6114518861144c36879003870187614d22565b6134b0565b6114618b8b8b8b8a8a60016135bd565b6001600160a01b0383161561137857366000602061148083601f614b0d565b61148a9190614b20565b905061020061149a600283614c26565b6114a49190614b20565b6114af826006614c35565b6114b99190614b0d565b6114c39084614b0d565b92506114cd61349d565b6114da576000915061160d565b6001600160a01b0384161561160d57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561154857506040513d6000823e601f3d908101601f191682016040526115459190810190614c4c565b60015b1561160d5780511561160b576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b89190614ac1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516115e99190614c35565b6115f39190614c35565b6115fd9190614b20565b6116079086614b0d565b9450505b505b846001600160a01b031663e3db8a49335a6116289087614cf2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b69190614d05565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190614ada565b6001600160a01b0316336001600160a01b03161461179e5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190614ada565b6002549091506001600160a01b0380831691160361186f576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff161580156118d157506002546001600160a01b03163314155b156118ef57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061192d57604051631192b39960e31b815260040160405180910390fd5b6119408861144c36879003870187614d22565b6114618b8b8b8b8a8a60006135bd565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c79190614ada565b6001600160a01b0316336001600160a01b0316141580156119f35750600b546001600160a01b03163314155b15611a2c576040517f660b3b4200000000000000000000000000000000000000000000000000000000815233600482015260240161093d565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b649190614ada565b6001600160a01b0316336001600160a01b031614611bc55760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b60008181526008602052604090205460ff16611bf65760405162f20c5d60e01b81526004810182905260240161093d565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050611c7161349d565b611ca7576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611cd757604051632dd9fc9760e01b815260040160405180910390fd5b611ce0876132f4565b15611cfe57604051630e5da8fb60e01b815260040160405180910390fd5b611d0e8a8a8a8a898960016135bd565b6001600160a01b03831615611f67573660006020611d2d83601f614b0d565b611d379190614b20565b9050610200611d47600283614c26565b611d519190614b20565b611d5c826006614c35565b611d669190614b0d565b611d709084614b0d565b9250611d7a61349d565b611d875760009150611eba565b6001600160a01b03841615611eba57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015611df557506040513d6000823e601f3d908101601f19168201604052611df29190810190614c4c565b60015b15611eba57805115611eb8576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e659190614ac1565b905048817f00000000000000000000000000000000000000000000000000000000000000008451611e969190614c35565b611ea09190614c35565b611eaa9190614b20565b611eb49086614b0d565b9450505b505b846001600160a01b031663e3db8a49335a611ed59087614cf2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f639190614d05565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff16611fcb57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061200957604051631192b39960e31b815260040160405180910390fd5b61201c8861144c36879003870187614d22565b6120288989888861333c565b6001600160a01b0383161561228157366000602061204783601f614b0d565b6120519190614b20565b9050610200612061600283614c26565b61206b9190614b20565b612076826006614c35565b6120809190614b0d565b61208a9084614b0d565b925061209461349d565b6120a157600091506121d4565b6001600160a01b038416156121d457836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561210f57506040513d6000823e601f3d908101601f1916820160405261210c9190810190614c4c565b60015b156121d4578051156121d2576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190614ac1565b905048817f000000000000000000000000000000000000000000000000000000000000000084516121b09190614c35565b6121ba9190614c35565b6121c49190614b20565b6121ce9086614b0d565b9450505b505b846001600160a01b031663e3db8a49335a6121ef9087614cf2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d9190614d05565b5050505b505050505050505050565b467f0000000000000000000000000000000000000000000000000000000000000000036122e5576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036123bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161093d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614612432576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161093d565b7f000000000000000000000000000000000000000000000000000000000000000061247057604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff16156124b4576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124bd836130b4565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612515573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125399190614ada565b6001600160a01b0316336001600160a01b03161461259a5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b6125a381612f88565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190614ada565b6001600160a01b0316336001600160a01b0316146126f95760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610dfc573d6000803e3d6000fd5b6000828260405161270b929190614dd0565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b811862010000831061279f576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156127eb576040517ffa2fddda0000000000000000000000000000000000000000000000000000000081526004810182905260240161093d565b437f0000000000000000000000000000000000000000000000000000000000000000156128785760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128759190614ac1565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef655722906129339088908890614de0565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f59190614ac1565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612a4d576000612a3e600c856136e8565b9050612a4981613737565b9150505b612a578184614e0f565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612a9157506002546001600160a01b03163314155b15612aaf57604051632dd9fc9760e01b815260040160405180910390fd5b612ab8876132f4565b15612ad657604051630e5da8fb60e01b815260040160405180910390fd5b611d0e8a8a8a8a898960006135bd565b600080600080600080600080612afa613767565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612b5a576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612b908684612b6e6020890189614a2d565b612b7e60408a0160208b01614a2d565b612b8960018d614cf2565b89886137de565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612c0157612bde612bd66020880188614a2d565b600c90613883565b600c54612bf49067ffffffffffffffff16613737565b67ffffffffffffffff1690505b4381612c106020890189614a2d565b67ffffffffffffffff16612c249190614b0d565b10612c5b576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612ce4576001546001600160a01b031663d5719dc2612c8260028c614cf2565b6040518263ffffffff1660e01b8152600401612ca091815260200190565b602060405180830381865afa158015612cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce19190614ac1565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612d2a908d614cf2565b6040518263ffffffff1660e01b8152600401612d4891815260200190565b602060405180830381865afa158015612d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d899190614ac1565b14612dc0576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612dcc8b613909565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4e9190614ac1565b9050806000808080612e63898883888061394e565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d6002604051612ea69493929190614e4d565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491612f2e9190614ee6565b600060405180830381855afa9150503d8060008114612f69576040519150601f19603f3d011682016040523d82523d6000602084013e612f6e565b606091505b5091509150818015612f81575080516020145b9250505090565b805167ffffffffffffffff1080612faa5750602081015167ffffffffffffffff105b80612fc05750604081015167ffffffffffffffff105b80612fd65750606081015167ffffffffffffffff105b1561300d576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006130f257604051631192b39960e31b815260040160405180910390fd5b6130fb81613b37565b613131576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061315d57506020810151600c5467ffffffffffffffff9182169116115b15613189576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156131c6578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa1580156132bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e19190614ac1565b036132f1576132f1600c43613883565b50565b60007f00000000000000000000000000000000000000000000000000000000000000008015613324575060005482115b80156129f55750613335600c613b9f565b1592915050565b600080600061334a86613bd2565b925092509250600080600080613364878b60008c8c61394e565b93509350935093508a841415801561337e57506000198b14155b156133bf576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c905260440161093d565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516133fa9493929190614e4d565b60405180910390a47f00000000000000000000000000000000000000000000000000000000000000001561345a576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61346261349d565b801561348c57507f0000000000000000000000000000000000000000000000000000000000000000155b156113785761137887854888613cdb565b60003332148015610884575050333b1590565b6000548211156135b9576134c4600c613f1d565b156135b957600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc2916135189160040190815260200190565b602060405180830381865afa158015613535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135599190614ac1565b905061356e8183600001518460200151613f4e565b6135a4576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020820151604001516124bd90600c90613883565b5050565b6000806135cb888888613f93565b915091506000806000806135ef868b896135e65760006135e8565b8d5b8c8c61394e565b93509350935093508c841415801561360957506000198d14155b1561364a576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e905260440161093d565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d61367f576001613682565b60005b6040516136929493929190614e4d565b60405180910390a486611f6357837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d6040516136d1929190614de0565b60405180910390a250505050505050505050505050565b81546001830154600091612a579167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b8104831693919004821691166141a1565b600a5460009067ffffffffffffffff9081169083161061376357600a5467ffffffffffffffff166129f5565b5090565b6000808080467f0000000000000000000000000000000000000000000000000000000000000000146137a457506001925082915081905080612b19565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612b19565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b61388d82826136e8565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b604080516080810182526000808252602082018190529181018290526060810182905260008061393885614268565b8151602090920191909120969095509350505050565b600080600080600054881015613990576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a079190614ac1565b881115613a40576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613add9190614f02565b60008c9055929650909450925090508615801590613b1957507f0000000000000000000000000000000000000000000000000000000000000000155b15613b2b57613b2b8985486000613cdb565b95509550955095915050565b805160009067ffffffffffffffff1615801590613b615750602082015167ffffffffffffffff1615155b8015613b7d5750612710826040015167ffffffffffffffff1611155b80156129f55750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613bca91600160c01b9091041643614cf2565b111592915050565b604080516080810182526000808252602082018190529181018290526060810182905260408051606081018252600080825260208201819052918101829052600080613c1d87614268565b9092509050633b9aca0060006003613c386202000084614c35565b613c429190614c35565b60405190915084907f500000000000000000000000000000000000000000000000000000000000000090613c7a908890602001614f38565b60408051601f1981840301815290829052613c99939291602001614f6c565b604051602081830303815290604052805190602001208360004811613cbf576000613cc9565b613cc94884614b20565b97509750975050505050509193909250565b327f000000000000000000000000000000000000000000000000000000000000000015613d81576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d679190614ac1565b9050613d734882614b20565b613d7d9084614b0d565b9250505b67ffffffffffffffff821115613dc3576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af1158015613eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eda9190614ac1565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051613f0c9190614faf565b60405180910390a250505050505050565b6000613f2882613b9f565b15806129f55750505467ffffffffffffffff680100000000000000008204811691161090565b6000613f8983613f5d84614340565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b60408051608081018252600080825260208201819052918101829052606081018290526000613fc3856028614b0d565b90507f0000000000000000000000000000000000000000000000000000000000000000811115614048576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f0000000000000000000000000000000000000000000000000000000000000000602482015260440161093d565b60008061405486614268565b90925090508615614167576140848888600081811061407557614075614e37565b9050013560f81c60f81b61436d565b6140dc578787600081811061409b5761409b614e37565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b03191660048301525060240161093d565b600160ff1b88886000816140f2576140f2614e37565b6001600160f81b031992013592909216161580159150614113575060218710155b15614167576000614128602160018a8c614fe2565b6141319161500c565b60008181526008602052604090205490915060ff166141655760405162f20c5d60e01b81526004810182905260240161093d565b505b81888860405160200161417c9392919061502a565b60408051601f1981840301815291905280516020909101209890975095505050505050565b6000808888116141b25760006141bc565b6141bc8989614cf2565b905060008987116141ce5760006141d8565b6141d88a88614cf2565b90506127106141e78584614c35565b6141f19190614b20565b6141fb9089614b0d565b9750600086821161420d576000614217565b6142178783614cf2565b9050828111156142245750815b8089111561425957614236818a614cf2565b9850868911156142595785891161424d578861424f565b855b9350505050613878565b50949998505050505050505050565b60408051608081018252600080825260208201819052918101829052606080820183905291614295614400565b9050600081600001518260200151836040015184606001518860405160200161431595949392919060c095861b7fffffffffffffffff000000000000000000000000000000000000000000000000908116825294861b8516600882015292851b8416601084015290841b8316601883015290921b16602082015260280190565b6040516020818303038152906040529050602881511461433757614337615052565b94909350915050565b60006129f5826000015183602001518460400151856060015186608001518760a001518860c001516137de565b60006001600160f81b03198216158061439357506001600160f81b03198216600160ff1b145b806143c757506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b806129f557506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b604080516080810182526000808252602082018190529181018290526060810191909152604080516080810182526000808252602082018190529181018290526060810191909152600080600080614456613767565b93509350935093508167ffffffffffffffff164211156144875761447a8242615068565b67ffffffffffffffff1685525b6144918142614e0f565b67ffffffffffffffff908116602087015284164311156144c5576144b58443615068565b67ffffffffffffffff1660408601525b6144cf8343614e0f565b67ffffffffffffffff1660608601525092949350505050565b6000602082840312156144fa57600080fd5b5035919050565b6001600160a01b03811681146132f157600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561454f5761454f614516565b60405290565b60405160e0810167ffffffffffffffff8111828210171561454f5761454f614516565b604051601f8201601f1916810167ffffffffffffffff811182821017156145a1576145a1614516565b604052919050565b803567ffffffffffffffff811681146145c157600080fd5b919050565b6000606082840312156145d857600080fd5b6040516060810181811067ffffffffffffffff821117156145fb576145fb614516565b60405290508061460a836145a9565b8152614618602084016145a9565b6020820152614629604084016145a9565b60408201525092915050565b600080600083850361010081121561464c57600080fd5b843561465781614501565b93506080601f198201121561466b57600080fd5b5060208401915061467f8560a086016145c6565b90509250925092565b80151581146132f157600080fd5b600080604083850312156146a957600080fd5b82356146b481614501565b915060208301356146c481614688565b809150509250929050565b6000602082840312156146e157600080fd5b8135612a5781614501565b6000606082840312156146fe57600080fd5b612a5783836145c6565b600080600080600060a0868803121561472057600080fd5b8535945060208601359350604086013561473981614501565b94979396509394606081013594506080013592915050565b60008083601f84011261476357600080fd5b50813567ffffffffffffffff81111561477b57600080fd5b60208301915083602082850101111561479357600080fd5b9250929050565b600061010082840312156147ad57600080fd5b50919050565b6000806000806000806000806101c0898b0312156147d057600080fd5b88359750602089013567ffffffffffffffff8111156147ee57600080fd5b6147fa8b828c01614751565b90985096505060408901359450606089013561481581614501565b93506080890135925060a089013591506148328a60c08b0161479a565b90509295985092959890939650565b60008060008060006080868803121561485957600080fd5b85359450602086013567ffffffffffffffff81111561487757600080fd5b61488388828901614751565b90955093505060408601359150606086013561489e81614501565b809150509295509295909350565b600080600080600080600060c0888a0312156148c757600080fd5b87359650602088013567ffffffffffffffff8111156148e557600080fd5b6148f18a828b01614751565b90975095505060408801359350606088013561490c81614501565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a0878903121561494357600080fd5b8635955060208701359450604087013561495c81614501565b935060608701359250608087013591506149798860a0890161479a565b90509295509295509295565b60006080828403121561499757600080fd5b6040516080810181811067ffffffffffffffff821117156149ba576149ba614516565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600080602083850312156149fe57600080fd5b823567ffffffffffffffff811115614a1557600080fd5b614a2185828601614751565b90969095509350505050565b600060208284031215614a3f57600080fd5b612a57826145a9565b803560ff811681146145c157600080fd5b60008060008060008060e08789031215614a7257600080fd5b86359550614a8260208801614a48565b94506080870188811115614a9557600080fd5b60408801945035925060a0870135614aac81614501565b8092505060c087013590509295509295509295565b600060208284031215614ad357600080fd5b5051919050565b600060208284031215614aec57600080fd5b8151612a5781614501565b634e487b7160e01b600052601160045260246000fd5b808201808211156129f5576129f5614af7565b600082614b3d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614b7d578160001904821115614b6357614b63614af7565b80851615614b7057918102915b93841c9390800290614b47565b509250929050565b600082614b94575060016129f5565b81614ba1575060006129f5565b8160018114614bb75760028114614bc157614bdd565b60019150506129f5565b60ff841115614bd257614bd2614af7565b50506001821b6129f5565b5060208310610133831016604e8410600b8410161715614c00575081810a6129f5565b614c0a8383614b42565b8060001904821115614c1e57614c1e614af7565b029392505050565b6000612a5760ff841683614b85565b80820281158282048414176129f5576129f5614af7565b60006020808385031215614c5f57600080fd5b825167ffffffffffffffff80821115614c7757600080fd5b818501915085601f830112614c8b57600080fd5b815181811115614c9d57614c9d614516565b8060051b9150614cae848301614578565b8181529183018401918481019088841115614cc857600080fd5b938501935b83851015614ce657845182529385019390850190614ccd565b98975050505050505050565b818103818111156129f5576129f5614af7565b600060208284031215614d1757600080fd5b8151612a5781614688565b6000818303610100811215614d3657600080fd5b614d3e61452c565b8335815260e0601f1983011215614d5457600080fd5b614d5c614555565b9150614d6a60208501614a48565b82526040840135614d7a81614501565b6020830152614d8b606085016145a9565b6040830152614d9c608085016145a9565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff818116838216019080821115614e3057614e30614af7565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a08401525060048310614eb357634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b60005b83811015614edd578181015183820152602001614ec5565b50506000910152565b60008251614ef8818460208701614ec2565b9190910192915050565b60008060008060808587031215614f1857600080fd5b505082516020840151604085015160609095015191969095509092509050565b60008183825b6003811015614f5d578151835260209283019290910190600101614f3e565b50505060608201905092915050565b60008451614f7e818460208901614ec2565b6001600160f81b031985169083019081528351614fa2816001840160208801614ec2565b0160010195945050505050565b6020815260008251806020840152614fce816040850160208701614ec2565b601f01601f19169190910160400192915050565b60008085851115614ff257600080fd5b83861115614fff57600080fd5b5050820193919092039150565b803560208310156129f557600019602084900360031b1b1692915050565b6000845161503c818460208901614ec2565b8201838582376000930192835250909392505050565b634e487b7160e01b600052600160045260246000fd5b67ffffffffffffffff828116828216039080821115614e3057614e30614af756fea264697066735822122019b3764217b8757144d32dd479fcc98bf326817fa79c05c721f007c5411406c364736f6c63430008110033", } // SequencerInboxBlobMockABI is the input ABI used to generate the binding from. @@ -11215,8 +12449,8 @@ func (_SequencerInboxBlobMock *SequencerInboxBlobMockFilterer) ParseSetValidKeys // SequencerInboxStubMetaData contains all meta data concerning the SequencerInboxStub contract. var SequencerInboxStubMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sequencer_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"maxDataSize_\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader4844_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isUsingFeeToken_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOrigin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"addInitMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x610180604052306080526202000060a05246610100526200002b620001c8602090811b620030ab17901c565b1515610120523480156200003e57600080fd5b5060405162005771380380620057718339810160408190526200006191620002a1565b838383838360e081815250506101205115620000a6576001600160a01b03831615620000a0576040516386657a5360e01b815260040160405180910390fd5b620000ef565b6001600160a01b038316620000ef576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0392831660c05290151561014052151561016052600180549982166001600160a01b03199a8b1617815560028054909a1633179099558651600a80546020808b01516040808d01516060909d01516001600160401b03908116600160c01b026001600160c01b039e8216600160801b029e909e166001600160801b0393821668010000000000000000026001600160801b0319909616919097161793909317169390931799909917905597166000908152600390975250505091909220805460ff191690931790925550620003ca9050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649162000208919062000399565b600060405180830381855afa9150503d806000811462000245576040519150601f19603f3d011682016040523d82523d6000602084013e6200024a565b606091505b50915091508180156200025e575080516020145b9250505090565b6001600160a01b03811681146200027b57600080fd5b50565b80516200028b8162000265565b919050565b805180151581146200028b57600080fd5b6000806000806000806000878903610140811215620002bf57600080fd5b8851620002cc8162000265565b60208a0151909850620002df8162000265565b96506080603f1982011215620002f457600080fd5b50604051608081016001600160401b03811182821017156200032657634e487b7160e01b600052604160045260246000fd5b806040525060408901518152606089015160208201526080890151604082015260a089015160608201528095505060c088015193506200036960e089016200027e565b92506200037a610100890162000290565b91506200038b610120890162000290565b905092959891949750929550565b6000825160005b81811015620003bc5760208186018101518583015201620003a0565b506000920191825250919050565b60805160a05160c05160e05161010051610120516101405161016051615292620004df6000396000818161044201528181610b8a0152818161161401528181611b03015281816121d50152818161261d01528181612bf601528181612d8b0152818161329f01526134e101526000818161061201528181610a490152818161364f01526138700152600081816129d7015281816135ed0152613fd50152600081816124920152613b6e01526000818161072c0152818161437901526143ce0152600081816105ad0152818161109f0152818161217e01528181613dcb0152613ea601526000818161127f015281816117d00152818161207301526123880152600081816108b1015261251101526152926000f3fe608060405234801561001057600080fd5b50600436106102ff5760003560e01c806371c3e6fe1161019c578063cc2a1a0c116100ee578063e78cea9211610097578063edaafe2011610071578063edaafe2014610776578063f1981578146107ff578063f60a50911461081257600080fd5b8063e78cea9214610714578063e8eb1dc314610727578063ebea461d1461074e57600080fd5b8063dd44e6e0116100c8578063dd44e6e0146106ae578063e0bc9729146106da578063e5a358c8146106ed57600080fd5b8063cc2a1a0c14610675578063d1ce8da814610688578063d9dd67ab1461069b57600080fd5b8063917cf8ac11610150578063a655d9371161012a578063a655d9371461063c578063b31761f81461064f578063cb23bcb51461066257600080fd5b8063917cf8ac146105fa57806392d9f7821461060d57806396cc5c781461063457600080fd5b8063844208601161018157806384420860146105955780638d910dde146105a85780638f111f3c146105e757600080fd5b806371c3e6fe146105695780637fa3a40e1461058c57600080fd5b80633e5aa082116102555780636c890450116102095780636e7df3e7116101e35780636e7df3e7146104ef5780636f12b0c914610502578063715ea34b1461051557600080fd5b80636c890450146104925780636d46e987146104b95780636e620055146104dc57600080fd5b80636633ae851161023a5780636633ae851461046457806369cacded146104775780636ae71f121461048a57600080fd5b80633e5aa0821461042a5780634b678a661461043d57600080fd5b80631f956632116102b757806327957a491161029157806327957a49146103e85780632cbf74e5146103f05780632f3985a71461041757600080fd5b80631f956632146103af5780631ff64790146103c2578063258f0495146103d557600080fd5b80631637be48116102e85780631637be481461035f57806316af91a7146103925780631ad87e451461039a57600080fd5b806302c992751461030457806306f1305614610349575b600080fd5b61032b7f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b61035161081d565b604051908152602001610340565b61038261036d3660046146da565b60009081526008602052604090205460ff1690565b6040519015158152602001610340565b61032b600081565b6103ad6103a8366004614827565b6108a7565b005b6103ad6103bd366004614888565b610bbd565b6103ad6103d03660046148c1565b610d28565b6103516103e33660046146da565b610ef6565b610351602881565b61032b7f500000000000000000000000000000000000000000000000000000000000000081565b6103ad6104253660046148de565b610f63565b6103ad6104383660046148fa565b61109c565b6103827f000000000000000000000000000000000000000000000000000000000000000081565b6103ad6104723660046146da565b611385565b6103ad6104853660046149a5565b6115a2565b6103ad6118d8565b61032b7f080000000000000000000000000000000000000000000000000000000000000081565b6103826104c73660046148c1565b60096020526000908152604090205460ff1681565b6103ad6104ea3660046149a5565b611ab0565b6103ad6104fd366004614888565b611b62565b6103ad610510366004614a33565b611ccd565b6105496105233660046146da565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610340565b6103826105773660046148c1565b60036020526000908152604090205460ff1681565b61035160005481565b6103ad6105a33660046146da565b611cff565b6105cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610340565b6103ad6105f5366004614a9e565b611e74565b6103ad610608366004614b1b565b61217b565b6103827f000000000000000000000000000000000000000000000000000000000000000081565b6103ad61248f565b6103ad61064a3660046148de565b612507565b6103ad61065d366004614b77565b6126ab565b6002546105cf906001600160a01b031681565b600b546105cf906001600160a01b031681565b6103ad610696366004614bdd565b61280a565b6103516106a93660046146da565b612b57565b6106c16106bc366004614c1f565b612be4565b60405167ffffffffffffffff9091168152602001610340565b6103ad6106e8366004614a9e565b612c47565b61032b7f400000000000000000000000000000000000000000000000000000000000000081565b6001546105cf906001600160a01b031681565b6103517f000000000000000000000000000000000000000000000000000000000000000081565b610756612ccf565b604080519485526020850193909352918301526060820152608001610340565b600c54600d546107bc9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610340565b6103ad61080d366004614c4b565b612d08565b61032b600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa15801561087e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a29190614cb3565b905090565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361094a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b03161561098d576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109cd576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a29575060408051601f3d908101601f19168201909252610a2691810190614ccc565b60015b15610a44576001600160a01b03811615610a4257600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610aa1576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190614ccc565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b88610b8336859003850185614b77565b613171565b7f000000000000000000000000000000000000000000000000000000000000000015610bb757610bb78261329d565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c349190614ccc565b6001600160a01b0316336001600160a01b031614158015610c605750600b546001600160a01b03163314155b15610c99576040517f660b3b42000000000000000000000000000000000000000000000000000000008152336004820152602401610941565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f9190614ccc565b6001600160a01b0316336001600160a01b031614610e695760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e249190614ccc565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015291166024820152604401610941565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4f5760405162f20c5d60e01b815260048101849052602401610941565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190614ccc565b6001600160a01b0316336001600160a01b03161461103b5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b6110448161329d565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f457604051632dd9fc9760e01b815260040160405180910390fd5b6110fd876134dd565b1561111b57604051630e5da8fb60e01b815260040160405180910390fd5b61112788888787613525565b6001600160a01b0383161561137b57366000602061114683601f614cff565b6111509190614d12565b9050610200611160600283614e18565b61116a9190614d12565b611175826006614e27565b61117f9190614cff565b6111899084614cff565b925033321461119b57600091506112ce565b6001600160a01b038416156112ce57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120957506040513d6000823e601f3d908101601f191682016040526112069190810190614e3e565b60015b156112ce578051156112cc576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112799190614cb3565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112aa9190614e27565b6112b49190614e27565b6112be9190614d12565b6112c89086614cff565b9450505b505b846001600160a01b031663e3db8a49335a6112e99087614ee4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190614ef7565b5050505b5050505050505050565b60008160405160200161139a91815260200190565b60408051808303601f1901815290829052600154815160208301207f8db5993b000000000000000000000000000000000000000000000000000000008452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b906064016020604051808303816000875af1158015611429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144d9190614cb3565b9050801561149d5760405162461bcd60e51b815260206004820152601460248201527f414c52454144595f44454c415945445f494e49540000000000000000000000006044820152606401610941565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516114cd9190614f38565b60405180910390a26000806114e26001613681565b915091506000806000806114fc86600160008060016136c6565b9350935093509350836000146115545760405162461bcd60e51b815260206004820152601060248201527f414c52454144595f5345515f494e4954000000000000000000000000000000006044820152606401610941565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a600260405161158f9493929190614f6b565b60405180910390a4505050505050505050565b836000805a90503332146115e2576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff1661161257604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061165057604051631192b39960e31b815260040160405180910390fd5b6116688861166336879003870187614fe0565b6138af565b6116788b8b8b8b8a8a60016139bc565b6001600160a01b0383161561137757366000602061169783601f614cff565b6116a19190614d12565b90506102006116b1600283614e18565b6116bb9190614d12565b6116c6826006614e27565b6116d09190614cff565b6116da9084614cff565b92503332146116ec576000915061181f565b6001600160a01b0384161561181f57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561175a57506040513d6000823e601f3d908101601f191682016040526117579190810190614e3e565b60015b1561181f5780511561181d576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ca9190614cb3565b905048817f000000000000000000000000000000000000000000000000000000000000000084516117fb9190614e27565b6118059190614e27565b61180f9190614d12565b6118199086614cff565b9450505b505b846001600160a01b031663e3db8a49335a61183a9087614ee4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af11580156118a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c89190614ef7565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561192b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194f9190614ccc565b6001600160a01b0316336001600160a01b0316146119b05760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a379190614ccc565b6002549091506001600160a01b03808316911603611a81576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff16158015611ae357506002546001600160a01b03163314155b15611b0157604051632dd9fc9760e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611b3f57604051631192b39960e31b815260040160405180910390fd5b611b528861166336879003870187614fe0565b6116788b8b8b8b8a8a60006139bc565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd99190614ccc565b6001600160a01b0316336001600160a01b031614158015611c055750600b546001600160a01b03163314155b15611c3e576040517f660b3b42000000000000000000000000000000000000000000000000000000008152336004820152602401610941565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d769190614ccc565b6001600160a01b0316336001600160a01b031614611dd75760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b60008181526008602052604090205460ff16611e085760405162f20c5d60e01b815260048101829052602401610941565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050333214611eb4576040517ffeb3d07100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611ee457604051632dd9fc9760e01b815260040160405180910390fd5b611eed876134dd565b15611f0b57604051630e5da8fb60e01b815260040160405180910390fd5b611f1b8a8a8a8a898960016139bc565b6001600160a01b0383161561216f573660006020611f3a83601f614cff565b611f449190614d12565b9050610200611f54600283614e18565b611f5e9190614d12565b611f69826006614e27565b611f739190614cff565b611f7d9084614cff565b9250333214611f8f57600091506120c2565b6001600160a01b038416156120c257836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015611ffd57506040513d6000823e601f3d908101601f19168201604052611ffa9190810190614e3e565b60015b156120c2578051156120c0576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206d9190614cb3565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161209e9190614e27565b6120a89190614e27565b6120b29190614d12565b6120bc9086614cff565b9450505b505b846001600160a01b031663e3db8a49335a6120dd9087614ee4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015612147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216b9190614ef7565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166121d357604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061221157604051631192b39960e31b815260040160405180910390fd5b6122248861166336879003870187614fe0565b61223089898888613525565b6001600160a01b0383161561248457366000602061224f83601f614cff565b6122599190614d12565b9050610200612269600283614e18565b6122739190614d12565b61227e826006614e27565b6122889190614cff565b6122929084614cff565b92503332146122a457600091506123d7565b6001600160a01b038416156123d757836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561231257506040513d6000823e601f3d908101601f1916820160405261230f9190810190614e3e565b60015b156123d7578051156123d5576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123829190614cb3565b905048817f000000000000000000000000000000000000000000000000000000000000000084516123b39190614e27565b6123bd9190614e27565b6123c79190614d12565b6123d19086614cff565b9450505b505b846001600160a01b031663e3db8a49335a6123f29087614ee4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561245c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124809190614ef7565b5050505b505050505050505050565b467f0000000000000000000000000000000000000000000000000000000000000000036124e8576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036125a55760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610941565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b0382161461261b576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610941565b7f000000000000000000000000000000000000000000000000000000000000000061265957604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff161561269d576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126a68361329d565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614ccc565b6001600160a01b0316336001600160a01b0316146127835760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b61278c81613171565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561285d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128819190614ccc565b6001600160a01b0316336001600160a01b0316146128e25760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b600082826040516128f492919061508e565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b8118620100008310612988576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156129d4576040517ffa2fddda00000000000000000000000000000000000000000000000000000000815260048101829052602401610941565b437f000000000000000000000000000000000000000000000000000000000000000015612a615760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5e9190614cb3565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290612b1c908890889061509e565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde9190614cb3565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612c36576000612c27600c85613ae7565b9050612c3281613b36565b9150505b612c4081846150cd565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612c7a57506002546001600160a01b03163314155b15612c9857604051632dd9fc9760e01b815260040160405180910390fd5b612ca1876134dd565b15612cbf57604051630e5da8fb60e01b815260040160405180910390fd5b611f1b8a8a8a8a898960006139bc565b600080600080600080600080612ce3613b66565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612d43576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d798684612d576020890189614c1f565b612d6760408a0160208b01614c1f565b612d7260018d614ee4565b8988613bdd565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612dea57612dc7612dbf6020880188614c1f565b600c90613c82565b600c54612ddd9067ffffffffffffffff16613b36565b67ffffffffffffffff1690505b4381612df96020890189614c1f565b67ffffffffffffffff16612e0d9190614cff565b10612e44576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612ecd576001546001600160a01b031663d5719dc2612e6b60028c614ee4565b6040518263ffffffff1660e01b8152600401612e8991815260200190565b602060405180830381865afa158015612ea6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eca9190614cb3565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612f13908d614ee4565b6040518263ffffffff1660e01b8152600401612f3191815260200190565b602060405180830381865afa158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190614cb3565b14612fa9576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612fb58b613681565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015613013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130379190614cb3565b905080600080808061304c89888388806136c6565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d600260405161308f9493929190614f6b565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f200000000000000000000000000000000000000000000000000000000179052905160009182918291606491613117919061510b565b600060405180830381855afa9150503d8060008114613152576040519150601f19603f3d011682016040523d82523d6000602084013e613157565b606091505b509150915081801561316a575080516020145b9250505090565b805167ffffffffffffffff10806131935750602081015167ffffffffffffffff105b806131a95750604081015167ffffffffffffffff105b806131bf5750606081015167ffffffffffffffff105b156131f6576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006132db57604051631192b39960e31b815260040160405180910390fd5b6132e481613d08565b61331a576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061334657506020810151600c5467ffffffffffffffff9182169116115b15613372576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156133af578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa1580156134a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ca9190614cb3565b036134da576134da600c43613c82565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000801561350d575060005482115b8015612bde575061351e600c613d70565b1592915050565b600080600061353386613da3565b92509250925060008060008061354d878b60008c8c6136c6565b93509350935093508a841415801561356757506000198b14155b156135a8576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c9052604401610941565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516135e39493929190614f6b565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015613643576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214801561367057507f0000000000000000000000000000000000000000000000000000000000000000155b156113775761137787854888613fd2565b60408051608081018252600080825260208201819052918101829052606081018290526000806136b085614214565b8151602090920191909120969095509350505050565b600080600080600054881015613708576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561375b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377f9190614cb3565b8811156137b8576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138559190615127565b60008c905592965090945092509050861580159061389157507f0000000000000000000000000000000000000000000000000000000000000000155b156138a3576138a38985486000613fd2565b95509550955095915050565b6000548211156139b8576138c3600c6142cf565b156139b857600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc2916139179160040190815260200190565b602060405180830381865afa158015613934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139589190614cb3565b905061396d8183600001518460200151614300565b6139a3576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020820151604001516126a690600c90613c82565b5050565b6000806139ca888888614345565b915091506000806000806139ee868b896139e55760006139e7565b8d5b8c8c6136c6565b93509350935093508c8414158015613a0857506000198d14155b15613a49576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e9052604401610941565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d613a7e576001613a81565b60005b604051613a919493929190614f6b565b60405180910390a48661216b57837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051613ad092919061509e565b60405180910390a250505050505050505050505050565b81546001830154600091612c409167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b810483169391900482169116614553565b600a5460009067ffffffffffffffff90811690831610613b6257600a5467ffffffffffffffff16612bde565b5090565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014613ba357506001925082915081905080612d02565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612d02565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b613c8c8282613ae7565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b805160009067ffffffffffffffff1615801590613d325750602082015167ffffffffffffffff1615155b8015613d4e5750612710826040015167ffffffffffffffff1611155b8015612bde5750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613d9b91600160c01b9091041643614ee4565b111592915050565b60408051608081018252600080825260208201819052918101829052606081018290526000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa158015613e27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e4f9190810190614e3e565b90508051600003613e8c576040517f3cd27eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080613e9887614214565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f269190614cb3565b613f309190614e27565b613f3a9190614e27565b60405190915083907f500000000000000000000000000000000000000000000000000000000000000090613f7290879060200161515d565b60408051601f1981840301815290829052613f91939291602001615193565b604051602081830303815290604052805190602001208260004811613fb7576000613fc1565b613fc14884614d12565b965096509650505050509193909250565b327f000000000000000000000000000000000000000000000000000000000000000015614078576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561403a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405e9190614cb3565b905061406a4882614d12565b6140749084614cff565b9250505b67ffffffffffffffff8211156140ba576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af11580156141ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d19190614cb3565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516142039190614f38565b60405180910390a250505050505050565b604080516080808201835260008083526020808401829052838501829052606080850183905285519384018652828452838201839052838601839052838101839052855191820183905260288201839052603082018390526038820183905260c087901b7fffffffffffffffff0000000000000000000000000000000000000000000000001695820195909552604801604051602081830303815290604052905060288151146142c6576142c66151d6565b94909350915050565b60006142da82613d70565b1580612bde5750505467ffffffffffffffff680100000000000000008204811691161090565b600061433b8361430f8461461a565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b60408051608081018252600080825260208201819052918101829052606081018290526000614375856028614cff565b90507f00000000000000000000000000000000000000000000000000000000000000008111156143fa576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610941565b60008061440686614214565b909250905086156145195761443688886000818110614427576144276150f5565b9050013560f81c60f81b614647565b61448e578787600081811061444d5761444d6150f5565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b031916600483015250602401610941565b600160ff1b88886000816144a4576144a46150f5565b6001600160f81b0319920135929092161615801591506144c5575060218710155b156145195760006144da602160018a8c6151ec565b6144e391615216565b60008181526008602052604090205490915060ff166145175760405162f20c5d60e01b815260048101829052602401610941565b505b81888860405160200161452e93929190615234565b60408051601f1981840301815291905280516020909101209890975095505050505050565b60008088881161456457600061456e565b61456e8989614ee4565b9050600089871161458057600061458a565b61458a8a88614ee4565b90506127106145998584614e27565b6145a39190614d12565b6145ad9089614cff565b975060008682116145bf5760006145c9565b6145c98783614ee4565b9050828111156145d65750815b8089111561460b576145e8818a614ee4565b98508689111561460b578589116145ff5788614601565b855b9350505050613c77565b50949998505050505050505050565b6000612bde826000015183602001518460400151856060015186608001518760a001518860c00151613bdd565b60006001600160f81b03198216158061466d57506001600160f81b03198216600160ff1b145b806146a157506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b80612bde57506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b6000602082840312156146ec57600080fd5b5035919050565b6001600160a01b03811681146134da57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561474157614741614708565b60405290565b60405160e0810167ffffffffffffffff8111828210171561474157614741614708565b604051601f8201601f1916810167ffffffffffffffff8111828210171561479357614793614708565b604052919050565b803567ffffffffffffffff811681146147b357600080fd5b919050565b6000606082840312156147ca57600080fd5b6040516060810181811067ffffffffffffffff821117156147ed576147ed614708565b6040529050806147fc8361479b565b815261480a6020840161479b565b602082015261481b6040840161479b565b60408201525092915050565b600080600083850361010081121561483e57600080fd5b8435614849816146f3565b93506080601f198201121561485d57600080fd5b506020840191506148718560a086016147b8565b90509250925092565b80151581146134da57600080fd5b6000806040838503121561489b57600080fd5b82356148a6816146f3565b915060208301356148b68161487a565b809150509250929050565b6000602082840312156148d357600080fd5b8135612c40816146f3565b6000606082840312156148f057600080fd5b612c4083836147b8565b600080600080600060a0868803121561491257600080fd5b8535945060208601359350604086013561492b816146f3565b94979396509394606081013594506080013592915050565b60008083601f84011261495557600080fd5b50813567ffffffffffffffff81111561496d57600080fd5b60208301915083602082850101111561498557600080fd5b9250929050565b6000610100828403121561499f57600080fd5b50919050565b6000806000806000806000806101c0898b0312156149c257600080fd5b88359750602089013567ffffffffffffffff8111156149e057600080fd5b6149ec8b828c01614943565b909850965050604089013594506060890135614a07816146f3565b93506080890135925060a08901359150614a248a60c08b0161498c565b90509295985092959890939650565b600080600080600060808688031215614a4b57600080fd5b85359450602086013567ffffffffffffffff811115614a6957600080fd5b614a7588828901614943565b909550935050604086013591506060860135614a90816146f3565b809150509295509295909350565b600080600080600080600060c0888a031215614ab957600080fd5b87359650602088013567ffffffffffffffff811115614ad757600080fd5b614ae38a828b01614943565b909750955050604088013593506060880135614afe816146f3565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a08789031215614b3557600080fd5b86359550602087013594506040870135614b4e816146f3565b93506060870135925060808701359150614b6b8860a0890161498c565b90509295509295509295565b600060808284031215614b8957600080fd5b6040516080810181811067ffffffffffffffff82111715614bac57614bac614708565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60008060208385031215614bf057600080fd5b823567ffffffffffffffff811115614c0757600080fd5b614c1385828601614943565b90969095509350505050565b600060208284031215614c3157600080fd5b612c408261479b565b803560ff811681146147b357600080fd5b60008060008060008060e08789031215614c6457600080fd5b86359550614c7460208801614c3a565b94506080870188811115614c8757600080fd5b60408801945035925060a0870135614c9e816146f3565b8092505060c087013590509295509295509295565b600060208284031215614cc557600080fd5b5051919050565b600060208284031215614cde57600080fd5b8151612c40816146f3565b634e487b7160e01b600052601160045260246000fd5b80820180821115612bde57612bde614ce9565b600082614d2f57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614d6f578160001904821115614d5557614d55614ce9565b80851615614d6257918102915b93841c9390800290614d39565b509250929050565b600082614d8657506001612bde565b81614d9357506000612bde565b8160018114614da95760028114614db357614dcf565b6001915050612bde565b60ff841115614dc457614dc4614ce9565b50506001821b612bde565b5060208310610133831016604e8410600b8410161715614df2575081810a612bde565b614dfc8383614d34565b8060001904821115614e1057614e10614ce9565b029392505050565b6000612c4060ff841683614d77565b8082028115828204841417612bde57612bde614ce9565b60006020808385031215614e5157600080fd5b825167ffffffffffffffff80821115614e6957600080fd5b818501915085601f830112614e7d57600080fd5b815181811115614e8f57614e8f614708565b8060051b9150614ea084830161476a565b8181529183018401918481019088841115614eba57600080fd5b938501935b83851015614ed857845182529385019390850190614ebf565b98975050505050505050565b81810381811115612bde57612bde614ce9565b600060208284031215614f0957600080fd5b8151612c408161487a565b60005b83811015614f2f578181015183820152602001614f17565b50506000910152565b6020815260008251806020840152614f57816040850160208701614f14565b601f01601f19169190910160400192915050565b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a08401525060048310614fd157634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b6000818303610100811215614ff457600080fd5b614ffc61471e565b8335815260e0601f198301121561501257600080fd5b61501a614747565b915061502860208501614c3a565b82526040840135615038816146f3565b60208301526150496060850161479b565b604083015261505a6080850161479b565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff8181168382160190808211156150ee576150ee614ce9565b5092915050565b634e487b7160e01b600052603260045260246000fd5b6000825161511d818460208701614f14565b9190910192915050565b6000806000806080858703121561513d57600080fd5b505082516020840151604085015160609095015191969095509092509050565b815160009082906020808601845b838110156151875781518552938201939082019060010161516b565b50929695505050505050565b600084516151a5818460208901614f14565b6001600160f81b0319851690830190815283516151c9816001840160208801614f14565b0160010195945050505050565b634e487b7160e01b600052600160045260246000fd5b600080858511156151fc57600080fd5b8386111561520957600080fd5b5050820193919092039150565b80356020831015612bde57600019602084900360031b1b1692915050565b60008451615246818460208901614f14565b820183858237600093019283525090939250505056fea26469706673582212206822a1d7e2aaaf46dff58751f94e18b1a66b21447ce9864789548ad9f63f77c164736f6c63430008110033", + ABI: "[{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sequencer_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"maxDataSize_\",\"type\":\"uint256\"},{\"internalType\":\"contractIReader4844\",\"name\":\"reader4844_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isUsingFeeToken_\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable_\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"AlreadyValidDASKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadBufferConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BadMaxTimeVariation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stored\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"BadSequencerNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataBlobsNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDataLength\",\"type\":\"uint256\"}],\"name\":\"DataTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayProofRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedBackwards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelayedTooFar\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Deprecated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExtraGasNotUint64\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ForceIncludeBlockTooSoon\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectMessagePreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"InitParamZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelayedAccPreimage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"name\":\"InvalidHeaderFlag\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KeysetTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingDataHashes\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"NoSuchKeyset\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotBatchPoster\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotBatchPosterManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCodelessOrigin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelayBufferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotForked\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"BatchPosterManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBatchPoster\",\"type\":\"bool\"}],\"name\":\"BatchPosterSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"BufferConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidateKeyset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"}],\"name\":\"MaxTimeVariationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"OwnerFunctionCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SequencerBatchData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"batchSequenceNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"afterAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"minTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"minBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxBlockNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIBridge.TimeBounds\",\"name\":\"timeBounds\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"enumIBridge.BatchDataLocation\",\"name\":\"dataLocation\",\"type\":\"uint8\"}],\"name\":\"SequencerBatchDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSequencer\",\"type\":\"bool\"}],\"name\":\"SequencerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"keysetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"SetValidKeyset\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BROTLI_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_AUTHENTICATED_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DATA_BLOB_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HEADER_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREE_DAS_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZERO_HEAVY_MESSAGE_HEADER_FLAG\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"\",\"type\":\"bytes1\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"addInitMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2Batch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromBlobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromBlobsDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"addSequencerL2BatchFromOrigin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"beforeDelayedAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"inboxSeqNum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"internalType\":\"structMessages.Message\",\"name\":\"delayedMessage\",\"type\":\"tuple\"}],\"internalType\":\"structDelayProof\",\"name\":\"delayProof\",\"type\":\"tuple\"}],\"name\":\"addSequencerL2BatchFromOriginDelayProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchPosterManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"buffer\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"bufferBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevSequencedBlockNumber\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dasKeySetInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValidKeyset\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"creationBlock\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"uint64[2]\",\"name\":\"l1BlockAndTime\",\"type\":\"uint64[2]\"},{\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"forceInclusion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"forceInclusionDeadline\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"getKeysetCreationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"inboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"invalidateKeysetHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBatchPoster\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelayBufferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isSequencer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isUsingFeeToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ksHash\",\"type\":\"bytes32\"}],\"name\":\"isValidKeysetHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxDataSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxTimeVariation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reader4844\",\"outputs\":[{\"internalType\":\"contractIReader4844\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeDelayAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newBatchPosterManager\",\"type\":\"address\"}],\"name\":\"setBatchPosterManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig_\",\"type\":\"tuple\"}],\"name\":\"setBufferConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isBatchPoster_\",\"type\":\"bool\"}],\"name\":\"setIsBatchPoster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isSequencer_\",\"type\":\"bool\"}],\"name\":\"setIsSequencer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation_\",\"type\":\"tuple\"}],\"name\":\"setMaxTimeVariation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"keysetBytes\",\"type\":\"bytes\"}],\"name\":\"setValidKeyset\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalDelayedMessagesRead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x610180604052306080526202000060a05246610100526200002b620001c8602090811b620030c917901c565b1515610120523480156200003e57600080fd5b50604051620057a7380380620057a78339810160408190526200006191620002a1565b838383838360e081815250506101205115620000a6576001600160a01b03831615620000a0576040516386657a5360e01b815260040160405180910390fd5b620000ef565b6001600160a01b038316620000ef576040516380fc2c0360e01b815260206004820152600a60248201526914995859195c8d0e0d0d60b21b604482015260640160405180910390fd5b6001600160a01b0392831660c05290151561014052151561016052600180549982166001600160a01b03199a8b1617815560028054909a1633179099558651600a80546020808b01516040808d01516060909d01516001600160401b03908116600160c01b026001600160c01b039e8216600160801b029e909e166001600160801b0393821668010000000000000000026001600160801b0319909616919097161793909317169390931799909917905597166000908152600390975250505091909220805460ff191690931790925550620003ca9050565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b17905290516000918291829160649162000208919062000399565b600060405180830381855afa9150503d806000811462000245576040519150601f19603f3d011682016040523d82523d6000602084013e6200024a565b606091505b50915091508180156200025e575080516020145b9250505090565b6001600160a01b03811681146200027b57600080fd5b50565b80516200028b8162000265565b919050565b805180151581146200028b57600080fd5b6000806000806000806000878903610140811215620002bf57600080fd5b8851620002cc8162000265565b60208a0151909850620002df8162000265565b96506080603f1982011215620002f457600080fd5b50604051608081016001600160401b03811182821017156200032657634e487b7160e01b600052604160045260246000fd5b806040525060408901518152606089015160208201526080890151604082015260a089015160608201528095505060c088015193506200036960e089016200027e565b92506200037a610100890162000290565b91506200038b610120890162000290565b905092959891949750929550565b6000825160005b81811015620003bc5760208186018101518583015201620003a0565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051610160516152c8620004df6000396000818161044201528181610b8a0152818161161e01528181611b12015281816121ee0152818161263b01528181612c1401528181612da9015281816132bd01526134ff01526000818161061201528181610a490152818161367201526138a60152600081816129f50152818161360b015261400b0152600081816124b00152613ba401526000818161072c015281816143af01526144040152600081816105ad0152818161109f0152818161219701528181613e010152613edc015260008181611284015281816117df0152818161208c01526123a60152600081816108b1015261252f01526152c86000f3fe608060405234801561001057600080fd5b50600436106102ff5760003560e01c806371c3e6fe1161019c578063cc2a1a0c116100ee578063e78cea9211610097578063edaafe2011610071578063edaafe2014610776578063f1981578146107ff578063f60a50911461081257600080fd5b8063e78cea9214610714578063e8eb1dc314610727578063ebea461d1461074e57600080fd5b8063dd44e6e0116100c8578063dd44e6e0146106ae578063e0bc9729146106da578063e5a358c8146106ed57600080fd5b8063cc2a1a0c14610675578063d1ce8da814610688578063d9dd67ab1461069b57600080fd5b8063917cf8ac11610150578063a655d9371161012a578063a655d9371461063c578063b31761f81461064f578063cb23bcb51461066257600080fd5b8063917cf8ac146105fa57806392d9f7821461060d57806396cc5c781461063457600080fd5b8063844208601161018157806384420860146105955780638d910dde146105a85780638f111f3c146105e757600080fd5b806371c3e6fe146105695780637fa3a40e1461058c57600080fd5b80633e5aa082116102555780636c890450116102095780636e7df3e7116101e35780636e7df3e7146104ef5780636f12b0c914610502578063715ea34b1461051557600080fd5b80636c890450146104925780636d46e987146104b95780636e620055146104dc57600080fd5b80636633ae851161023a5780636633ae851461046457806369cacded146104775780636ae71f121461048a57600080fd5b80633e5aa0821461042a5780634b678a661461043d57600080fd5b80631f956632116102b757806327957a491161029157806327957a49146103e85780632cbf74e5146103f05780632f3985a71461041757600080fd5b80631f956632146103af5780631ff64790146103c2578063258f0495146103d557600080fd5b80631637be48116102e85780631637be481461035f57806316af91a7146103925780631ad87e451461039a57600080fd5b806302c992751461030457806306f1305614610349575b600080fd5b61032b7f200000000000000000000000000000000000000000000000000000000000000081565b6040516001600160f81b031990911681526020015b60405180910390f35b61035161081d565b604051908152602001610340565b61038261036d366004614710565b60009081526008602052604090205460ff1690565b6040519015158152602001610340565b61032b600081565b6103ad6103a836600461485d565b6108a7565b005b6103ad6103bd3660046148be565b610bbd565b6103ad6103d03660046148f7565b610d28565b6103516103e3366004614710565b610ef6565b610351602881565b61032b7f500000000000000000000000000000000000000000000000000000000000000081565b6103ad610425366004614914565b610f63565b6103ad610438366004614930565b61109c565b6103827f000000000000000000000000000000000000000000000000000000000000000081565b6103ad610472366004614710565b61138a565b6103ad6104853660046149db565b6115a7565b6103ad6118e7565b61032b7f080000000000000000000000000000000000000000000000000000000000000081565b6103826104c73660046148f7565b60096020526000908152604090205460ff1681565b6103ad6104ea3660046149db565b611abf565b6103ad6104fd3660046148be565b611b71565b6103ad610510366004614a69565b611cdc565b610549610523366004614710565b60086020526000908152604090205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff909116602083015201610340565b6103826105773660046148f7565b60036020526000908152604090205460ff1681565b61035160005481565b6103ad6105a3366004614710565b611d0e565b6105cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610340565b6103ad6105f5366004614ad4565b611e83565b6103ad610608366004614b51565b612194565b6103827f000000000000000000000000000000000000000000000000000000000000000081565b6103ad6124ad565b6103ad61064a366004614914565b612525565b6103ad61065d366004614bad565b6126c9565b6002546105cf906001600160a01b031681565b600b546105cf906001600160a01b031681565b6103ad610696366004614c13565b612828565b6103516106a9366004614710565b612b75565b6106c16106bc366004614c55565b612c02565b60405167ffffffffffffffff9091168152602001610340565b6103ad6106e8366004614ad4565b612c65565b61032b7f400000000000000000000000000000000000000000000000000000000000000081565b6001546105cf906001600160a01b031681565b6103517f000000000000000000000000000000000000000000000000000000000000000081565b610756612ced565b604080519485526020850193909352918301526060820152608001610340565b600c54600d546107bc9167ffffffffffffffff8082169268010000000000000000808404831693600160801b8104841693600160c01b9091048116928082169290041686565b6040805167ffffffffffffffff978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c001610340565b6103ad61080d366004614c81565b612d26565b61032b600160ff1b81565b600154604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa15801561087e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a29190614ce9565b905090565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361094a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6001546001600160a01b03161561098d576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0383166109cd576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a29575060408051601f3d908101601f19168201909252610a2691810190614d02565b60015b15610a44576001600160a01b03811615610a4257600191505b505b8015157f0000000000000000000000000000000000000000000000000000000000000000151514610aa1576040517fc3e31f8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190614d02565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055610b88610b8336859003850185614bad565b61318f565b7f000000000000000000000000000000000000000000000000000000000000000015610bb757610bb7826132bb565b50505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c349190614d02565b6001600160a01b0316336001600160a01b031614158015610c605750600b546001600160a01b03163314155b15610c99576040517f660b3b42000000000000000000000000000000000000000000000000000000008152336004820152602401610941565b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527feb12a9a53eec138c91b27b4f912a257bd690c18fc8bde744be92a0365eb9b87e910160405180910390a16040516004907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9f9190614d02565b6001600160a01b0316336001600160a01b031614610e695760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e249190614d02565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015291166024820152604401610941565b600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f3cd6c184800297a0f2b00926a683cbe76890bb7fd01480ac0a10ed6c8f7f66599060200160405180910390a16040516005907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b600081815260086020908152604080832081518083019092525460ff811615158252610100900467ffffffffffffffff16918101829052908203610f4f5760405162f20c5d60e01b815260048101849052602401610941565b6020015167ffffffffffffffff1692915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fda9190614d02565b6001600160a01b0316336001600160a01b03161461103b5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b611044816132bb565b60408051825167ffffffffffffffff908116825260208085015182169083015283830151168183015290517faa7a2d8175dee3b637814ad6346005dfcc357165396fb8327f649effe8abcf859181900360600190a150565b827f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166110f457604051632dd9fc9760e01b815260040160405180910390fd5b6110fd876134fb565b1561111b57604051630e5da8fb60e01b815260040160405180910390fd5b61112788888787613543565b6001600160a01b0383161561138057366000602061114683601f614d35565b6111509190614d48565b9050610200611160600283614e4e565b61116a9190614d48565b611175826006614e5d565b61117f9190614d35565b6111899084614d35565b92506111936136a4565b6111a057600091506112d3565b6001600160a01b038416156112d357836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561120e57506040513d6000823e601f3d908101601f1916820160405261120b9190810190614e74565b60015b156112d3578051156112d1576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127e9190614ce9565b905048817f000000000000000000000000000000000000000000000000000000000000000084516112af9190614e5d565b6112b99190614e5d565b6112c39190614d48565b6112cd9086614d35565b9450505b505b846001600160a01b031663e3db8a49335a6112ee9087614f1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c9190614f2d565b5050505b5050505050505050565b60008160405160200161139f91815260200190565b60408051808303601f1901815290829052600154815160208301207f8db5993b000000000000000000000000000000000000000000000000000000008452600b6004850152600060248501819052604485019190915291935090916001600160a01b0390911690638db5993b906064016020604051808303816000875af115801561142e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114529190614ce9565b905080156114a25760405162461bcd60e51b815260206004820152601460248201527f414c52454144595f44454c415945445f494e49540000000000000000000000006044820152606401610941565b807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516114d29190614f6e565b60405180910390a26000806114e760016136b7565b9150915060008060008061150186600160008060016136fc565b9350935093509350836000146115595760405162461bcd60e51b815260206004820152601060248201527f414c52454144595f5345515f494e4954000000000000000000000000000000006044820152606401610941565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a60026040516115949493929190614fa1565b60405180910390a4505050505050505050565b836000805a90506115b66136a4565b6115ec576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff1661161c57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061165a57604051631192b39960e31b815260040160405180910390fd5b6116728861166d36879003870187615016565b6138e5565b6116828b8b8b8b8a8a60016139f2565b6001600160a01b0383161561137c5736600060206116a183601f614d35565b6116ab9190614d48565b90506102006116bb600283614e4e565b6116c59190614d48565b6116d0826006614e5d565b6116da9190614d35565b6116e49084614d35565b92506116ee6136a4565b6116fb576000915061182e565b6001600160a01b0384161561182e57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561176957506040513d6000823e601f3d908101601f191682016040526117669190810190614e74565b60015b1561182e5780511561182c576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d99190614ce9565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161180a9190614e5d565b6118149190614e5d565b61181e9190614d48565b6118289086614d35565b9450505b505b846001600160a01b031663e3db8a49335a6118499087614f1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af11580156118b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d79190614f2d565b5050505050505050505050505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190614d02565b6001600160a01b0316336001600160a01b0316146119bf5760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b600154604080517fcb23bcb500000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cb23bcb59160048083019260209291908290030181865afa158015611a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a469190614d02565b6002549091506001600160a01b03808316911603611a90576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b836000805a3360009081526003602052604090205490915060ff16158015611af257506002546001600160a01b03163314155b15611b1057604051632dd9fc9760e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000611b4e57604051631192b39960e31b815260040160405180910390fd5b611b618861166d36879003870187615016565b6116828b8b8b8b8a8a60006139f2565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be89190614d02565b6001600160a01b0316336001600160a01b031614158015611c145750600b546001600160a01b03163314155b15611c4d576040517f660b3b42000000000000000000000000000000000000000000000000000000008152336004820152602401610941565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f28bcc5626d357efe966b4b0876aa1ee8ab99e26da4f131f6a2623f1800701c21910160405180910390a16040516001907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050565b6040517fc73b9d7c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d859190614d02565b6001600160a01b0316336001600160a01b031614611de65760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b60008181526008602052604090205460ff16611e175760405162f20c5d60e01b815260048101829052602401610941565b600081815260086020526040808220805460ff191690555182917f5cb4218b272fd214168ac43e90fb4d05d6c36f0b17ffb4c2dd07c234d744eb2a91a26040516003907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a250565b826000805a9050611e926136a4565b611ec8576040517fc8958ead00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526003602052604090205460ff16611ef857604051632dd9fc9760e01b815260040160405180910390fd5b611f01876134fb565b15611f1f57604051630e5da8fb60e01b815260040160405180910390fd5b611f2f8a8a8a8a898960016139f2565b6001600160a01b03831615612188573660006020611f4e83601f614d35565b611f589190614d48565b9050610200611f68600283614e4e565b611f729190614d48565b611f7d826006614e5d565b611f879190614d35565b611f919084614d35565b9250611f9b6136a4565b611fa857600091506120db565b6001600160a01b038416156120db57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561201657506040513d6000823e601f3d908101601f191682016040526120139190810190614e74565b60015b156120db578051156120d9576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120869190614ce9565b905048817f000000000000000000000000000000000000000000000000000000000000000084516120b79190614e5d565b6120c19190614e5d565b6120cb9190614d48565b6120d59086614d35565b9450505b505b846001600160a01b031663e3db8a49335a6120f69087614f1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015612160573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121849190614f2d565b5050505b50505050505050505050565b837f000000000000000000000000000000000000000000000000000000000000000060005a3360009081526003602052604090205490915060ff166121ec57604051632dd9fc9760e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061222a57604051631192b39960e31b815260040160405180910390fd5b61223d8861166d36879003870187615016565b61224989898888613543565b6001600160a01b038316156124a257366000602061226883601f614d35565b6122729190614d48565b9050610200612282600283614e4e565b61228c9190614d48565b612297826006614e5d565b6122a19190614d35565b6122ab9084614d35565b92506122b56136a4565b6122c257600091506123f5565b6001600160a01b038416156123f557836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561233057506040513d6000823e601f3d908101601f1916820160405261232d9190810190614e74565b60015b156123f5578051156123f3576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561237c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a09190614ce9565b905048817f000000000000000000000000000000000000000000000000000000000000000084516123d19190614e5d565b6123db9190614e5d565b6123e59190614d48565b6123ef9086614d35565b9450505b505b846001600160a01b031663e3db8a49335a6124109087614f1a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561247a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249e9190614f2d565b5050505b505050505050505050565b467f000000000000000000000000000000000000000000000000000000000000000003612506576040517fa301bb0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7801000000000000000100000000000000010000000000000001600a55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036125c35760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610941565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614612639576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382166024820152604401610941565b7f000000000000000000000000000000000000000000000000000000000000000061267757604051631192b39960e31b815260040160405180910390fd5b600c5467ffffffffffffffff16156126bb576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126c4836132bb565b505050565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127409190614d02565b6001600160a01b0316336001600160a01b0316146127a15760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b6127aa8161318f565b60408051825181526020808401519082015282820151818301526060808401519082015290517faa6a58dad31128ff7ecc2b80987ee6e003df80bc50cd8d0b0d1af0e07da6d19d9181900360800190a16040516000907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e908290a250565b600260009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561287b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289f9190614d02565b6001600160a01b0316336001600160a01b0316146129005760025460408051638da5cb5b60e01b8152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610e00573d6000803e3d6000fd5b600082826040516129129291906150c4565b6040519081900381207ffe000000000000000000000000000000000000000000000000000000000000006020830152602182015260410160408051601f1981840301815291905280516020909101209050600160ff1b81186201000083106129a6576040517fb3d1f41200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526008602052604090205460ff16156129f2576040517ffa2fddda00000000000000000000000000000000000000000000000000000000815260048101829052602401610941565b437f000000000000000000000000000000000000000000000000000000000000000015612a7f5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7c9190614ce9565b90505b6040805180820182526001815267ffffffffffffffff8381166020808401918252600087815260089091528490209251835491517fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000009092169015157fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff161761010091909216021790555182907fabca9b7986bc22ad0160eb0cb88ae75411eacfba4052af0b457a9335ef65572290612b3a90889088906150d4565b60405180910390a26040516002907fea8787f128d10b2cc0317b0c3960f9ad447f7f6c1ed189db1083ccffd20f456e90600090a25050505050565b6001546040517f16bf5579000000000000000000000000000000000000000000000000000000008152600481018390526000916001600160a01b0316906316bf557990602401602060405180830381865afa158015612bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfc9190614ce9565b92915050565b600a5460009067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612c54576000612c45600c85613b1d565b9050612c5081613b6c565b9150505b612c5e8184615103565b9392505050565b826000805a3360009081526003602052604090205490915060ff16158015612c9857506002546001600160a01b03163314155b15612cb657604051632dd9fc9760e01b815260040160405180910390fd5b612cbf876134fb565b15612cdd57604051630e5da8fb60e01b815260040160405180910390fd5b611f2f8a8a8a8a898960006139f2565b600080600080600080600080612d01613b9c565b67ffffffffffffffff9384169b50918316995082169750169450505050505b90919293565b6000548611612d61576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d978684612d756020890189614c55565b612d8560408a0160208b01614c55565b612d9060018d614f1a565b8988613c13565b600a5490915067ffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000015612e0857612de5612ddd6020880188614c55565b600c90613cb8565b600c54612dfb9067ffffffffffffffff16613b6c565b67ffffffffffffffff1690505b4381612e176020890189614c55565b67ffffffffffffffff16612e2b9190614d35565b10612e62576040517fad3515d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001891115612eeb576001546001600160a01b031663d5719dc2612e8960028c614f1a565b6040518263ffffffff1660e01b8152600401612ea791815260200190565b602060405180830381865afa158015612ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee89190614ce9565b90505b60408051602080820184905281830186905282518083038401815260609092019092528051910120600180546001600160a01b03169063d5719dc290612f31908d614f1a565b6040518263ffffffff1660e01b8152600401612f4f91815260200190565b602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190614ce9565b14612fc7576040517f13947fd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080612fd38b6136b7565b9150915060008b90506000600160009054906101000a90046001600160a01b03166001600160a01b0316635fca4a166040518163ffffffff1660e01b8152600401602060405180830381865afa158015613031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130559190614ce9565b905080600080808061306a89888388806136fc565b93509350935093508083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548d60026040516130ad9493929190614fa1565b60405180910390a4505050505050505050505050505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f2000000000000000000000000000000000000000000000000000000001790529051600091829182916064916131359190615141565b600060405180830381855afa9150503d8060008114613170576040519150601f19603f3d011682016040523d82523d6000602084013e613175565b606091505b5091509150818015613188575080516020145b9250505090565b805167ffffffffffffffff10806131b15750602081015167ffffffffffffffff105b806131c75750604081015167ffffffffffffffff105b806131dd5750606081015167ffffffffffffffff105b15613214576040517f09cfba7500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a80546020840151604085015160609095015167ffffffffffffffff908116600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff968216600160801b02969096166fffffffffffffffffffffffffffffffff92821668010000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169190951617919091171691909117919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006132f957604051631192b39960e31b815260040160405180910390fd5b61330281613d3e565b613338576040517fda1c8eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c5467ffffffffffffffff16158061336457506020810151600c5467ffffffffffffffff9182169116115b15613390576020810151600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b8051600c5467ffffffffffffffff918216911610156133cd578051600c805467ffffffffffffffff191667ffffffffffffffff9092169190911790555b602081810151600c805484517fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9091166801000000000000000067ffffffffffffffff948516027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1617600160801b91841691909102179055604080840151600d805467ffffffffffffffff1916919093161790915560005460015482517feca067ad000000000000000000000000000000000000000000000000000000008152925191936001600160a01b039091169263eca067ad92600480830193928290030181865afa1580156134c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e89190614ce9565b036134f8576134f8600c43613cb8565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000801561352b575060005482115b8015612bfc575061353c600c613da6565b1592915050565b600080600061355186613dd9565b92509250925060008060008061356b878b60008c8c6136fc565b93509350935093508a841415801561358557506000198b14155b156135c6576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018c9052604401610941565b80838c7f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548b60036040516136019493929190614fa1565b60405180910390a47f000000000000000000000000000000000000000000000000000000000000000015613661576040517f86657a5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6136696136a4565b801561369357507f0000000000000000000000000000000000000000000000000000000000000000155b1561137c5761137c87854888614008565b600033321480156108a2575050333b1590565b60408051608081018252600080825260208201819052918101829052606081018290526000806136e68561424a565b8151602090920191909120969095509350505050565b60008060008060005488101561373e576040517f7d73e6fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663eca067ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b59190614ce9565b8811156137ee576040517f925f8bd300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f86598a56000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a905260448101889052606481018790526001600160a01b03909116906386598a56906084016080604051808303816000875af1158015613867573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388b919061515d565b60008c90559296509094509250905086158015906138c757507f0000000000000000000000000000000000000000000000000000000000000000155b156138d9576138d98985486000614008565b95509550955095915050565b6000548211156139ee576138f9600c614305565b156139ee57600154600080546040517fd5719dc200000000000000000000000000000000000000000000000000000000815291926001600160a01b03169163d5719dc29161394d9160040190815260200190565b602060405180830381865afa15801561396a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398e9190614ce9565b90506139a38183600001518460200151614336565b6139d9576040517fc334542d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020820151604001516126c490600c90613cb8565b5050565b600080613a0088888861437b565b91509150600080600080613a24868b89613a1b576000613a1d565b8d5b8c8c6136fc565b93509350935093508c8414158015613a3e57506000198d14155b15613a7f576040517fac7411c900000000000000000000000000000000000000000000000000000000815260048101859052602481018e9052604401610941565b8083857f7394f4a19a13c7b92b5bb71033245305946ef78452f7b4986ac1390b5df4ebd7856000548a8d613ab4576001613ab7565b60005b604051613ac79493929190614fa1565b60405180910390a48661218457837ffe325ca1efe4c5c1062c981c3ee74b781debe4ea9440306a96d2a55759c66c208d8d604051613b069291906150d4565b60405180910390a250505050505050505050505050565b81546001830154600091612c5e9167ffffffffffffffff600160c01b8304811692868216928282169268010000000000000000808304821693600160801b810483169391900482169116614589565b600a5460009067ffffffffffffffff90811690831610613b9857600a5467ffffffffffffffff16612bfc565b5090565b6000808080467f000000000000000000000000000000000000000000000000000000000000000014613bd957506001925082915081905080612d20565b5050600a5467ffffffffffffffff808216935068010000000000000000820481169250600160801b8204811691600160c01b900416612d20565b6040516001600160f81b031960f889901b1660208201526bffffffffffffffffffffffff19606088901b1660218201527fffffffffffffffff00000000000000000000000000000000000000000000000060c087811b8216603584015286901b16603d82015260458101849052606581018390526085810182905260009060a5016040516020818303038152906040528051906020012090505b979650505050505050565b613cc28282613b1d565b825467ffffffffffffffff928316600160c01b0277ffffffffffffffffffffffffffffffff000000000000000090911691831691909117178255600190910180544390921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b805160009067ffffffffffffffff1615801590613d685750602082015167ffffffffffffffff1615155b8015613d845750612710826040015167ffffffffffffffff1611155b8015612bfc5750506020810151905167ffffffffffffffff9182169116111590565b805460009067ffffffffffffffff600160801b8204811691613dd191600160c01b9091041643614f1a565b111592915050565b60408051608081018252600080825260208201819052918101829052606081018290526000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa158015613e5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e859190810190614e74565b90508051600003613ec2576040517f3cd27eb600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080613ece8761424a565b9150915060008351620200007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f5c9190614ce9565b613f669190614e5d565b613f709190614e5d565b60405190915083907f500000000000000000000000000000000000000000000000000000000000000090613fa8908790602001615193565b60408051601f1981840301815290829052613fc79392916020016151c9565b604051602081830303815290604052805190602001208260004811613fed576000613ff7565b613ff74884614d48565b965096509650505050509193909250565b327f0000000000000000000000000000000000000000000000000000000000000000156140ae576000606c6001600160a01b031663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614070573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140949190614ce9565b90506140a04882614d48565b6140aa9084614d35565b9250505b67ffffffffffffffff8211156140f0576040517f04d5501200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080514260208201526bffffffffffffffffffffffff19606084901b16918101919091526054810186905260748101859052609481018490527fffffffffffffffff00000000000000000000000000000000000000000000000060c084901b1660b482015260009060bc0160408051808303601f1901815290829052600154815160208301207f7a88b1070000000000000000000000000000000000000000000000000000000084526001600160a01b0386811660048601526024850191909152919350600092911690637a88b107906044016020604051808303816000875af11580156141e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142079190614ce9565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516142399190614f6e565b60405180910390a250505050505050565b604080516080808201835260008083526020808401829052838501829052606080850183905285519384018652828452838201839052838601839052838101839052855191820183905260288201839052603082018390526038820183905260c087901b7fffffffffffffffff0000000000000000000000000000000000000000000000001695820195909552604801604051602081830303815290604052905060288151146142fc576142fc61520c565b94909350915050565b600061431082613da6565b1580612bfc5750505467ffffffffffffffff680100000000000000008204811691161090565b60006143718361434584614650565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9093149392505050565b604080516080810182526000808252602082018190529181018290526060810182905260006143ab856028614d35565b90507f0000000000000000000000000000000000000000000000000000000000000000811115614430576040517f4634691b000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610941565b60008061443c8661424a565b9092509050861561454f5761446c8888600081811061445d5761445d61512b565b9050013560f81c60f81b61467d565b6144c457878760008181106144835761448361512b565b6040517f6b3333560000000000000000000000000000000000000000000000000000000081529201356001600160f81b031916600483015250602401610941565b600160ff1b88886000816144da576144da61512b565b6001600160f81b0319920135929092161615801591506144fb575060218710155b1561454f576000614510602160018a8c615222565b6145199161524c565b60008181526008602052604090205490915060ff1661454d5760405162f20c5d60e01b815260048101829052602401610941565b505b8188886040516020016145649392919061526a565b60408051601f1981840301815291905280516020909101209890975095505050505050565b60008088881161459a5760006145a4565b6145a48989614f1a565b905060008987116145b65760006145c0565b6145c08a88614f1a565b90506127106145cf8584614e5d565b6145d99190614d48565b6145e39089614d35565b975060008682116145f55760006145ff565b6145ff8783614f1a565b90508281111561460c5750815b808911156146415761461e818a614f1a565b985086891115614641578589116146355788614637565b855b9350505050613cad565b50949998505050505050505050565b6000612bfc826000015183602001518460400151856060015186608001518760a001518860c00151613c13565b60006001600160f81b0319821615806146a357506001600160f81b03198216600160ff1b145b806146d757506001600160f81b031982167f8800000000000000000000000000000000000000000000000000000000000000145b80612bfc57506001600160f81b031982167f20000000000000000000000000000000000000000000000000000000000000001492915050565b60006020828403121561472257600080fd5b5035919050565b6001600160a01b03811681146134f857600080fd5b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156147775761477761473e565b60405290565b60405160e0810167ffffffffffffffff811182821017156147775761477761473e565b604051601f8201601f1916810167ffffffffffffffff811182821017156147c9576147c961473e565b604052919050565b803567ffffffffffffffff811681146147e957600080fd5b919050565b60006060828403121561480057600080fd5b6040516060810181811067ffffffffffffffff821117156148235761482361473e565b604052905080614832836147d1565b8152614840602084016147d1565b6020820152614851604084016147d1565b60408201525092915050565b600080600083850361010081121561487457600080fd5b843561487f81614729565b93506080601f198201121561489357600080fd5b506020840191506148a78560a086016147ee565b90509250925092565b80151581146134f857600080fd5b600080604083850312156148d157600080fd5b82356148dc81614729565b915060208301356148ec816148b0565b809150509250929050565b60006020828403121561490957600080fd5b8135612c5e81614729565b60006060828403121561492657600080fd5b612c5e83836147ee565b600080600080600060a0868803121561494857600080fd5b8535945060208601359350604086013561496181614729565b94979396509394606081013594506080013592915050565b60008083601f84011261498b57600080fd5b50813567ffffffffffffffff8111156149a357600080fd5b6020830191508360208285010111156149bb57600080fd5b9250929050565b600061010082840312156149d557600080fd5b50919050565b6000806000806000806000806101c0898b0312156149f857600080fd5b88359750602089013567ffffffffffffffff811115614a1657600080fd5b614a228b828c01614979565b909850965050604089013594506060890135614a3d81614729565b93506080890135925060a08901359150614a5a8a60c08b016149c2565b90509295985092959890939650565b600080600080600060808688031215614a8157600080fd5b85359450602086013567ffffffffffffffff811115614a9f57600080fd5b614aab88828901614979565b909550935050604086013591506060860135614ac681614729565b809150509295509295909350565b600080600080600080600060c0888a031215614aef57600080fd5b87359650602088013567ffffffffffffffff811115614b0d57600080fd5b614b198a828b01614979565b909750955050604088013593506060880135614b3481614729565b969995985093969295946080840135945060a09093013592915050565b6000806000806000806101a08789031215614b6b57600080fd5b86359550602087013594506040870135614b8481614729565b93506060870135925060808701359150614ba18860a089016149c2565b90509295509295509295565b600060808284031215614bbf57600080fd5b6040516080810181811067ffffffffffffffff82111715614be257614be261473e565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b60008060208385031215614c2657600080fd5b823567ffffffffffffffff811115614c3d57600080fd5b614c4985828601614979565b90969095509350505050565b600060208284031215614c6757600080fd5b612c5e826147d1565b803560ff811681146147e957600080fd5b60008060008060008060e08789031215614c9a57600080fd5b86359550614caa60208801614c70565b94506080870188811115614cbd57600080fd5b60408801945035925060a0870135614cd481614729565b8092505060c087013590509295509295509295565b600060208284031215614cfb57600080fd5b5051919050565b600060208284031215614d1457600080fd5b8151612c5e81614729565b634e487b7160e01b600052601160045260246000fd5b80820180821115612bfc57612bfc614d1f565b600082614d6557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115614da5578160001904821115614d8b57614d8b614d1f565b80851615614d9857918102915b93841c9390800290614d6f565b509250929050565b600082614dbc57506001612bfc565b81614dc957506000612bfc565b8160018114614ddf5760028114614de957614e05565b6001915050612bfc565b60ff841115614dfa57614dfa614d1f565b50506001821b612bfc565b5060208310610133831016604e8410600b8410161715614e28575081810a612bfc565b614e328383614d6a565b8060001904821115614e4657614e46614d1f565b029392505050565b6000612c5e60ff841683614dad565b8082028115828204841417612bfc57612bfc614d1f565b60006020808385031215614e8757600080fd5b825167ffffffffffffffff80821115614e9f57600080fd5b818501915085601f830112614eb357600080fd5b815181811115614ec557614ec561473e565b8060051b9150614ed68483016147a0565b8181529183018401918481019088841115614ef057600080fd5b938501935b83851015614f0e57845182529385019390850190614ef5565b98975050505050505050565b81810381811115612bfc57612bfc614d1f565b600060208284031215614f3f57600080fd5b8151612c5e816148b0565b60005b83811015614f65578181015183820152602001614f4d565b50506000910152565b6020815260008251806020840152614f8d816040850160208701614f4a565b601f01601f19169190910160400192915050565b600060e08201905085825284602083015267ffffffffffffffff8085511660408401528060208601511660608401528060408601511660808401528060608601511660a0840152506004831061500757634e487b7160e01b600052602160045260246000fd5b8260c083015295945050505050565b600081830361010081121561502a57600080fd5b615032614754565b8335815260e0601f198301121561504857600080fd5b61505061477d565b915061505e60208501614c70565b8252604084013561506e81614729565b602083015261507f606085016147d1565b6040830152615090608085016147d1565b606083015260a0840135608083015260c084013560a083015260e084013560c0830152816020820152809250505092915050565b8183823760009101908152919050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b67ffffffffffffffff81811683821601908082111561512457615124614d1f565b5092915050565b634e487b7160e01b600052603260045260246000fd5b60008251615153818460208701614f4a565b9190910192915050565b6000806000806080858703121561517357600080fd5b505082516020840151604085015160609095015191969095509092509050565b815160009082906020808601845b838110156151bd578151855293820193908201906001016151a1565b50929695505050505050565b600084516151db818460208901614f4a565b6001600160f81b0319851690830190815283516151ff816001840160208801614f4a565b0160010195945050505050565b634e487b7160e01b600052600160045260246000fd5b6000808585111561523257600080fd5b8386111561523f57600080fd5b5050820193919092039150565b80356020831015612bfc57600019602084900360031b1b1692915050565b6000845161527c818460208901614f4a565b820183858237600093019283525090939250505056fea2646970667358221220ad8515d1f887ff4d8025799c01bcf6f1725c90bf0794bd46e5d4c974be73173a64736f6c63430008110033", } // SequencerInboxStubABI is the input ABI used to generate the binding from. @@ -14348,7 +15582,7 @@ func (_SequencerInboxStub *SequencerInboxStubFilterer) ParseSetValidKeyset(log t // SimpleMetaData contains all meta data concerning the Simple contract. var SimpleMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"CounterEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"have\",\"type\":\"uint256\"}],\"name\":\"LogAndIncrementCalled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"NullEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"redeemer\",\"type\":\"address\"}],\"name\":\"RedeemedEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"checkBlockHashes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"useTopLevel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"directCase\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"staticCase\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"delegateCase\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"callcodeCase\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"callCase\",\"type\":\"bool\"}],\"name\":\"checkCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"checkGasUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"useTopLevel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"expected\",\"type\":\"bool\"}],\"name\":\"checkIsTopLevelOrWasAliased\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"difficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"emitNullEvent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"increment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementRedeem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"logAndIncrement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"noop\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pleaseRevert\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"batchData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"numberToPost\",\"type\":\"uint256\"}],\"name\":\"postManyBatches\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeDifficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506111e4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806361bc221a11610097578063b226a96411610066578063b226a964146101c0578063cff36f2d146101c8578063d09de08a146101d1578063ded5ecad146101d957600080fd5b806361bc221a146101655780638a390877146101925780639ff5ccac146101a5578063b1948fc3146101ad57600080fd5b80631a2f8a92116100d35780631a2f8a921461013757806344c25fba1461014a5780635677c11e1461015d5780635dfc2e4a1461010d57600080fd5b806305795f73146101055780630e8c389f1461010f57806312e05dd11461011757806319cae4621461012e575b600080fd5b61010d6101ec565b005b61010d610239565b6001545b6040519081526020015b60405180910390f35b61011b60015481565b61011b610145366004610d9b565b610422565b61010d610158366004610e2e565b6104a6565b61011b61092f565b6000546101799067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610125565b61010d6101a0366004610eb0565b61099b565b61010d610a24565b61010d6101bb366004610ef8565b610a93565b61010d610c15565b61010d44600155565b61010d610c40565b61010d6101e7366004610fc5565b610c82565b60405162461bcd60e51b815260206004820152601260248201527f534f4c49444954595f524556455254494e47000000000000000000000000000060448201526064015b60405180910390fd5b3332146102885760405162461bcd60e51b815260206004820152601160248201527f53454e4445525f4e4f545f4f524947494e0000000000000000000000000000006044820152606401610230565b60646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102eb9190610ffe565b6103375760405162461bcd60e51b815260206004820152600b60248201527f4e4f545f414c49415345440000000000000000000000000000000000000000006044820152606401610230565b6000805467ffffffffffffffff16908061035083611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550507f773c78bf96e65f61c1a2622b47d76e78bfe70dd59cf4f11470c4c121c315941333606e6001600160a01b031663de4ba2b36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fc9190611078565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1565b6000805a90506001600160a01b03851661043e61271083611095565b858560405161044e9291906110ae565b6000604051808303818686fa925050503d806000811461048a576040519150601f19603f3d011682016040523d82523d6000602084013e61048f565b606091505b5050505a61049d9082611095565b95945050505050565b85156105665784151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105129190610ffe565b1515146105615760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b61061b565b84151560646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc9190610ffe565b15151461061b5760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b60405163ded5ecad60e01b815286151560048201528415156024820152309063ded5ecad9060440160006040518083038186803b15801561065b57600080fd5b505afa15801561066f573d6000803e3d6000fd5b505060408051891515602482015286151560448083019190915282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b17905290519092506000915030906106df9084906110e2565b600060405180830381855af49150503d806000811461071a576040519150601f19603f3d011682016040523d82523d6000602084013e61071f565b606091505b50509050806107705760405162461bcd60e51b815260206004820152601460248201527f44454c45474154455f43414c4c5f4641494c45440000000000000000000000006044820152606401610230565b6040805189151560248201528515156044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b1781528151919350600091829182305af29050806108265760405162461bcd60e51b815260206004820152600f60248201527f43414c4c434f44455f4641494c454400000000000000000000000000000000006044820152606401610230565b60408051891515602482015284151560448083019190915282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b179052905190925030906108909084906110e2565b6000604051808303816000865af19150503d80600081146108cd576040519150601f19603f3d011682016040523d82523d6000602084013e6108d2565b606091505b505080915050806109255760405162461bcd60e51b815260206004820152600b60248201527f43414c4c5f4641494c45440000000000000000000000000000000000000000006044820152606401610230565b5050505050505050565b600061093c600243611095565b40610948600143611095565b40036109965760405162461bcd60e51b815260206004820152600f60248201527f53414d455f424c4f434b5f4841534800000000000000000000000000000000006044820152606401610230565b504390565b6000546040805183815267ffffffffffffffff90921660208301527f8df8e492f407b078593c5d8fd7e65ef68505999d911d5b99b017c0b7077398b9910160405180910390a16000805467ffffffffffffffff1690806109fa83611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000805467ffffffffffffffff169080610a3d83611051565b82546101009290920a67ffffffffffffffff818102199093169183160217909155600054604051911681527fa45d7e79cb3c6044f30c8dd891e6571301d6b8b6618df519c987905ec70742e79150602001610418565b6000836001600160a01b03166306f130566040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906110fe565b90506000846001600160a01b0316637fa3a40e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d91906110fe565b905060005b83811015610c0d576040517fe0bc97290000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063e0bc972990610bba9086908990879060009081908190600401611117565b600060405180830381600087803b158015610bd457600080fd5b505af1158015610be8573d6000803e3d6000fd5b505050508280610bf790611176565b9350508080610c0590611176565b915050610b62565b505050505050565b6040517f6f59c82101949290205a9ae9d0c657e6dae1a71c301ae76d385c2792294585fe90600090a1565b6000805467ffffffffffffffff169080610c5983611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b8115610d415780151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190610ffe565b151514610d3d5760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b5050565b80151560646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b6001600160a01b0381168114610d9857600080fd5b50565b600080600060408486031215610db057600080fd5b8335610dbb81610d83565b9250602084013567ffffffffffffffff80821115610dd857600080fd5b818601915086601f830112610dec57600080fd5b813581811115610dfb57600080fd5b876020828501011115610e0d57600080fd5b6020830194508093505050509250925092565b8015158114610d9857600080fd5b60008060008060008060c08789031215610e4757600080fd5b8635610e5281610e20565b95506020870135610e6281610e20565b94506040870135610e7281610e20565b93506060870135610e8281610e20565b92506080870135610e9281610e20565b915060a0870135610ea281610e20565b809150509295509295509295565b600060208284031215610ec257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610f0d57600080fd5b8335610f1881610d83565b9250602084013567ffffffffffffffff80821115610f3557600080fd5b818601915086601f830112610f4957600080fd5b813581811115610f5b57610f5b610ec9565b604051601f8201601f19908116603f01168101908382118183101715610f8357610f83610ec9565b81604052828152896020848701011115610f9c57600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60008060408385031215610fd857600080fd5b8235610fe381610e20565b91506020830135610ff381610e20565b809150509250929050565b60006020828403121561101057600080fd5b815161101b81610e20565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361106e5761106e611022565b6001019392505050565b60006020828403121561108a57600080fd5b815161101b81610d83565b818103818111156110a8576110a8611022565b92915050565b8183823760009101908152919050565b60005b838110156110d95781810151838201526020016110c1565b50506000910152565b600082516110f48184602087016110be565b9190910192915050565b60006020828403121561111057600080fd5b5051919050565b86815260c06020820152600086518060c084015261113c8160e0850160208b016110be565b6040830196909652506001600160a01b03939093166060840152608083019190915260a082015260e0601f909201601f1916010192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036111a7576111a7611022565b506001019056fea26469706673582212202f5631c830ea4423064433cf8db986c70d9a9971944f67320a748c40da99a65764736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b506111e4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806361bc221a11610097578063b226a96411610066578063b226a964146101c0578063cff36f2d146101c8578063d09de08a146101d1578063ded5ecad146101d957600080fd5b806361bc221a146101655780638a390877146101925780639ff5ccac146101a5578063b1948fc3146101ad57600080fd5b80631a2f8a92116100d35780631a2f8a921461013757806344c25fba1461014a5780635677c11e1461015d5780635dfc2e4a1461010d57600080fd5b806305795f73146101055780630e8c389f1461010f57806312e05dd11461011757806319cae4621461012e575b600080fd5b61010d6101ec565b005b61010d610239565b6001545b6040519081526020015b60405180910390f35b61011b60015481565b61011b610145366004610d9b565b610422565b61010d610158366004610e2e565b6104a6565b61011b61092f565b6000546101799067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610125565b61010d6101a0366004610eb0565b61099b565b61010d610a24565b61010d6101bb366004610ef8565b610a93565b61010d610c15565b61010d44600155565b61010d610c40565b61010d6101e7366004610fc5565b610c82565b60405162461bcd60e51b815260206004820152601260248201527f534f4c49444954595f524556455254494e47000000000000000000000000000060448201526064015b60405180910390fd5b3332146102885760405162461bcd60e51b815260206004820152601160248201527f53454e4445525f4e4f545f4f524947494e0000000000000000000000000000006044820152606401610230565b60646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102eb9190610ffe565b6103375760405162461bcd60e51b815260206004820152600b60248201527f4e4f545f414c49415345440000000000000000000000000000000000000000006044820152606401610230565b6000805467ffffffffffffffff16908061035083611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550507f773c78bf96e65f61c1a2622b47d76e78bfe70dd59cf4f11470c4c121c315941333606e6001600160a01b031663de4ba2b36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fc9190611078565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1565b6000805a90506001600160a01b03851661043e61271083611095565b858560405161044e9291906110ae565b6000604051808303818686fa925050503d806000811461048a576040519150601f19603f3d011682016040523d82523d6000602084013e61048f565b606091505b5050505a61049d9082611095565b95945050505050565b85156105665784151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105129190610ffe565b1515146105615760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b61061b565b84151560646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cc9190610ffe565b15151461061b5760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b60405163ded5ecad60e01b815286151560048201528415156024820152309063ded5ecad9060440160006040518083038186803b15801561065b57600080fd5b505afa15801561066f573d6000803e3d6000fd5b505060408051891515602482015286151560448083019190915282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b17905290519092506000915030906106df9084906110e2565b600060405180830381855af49150503d806000811461071a576040519150601f19603f3d011682016040523d82523d6000602084013e61071f565b606091505b50509050806107705760405162461bcd60e51b815260206004820152601460248201527f44454c45474154455f43414c4c5f4641494c45440000000000000000000000006044820152606401610230565b6040805189151560248201528515156044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b1781528151919350600091829182305af29050806108265760405162461bcd60e51b815260206004820152600f60248201527f43414c4c434f44455f4641494c454400000000000000000000000000000000006044820152606401610230565b60408051891515602482015284151560448083019190915282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663ded5ecad60e01b179052905190925030906108909084906110e2565b6000604051808303816000865af19150503d80600081146108cd576040519150601f19603f3d011682016040523d82523d6000602084013e6108d2565b606091505b505080915050806109255760405162461bcd60e51b815260206004820152600b60248201527f43414c4c5f4641494c45440000000000000000000000000000000000000000006044820152606401610230565b5050505050505050565b600061093c600243611095565b40610948600143611095565b40036109965760405162461bcd60e51b815260206004820152600f60248201527f53414d455f424c4f434b5f4841534800000000000000000000000000000000006044820152606401610230565b504390565b6000546040805183815267ffffffffffffffff90921660208301527f8df8e492f407b078593c5d8fd7e65ef68505999d911d5b99b017c0b7077398b9910160405180910390a16000805467ffffffffffffffff1690806109fa83611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000805467ffffffffffffffff169080610a3d83611051565b82546101009290920a67ffffffffffffffff818102199093169183160217909155600054604051911681527fa45d7e79cb3c6044f30c8dd891e6571301d6b8b6618df519c987905ec70742e79150602001610418565b6000836001600160a01b03166306f130566040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906110fe565b90506000846001600160a01b0316637fa3a40e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d91906110fe565b905060005b83811015610c0d576040517fe0bc97290000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063e0bc972990610bba9086908990879060009081908190600401611117565b600060405180830381600087803b158015610bd457600080fd5b505af1158015610be8573d6000803e3d6000fd5b505050508280610bf790611176565b9350508080610c0590611176565b915050610b62565b505050505050565b6040517f6f59c82101949290205a9ae9d0c657e6dae1a71c301ae76d385c2792294585fe90600090a1565b6000805467ffffffffffffffff169080610c5983611051565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b8115610d415780151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190610ffe565b151514610d3d5760405162461bcd60e51b815260206004820152601160248201527f554e45585045435445445f524553554c540000000000000000000000000000006044820152606401610230565b5050565b80151560646001600160a01b031663175a260b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b6001600160a01b0381168114610d9857600080fd5b50565b600080600060408486031215610db057600080fd5b8335610dbb81610d83565b9250602084013567ffffffffffffffff80821115610dd857600080fd5b818601915086601f830112610dec57600080fd5b813581811115610dfb57600080fd5b876020828501011115610e0d57600080fd5b6020830194508093505050509250925092565b8015158114610d9857600080fd5b60008060008060008060c08789031215610e4757600080fd5b8635610e5281610e20565b95506020870135610e6281610e20565b94506040870135610e7281610e20565b93506060870135610e8281610e20565b92506080870135610e9281610e20565b915060a0870135610ea281610e20565b809150509295509295509295565b600060208284031215610ec257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600060608486031215610f0d57600080fd5b8335610f1881610d83565b9250602084013567ffffffffffffffff80821115610f3557600080fd5b818601915086601f830112610f4957600080fd5b813581811115610f5b57610f5b610ec9565b604051601f8201601f19908116603f01168101908382118183101715610f8357610f83610ec9565b81604052828152896020848701011115610f9c57600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60008060408385031215610fd857600080fd5b8235610fe381610e20565b91506020830135610ff381610e20565b809150509250929050565b60006020828403121561101057600080fd5b815161101b81610e20565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361106e5761106e611022565b6001019392505050565b60006020828403121561108a57600080fd5b815161101b81610d83565b818103818111156110a8576110a8611022565b92915050565b8183823760009101908152919050565b60005b838110156110d95781810151838201526020016110c1565b50506000910152565b600082516110f48184602087016110be565b9190910192915050565b60006020828403121561111057600080fd5b5051919050565b86815260c06020820152600086518060c084015261113c8160e0850160208b016110be565b6040830196909652506001600160a01b03939093166060840152608083019190915260a082015260e0601f909201601f1916010192915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036111a7576111a7611022565b506001019056fea26469706673582212205910eceb37f6bd67586813cf7af49afc8f9d7f5ef19e2977b7813ab4f3210a7164736f6c63430008110033", } // SimpleABI is the input ABI used to generate the binding from. @@ -15683,7 +16917,7 @@ func (_SimpleCacheManager *SimpleCacheManagerTransactorSession) EvictProgram(pro // SimpleOneStepProofEntryMetaData contains all meta data concerning the SimpleOneStepProofEntry contract. var SimpleOneStepProofEntryMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"STEPS_PER_BATCH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"execState\",\"type\":\"tuple\"}],\"name\":\"getMachineHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"globalStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"getStartMachineHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxInboxMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"initialWasmModuleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structExecutionContext\",\"name\":\"execCtx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"step\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"proveOneStep\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"afterHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610990806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806304997be4146100515780639c2009cd146100cd578063b5112fd2146100ef578063c39619c414610102575b600080fd5b6100ba61005f36600461062e565b6040517f4d616368696e653a0000000000000000000000000000000000000000000000006020820152602881018390526048810182905260009060680160405160208183030381529060405280519060200120905092915050565b6040519081526020015b60405180910390f35b6100d66107d081565b60405167ffffffffffffffff90911681526020016100c4565b6100ba6100fd366004610650565b610115565b6100ba6101103660046106ec565b610439565b600081810361016b5760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f50524f4f4600000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6101736105eb565b600061018085858361055f565b602084015167ffffffffffffffff90921690915290506101a185858361055f565b60208481015167ffffffffffffffff9093169201919091529050861580159061020a57508560001a60f81b7fff0000000000000000000000000000000000000000000000000000000000000016158061020a57506101fe826105c7565b67ffffffffffffffff16155b15610219578592505050610430565b8735610224836105dd565b67ffffffffffffffff161061023d578592505050610430565b8151805160209182015182850151805190840151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081880152602d810195909552604d8501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d860152911b1660758301528051808303605d018152607d9092019052805191012086146103235760405162461bcd60e51b815260206004820152600960248201527f4241445f50524f4f4600000000000000000000000000000000000000000000006044820152606401610162565b6020828101510180519061033682610730565b67ffffffffffffffff169052506020828101510151610358906107d090610757565b67ffffffffffffffff1660000361039357602082015180519061037a82610730565b67ffffffffffffffff1690525060208281015160009101525b8151805160209182015182850151805190840151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081880152602d810195909552604d8501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d860152911b1660758301528051808303605d018152607d90920190528051910120925050505b95945050505050565b6000600161044d60a08401608085016107a2565b600281111561045e5761045e61078c565b146104ab5760405162461bcd60e51b815260206004820152601260248201527f4241445f4d414348494e455f53544154555300000000000000000000000000006044820152606401610162565b6105596104bd36849003840184610889565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b92915050565b600081815b60088110156105be5760088367ffffffffffffffff16901b925085858381811061059057610590610704565b919091013560f81c939093179250816105a881610922565b92505080806105b690610922565b915050610564565b50935093915050565b602081015160009060015b602002015192915050565b6020810151600090816105d2565b60405180604001604052806105fe610610565b815260200161060b610610565b905290565b60405180604001604052806002906020820280368337509192915050565b6000806040838503121561064157600080fd5b50508035926020909101359150565b600080600080600085870360c081121561066957600080fd5b606081121561067757600080fd5b50859450606086013593506080860135925060a086013567ffffffffffffffff808211156106a457600080fd5b818801915088601f8301126106b857600080fd5b8135818111156106c757600080fd5b8960208285010111156106d957600080fd5b9699959850939650602001949392505050565b600060a082840312156106fe57600080fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600067ffffffffffffffff80831681810361074d5761074d61071a565b6001019392505050565b600067ffffffffffffffff8084168061078057634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156107b457600080fd5b8135600381106107c357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610803576108036107ca565b60405290565b600082601f83011261081a57600080fd5b6040516040810167ffffffffffffffff828210818311171561083e5761083e6107ca565b6040918252829185018681111561085457600080fd5b855b8181101561087d578035838116811461086f5760008081fd5b845260209384019301610856565b50929695505050505050565b60006080828403121561089b57600080fd5b6040516040810181811067ffffffffffffffff821117156108be576108be6107ca565b604052601f830184136108d057600080fd5b6108d86107e0565b8060408501868111156108ea57600080fd5b855b818110156109045780358452602093840193016108ec565b508184526109128782610809565b6020850152509195945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109535761095361071a565b506001019056fea264697066735822122062e3742bb09678fbedc04f14269228e6d720dc34a1a7b70c08544243da4074de64736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b50610990806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806304997be4146100515780639c2009cd146100cd578063b5112fd2146100ef578063c39619c414610102575b600080fd5b6100ba61005f36600461062e565b6040517f4d616368696e653a0000000000000000000000000000000000000000000000006020820152602881018390526048810182905260009060680160405160208183030381529060405280519060200120905092915050565b6040519081526020015b60405180910390f35b6100d66107d081565b60405167ffffffffffffffff90911681526020016100c4565b6100ba6100fd366004610650565b610115565b6100ba6101103660046106ec565b610439565b600081810361016b5760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f50524f4f4600000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6101736105eb565b600061018085858361055f565b602084015167ffffffffffffffff90921690915290506101a185858361055f565b60208481015167ffffffffffffffff9093169201919091529050861580159061020a57508560001a60f81b7fff0000000000000000000000000000000000000000000000000000000000000016158061020a57506101fe826105c7565b67ffffffffffffffff16155b15610219578592505050610430565b8735610224836105dd565b67ffffffffffffffff161061023d578592505050610430565b8151805160209182015182850151805190840151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081880152602d810195909552604d8501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d860152911b1660758301528051808303605d018152607d9092019052805191012086146103235760405162461bcd60e51b815260206004820152600960248201527f4241445f50524f4f4600000000000000000000000000000000000000000000006044820152606401610162565b6020828101510180519061033682610730565b67ffffffffffffffff169052506020828101510151610358906107d090610757565b67ffffffffffffffff1660000361039357602082015180519061037a82610730565b67ffffffffffffffff1690525060208281015160009101525b8151805160209182015182850151805190840151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081880152602d810195909552604d8501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d860152911b1660758301528051808303605d018152607d90920190528051910120925050505b95945050505050565b6000600161044d60a08401608085016107a2565b600281111561045e5761045e61078c565b146104ab5760405162461bcd60e51b815260206004820152601260248201527f4241445f4d414348494e455f53544154555300000000000000000000000000006044820152606401610162565b6105596104bd36849003840184610889565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b92915050565b600081815b60088110156105be5760088367ffffffffffffffff16901b925085858381811061059057610590610704565b919091013560f81c939093179250816105a881610922565b92505080806105b690610922565b915050610564565b50935093915050565b602081015160009060015b602002015192915050565b6020810151600090816105d2565b60405180604001604052806105fe610610565b815260200161060b610610565b905290565b60405180604001604052806002906020820280368337509192915050565b6000806040838503121561064157600080fd5b50508035926020909101359150565b600080600080600085870360c081121561066957600080fd5b606081121561067757600080fd5b50859450606086013593506080860135925060a086013567ffffffffffffffff808211156106a457600080fd5b818801915088601f8301126106b857600080fd5b8135818111156106c757600080fd5b8960208285010111156106d957600080fd5b9699959850939650602001949392505050565b600060a082840312156106fe57600080fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600067ffffffffffffffff80831681810361074d5761074d61071a565b6001019392505050565b600067ffffffffffffffff8084168061078057634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156107b457600080fd5b8135600381106107c357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610803576108036107ca565b60405290565b600082601f83011261081a57600080fd5b6040516040810167ffffffffffffffff828210818311171561083e5761083e6107ca565b6040918252829185018681111561085457600080fd5b855b8181101561087d578035838116811461086f5760008081fd5b845260209384019301610856565b50929695505050505050565b60006080828403121561089b57600080fd5b6040516040810181811067ffffffffffffffff821117156108be576108be6107ca565b604052601f830184136108d057600080fd5b6108d86107e0565b8060408501868111156108ea57600080fd5b855b818110156109045780358452602093840193016108ec565b508184526109128782610809565b6020850152509195945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109535761095361071a565b506001019056fea264697066735822122047f7859f33f191b814f638b16bb6436c60047e016c03d2817c76146eb05adbac64736f6c63430008110033", } // SimpleOneStepProofEntryABI is the input ABI used to generate the binding from. diff --git a/solgen/go/precompilesgen/precompilesgen.go b/solgen/go/precompilesgen/precompilesgen.go index a58c1ac6b..9c6ef7ef5 100644 --- a/solgen/go/precompilesgen/precompilesgen.go +++ b/solgen/go/precompilesgen/precompilesgen.go @@ -6990,7 +6990,7 @@ func (_ArbSys *ArbSysFilterer) ParseSendMerkleUpdate(log types.Log) (*ArbSysSend // ArbWasmMetaData contains all meta data concerning the ArbWasm contract. var ArbWasmMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"ageInSeconds\",\"type\":\"uint64\"}],\"name\":\"ProgramExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"have\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"want\",\"type\":\"uint256\"}],\"name\":\"ProgramInsufficientValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"ageInSeconds\",\"type\":\"uint64\"}],\"name\":\"ProgramKeepaliveTooSoon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stylusVersion\",\"type\":\"uint16\"}],\"name\":\"ProgramNeedsUpgrade\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotWasm\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramUpToDate\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"moduleHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"name\":\"ProgramActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"}],\"name\":\"ProgramLifetimeExtended\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"activateProgram\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockCacheSize\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashAsmSize\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"size\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashKeepalive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expiryDays\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"_days\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freePages\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"pages\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initCostScalar\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"percent\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inkPrice\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"price\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"keepaliveDays\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"_days\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxStackDepth\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"depth\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minInitGas\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"gas\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"cached\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageGas\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"gas\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"limit\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageRamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"ramp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programInitGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasWhenCached\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programMemoryFootprint\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"footprint\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programTimeLeft\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"_secs\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stylusVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"ageInSeconds\",\"type\":\"uint64\"}],\"name\":\"ProgramExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"have\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"want\",\"type\":\"uint256\"}],\"name\":\"ProgramInsufficientValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"ageInSeconds\",\"type\":\"uint64\"}],\"name\":\"ProgramKeepaliveTooSoon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"stylusVersion\",\"type\":\"uint16\"}],\"name\":\"ProgramNeedsUpgrade\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotWasm\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramUpToDate\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"moduleHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"name\":\"ProgramActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"}],\"name\":\"ProgramLifetimeExtended\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"activateProgram\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"dataFee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockCacheSize\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"count\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashAsmSize\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"size\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashKeepalive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"codehash\",\"type\":\"bytes32\"}],\"name\":\"codehashVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expiryDays\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"_days\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"freePages\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"pages\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initCostScalar\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"percent\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inkPrice\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"price\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"keepaliveDays\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"_days\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxStackDepth\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"depth\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minInitGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"cached\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageGas\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"gas\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"limit\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pageRamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"ramp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programInitGas\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasWhenCached\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programMemoryFootprint\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"footprint\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programTimeLeft\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"_secs\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"program\",\"type\":\"address\"}],\"name\":\"programVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stylusVersion\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"version\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // ArbWasmABI is the input ABI used to generate the binding from. @@ -7420,24 +7420,24 @@ func (_ArbWasm *ArbWasmCallerSession) MaxStackDepth() (uint32, error) { // MinInitGas is a free data retrieval call binding the contract method 0x99d0b38d. // -// Solidity: function minInitGas() view returns(uint8 gas, uint8 cached) +// Solidity: function minInitGas() view returns(uint64 gas, uint64 cached) func (_ArbWasm *ArbWasmCaller) MinInitGas(opts *bind.CallOpts) (struct { - Gas uint8 - Cached uint8 + Gas uint64 + Cached uint64 }, error) { var out []interface{} err := _ArbWasm.contract.Call(opts, &out, "minInitGas") outstruct := new(struct { - Gas uint8 - Cached uint8 + Gas uint64 + Cached uint64 }) if err != nil { return *outstruct, err } - outstruct.Gas = *abi.ConvertType(out[0], new(uint8)).(*uint8) - outstruct.Cached = *abi.ConvertType(out[1], new(uint8)).(*uint8) + outstruct.Gas = *abi.ConvertType(out[0], new(uint64)).(*uint64) + outstruct.Cached = *abi.ConvertType(out[1], new(uint64)).(*uint64) return *outstruct, err @@ -7445,20 +7445,20 @@ func (_ArbWasm *ArbWasmCaller) MinInitGas(opts *bind.CallOpts) (struct { // MinInitGas is a free data retrieval call binding the contract method 0x99d0b38d. // -// Solidity: function minInitGas() view returns(uint8 gas, uint8 cached) +// Solidity: function minInitGas() view returns(uint64 gas, uint64 cached) func (_ArbWasm *ArbWasmSession) MinInitGas() (struct { - Gas uint8 - Cached uint8 + Gas uint64 + Cached uint64 }, error) { return _ArbWasm.Contract.MinInitGas(&_ArbWasm.CallOpts) } // MinInitGas is a free data retrieval call binding the contract method 0x99d0b38d. // -// Solidity: function minInitGas() view returns(uint8 gas, uint8 cached) +// Solidity: function minInitGas() view returns(uint64 gas, uint64 cached) func (_ArbWasm *ArbWasmCallerSession) MinInitGas() (struct { - Gas uint8 - Cached uint8 + Gas uint64 + Cached uint64 }, error) { return _ArbWasm.Contract.MinInitGas(&_ArbWasm.CallOpts) } diff --git a/solgen/go/rollupgen/rollupgen.go b/solgen/go/rollupgen/rollupgen.go index 966b46ee8..c6868abc2 100644 --- a/solgen/go/rollupgen/rollupgen.go +++ b/solgen/go/rollupgen/rollupgen.go @@ -72,7 +72,6 @@ type BOLDUpgradeActionImplementations struct { Inbox common.Address Rei common.Address Outbox common.Address - OldRollupUser common.Address NewRollupUser common.Address NewRollupAdmin common.Address ChallengeManager common.Address @@ -95,6 +94,8 @@ type BOLDUpgradeActionSettings struct { StakeAmt *big.Int MiniStakeAmounts []*big.Int ChainId *big.Int + MinimumAssertionPeriod *big.Int + ValidatorAfkBlocks uint64 DisableValidatorWhitelist bool BlockLeafSize *big.Int BigStepLeafSize *big.Int @@ -148,6 +149,8 @@ type Config struct { LoserStakeEscrow common.Address ChainId *big.Int ChainConfig string + MinimumAssertionPeriod *big.Int + ValidatorAfkBlocks uint64 MiniStakeValues []*big.Int SequencerInboxMaxTimeVariation ISequencerInboxMaxTimeVariation LayerZeroBlockEdgeHeight *big.Int @@ -1169,8 +1172,8 @@ func (_AssertionStateLib *AssertionStateLibTransactorRaw) Transact(opts *bind.Tr // BOLDUpgradeActionMetaData contains all meta data concerning the BOLDUpgradeAction contract. var BOLDUpgradeActionMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"excessStakeReceiver\",\"type\":\"address\"},{\"internalType\":\"contractIOldRollup\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"osp\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.Contracts\",\"name\":\"contracts\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rei\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seqInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.ProxyAdmins\",\"name\":\"proxyAdmins\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seqInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rei\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldRollupUser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newRollupUser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newRollupAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.Implementations\",\"name\":\"implementations\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"challengePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmt\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeAmounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"disableValidatorWhitelist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"blockLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bigStepLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"smallStepLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structBOLDUpgradeAction.Settings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"RollupMigrated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIGSTEP_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLOCK_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHALLENGE_GRACE_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHALLENGE_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONFIRM_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DISABLE_VALIDATOR_WHITELIST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXCESS_STAKE_RECEIVER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_CHALLENGE_MANAGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_NEW_ROLLUP_ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_NEW_ROLLUP_USER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_OUTBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_PATCHED_OLD_ROLLUP_USER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_REI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_SEQUENCER_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DELAY_BUFFERABLE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINI_STAKE_AMOUNTS_STORAGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NUM_BIGSTEP_LEVEL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OLD_ROLLUP\",\"outputs\":[{\"internalType\":\"contractIOldRollup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OSP\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OUTBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREIMAGE_LOOKUP\",\"outputs\":[{\"internalType\":\"contractStateHashPreImageLookup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_BRIDGE\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_INBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_OUTBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_REI\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_SEQUENCER_INBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REPLENISH_RATE_IN_BASIS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLLUP_READER\",\"outputs\":[{\"internalType\":\"contractRollupReader\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECONDS_PER_SLOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQ_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SMALLSTEP_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"perform\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6105806040523480156200001257600080fd5b506040516200853c3803806200853c833981016040819052620000359162000779565b83516001600160a01b039081166101005260208086015182166101205260408087015183166101405260608088015184166101605260808089015185166101805260a089015185166101a05260c089015185166101c05260e089015185166103605287518516610380529287015184166103a0528682015184166103c05286015183166103e052908501519091166104005251620000d390620002b3565b604051809103906000f080158015620000f0573d6000803e3d6000fd5b506001600160a01b03166104205260208401516040516200011190620002c1565b6001600160a01b039091168152602001604051809103906000f0801580156200013e573d6000803e3d6000fd5b506001600160a01b0390811661044052825181166104605260208084015182166104805260408085015183166104a05260608086015184166104c05260808087015185166104e05260a08088015186166105005260c088015186166105205260e08801518616610540526101008801518616610560528601516102605285516001600160401b039081166101e0529386015190931661020052848201519093166102205291830151610240528201519051620001fa90620002cf565b620002069190620008a0565b604051809103906000f08015801562000223573d6000803e3d6000fd5b506001600160a01b03166102c05260c08082015115156102805260e08083015160805261010083015160a05261012083015190915261014082015160ff1690526101608101516001600160401b039081166102a05261018082015115156102e0526101a09091018051602001518216610300528051518216610320525160400151166103405250620008e6915050565b610a2d8062006c0283390190565b610c6d806200762f83390190565b6102a0806200829c83390190565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715620003195762000319620002dd565b60405290565b6040516101c081016001600160401b0381118282101715620003195762000319620002dd565b60405161010081016001600160401b0381118282101715620003195762000319620002dd565b6001600160a01b03811681146200038157600080fd5b50565b805162000391816200036b565b919050565b600060a08284031215620003a957600080fd5b60405160a081016001600160401b0381118282101715620003ce57620003ce620002dd565b80604052508091508251620003e3816200036b565b81526020830151620003f5816200036b565b602082015260408301516200040a816200036b565b604082015260608301516200041f816200036b565b6060820152608083015162000434816200036b565b6080919091015292915050565b600061012082840312156200045557600080fd5b6200045f620002f3565b90506200046c8262000384565b81526200047c6020830162000384565b60208201526200048f6040830162000384565b6040820152620004a26060830162000384565b6060820152620004b56080830162000384565b6080820152620004c860a0830162000384565b60a0820152620004db60c0830162000384565b60c0820152620004ee60e0830162000384565b60e08201526101006200050381840162000384565b9082015292915050565b80516001600160401b03811681146200039157600080fd5b600082601f8301126200053757600080fd5b815160206001600160401b0380831115620005565762000556620002dd565b8260051b604051601f19603f830116810181811084821117156200057e576200057e620002dd565b6040529384528581018301938381019250878511156200059d57600080fd5b83870191505b84821015620005be57815183529183019190830190620005a3565b979650505050505050565b805180151581146200039157600080fd5b805160ff811681146200039157600080fd5b600060608284031215620005ff57600080fd5b604051606081016001600160401b0381118282101715620006245762000624620002dd565b60405290508062000635836200050d565b815262000645602084016200050d565b602082015262000658604084016200050d565b60408201525092915050565b600061020082840312156200067857600080fd5b620006826200031f565b90506200068f826200050d565b81526200069f602083016200050d565b6020820152620006b26040830162000384565b60408201526060828101519082015260808201516001600160401b03811115620006db57600080fd5b620006e98482850162000525565b60808301525060a082015160a08201526200070760c08301620005c9565b60c082015260e08281015190820152610100808301519082015261012080830151908201526101406200073c818401620005da565b90820152610160620007508382016200050d565b9082015261018062000764838201620005c9565b908201526101a06200050384848301620005ec565b6000806000808486036102e08112156200079257600080fd5b61010080821215620007a357600080fd5b620007ad62000345565b91508651620007bc816200036b565b8252620007cc6020880162000384565b6020830152620007df6040880162000384565b6040830152620007f26060880162000384565b6060830152620008056080880162000384565b60808301526200081860a0880162000384565b60a08301526200082b60c0880162000384565b60c08301526200083e60e0880162000384565b60e0830152819550620008548882890162000396565b9450505062000868866101a0870162000441565b6102c08601519092506001600160401b038111156200088657600080fd5b620008948782880162000664565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015620008da57835183529284019291840191600101620008bc565b50909695505050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051615f5e62000ca4600039600081816103fa0152610a050152600081816103230152610ba301526000818161052a0152610bd20152600081816104d101526117cf01526000818161081e01526123210152600081816107ce01526121e5015260008181610655015261211e0152600081816107f6015281816124e00152818161269601526127550152600081816108be0152611fb501526000818161057a01528181610c0101528181610f7f015281816112030152818161144a01528181611542015281816115f601528181611866015281816118950152611c5e015260008181610846015281816119d50152611a9f01526000818161055201526121470152600081816104a9015281816124b0015281816126be0152612779015260008181610502015261220f01526000818161039001528181610a260152611fde015260008181610368015261234b0152600081816106f50152610d3901526000818161090e015261256c01526000818161062d015261250c015260008181610896015261253c0152600081816108e60152818161248901526128690152600081816107560152611d6101526000818161094f0152611eac01526000818161071d01528181611145015261119201526000818161067d0152611d260152600081816109c70152611c3801526000818161044a0152611c090152600081816106cd0152610d180152600081816103b80152611bd901526000818161077e01528181610b0701526120f501526000818161042201528181610b36015281816122f801526123ac0152600081816107a601528181610b65015281816121bc015261227001526000818161086e01528181610ad8015281816124680152818161288c0152818161298e01528181612a7401528181612b1c0152612d5f01526000818161097701528181610aa901528181611f8c01526120740152600081816106a5015281816113d30152818161170101526117f701526000818161060501528181610d710152611cf70152600081816105a20152611e8301526000818161099f0152611e410152600081816104720152611e1b0152600081816105dd0152611df50152615f5e6000f3fe60806040523480156200001157600080fd5b5060043610620003185760003560e01c80638765240f11620001a5578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a21462000971578063fa2874201462000999578063faf5625f14620009c157600080fd5b8063eb657a4e1462000908578063ebe03a931462000930578063ec4f74ce146200094957600080fd5b8063d49d518111620000d8578063d49d51811462000890578063dae7cb8b14620008b8578063e8180c2914620008e057600080fd5b8063cc8089bb1462000840578063d384cb95146200086857600080fd5b8063b70106971162000153578063c21c42331162000136578063c21c423314620007c8578063c519d15114620007f0578063c897f55e146200081857600080fd5b8063b70106971462000778578063be41b36714620007a057600080fd5b80639f9854e511620001885780639f9854e514620006ef578063b38d57f01462000717578063b5e00c3f146200075057600080fd5b80638765240f146200069f57806391ddb28514620006c757600080fd5b8063304b9071116200026d5780635d9e2444116200021b578063785ffb3711620001f2578063785ffb371462000627578063817cd312146200064f57806385e1f4d0146200067757600080fd5b80635d9e2444146200059c578063609fb50314620005d757806364f4992a14620005ff57600080fd5b80634692de5d11620002505780634692de5d14620005245780634b2f51ef146200054c5780634e0e75fb146200057457600080fd5b8063304b907114620004f35780633c2b784014620004fc57600080fd5b80631b142ea711620002cb5780631ccc2cd111620002ae5780631ccc2cd1146200046c5780632cfb7ca314620004a35780632db93bdc14620004cb57600080fd5b80631b142ea7146200041c5780631c39b672146200044457600080fd5b80630a54257d11620003005780630a54257d146200038a5780631047fc5214620003b257806310a662e214620003f457600080fd5b8062f9731e146200031d5780630787484b1462000362575b600080fd5b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b62000494600c81565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620005c47f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000359565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000359565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b6200073f7f000000000000000000000000000000000000000000000000000000000000000081565b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620009476200094136600462003068565b620009e9565b005b620003da7f000000000000000000000000000000000000000000000000000000000000000081565b620003457f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620004947f000000000000000000000000000000000000000000000000000000000000000081565b620009f3620013d1565b6000620009ff62001858565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000a539062002dde565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000a96573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c84919062003113565b6001600160a01b0316815250905060008360405160200162000ca791906200343d565b604051602081830303815290604052805190602001209050600062000cf9826040518060200162000cd89062002dec565b6020820181038252601f19601f820116604052508051906020012062001ee9565b905062000d068162001f75565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961014001518a61016001518b61018001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61020001518f61010001516040518b63ffffffff1660e01b815260040162000dc39a9998979695949392919062003452565b600060405180830381600087803b15801562000dde57600080fd5b505af115801562000df3573d6000803e3d6000fd5b5050505060008260405162000e089062002dec565b8190604051809103906000f590508015801562000e29573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000e935760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f41444452000000000000000000000060448201526064015b60405180910390fd5b608086018051309091526040517fd384644b0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063d384644b9062000ee6908a908990600401620034cf565b600060405180830381600087803b15801562000f0157600080fd5b505af115801562000f16573d6000803e3d6000fd5b50505050875160001462001143576000885167ffffffffffffffff81111562000f435762000f4362002f8b565b60405190808252806020026020018201604052801562000f6d578160200160208202803683370190505b50905060005b8951811015620010c3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b838151811062000fc15762000fc1620035b5565b60200260200101516040518263ffffffff1660e01b815260040162000ff591906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001013573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010399190620035e1565b620010875760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000e8a565b60018282815181106200109e576200109e620035b5565b9115156020928302919091019091015280620010ba8162003615565b91505062000f73565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200110d908c9085906004016200368b565b600060405180830381600087803b1580156200112857600080fd5b505af11580156200113d573d6000803e3d6000fd5b50505050505b7f00000000000000000000000000000000000000000000000000000000000000001562001201576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b158015620011e757600080fd5b505af1158015620011fc573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200127e575060408051601f3d908101601f191682019092526200127b9181019062003113565b60015b156200130d576001600160a01b038116156200130b576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b158015620012f157600080fd5b505af115801562001306573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200136a57600080fd5b505af11580156200137f573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200142d57600080fd5b505af115801562001442573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa158015620014a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014cd919062003701565b905060328167ffffffffffffffff161115620014e7575060325b60005b8167ffffffffffffffff168167ffffffffffffffff1610156200179e576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001592573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015b8919062003113565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa1580156200163e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200166491906200371f565b905080608001518015620016845750606081015167ffffffffffffffff16155b156200178657604080516001808252818301909252600091602080830190803683370190505090508281600081518110620016c357620016c3620035b5565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c298906200173a908490600401620037b2565b600060405180830381600087803b1580156200175557600080fd5b505af11580156200176a573d6000803e3d6000fd5b505050506001856200177d9190620037c7565b94505062001796565b826200179281620037f2565b9350505b5050620014ea565b506040517f0d40a0fd0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000001690630d40a0fd90602401600060405180830381600087803b1580156200183c57600080fd5b505af115801562001851573d6000803e3d6000fd5b5050505050565b6200186262002dfa565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001918919062003701565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001977573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200199d91906200381c565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001a25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a4b919062003970565b9150915062001a5962002f04565b8251815260208084015190820190600281111562001a7b5762001a7b62003227565b9081600281111562001a915762001a9162003227565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001acf8462002426565b856040518363ffffffff1660e01b815260040162001aef92919062003a41565b602060405180830381865afa15801562001b0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b33919062003a78565b1462001b825760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000e8a565b62001bae6040518060800160405280600081526020016000815260200160008152602001600081525090565b60408051606081018252600080825260208201819052918101919091526040518061026001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001cbb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ce1919062003a78565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001dbe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001de8919081019062003a92565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b604080517fff000000000000000000000000000000000000000000000000000000000000006020808301919091527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000905b90505b92915050565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200202557600080fd5b505af11580156200203a573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b158015620020bb57600080fd5b505af1158015620020d0573d6000803e3d6000fd5b50505050620020de62002466565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200218e57600080fd5b505af1158015620021a3573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200225557600080fd5b505af11580156200226a573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620022ca57600080fd5b505af1158015620022df573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200239157600080fd5b505af1158015620023a6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200240657600080fd5b505af11580156200241b573d6000803e3d6000fd5b505050505050505050565b6200243062002f2d565b604051806040016040528083600001518152602001836020015160028111156200245e576200245e62003227565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002677577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815250604051602401620025aa919062003b21565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526200263d9392919060040162003b53565b600060405180830381600087803b1580156200265857600080fd5b505af11580156200266d573d6000803e3d6000fd5b505050506200271d565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b1580156200270357600080fd5b505af115801562002718573d6000803e3d6000fd5b505050505b6040517f204e1c7a0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000008116917f00000000000000000000000000000000000000000000000000000000000000009091169063204e1c7a90602401602060405180830381865afa158015620027c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027e9919062003113565b6001600160a01b031614620028675760405162461bcd60e51b815260206004820152603160248201527f44656c61794275666665723a206e65772073657120696e626f7820696d706c6560448201527f6d656e746174696f6e206e6f7420736574000000000000000000000000000000606482015260840162000e8a565b7f000000000000000000000000000000000000000000000000000000000000000015157f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b678a666040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200290f9190620035e1565b151514620029865760405162461bcd60e51b815260206004820152602660248201527f44656c61794275666665723a20697344656c617942756666657261626c65206e60448201527f6f74207365740000000000000000000000000000000000000000000000000000606482015260840162000e8a565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa158015620029eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a11919062003b8a565b93509350935093506000600c8362002a2a919062003bd7565b1562002a505762002a3d600c8462003bee565b62002a4a90600162003c05565b62002a5d565b62002a5d600c8462003bee565b905084811162002a6e578462002a70565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b815260040162002ae0919062003c1b565b600060405180830381600087803b15801562002afb57600080fd5b505af115801562002b10573d6000803e3d6000fd5b505050506000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa15801562002b79573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b9f919062003b8a565b935093509350935088841462002bf85760405162461bcd60e51b815260206004820181905260248201527f44656c61794275666665723a2064656c6179426c6f636b73206e6f7420736574604482015260640162000e8a565b86821462002c6f5760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a2064656c61795365636f6e6473206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b87831462002ce65760405162461bcd60e51b815260206004820152602160248201527f44656c61794275666665723a20667574757265426c6f636b73206e6f7420736560448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b85811462002d5d5760405162461bcd60e51b815260206004820152602260248201527f44656c61794275666665723a206675747572655365636f6e6473206e6f74207360448201527f6574000000000000000000000000000000000000000000000000000000000000606482015260840162000e8a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562002db957600080fd5b505af115801562002dce573d6000803e3d6000fd5b5050505050505050505050505050565b610ed38062003c4883390190565b61140e8062004b1b83390190565b604051806102600160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200162002e996040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ebd62002f04565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002f1962002f4e565b815260200160008152600060209091015290565b604051806040016040528062002f4262002f4e565b81526020016000905290565b604051806040016040528062002f6362002f6d565b815260200162002eff5b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b60405290565b6040805190810167ffffffffffffffff8111828210171562002fc85762002fc862002f8b565b604051601f8201601f1916810167ffffffffffffffff8111828210171562003020576200302062002f8b565b604052919050565b600067ffffffffffffffff82111562003045576200304562002f8b565b5060051b60200190565b6001600160a01b03811681146200306557600080fd5b50565b600060208083850312156200307c57600080fd5b823567ffffffffffffffff8111156200309457600080fd5b8301601f81018513620030a657600080fd5b8035620030bd620030b78262003028565b62002ff4565b81815260059190911b82018301908381019087831115620030dd57600080fd5b928401925b8284101562003108578335620030f8816200304f565b82529284019290840190620030e2565b979650505050505050565b6000602082840312156200312657600080fd5b815162003133816200304f565b9392505050565b6000815180845260005b81811015620031625760208185018101518683018201520162003144565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b83811015620031b45781518752958201959082019060010162003196565b509495945050505050565b80518260005b6002811015620031e6578251825260209283019290910190600101620031c5565b5050506020808201516040840160005b60028110156200321f57825167ffffffffffffffff1682529183019190830190600101620031f6565b505050505050565b634e487b7160e01b600052602160045260246000fd5b600381106200325c57634e487b7160e01b600052602160045260246000fd5b9052565b6200326d828251620031bf565b60208101516200328160808401826200323d565b506040015160a09190910152565b805167ffffffffffffffff16825260006103a06020830151620032bd60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151620032ed60808601826001600160a01b03169052565b5060a08301516200330960a08601826001600160a01b03169052565b5060c083015160c085015260e08301518160e08601526200332d828601826200313a565b91505061010080840151858303828701526200334a838262003182565b6101208681015180518983015260208101516101408a015260408101516101608a015260608101516101808a01529194509250905050506101408301516101a0818187015261016085015191506101c0828188015261018086015192506101e083818901528287015193506102009250620033c88389018562003260565b908601516102c08801528501516001600160a01b03166102e087015284015160ff166103008601525061022083015167ffffffffffffffff908116610320860152610240840151805182166103408701526020810151821661036087015260408101519091166103808601525b509392505050565b60208152600062001f6c60208301846200328f565b60006101406001600160a01b03808e16845267ffffffffffffffff8d166020850152808c1660408501528a60608501528960808501528860a085015280881660c085015280871660e08501525060ff851661010084015280610120840152620034be8184018562003182565b9d9c50505050505050505050505050565b6000610140808352620034e5818401866200328f565b9150506001600160a01b03835116602083015260208301516200351360408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e08301516101006200359a818501836001600160a01b03169052565b8401516001600160a01b038116610120850152905062003435565b634e487b7160e01b600052603260045260246000fd5b80518015158114620035dc57600080fd5b919050565b600060208284031215620035f457600080fd5b62001f6c82620035cb565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620036495762003649620035ff565b5060010190565b600081518084526020808501945080840160005b83811015620031b45781516001600160a01b03168752958201959082019060010162003664565b604081526000620036a0604083018562003650565b82810360208481019190915284518083528582019282019060005b81811015620036db578451151583529383019391830191600101620036bb565b5090979650505050505050565b805167ffffffffffffffff81168114620035dc57600080fd5b6000602082840312156200371457600080fd5b62001f6c82620036e8565b600060a082840312156200373257600080fd5b60405160a0810181811067ffffffffffffffff8211171562003758576200375862002f8b565b604052825181526200376d60208401620036e8565b60208201526200378060408401620036e8565b60408201526200379360608401620036e8565b6060820152620037a660808401620035cb565b60808201529392505050565b60208152600062001f6c602083018462003650565b67ffffffffffffffff828116828216039080821115620037eb57620037eb620035ff565b5092915050565b600067ffffffffffffffff808316818103620038125762003812620035ff565b6001019392505050565b600061018082840312156200383057600080fd5b6200383a62002fa1565b8251815260208301516020820152604083015160408201526200386060608401620036e8565b60608201526200387360808401620036e8565b60808201526200388660a08401620036e8565b60a08201526200389960c08401620036e8565b60c0820152620038ac60e08401620036e8565b60e0820152610100620038c1818501620036e8565b90820152610120620038d5848201620036e8565b90820152610140620038e9848201620036e8565b90820152610160928301519281019290925250919050565b600082601f8301126200391357600080fd5b6200391d62002fce565b8060408401858111156200393057600080fd5b845b8181101562003955576200394681620036e8565b84526020938401930162003932565b509095945050505050565b805160038110620035dc57600080fd5b60008082840360c08112156200398557600080fd5b60a08112156200399457600080fd5b6200399e62002fce565b6080821215620039ad57600080fd5b620039b762002fce565b915085601f860112620039c957600080fd5b620039d362002fce565b806040870188811115620039e657600080fd5b875b8181101562003a02578051845260209384019301620039e8565b5081855262003a12898262003901565b602086015250505081815262003a2b6080860162003960565b602082015260a094909401519395939450505050565b600060c08201905062003a56828551620031bf565b602084015162003a6a60808401826200323d565b508260a08301529392505050565b60006020828403121562003a8b57600080fd5b5051919050565b6000602080838503121562003aa657600080fd5b825167ffffffffffffffff81111562003abe57600080fd5b8301601f8101851362003ad057600080fd5b805162003ae1620030b78262003028565b81815260059190911b8201830190838101908783111562003b0157600080fd5b928401925b82841015620031085783518252928401929084019062003b06565b6060810162001f6f8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003b8160608301846200313a565b95945050505050565b6000806000806080858703121562003ba157600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b60008262003be95762003be962003bc1565b500690565b60008262003c005762003c0062003bc1565b500490565b8082018082111562001f6f5762001f6f620035ff565b815181526020808301519082015260408083015190820152606080830151908201526080810162001f6f56fe608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564608060405234801561001057600080fd5b506113ee806100206000396000f3fe6080604052600436106100225760003560e01c8063d384644b1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d792919061113d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e7e6aa70000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461132b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a661134c565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61132b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff61134c565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e61132b565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d146104585761045861134c565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610648838360405180606001604052806027815260200161139260279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf9190611362565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c919061137e565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b604051610260810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103a08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008084013583811115610e7357600080fd5b610e7f8a828701610a82565b8284015250506101209150610e9688838501610b02565b828201526101a0915081830135848201526101c09350838301356101608201526101e080840135610180830152610200610ed28a828701610bce565b848401526102c085013586840152610eed6102e086016109fb565b82840152610efe6103008601610c7e565b9083015250610f1061032084016109e3565b610220820152610f24886103408501610c8f565b61024082015280955050505050610f3e8460208501610cde565b90509250929050565b60005b83811015610f62578181015183820152602001610f4a565b50506000910152565b60008151808452610f83816020860160208601610f47565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b60038110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b600281101561101b578251825260209283019290910190600101610ffc565b505050602090810151906040840160005b600281101561105357835167ffffffffffffffff168252928201929082019060010161102c565b505082015190506110676080840182610fd2565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110b660608401826001600160a01b03169052565b5060808101516110d160808401826001600160a01b03169052565b5060a08101516110ec60a08401826001600160a01b03169052565b5060c081015161110760c08401826001600160a01b03169052565b5060e081015161112260e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b600061014080835261115b818401865167ffffffffffffffff169052565b6020850151610160611177818601836001600160a01b03169052565b604087015191506101808281870152606088015192506101a08381880152608089015193506101c06111b3818901866001600160a01b03169052565b60a08a015194506101e06111d1818a01876001600160a01b03169052565b60c08b0151955061020086818b015260e08c015196506102206103a0818c01526111ff6104e08c0189610f6b565b97506101008d01516102407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301818e015261123d8a83610f97565b99506101208f015191506112766102608e0183805182526020810151602083015260408101516040830152606081015160608301525050565b998e01516102e08d0152878e01516103008d0152868e01516103208d0152858e0151996112a76103408e018c610ff4565b948e01516104008d015250918c01516001600160a01b03166104208b01528b015160ff166104408a01528a015167ffffffffffffffff9081166104608a0152908a0151805182166104808a0152602081015182166104a08a015260408101519091166104c0890152945061131a92505050565b915061082490506020830184611075565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251611374818460208701610f47565b9190910192915050565b6020815260006106486020830184610f6b56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122031f55e3d5fa05a560e2a6fd55fb29943763c9e5689f86f5b2da68232793f691264736f6c63430008110033a2646970667358221220a64a84b35448a6fba6092676c69c8d42a04350aec69257e44edc2f7c712707be64736f6c63430008110033608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea26469706673582212206f17ff74638b091f76dd1fd0369b5226eebb0992cba2c4263a21abfb3c644d8e64736f6c6343000811003360a060405234801561001057600080fd5b50604051610c6d380380610c6d83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610ba36100ca600039600081816101c801528181610219015281816102a20152818161035d015281816103da015281816104f7015281816105c2015281816106310152818161069101526107280152610ba36000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a23c44b111610076578063cb23bcb51161005b578063cb23bcb5146101c3578063dff69787146101ea578063facd743b146101f257600080fd5b8063a23c44b114610152578063bc45e0ae146101bb57600080fd5b80636ddd3744116100a75780636ddd3744146101095780638ee1a1261461011c57806392c8134c1461013257600080fd5b806355840a58146100c357806365f7f80d146100e8575b600080fd5b6100cb610215565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f061029e565b60405167ffffffffffffffff90911681526020016100df565b6100cb6101173660046107ae565b610322565b6101246103d6565b6040519081526020016100df565b6101456101403660046107ae565b61045a565b6040516100df91906107d2565b6101656101603660046108eb565b610563565b6040516100df9190600060a08201905082518252602083015167ffffffffffffffff8082166020850152806040860151166040850152806060860151166060850152505060808301511515608083015292915050565b6100cb61062d565b6100cb7f000000000000000000000000000000000000000000000000000000000000000081565b6100f061068d565b6102056102003660046108eb565b6106ed565b60405190151581526020016100df565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610908565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610935565b6040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610908565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610952565b6040805161018081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018190526101208201819052610140820181905261016082015290517f92c8134c00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906392c8134c9060240161018060405180830381865afa15801561053f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d091906109bc565b6040805160a08101825260008082526020820181905281830181905260608201819052608082015290517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610a9e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b6040517ffacd743b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063facd743b90602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610b52565b67ffffffffffffffff811681146107ab57600080fd5b50565b6000602082840312156107c057600080fd5b81356107cb81610795565b9392505050565b600061018082019050825182526020830151602083015260408301516040830152606083015161080e606084018267ffffffffffffffff169052565b50608083015161082a608084018267ffffffffffffffff169052565b5060a083015161084660a084018267ffffffffffffffff169052565b5060c083015161086260c084018267ffffffffffffffff169052565b5060e083015161087e60e084018267ffffffffffffffff169052565b506101008381015167ffffffffffffffff81168483015250506101208381015167ffffffffffffffff81168483015250506101408381015167ffffffffffffffff811684830152505061016092830151919092015290565b6001600160a01b03811681146107ab57600080fd5b6000602082840312156108fd57600080fd5b81356107cb816108d6565b60006020828403121561091a57600080fd5b81516107cb816108d6565b805161093081610795565b919050565b60006020828403121561094757600080fd5b81516107cb81610795565b60006020828403121561096457600080fd5b5051919050565b604051610180810167ffffffffffffffff811182821017156109b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b600061018082840312156109cf57600080fd5b6109d761096b565b8251815260208301516020820152604083015160408201526109fb60608401610925565b6060820152610a0c60808401610925565b6080820152610a1d60a08401610925565b60a0820152610a2e60c08401610925565b60c0820152610a3f60e08401610925565b60e0820152610100610a52818501610925565b90820152610120610a64848201610925565b90820152610140610a76848201610925565b90820152610160928301519281019290925250919050565b8051801515811461093057600080fd5b600060a08284031215610ab057600080fd5b60405160a0810181811067ffffffffffffffff82111715610afa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020830151610b0f81610795565b60208201526040830151610b2281610795565b60408201526060830151610b3581610795565b6060820152610b4660808401610a8e565b60808201529392505050565b600060208284031215610b6457600080fd5b6107cb82610a8e56fea264697066735822122039c32239ca8cecd157175b73f3f47cd8547ebdf92e1a6567375fd2c867d6fa9f64736f6c63430008110033608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220023dc6f41b732f8d9086c50d1d0b8d7f12e641122375e74523ccc087bf76836564736f6c63430008110033", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"excessStakeReceiver\",\"type\":\"address\"},{\"internalType\":\"contractIOldRollup\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"osp\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.Contracts\",\"name\":\"contracts\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rei\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seqInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.ProxyAdmins\",\"name\":\"proxyAdmins\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"seqInbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rei\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newRollupUser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newRollupAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"internalType\":\"structBOLDUpgradeAction.Implementations\",\"name\":\"implementations\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"challengePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmt\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeAmounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumAssertionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"validatorAfkBlocks\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"disableValidatorWhitelist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"blockLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bigStepLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"smallStepLeafSize\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDelayBufferable\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structBOLDUpgradeAction.Settings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"RollupMigrated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BIGSTEP_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLOCK_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHALLENGE_GRACE_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CHALLENGE_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONFIRM_PERIOD_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DISABLE_VALIDATOR_WHITELIST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXCESS_STAKE_RECEIVER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_CHALLENGE_MANAGER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_NEW_ROLLUP_ADMIN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_NEW_ROLLUP_USER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_OUTBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_REI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IMPL_SEQUENCER_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DELAY_BUFFERABLE\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINIMUM_ASSERTION_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINI_STAKE_AMOUNTS_STORAGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NUM_BIGSTEP_LEVEL\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OLD_ROLLUP\",\"outputs\":[{\"internalType\":\"contractIOldRollup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OSP\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OUTBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PREIMAGE_LOOKUP\",\"outputs\":[{\"internalType\":\"contractStateHashPreImageLookup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_BRIDGE\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_INBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_OUTBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_REI\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROXY_ADMIN_SEQUENCER_INBOX\",\"outputs\":[{\"internalType\":\"contractProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REI\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REPLENISH_RATE_IN_BASIS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECONDS_PER_SLOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEQ_INBOX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SMALLSTEP_LEAF_SIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_AMOUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_AFK_BLOCKS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"expectedRollupAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"perform\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rollupAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"validateRollupDeployedAtAddress\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6105806040523480156200001257600080fd5b506040516200758f3803806200758f833981016040819052620000359162000718565b83516001600160a01b039081166101005260208086015182166101205260408087015183166101405260608088015184166101605260808089015185166101805260a089015185166101a05260c089015185166101c05260e089015185166103a052875185166103c0529287015184166103e05286820151841661040052860151831661042052908501519091166104405251620000d3906200026d565b604051809103906000f080158015620000f0573d6000803e3d6000fd5b506001600160a01b0390811661046052825181166104805260208084015182166104a05260408085015183166104c05260608086015184166104e05260808087015185166105005260a08088015186166105205260c08089015187166105405260e0808a01518816610560529188015161026052870151610280528601516001600160401b039081166102a052865181166101e0529386015190931661020052848201519093166102205291830151610240528201519051620001b3906200027b565b620001bf91906200083f565b604051809103906000f080158015620001dc573d6000803e3d6000fd5b506001600160a01b03166103005261010081015115156102c05261012081015160805261014081015160a05261016081015160c05261018081015160ff1660e0526101a08101516001600160401b039081166102e0526101c08201511515610320526101e0909101805160200151821661034052805151821661036052516040015116610380525062000885915050565b610a2d80620068c283390190565b6102a080620072ef83390190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715620002c557620002c562000289565b60405290565b60405161020081016001600160401b0381118282101715620002c557620002c562000289565b6001600160a01b03811681146200030757600080fd5b50565b80516200031781620002f1565b919050565b600060a082840312156200032f57600080fd5b60405160a081016001600160401b038111828210171562000354576200035462000289565b806040525080915082516200036981620002f1565b815260208301516200037b81620002f1565b602082015260408301516200039081620002f1565b60408201526060830151620003a581620002f1565b60608201526080830151620003ba81620002f1565b6080919091015292915050565b60006101008284031215620003db57600080fd5b620003e56200029f565b90508151620003f481620002f1565b815260208201516200040681620002f1565b602082015262000419604083016200030a565b60408201526200042c606083016200030a565b60608201526200043f608083016200030a565b60808201526200045260a083016200030a565b60a08201526200046560c083016200030a565b60c08201526200047860e083016200030a565b60e082015292915050565b80516001600160401b03811681146200031757600080fd5b600082601f830112620004ad57600080fd5b815160206001600160401b0380831115620004cc57620004cc62000289565b8260051b604051601f19603f83011681018181108482111715620004f457620004f462000289565b6040529384528581018301938381019250878511156200051357600080fd5b83870191505b84821015620005345781518352918301919083019062000519565b979650505050505050565b805180151581146200031757600080fd5b805160ff811681146200031757600080fd5b6000606082840312156200057557600080fd5b604051606081016001600160401b03811182821017156200059a576200059a62000289565b604052905080620005ab8362000483565b8152620005bb6020840162000483565b6020820152620005ce6040840162000483565b60408201525092915050565b60006102408284031215620005ee57600080fd5b620005f8620002cb565b9050620006058262000483565b8152620006156020830162000483565b602082015262000628604083016200030a565b60408201526060828101519082015260808201516001600160401b038111156200065157600080fd5b6200065f848285016200049b565b60808301525060a082015160a082015260c082015160c08201526200068760e0830162000483565b60e08201526101006200069c8184016200053f565b90820152610120828101519082015261014080830151908201526101608083015190820152610180620006d181840162000550565b908201526101a0620006e583820162000483565b908201526101c0620006f98382016200053f565b908201526101e06200070e8484830162000562565b9082015292915050565b6000806000808486036102c08112156200073157600080fd5b610100808212156200074257600080fd5b6200074c6200029f565b915086516200075b81620002f1565b82526200076b602088016200030a565b60208301526200077e604088016200030a565b604083015262000791606088016200030a565b6060830152620007a4608088016200030a565b6080830152620007b760a088016200030a565b60a0830152620007ca60c088016200030a565b60c0830152620007dd60e088016200030a565b60e0830152819550620007f3888289016200031c565b9450505062000807866101a08701620003c7565b6102a08601519092506001600160401b038111156200082557600080fd5b6200083387828801620005da565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b8181101562000879578351835292840192918401916001016200085b565b50909695505050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161030051610320516103405161036051610380516103a0516103c0516103e05161040051610420516104405161046051610480516104a0516104c0516104e05161050051610520516105405161056051615ca262000c20600039600081816104480152610b4a0152600081816103750152610ce80152600081816105580152610d1701526000818161086501526123db015260008181610815015261229f01526000818161068301526121d801526000818161083d0152818161259a0152612750015260008181610905015261206f01526000818161088d01528181611ac50152611b8f01526000818161058001526122010152600081816104ff0152818161256a015261277801526000818161053001526122c90152600081816103de01528181610b6b01526120980152600081816103b6015261240501526000818161073c0152610e5b015260008181610955015261262601526000818161065b01526125c60152600081816108dd01526125f601526000818161092d015261254301526000818161079d0152611ea70152600081816109940152611ff20152600081816107640152818161126301526112b00152600081816105a80152611e7701526000818161033a0152611e510152600081816106ab0152611e16015260008181610a0c0152611d280152600081816104980152611cf90152600081816106fb0152610e3a0152600081816104060152611cc90152600081816107c501528181610c4c01526121af01526000818161047001528181610c7b015281816123b201526124660152600081816107ed01528181610caa01528181612276015261232a0152600081816108b501528181610c1d01528181612522015281816127df015281816128c501526129670152600081816109bc01528181610bee01528181612046015261212e0152600081816106d301528181610d460152818161109d0152818161132101528181611579015281816115f0015281816116e80152818161179c015281816118a701528181611956015281816119850152611d4e01526000818161063301528181610e930152611de70152600081816105d00152611fc90152600081816109e40152611f870152600081816104c00152611f6101526000818161060b0152611f3b0152615ca26000f3fe60806040523480156200001157600080fd5b50600436106200032f5760003560e01c80638765240f11620001b1578063cc8089bb11620000f5578063eb657a4e11620000a3578063ee9a31a2116200007a578063ee9a31a214620009b6578063fa28742014620009de578063faf5625f1462000a0657600080fd5b8063eb657a4e146200094f578063ebe03a931462000977578063ec4f74ce146200098e57600080fd5b8063d49d518111620000d8578063d49d518114620008d7578063dae7cb8b14620008ff578063e8180c29146200092757600080fd5b8063cc8089bb1462000887578063d384cb9514620008af57600080fd5b8063b5e00c3f116200015f578063c21c42331162000136578063c21c4233146200080f578063c519d1511462000837578063c897f55e146200085f57600080fd5b8063b5e00c3f1462000797578063b701069714620007bf578063be41b36714620007e757600080fd5b8063999f20db1162000194578063999f20db146200071d5780639f9854e51462000736578063b38d57f0146200075e57600080fd5b80638765240f14620006cd57806391ddb28514620006f557600080fd5b8063304b907111620002795780635d9e24441162000227578063785ffb3711620001fe578063785ffb371462000655578063817cd312146200067d57806385e1f4d014620006a557600080fd5b80635d9e244414620005ca578063609fb503146200060557806364f4992a146200062d57600080fd5b80634692de5d116200025c5780634692de5d14620005525780634b2f51ef146200057a5780634ceccfe514620005a257600080fd5b8063304b907114620005215780633c2b7840146200052a57600080fd5b806310a662e211620002e35780631ccc2cd111620002ba5780631ccc2cd114620004ba57806328fb228c14620004e25780632cfb7ca314620004f957600080fd5b806310a662e214620004425780631b142ea7146200046a5780631c39b672146200049257600080fd5b80630787484b11620003185780630787484b14620003b05780630a54257d14620003d85780631047fc52146200040057600080fd5b80623c78fb1462000334578062f9731e146200036f575b600080fd5b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff909116815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b62000397620004f336600462002bc0565b62000a2e565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c600c81565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620005f27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200162000366565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200072e36600462002bef565b62000aa0565b005b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b604051901515815260200162000366565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b620007867f000000000000000000000000000000000000000000000000000000000000000081565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620007346200098836600462002cf9565b62000b2e565b620004287f000000000000000000000000000000000000000000000000000000000000000081565b620003977f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6200035c7f000000000000000000000000000000000000000000000000000000000000000081565b6000808260405160200162000a4591815260200190565b60405160208183030381529060405280519060200120905062000a96816040518060200162000a7490620029e2565b6020820181038252601f19601f820116604052508051906020012086620014ef565b9150505b92915050565b6000836001600160a01b03163b11801562000ad75750826001600160a01b031662000acc838362000a2e565b6001600160a01b0316145b62000b295760405162461bcd60e51b815260206004820152600d60248201527f414444525f4d49534d415443480000000000000000000000000000000000000060448201526064015b60405180910390fd5b505050565b62000b3862001577565b600062000b4462001948565b905060007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405162000b9890620029f0565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000bdb573d6000803e3d6000fd5b50905060006040518061012001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602001836001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000da3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dc9919062002da4565b6001600160a01b0316815250905060008360c0015160405160200162000df191815260200190565b604051602081830303815290604052805190602001209050600062000e1b308660c0015162000a2e565b905062000e28816200202f565b836001600160a01b0316631a72d54c827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008961018001518a6101a001518b6101c001518c602001517f00000000000000000000000000000000000000000000000000000000000000008e61024001518f61014001516040518b63ffffffff1660e01b815260040162000ee59a9998979695949392919062002dc4565b600060405180830381600087803b15801562000f0057600080fd5b505af115801562000f15573d6000803e3d6000fd5b5050505060008260405162000f2a90620029e2565b8190604051809103906000f590508015801562000f4b573d6000803e3d6000fd5b509050816001600160a01b0316816001600160a01b03161462000fb15760405162461bcd60e51b815260206004820152601560248201527f554e455850435445445f524f4c4c55505f414444520000000000000000000000604482015260640162000b20565b608086018051309091526040517fadfef6ac0000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063adfef6ac9062001004908a9089906004016200308e565b600060405180830381600087803b1580156200101f57600080fd5b505af115801562001034573d6000803e3d6000fd5b50505050875160001462001261576000885167ffffffffffffffff81111562001061576200106162002c35565b6040519080825280602002602001820160405280156200108b578160200160208202803683370190505b50905060005b8951811015620011e1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663facd743b8b8381518110620010df57620010df620032b4565b60200260200101516040518263ffffffff1660e01b81526004016200111391906001600160a01b0391909116815260200190565b602060405180830381865afa15801562001131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011579190620032e0565b620011a55760405162461bcd60e51b815260206004820152601860248201527f554e45585045435445445f4e45575f56414c494441544f520000000000000000604482015260640162000b20565b6001828281518110620011bc57620011bc620032b4565b9115156020928302919091019091015280620011d88162003314565b91505062001091565b506040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063a3ffb772906200122b908c9085906004016200338a565b600060405180830381600087803b1580156200124657600080fd5b505af11580156200125b573d6000803e3d6000fd5b50505050505b7f0000000000000000000000000000000000000000000000000000000000000000156200131f576040517fa2b4f1d80000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000151560048201526001600160a01b0383169063a2b4f1d890602401600060405180830381600087803b1580156200130557600080fd5b505af11580156200131a573d6000803e3d6000fd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200139c575060408051601f3d908101601f19168201909252620013999181019062002da4565b60015b156200142b576001600160a01b0381161562001429576040517f0d561b370000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152841690630d561b3790602401600060405180830381600087803b1580156200140f57600080fd5b505af115801562001424573d6000803e3d6000fd5b505050505b505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528316906313af403590602401600060405180830381600087803b1580156200148857600080fd5b505af11580156200149d573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528a1660208201527f7e5cc5c3fce046d868d5918548df8d3e8ef9f09e6fb30a68081f1f1348cd0314935001905060405180910390a15050505050505050565b604080517fff00000000000000000000000000000000000000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201869052605580830186905283518084039091018152607590920190925280519101205b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620015d357600080fd5b505af1158015620015e8573d6000803e3d6000fd5b5050505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200164d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001673919062003400565b905060328167ffffffffffffffff1611156200168d575060325b60005b8167ffffffffffffffff168167ffffffffffffffff16101562001944576040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa15801562001738573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200175e919062002da4565b6040517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015620017e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200180a91906200341e565b9050806080015180156200182a5750606081015167ffffffffffffffff16155b156200192c57604080516001808252818301909252600091602080830190803683370190505090508281600081518110620018695762001869620032b4565b6001600160a01b0392831660209182029290920101526040517f7c75c2980000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000090911690637c75c29890620018e0908490600401620034b1565b600060405180830381600087803b158015620018fb57600080fd5b505af115801562001910573d6000803e3d6000fd5b50505050600185620019239190620034c6565b9450506200193c565b826200193881620034f1565b9350505b505062001690565b5050565b62001952620029fe565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166392c8134c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620019e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a08919062003400565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815267ffffffffffffffff909116600482015260240161018060405180830381865afa15801562001a67573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a8d91906200351b565b516040517f8eaa6ac00000000000000000000000000000000000000000000000000000000081526004810182905290915060009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638eaa6ac09060240160c060405180830381865afa15801562001b15573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b3b91906200366f565b9150915062001b4962002b20565b8251815260208084015190820190600281111562001b6b5762001b6b62002f5e565b9081600281111562001b815762001b8162002f5e565b905250836001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016633164413062001bbf84620024e0565b856040518363ffffffff1660e01b815260040162001bdf92919062003740565b602060405180830381865afa15801562001bfd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c23919062003777565b1462001c725760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206c617465737420657865637574696f6e2068617368000000604482015260640162000b20565b62001c9e6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160608101825260008082526020820181905291810191909152604051806102a001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001dab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001dd1919062003777565b8152602001306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000081526020016040518060200160405280600081525081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ec2ae16040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001f04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001f2e919081019062003791565b81526020018381526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f000000000000000000000000000000000000000000000000000000000000000081526020017f0000000000000000000000000000000000000000000000000000000000000000815260200184815260200185815260200160006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000060ff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16815260200182815250965050505050505090565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b158015620020df57600080fd5b505af1158015620020f4573d6000803e3d6000fd5b50506040517f919cc7060000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016925063919cc7069150602401600060405180830381600087803b1580156200217557600080fd5b505af11580156200218a573d6000803e3d6000fd5b505050506200219862002520565b60405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f000000000000000000000000000000000000000000000000000000000000000082166024840152917f0000000000000000000000000000000000000000000000000000000000000000909116906399a88ec490604401600060405180830381600087803b1580156200224857600080fd5b505af11580156200225d573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200230f57600080fd5b505af115801562002324573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200238457600080fd5b505af115801562002399573d6000803e3d6000fd5b505060405163266a23b160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081811660048401527f00000000000000000000000000000000000000000000000000000000000000008216602484015293507f00000000000000000000000000000000000000000000000000000000000000001691506399a88ec490604401600060405180830381600087803b1580156200244b57600080fd5b505af115801562002460573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620024c057600080fd5b505af1158015620024d5573d6000803e3d6000fd5b505050505050505050565b620024ea62002b49565b6040518060400160405280836000015181526020018360200151600281111562002518576200251862002f5e565b905292915050565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000001562002731577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639623609d827f000000000000000000000000000000000000000000000000000000000000000060405180606001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681525060405160240162002664919062003820565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa655d93700000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168152620026f79392919060040162003852565b600060405180830381600087803b1580156200271257600080fd5b505af115801562002727573d6000803e3d6000fd5b50505050620027d7565b60405163266a23b160e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f000000000000000000000000000000000000000000000000000000000000000016906399a88ec490604401600060405180830381600087803b158015620027bd57600080fd5b505af1158015620027d2573d6000803e3d6000fd5b505050505b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ebea461d6040518163ffffffff1660e01b8152600401608060405180830381865afa1580156200283c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002862919062003889565b93509350935093506000600c836200287b9190620038d6565b15620028a1576200288e600c84620038ed565b6200289b90600162003904565b620028ae565b620028ae600c84620038ed565b9050848111620028bf5784620028c1565b805b94507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b31761f86040518060800160405280888152602001878152602001868152602001858152506040518263ffffffff1660e01b81526004016200293191906200391a565b600060405180830381600087803b1580156200294c57600080fd5b505af115801562002961573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636ae71f126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620029c157600080fd5b505af1158015620029d6573d6000803e3d6000fd5b50505050505050505050565b611453806200394783390190565b610ed38062004d9a83390190565b604051806102a00160405280600067ffffffffffffffff16815260200160006001600160a01b03168152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016060815260200160008152602001600067ffffffffffffffff1681526020016060815260200162002ab56040518060800160405280600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200162002ad962002b20565b81526000602080830182905260408084018390526060808501849052608085018490528151908101825283815291820183905281019190915260a09091015290565b905290565b604051806060016040528062002b3562002b6a565b815260200160008152600060209091015290565b604051806040016040528062002b5e62002b6a565b81526020016000905290565b604051806040016040528062002b7f62002b89565b815260200162002b1b5b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462002bbd57600080fd5b50565b6000806040838503121562002bd457600080fd5b823562002be18162002ba7565b946020939093013593505050565b60008060006060848603121562002c0557600080fd5b833562002c128162002ba7565b9250602084013562002c248162002ba7565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b60405290565b6040805190810167ffffffffffffffff8111828210171562002c725762002c7262002c35565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002cca5762002cca62002c35565b604052919050565b600067ffffffffffffffff82111562002cef5762002cef62002c35565b5060051b60200190565b6000602080838503121562002d0d57600080fd5b823567ffffffffffffffff81111562002d2557600080fd5b8301601f8101851362002d3757600080fd5b803562002d4e62002d488262002cd2565b62002c9e565b81815260059190911b8201830190838101908783111562002d6e57600080fd5b928401925b8284101562002d9957833562002d898162002ba7565b8252928401929084019062002d73565b979650505050505050565b60006020828403121562002db757600080fd5b8151620015708162002ba7565b60006101408083016001600160a01b03808f168552602067ffffffffffffffff8f1681870152818e1660408701528c60608701528b60808701528a60a0870152818a1660c087015281891660e087015260ff8816610100870152836101208701528293508651915081835261016086019350808701925060005b8281101562002e5c5783518552938101939281019260010162002e3e565b50929f9e505050505050505050505050505050565b6000815180845260005b8181101562002e995760208185018101518683018201520162002e7b565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101562002eeb5781518752958201959082019060010162002ecd565b509495945050505050565b80518260005b600281101562002f1d57825182526020928301929091019060010162002efc565b5050506020808201516040840160005b600281101562002f5657825167ffffffffffffffff168252918301919083019060010162002f2d565b505050505050565b634e487b7160e01b600052602160045260246000fd5b6003811062002f9357634e487b7160e01b600052602160045260246000fd5b9052565b62002fa482825162002ef6565b602081015162002fb8608084018262002f74565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516200300860608401826001600160a01b03169052565b5060808101516200302460808401826001600160a01b03169052565b5060a08101516200304060a08401826001600160a01b03169052565b5060c08101516200305c60c08401826001600160a01b03169052565b5060e08101516200307860e08401826001600160a01b03169052565b50610100908101516001600160a01b0316910152565b6000610140808352620030ad818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c0620030fe818801856001600160a01b03169052565b60a089015193506101e06200311d818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526200314d6105208b018862002e71565b96506101008c015161024081818d01526101208e015191506102606200317e818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e0152620031be8a8c62002eb9565b9a506101608f01519950620031f86102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506200322c6103808e018b62002f97565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a01529450620032a29350505050565b50905062001570602083018462002fc6565b634e487b7160e01b600052603260045260246000fd5b80518015158114620032db57600080fd5b919050565b600060208284031215620032f357600080fd5b6200157082620032ca565b634e487b7160e01b600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620033485762003348620032fe565b5060010190565b600081518084526020808501945080840160005b8381101562002eeb5781516001600160a01b03168752958201959082019060010162003363565b6040815260006200339f60408301856200334f565b82810360208481019190915284518083528582019282019060005b81811015620033da578451151583529383019391830191600101620033ba565b5090979650505050505050565b805167ffffffffffffffff81168114620032db57600080fd5b6000602082840312156200341357600080fd5b6200157082620033e7565b600060a082840312156200343157600080fd5b60405160a0810181811067ffffffffffffffff8211171562003457576200345762002c35565b604052825181526200346c60208401620033e7565b60208201526200347f60408401620033e7565b60408201526200349260608401620033e7565b6060820152620034a560808401620032ca565b60808201529392505050565b6020815260006200157060208301846200334f565b67ffffffffffffffff828116828216039080821115620034ea57620034ea620032fe565b5092915050565b600067ffffffffffffffff808316818103620035115762003511620032fe565b6001019392505050565b600061018082840312156200352f57600080fd5b6200353962002c4b565b8251815260208301516020820152604083015160408201526200355f60608401620033e7565b60608201526200357260808401620033e7565b60808201526200358560a08401620033e7565b60a08201526200359860c08401620033e7565b60c0820152620035ab60e08401620033e7565b60e0820152610100620035c0818501620033e7565b90820152610120620035d4848201620033e7565b90820152610140620035e8848201620033e7565b90820152610160928301519281019290925250919050565b600082601f8301126200361257600080fd5b6200361c62002c78565b8060408401858111156200362f57600080fd5b845b8181101562003654576200364581620033e7565b84526020938401930162003631565b509095945050505050565b805160038110620032db57600080fd5b60008082840360c08112156200368457600080fd5b60a08112156200369357600080fd5b6200369d62002c78565b6080821215620036ac57600080fd5b620036b662002c78565b915085601f860112620036c857600080fd5b620036d262002c78565b806040870188811115620036e557600080fd5b875b8181101562003701578051845260209384019301620036e7565b5081855262003711898262003600565b60208601525050508181526200372a608086016200365f565b602082015260a094909401519395939450505050565b600060c0820190506200375582855162002ef6565b602084015162003769608084018262002f74565b508260a08301529392505050565b6000602082840312156200378a57600080fd5b5051919050565b60006020808385031215620037a557600080fd5b825167ffffffffffffffff811115620037bd57600080fd5b8301601f81018513620037cf57600080fd5b8051620037e062002d488262002cd2565b81815260059190911b820183019083810190878311156200380057600080fd5b928401925b8284101562002d995783518252928401929084019062003805565b6060810162000a9a8284805167ffffffffffffffff908116835260208083015182169084015260409182015116910152565b60006001600160a01b0380861683528085166020840152506060604083015262003880606083018462002e71565b95945050505050565b60008060008060808587031215620038a057600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601260045260246000fd5b600082620038e857620038e8620038c0565b500690565b600082620038ff57620038ff620038c0565b500490565b8082018082111562000a9a5762000a9a620032fe565b815181526020808301519082015260408083015190820152606080830151908201526080810162000a9a56fe608060405234801561001057600080fd5b50611433806100206000396000f3fe6080604052600436106100225760003560e01c8063adfef6ac1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d7929190611158565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ee5ef0c0000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104611370565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a6611391565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611370565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff611391565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e611370565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d1461045857610458611391565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061064883836040518060600160405280602781526020016113d760279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf91906113a7565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c91906113c3565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b6040516102a0810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103e08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008381013590820152610120610e788185016109e3565b908201528284013582811115610e8d57600080fd5b610e9989828601610a82565b85830152506101609350610eaf88858501610b02565b848201526101e09350838301356101808201526102009150818301356101a0820152610220808401356101c0830152610240610eed8a828701610bce565b8684015261030085013584840152610f0861032086016109fb565b82840152610f196103408601610c7e565b9083015250610f2b61036084016109e3565b610260820152610f3f886103808501610c8f565b61028082015280955050505050610f598460208501610cde565b90509250929050565b60005b83811015610f7d578181015183820152602001610f65565b50506000910152565b60008151808452610f9e816020860160208601610f62565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6003811061100b57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b6002811015611036578251825260209283019290910190600101611017565b505050602090810151906040840160005b600281101561106e57835167ffffffffffffffff1682529282019290820190600101611047565b505082015190506110826080840182610fed565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110d160608401826001600160a01b03169052565b5060808101516110ec60808401826001600160a01b03169052565b5060a081015161110760a08401826001600160a01b03169052565b5060c081015161112260c08401826001600160a01b03169052565b5060e081015161113d60e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b6000610140808352611176818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c06111c6818801856001600160a01b03169052565b60a089015193506101e06111e4818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526112126105208b0188610f86565b96506101008c015161024081818d01526101208e01519150610260611242818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e01526112808a8c610fb2565b9a506101608f015199506112b96102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506112eb6103808e018b61100f565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a015294506113609350505050565b5090506108246020830184611090565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516113b9818460208701610f62565b9190910192915050565b6020815260006106486020830184610f8656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c50f3bd10cc10c9d6a7e3c77a603ea076a398bfabf2598ec9e1d71302b8c13b364736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e2e928ef4546eee17482616f7037c9b105095b17ba3f206eac14d79f56342fab64736f6c63430008110033608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea264697066735822122003e908b2ad90a8679efc2624edf7a504089600109aba032cab81af5798ba4d5b64736f6c63430008110033608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220fcc832f04c9e38c8960c7609bb3c40492b00e6ba0c04f3665f38d872910fdb9064736f6c63430008110033", } // BOLDUpgradeActionABI is the input ABI used to generate the binding from. @@ -1805,37 +1808,6 @@ func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) IMPLOUTBOX() (common.A return _BOLDUpgradeAction.Contract.IMPLOUTBOX(&_BOLDUpgradeAction.CallOpts) } -// IMPLPATCHEDOLDROLLUPUSER is a free data retrieval call binding the contract method 0x2db93bdc. -// -// Solidity: function IMPL_PATCHED_OLD_ROLLUP_USER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) IMPLPATCHEDOLDROLLUPUSER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _BOLDUpgradeAction.contract.Call(opts, &out, "IMPL_PATCHED_OLD_ROLLUP_USER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// IMPLPATCHEDOLDROLLUPUSER is a free data retrieval call binding the contract method 0x2db93bdc. -// -// Solidity: function IMPL_PATCHED_OLD_ROLLUP_USER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionSession) IMPLPATCHEDOLDROLLUPUSER() (common.Address, error) { - return _BOLDUpgradeAction.Contract.IMPLPATCHEDOLDROLLUPUSER(&_BOLDUpgradeAction.CallOpts) -} - -// IMPLPATCHEDOLDROLLUPUSER is a free data retrieval call binding the contract method 0x2db93bdc. -// -// Solidity: function IMPL_PATCHED_OLD_ROLLUP_USER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) IMPLPATCHEDOLDROLLUPUSER() (common.Address, error) { - return _BOLDUpgradeAction.Contract.IMPLPATCHEDOLDROLLUPUSER(&_BOLDUpgradeAction.CallOpts) -} - // IMPLREI is a free data retrieval call binding the contract method 0xc21c4233. // // Solidity: function IMPL_REI() view returns(address) @@ -1991,6 +1963,37 @@ func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) MAX() (uint64, error) return _BOLDUpgradeAction.Contract.MAX(&_BOLDUpgradeAction.CallOpts) } +// MINIMUMASSERTIONPERIOD is a free data retrieval call binding the contract method 0x003c78fb. +// +// Solidity: function MINIMUM_ASSERTION_PERIOD() view returns(uint256) +func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) MINIMUMASSERTIONPERIOD(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _BOLDUpgradeAction.contract.Call(opts, &out, "MINIMUM_ASSERTION_PERIOD") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// MINIMUMASSERTIONPERIOD is a free data retrieval call binding the contract method 0x003c78fb. +// +// Solidity: function MINIMUM_ASSERTION_PERIOD() view returns(uint256) +func (_BOLDUpgradeAction *BOLDUpgradeActionSession) MINIMUMASSERTIONPERIOD() (*big.Int, error) { + return _BOLDUpgradeAction.Contract.MINIMUMASSERTIONPERIOD(&_BOLDUpgradeAction.CallOpts) +} + +// MINIMUMASSERTIONPERIOD is a free data retrieval call binding the contract method 0x003c78fb. +// +// Solidity: function MINIMUM_ASSERTION_PERIOD() view returns(uint256) +func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) MINIMUMASSERTIONPERIOD() (*big.Int, error) { + return _BOLDUpgradeAction.Contract.MINIMUMASSERTIONPERIOD(&_BOLDUpgradeAction.CallOpts) +} + // MINISTAKEAMOUNTSSTORAGE is a free data retrieval call binding the contract method 0xb5e00c3f. // // Solidity: function MINI_STAKE_AMOUNTS_STORAGE() view returns(address) @@ -2394,37 +2397,6 @@ func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) REPLENISHRATEINBASIS() return _BOLDUpgradeAction.Contract.REPLENISHRATEINBASIS(&_BOLDUpgradeAction.CallOpts) } -// ROLLUPREADER is a free data retrieval call binding the contract method 0x4e0e75fb. -// -// Solidity: function ROLLUP_READER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) ROLLUPREADER(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _BOLDUpgradeAction.contract.Call(opts, &out, "ROLLUP_READER") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// ROLLUPREADER is a free data retrieval call binding the contract method 0x4e0e75fb. -// -// Solidity: function ROLLUP_READER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionSession) ROLLUPREADER() (common.Address, error) { - return _BOLDUpgradeAction.Contract.ROLLUPREADER(&_BOLDUpgradeAction.CallOpts) -} - -// ROLLUPREADER is a free data retrieval call binding the contract method 0x4e0e75fb. -// -// Solidity: function ROLLUP_READER() view returns(address) -func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) ROLLUPREADER() (common.Address, error) { - return _BOLDUpgradeAction.Contract.ROLLUPREADER(&_BOLDUpgradeAction.CallOpts) -} - // SECONDSPERSLOT is a free data retrieval call binding the contract method 0x304b9071. // // Solidity: function SECONDS_PER_SLOT() view returns(uint256) @@ -2611,6 +2583,97 @@ func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) THRESHOLD() (uint64, e return _BOLDUpgradeAction.Contract.THRESHOLD(&_BOLDUpgradeAction.CallOpts) } +// VALIDATORAFKBLOCKS is a free data retrieval call binding the contract method 0x4ceccfe5. +// +// Solidity: function VALIDATOR_AFK_BLOCKS() view returns(uint64) +func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) VALIDATORAFKBLOCKS(opts *bind.CallOpts) (uint64, error) { + var out []interface{} + err := _BOLDUpgradeAction.contract.Call(opts, &out, "VALIDATOR_AFK_BLOCKS") + + if err != nil { + return *new(uint64), err + } + + out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) + + return out0, err + +} + +// VALIDATORAFKBLOCKS is a free data retrieval call binding the contract method 0x4ceccfe5. +// +// Solidity: function VALIDATOR_AFK_BLOCKS() view returns(uint64) +func (_BOLDUpgradeAction *BOLDUpgradeActionSession) VALIDATORAFKBLOCKS() (uint64, error) { + return _BOLDUpgradeAction.Contract.VALIDATORAFKBLOCKS(&_BOLDUpgradeAction.CallOpts) +} + +// VALIDATORAFKBLOCKS is a free data retrieval call binding the contract method 0x4ceccfe5. +// +// Solidity: function VALIDATOR_AFK_BLOCKS() view returns(uint64) +func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) VALIDATORAFKBLOCKS() (uint64, error) { + return _BOLDUpgradeAction.Contract.VALIDATORAFKBLOCKS(&_BOLDUpgradeAction.CallOpts) +} + +// ExpectedRollupAddress is a free data retrieval call binding the contract method 0x28fb228c. +// +// Solidity: function expectedRollupAddress(address deployer, uint256 chainId) pure returns(address) +func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) ExpectedRollupAddress(opts *bind.CallOpts, deployer common.Address, chainId *big.Int) (common.Address, error) { + var out []interface{} + err := _BOLDUpgradeAction.contract.Call(opts, &out, "expectedRollupAddress", deployer, chainId) + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// ExpectedRollupAddress is a free data retrieval call binding the contract method 0x28fb228c. +// +// Solidity: function expectedRollupAddress(address deployer, uint256 chainId) pure returns(address) +func (_BOLDUpgradeAction *BOLDUpgradeActionSession) ExpectedRollupAddress(deployer common.Address, chainId *big.Int) (common.Address, error) { + return _BOLDUpgradeAction.Contract.ExpectedRollupAddress(&_BOLDUpgradeAction.CallOpts, deployer, chainId) +} + +// ExpectedRollupAddress is a free data retrieval call binding the contract method 0x28fb228c. +// +// Solidity: function expectedRollupAddress(address deployer, uint256 chainId) pure returns(address) +func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) ExpectedRollupAddress(deployer common.Address, chainId *big.Int) (common.Address, error) { + return _BOLDUpgradeAction.Contract.ExpectedRollupAddress(&_BOLDUpgradeAction.CallOpts, deployer, chainId) +} + +// ValidateRollupDeployedAtAddress is a free data retrieval call binding the contract method 0x999f20db. +// +// Solidity: function validateRollupDeployedAtAddress(address rollupAddress, address deployer, uint256 chainId) view returns() +func (_BOLDUpgradeAction *BOLDUpgradeActionCaller) ValidateRollupDeployedAtAddress(opts *bind.CallOpts, rollupAddress common.Address, deployer common.Address, chainId *big.Int) error { + var out []interface{} + err := _BOLDUpgradeAction.contract.Call(opts, &out, "validateRollupDeployedAtAddress", rollupAddress, deployer, chainId) + + if err != nil { + return err + } + + return err + +} + +// ValidateRollupDeployedAtAddress is a free data retrieval call binding the contract method 0x999f20db. +// +// Solidity: function validateRollupDeployedAtAddress(address rollupAddress, address deployer, uint256 chainId) view returns() +func (_BOLDUpgradeAction *BOLDUpgradeActionSession) ValidateRollupDeployedAtAddress(rollupAddress common.Address, deployer common.Address, chainId *big.Int) error { + return _BOLDUpgradeAction.Contract.ValidateRollupDeployedAtAddress(&_BOLDUpgradeAction.CallOpts, rollupAddress, deployer, chainId) +} + +// ValidateRollupDeployedAtAddress is a free data retrieval call binding the contract method 0x999f20db. +// +// Solidity: function validateRollupDeployedAtAddress(address rollupAddress, address deployer, uint256 chainId) view returns() +func (_BOLDUpgradeAction *BOLDUpgradeActionCallerSession) ValidateRollupDeployedAtAddress(rollupAddress common.Address, deployer common.Address, chainId *big.Int) error { + return _BOLDUpgradeAction.Contract.ValidateRollupDeployedAtAddress(&_BOLDUpgradeAction.CallOpts, rollupAddress, deployer, chainId) +} + // Perform is a paid mutator transaction binding the contract method 0xebe03a93. // // Solidity: function perform(address[] validators) returns() @@ -2770,7 +2833,7 @@ func (_BOLDUpgradeAction *BOLDUpgradeActionFilterer) ParseRollupMigrated(log typ // BridgeCreatorMetaData contains all meta data concerning the BridgeCreator contract. var BridgeCreatorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"internalType\":\"structBridgeCreator.BridgeTemplates\",\"name\":\"_ethBasedTemplates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"internalType\":\"structBridgeCreator.BridgeTemplates\",\"name\":\"_erc20BasedTemplates\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ERC20TemplatesUpdated\",\"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\":[],\"name\":\"TemplatesUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adminProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nativeToken\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"maxTimeVariation\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"name\":\"createBridge\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"internalType\":\"structBridgeCreator.BridgeContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20BasedTemplates\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethBasedTemplates\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"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\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"internalType\":\"structBridgeCreator.BridgeTemplates\",\"name\":\"_newTemplates\",\"type\":\"tuple\"}],\"name\":\"updateERC20Templates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"delayBufferableSequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"}],\"internalType\":\"structBridgeCreator.BridgeTemplates\",\"name\":\"_newTemplates\",\"type\":\"tuple\"}],\"name\":\"updateTemplates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162001f6638038062001f66833981016040819052620000349162000268565b6200003f336200013e565b8151600180546001600160a01b03199081166001600160a01b039384161790915560208085015160028054841691851691909117905560408086015160038054851691861691909117905560608087015160048054861691871691909117905560808088015160058054871691881691909117905560a09788015160068054871691881691909117905586516007805487169188169190911790559286015160088054861691871691909117905590850151600980548516918616919091179055840151600a80548416918516919091179055830151600b805483169184169190911790559190920151600c80549092169216919091179055620002a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001a657600080fd5b919050565b600060c08284031215620001be57600080fd5b60405160c081016001600160401b0381118282101715620001ef57634e487b7160e01b600052604160045260246000fd5b60405290508062000200836200018e565b815262000210602084016200018e565b602082015262000223604084016200018e565b604082015262000236606084016200018e565b606082015262000249608084016200018e565b60808201526200025c60a084016200018e565b60a08201525092915050565b60008061018083850312156200027d57600080fd5b620002898484620001ab565b91506200029a8460c08501620001ab565b90509250929050565b611cb380620002b36000396000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c80638da5cb5b11620000625780638da5cb5b14620001b8578063ceab941014620001d4578063e83b0e1614620001eb578063f2fde38b146200020257600080fd5b806311f02227146200009857806357d3a2001462000112578063715018a6146200017957806376768ab91462000185575b600080fd5b600154600254600354600454600554600654620000cb956001600160a01b03908116958116948116938116928116911686565b604080516001600160a01b03978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0015b60405180910390f35b620001296200012336600462000a80565b62000219565b60405162000109919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b62000183620005c0565b005b600754600854600954600a54600b54600c54620000cb956001600160a01b03908116958116948116938116928116911686565b6000546040516001600160a01b03909116815260200162000109565b62000183620001e536600462000b47565b620005d8565b62000183620001fc36600462000b47565b6200061f565b620001836200021336600462000b60565b62000666565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600062000255602084018462000ba5565b67ffffffffffffffff16151590506000620002e3886001600160a01b038816156200028257600762000285565b60015b6040805160c08101825282546001600160a01b03908116825260018401548116602083015260028401548116928201929092526003830154821660608201526004830154821660808201526005909201541660a0820152846200071a565b90506001600160a01b0386166200035a57805160405163189acdbd60e31b81526001600160a01b0389811660048301529091169063c4d66de890602401600060405180830381600087803b1580156200033b57600080fd5b505af115801562000350573d6000803e3d6000fd5b50505050620003dc565b80516040517f485cc9550000000000000000000000000000000000000000000000000000000081526001600160a01b03898116600483015288811660248301529091169063485cc95590604401600060405180830381600087803b158015620003c257600080fd5b505af1158015620003d7573d6000803e3d6000fd5b505050505b604080820151825191517f1ad87e450000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691631ad87e45916200042e91908990899060040162000bc3565b600060405180830381600087803b1580156200044957600080fd5b505af11580156200045e573d6000803e3d6000fd5b505050506020810151815160408084015190517f485cc9550000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152908216602482015291169063485cc95590604401600060405180830381600087803b158015620004d357600080fd5b505af1158015620004e8573d6000803e3d6000fd5b505050506060810151815160405163189acdbd60e31b81526001600160a01b03918216600482015291169063c4d66de890602401600060405180830381600087803b1580156200053757600080fd5b505af11580156200054c573d6000803e3d6000fd5b505050506080810151815160405163189acdbd60e31b81526001600160a01b03918216600482015291169063c4d66de890602401600060405180830381600087803b1580156200059b57600080fd5b505af1158015620005b0573d6000803e3d6000fd5b50929a9950505050505050505050565b620005ca62000989565b620005d66000620009ff565b565b620005e262000989565b806007620005f1828262000c4b565b50506040517fa47434bb6d1ddd5521e8980ded6a783513e159f80437d78715b10e6e8b6bba5e90600090a150565b6200062962000989565b80600162000638828262000c4b565b50506040517fc9d3947d22fa124aaec4c7e8c919f79016e2d7b48eee10568375d98b86460d1b90600090a150565b6200067062000989565b6001600160a01b0381166200070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6200071781620009ff565b50565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160a08101825260008082526020820181905291810182905260608101829052608081019190915283516040518690620007829062000a5c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f080158015620007c5573d6000803e3d6000fd5b506001600160a01b0316815282620007e2578360200151620007e8565b83604001515b85604051620007f79062000a5c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f0801580156200083a573d6000803e3d6000fd5b506001600160a01b0316604080830191909152606085015190518690620008619062000a5c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f080158015620008a4573d6000803e3d6000fd5b506001600160a01b0316602082015260808401516040518690620008c89062000a5c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f0801580156200090b573d6000803e3d6000fd5b506001600160a01b0316606082015260a084015160405186906200092f9062000a5c565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f08015801562000972573d6000803e3d6000fd5b506001600160a01b03166080820152949350505050565b6000546001600160a01b03163314620005d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000703565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ed38062000dab83390190565b6001600160a01b03811681146200071757600080fd5b600080600080600085870361014081121562000a9b57600080fd5b863562000aa88162000a6a565b9550602087013562000aba8162000a6a565b9450604087013562000acc8162000a6a565b935060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201121562000aff57600080fd5b60608701925060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff208201121562000b3657600080fd5b5060e0860190509295509295909350565b600060c0828403121562000b5a57600080fd5b50919050565b60006020828403121562000b7357600080fd5b813562000b808162000a6a565b9392505050565b803567ffffffffffffffff8116811462000ba057600080fd5b919050565b60006020828403121562000bb857600080fd5b62000b808262000b87565b6000610100820190506001600160a01b03851682528335602083015260208401356040830152604084013560608301526060840135608083015267ffffffffffffffff8062000c128562000b87565b1660a08401528062000c276020860162000b87565b1660c08401528062000c3c6040860162000b87565b1660e084015250949350505050565b813562000c588162000a6a565b815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03821617825550602082013562000c8f8162000a6a565b60018201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550604082013562000cca8162000a6a565b60028201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550606082013562000d058162000a6a565b60038201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550608082013562000d408162000a6a565b60048201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555060a082013562000d7b8162000a6a565b60058201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550505056fe608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212208e4e2542a9cd5f4d96a0907dc4c2957e5d8bc69a73c46dc3afa884e5e92b5b0764736f6c63430008110033", + Bin: "0x60806040523480156200001157600080fd5b5060405162001fff38038062001fff833981016040819052620000349162000268565b6200003f336200013e565b8151600180546001600160a01b03199081166001600160a01b039384161790915560208085015160028054841691851691909117905560408086015160038054851691861691909117905560608087015160048054861691871691909117905560808088015160058054871691881691909117905560a09788015160068054871691881691909117905586516007805487169188169190911790559286015160088054861691871691909117905590850151600980548516918616919091179055840151600a80548416918516919091179055830151600b805483169184169190911790559190920151600c80549092169216919091179055620002a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001a657600080fd5b919050565b600060c08284031215620001be57600080fd5b60405160c081016001600160401b0381118282101715620001ef57634e487b7160e01b600052604160045260246000fd5b60405290508062000200836200018e565b815262000210602084016200018e565b602082015262000223604084016200018e565b604082015262000236606084016200018e565b606082015262000249608084016200018e565b60808201526200025c60a084016200018e565b60a08201525092915050565b60008061018083850312156200027d57600080fd5b620002898484620001ab565b91506200029a8460c08501620001ab565b90509250929050565b611d4c80620002b36000396000f3fe60806040523480156200001157600080fd5b5060043610620000935760003560e01c80638da5cb5b11620000625780638da5cb5b14620001b8578063ceab941014620001d4578063e83b0e1614620001eb578063f2fde38b146200020257600080fd5b806311f02227146200009857806357d3a2001462000112578063715018a6146200017957806376768ab91462000185575b600080fd5b600154600254600354600454600554600654620000cb956001600160a01b03908116958116948116938116928116911686565b604080516001600160a01b03978816815295871660208701529386169385019390935290841660608401528316608083015290911660a082015260c0015b60405180910390f35b620001296200012336600462000ad7565b62000219565b60405162000109919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b62000183620005f5565b005b600754600854600954600a54600b54600c54620000cb956001600160a01b03908116958116948116938116928116911686565b6000546040516001600160a01b03909116815260200162000109565b62000183620001e536600462000b9e565b6200060d565b62000183620001fc36600462000b9e565b62000654565b620001836200021336600462000bb7565b6200069b565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008036336040516020016200025d9392919062000bde565b60408051601f1981840301815291905280516020918201209150600090620002889085018562000c3e565b67ffffffffffffffff1615159050600062000317838a6001600160a01b038a1615620002b6576007620002b9565b60015b6040805160c08101825282546001600160a01b03908116825260018401548116602083015260028401548116928201929092526003830154821660608201526004830154821660808201526005909201541660a0820152856200074f565b90506001600160a01b0387166200038e57805160405163189acdbd60e31b81526001600160a01b038a811660048301529091169063c4d66de890602401600060405180830381600087803b1580156200036f57600080fd5b505af115801562000384573d6000803e3d6000fd5b5050505062000410565b80516040517f485cc9550000000000000000000000000000000000000000000000000000000081526001600160a01b038a8116600483015289811660248301529091169063485cc95590604401600060405180830381600087803b158015620003f657600080fd5b505af11580156200040b573d6000803e3d6000fd5b505050505b604080820151825191517f1ad87e450000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691631ad87e45916200046291908a908a9060040162000c5c565b600060405180830381600087803b1580156200047d57600080fd5b505af115801562000492573d6000803e3d6000fd5b505050506020810151815160408084015190517f485cc9550000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152908216602482015291169063485cc95590604401600060405180830381600087803b1580156200050757600080fd5b505af11580156200051c573d6000803e3d6000fd5b505050506060810151815160405163189acdbd60e31b81526001600160a01b03918216600482015291169063c4d66de890602401600060405180830381600087803b1580156200056b57600080fd5b505af115801562000580573d6000803e3d6000fd5b505050506080810151815160405163189acdbd60e31b81526001600160a01b03918216600482015291169063c4d66de890602401600060405180830381600087803b158015620005cf57600080fd5b505af1158015620005e4573d6000803e3d6000fd5b50929b9a5050505050505050505050565b620005ff620009e0565b6200060b600062000a56565b565b62000617620009e0565b80600762000626828262000ce4565b50506040517fa47434bb6d1ddd5521e8980ded6a783513e159f80437d78715b10e6e8b6bba5e90600090a150565b6200065e620009e0565b8060016200066d828262000ce4565b50506040517fc9d3947d22fa124aaec4c7e8c919f79016e2d7b48eee10568375d98b86460d1b90600090a150565b620006a5620009e0565b6001600160a01b03811662000741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6200074c8162000a56565b50565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160a08101825260008082526020820181905291810182905260608101829052608081019190915285846000015186604051620007ba9062000ab3565b6001600160a01b039283168152911660208201526060604082018190526000908201526080018190604051809103906000f590508015801562000801573d6000803e3d6000fd5b506001600160a01b0316815285836200081f57846020015162000825565b84604001515b86604051620008349062000ab3565b6001600160a01b039283168152911660208201526060604082018190526000908201526080018190604051809103906000f59050801580156200087b573d6000803e3d6000fd5b506001600160a01b0316604080830191909152606085015190518791908790620008a59062000ab3565b6001600160a01b039283168152911660208201526060604082018190526000908201526080018190604051809103906000f5905080158015620008ec573d6000803e3d6000fd5b506001600160a01b0316602082015260808401516040518791908790620009139062000ab3565b6001600160a01b039283168152911660208201526060604082018190526000908201526080018190604051809103906000f59050801580156200095a573d6000803e3d6000fd5b506001600160a01b0316606082015260a08401516040518791908790620009819062000ab3565b6001600160a01b039283168152911660208201526060604082018190526000908201526080018190604051809103906000f5905080158015620009c8573d6000803e3d6000fd5b506001600160a01b0316608082015295945050505050565b6000546001600160a01b031633146200060b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000738565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ed38062000e4483390190565b6001600160a01b03811681146200074c57600080fd5b600080600080600085870361014081121562000af257600080fd5b863562000aff8162000ac1565b9550602087013562000b118162000ac1565b9450604087013562000b238162000ac1565b935060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08201121562000b5657600080fd5b60608701925060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff208201121562000b8d57600080fd5b5060e0860190509295509295909350565b600060c0828403121562000bb157600080fd5b50919050565b60006020828403121562000bca57600080fd5b813562000bd78162000ac1565b9392505050565b604081528260408201528284606083013760006060848301015260006060601f19601f86011683010190506001600160a01b0383166020830152949350505050565b803567ffffffffffffffff8116811462000c3957600080fd5b919050565b60006020828403121562000c5157600080fd5b62000bd78262000c20565b6000610100820190506001600160a01b03851682528335602083015260208401356040830152604084013560608301526060840135608083015267ffffffffffffffff8062000cab8562000c20565b1660a08401528062000cc06020860162000c20565b1660c08401528062000cd56040860162000c20565b1660e084015250949350505050565b813562000cf18162000ac1565b815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03821617825550602082013562000d288162000ac1565b60018201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550604082013562000d638162000ac1565b60028201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550606082013562000d9e8162000ac1565b60038201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550608082013562000dd98162000ac1565b60048201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790555060a082013562000e148162000ac1565b60058201805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03831617905550505056fe608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201e8346a8c20247a8eee5b29ec510a08c290e4365e823a52ba49c2bcfeab3328e64736f6c63430008110033", } // BridgeCreatorABI is the input ABI used to generate the binding from. @@ -3628,7 +3691,7 @@ func (_BridgeCreator *BridgeCreatorFilterer) ParseTemplatesUpdated(log types.Log // ConstantArrayStorageMetaData contains all meta data concerning the ConstantArrayStorage contract. var ConstantArrayStorageMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"__array\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"array\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220023dc6f41b732f8d9086c50d1d0b8d7f12e641122375e74523ccc087bf76836564736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b506040516102a03803806102a083398101604081905261002f916100bf565b8051610042906000906020840190610049565b505061017c565b828054828255906000526020600020908101928215610084579160200282015b82811115610084578251825591602001919060010190610069565b50610090929150610094565b5090565b5b808211156100905760008155600101610095565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156100d257600080fd5b82516001600160401b03808211156100e957600080fd5b818501915085601f8301126100fd57600080fd5b81518181111561010f5761010f6100a9565b8060051b604051601f19603f83011681018181108582111715610134576101346100a9565b60405291825284820192508381018501918883111561015257600080fd5b938501935b8285101561017057845184529385019392850192610157565b98975050505050505050565b6101158061018b6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b0ec2ae114602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220fcc832f04c9e38c8960c7609bb3c40492b00e6ba0c04f3665f38d872910fdb9064736f6c63430008110033", } // ConstantArrayStorageABI is the input ABI used to generate the binding from. @@ -3832,7 +3895,7 @@ func (_ConstantArrayStorage *ConstantArrayStorageCallerSession) Array() ([]*big. // DeployHelperMetaData contains all meta data concerning the DeployHelper contract. var DeployHelperMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"ERC1820_DEPLOYER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC1820_PAYLOAD\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC1820_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC2470_DEPLOYER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC2470_PAYLOAD\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC2470_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NICK_CREATE2_DEPLOYER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NICK_CREATE2_PAYLOAD\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NICK_CREATE2_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZOLTU_CREATE2_DEPLOYER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZOLTU_CREATE2_PAYLOAD\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ZOLTU_VALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"}],\"name\":\"getDeploymentTotalCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inbox\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_nativeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_maxFeePerGas\",\"type\":\"uint256\"}],\"name\":\"perform\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50611937806100206000396000f3fe6080604052600436106100dd5760003560e01c80639ed2c6f01161007f578063d7c641e711610059578063d7c641e714610240578063db633c3e14610255578063dd0c625a14610162578063ef77e71a1461027157600080fd5b80639ed2c6f0146101dd578063acd7d02a146101f8578063d3a3faab1461021857600080fd5b80634367d652116100bb5780634367d6521461016257806355e34a6b1461018b57806375ae22b5146101b357806389cf8ae6146101c857600080fd5b80631b9a680c146100e2578063290302ce1461010d5780632e7966411461014d575b600080fd5b3480156100ee57600080fd5b506100f7610299565b604051610104919061093e565b60405180910390f35b34801561011957600080fd5b5061013573a990077c3205cbdf861e17fa532eeb069ce9ff9681565b6040516001600160a01b039091168152602001610104565b34801561015957600080fd5b506100f76102b5565b34801561016e57600080fd5b5061017d662386f26fc1000081565b604051908152602001610104565b34801561019757600080fd5b5061013573bb6e024b9cffacb947a71991e386681b1cd1477d81565b3480156101bf57600080fd5b506100f76102d4565b3480156101d457600080fd5b506100f76102f0565b3480156101e957600080fd5b5061017d6657c084e5f3c00081565b34801561020457600080fd5b5061017d6102133660046109c2565b61030f565b34801561022457600080fd5b50610135734c8d290a1b368ac4728d83a9e8321fc3af2b39b181565b61025361024e3660046109ee565b610409565b005b34801561026157600080fd5b5061017d67011c37937e08000081565b34801561027d57600080fd5b50610135733fab184622dc19b6109349b94811493bf2a4536281565b6040518060e0016040528060a8815260200161185a60a8913981565b60405180610a600160405280610a3c8152602001610c2d610a3c913981565b6040518060c00160405280608181526020016116696081913981565b604051806101a0016040528061017081526020016116ea610170913981565b6040517fa66b327d0000000000000000000000000000000000000000000000000000000081526000600482018190524860248301529081906001600160a01b0385169063a66b327d90604401602060405180830381865afa158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610a2f565b90506103aa83615208610a77565b6103b49082610a8e565b6103bf906004610a77565b67011c37937e080000662386f26fc100006103e16657c084e5f3c00082610a8e565b6103eb9190610a8e565b6103f59190610a8e565b6103ff9190610a8e565b9150505b92915050565b61044a83662386f26fc10000733fab184622dc19b6109349b94811493bf2a453626040518060e0016040528060a8815260200161185a60a891398686610555565b61048e836657c084e5f3c00073bb6e024b9cffacb947a71991e386681b1cd1477d604051806101a0016040528061017081526020016116ea61017091398686610555565b6104cf83662386f26fc10000734c8d290a1b368ac4728d83a9e8321fc3af2b39b16040518060c0016040528060818152602001611669608191398686610555565b6105148367011c37937e08000073a990077c3205cbdf861e17fa532eeb069ce9ff9660405180610a600160405280610a3c8152602001610c2d610a3c91398686610555565b6001600160a01b0382166105505760405133904780156108fc02916000818181858888f1935050505015801561054e573d6000803e3d6000fd5b505b505050565b6040517fa66b327d000000000000000000000000000000000000000000000000000000008152600060048201819052486024830152906001600160a01b0388169063a66b327d90604401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610a2f565b905060006105f083615208610a77565b6105fa8389610a8e565b6106049190610a8e565b90506001600160a01b038416156107e75760008190506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e9190610aa1565b905060128160ff1610156106e857610697816012610acb565b6106a290600a610bc8565b6106ac9084610bd7565b9150826106ba826012610acb565b6106c590600a610bc8565b6106cf9084610a77565b10156106e357816106df81610c12565b9250505b610717565b60128160ff161115610717576106ff601282610acb565b61070a90600a610bc8565b6107149084610a77565b91505b6040517f549e84260000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018b9052604482018690523360648301819052608483015261520860a483015260c4820187905260e4820184905261012061010483015260006101248301528b169063549e842690610144016020604051808303816000875af11580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610a2f565b5050506108ab565b6040517f679b6ded0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201899052604482018490523360648301819052608483015261520860a483015260c4820185905261010060e4830152600061010483015289169063679b6ded9083906101240160206040518083038185885af1158015610884573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a99190610a2f565b505b6040517fb75436bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063b75436bb906108f090889060040161093e565b6020604051808303816000875af115801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190610a2f565b505050505050505050565b600060208083528351808285015260005b8181101561096b5785810183015185820160400152820161094f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b03811681146109bf57600080fd5b50565b600080604083850312156109d557600080fd5b82356109e0816109aa565b946020939093013593505050565b600080600060608486031215610a0357600080fd5b8335610a0e816109aa565b92506020840135610a1e816109aa565b929592945050506040919091013590565b600060208284031215610a4157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761040357610403610a48565b8082018082111561040357610403610a48565b600060208284031215610ab357600080fd5b815160ff81168114610ac457600080fd5b9392505050565b60ff828116828216039081111561040357610403610a48565b600181815b80851115610b1f578160001904821115610b0557610b05610a48565b80851615610b1257918102915b93841c9390800290610ae9565b509250929050565b600082610b3657506001610403565b81610b4357506000610403565b8160018114610b595760028114610b6357610b7f565b6001915050610403565b60ff841115610b7457610b74610a48565b50506001821b610403565b5060208310610133831016604e8410600b8410161715610ba2575081810a610403565b610bac8383610ae4565b8060001904821115610bc057610bc0610a48565b029392505050565b6000610ac460ff841683610b27565b600082610c0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006000198203610c2557610c25610a48565b506001019056fe04f90a388085174876e800830c35008080b909e5608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c010000000000000000000000000000000000000000000000000000000090048063a41e7d5111610078578063a41e7d51146101d4578063aabbb8ca1461020a578063b705676514610236578063f712f3e814610280576100a5565b806329965a1d146100aa5780633d584063146100e25780635df8122f1461012457806365ba36c114610152575b600080fd5b6100e0600480360360608110156100c057600080fd5b50600160a060020a038135811691602081013591604090910135166102b6565b005b610108600480360360208110156100f857600080fd5b5035600160a060020a0316610570565b60408051600160a060020a039092168252519081900360200190f35b6100e06004803603604081101561013a57600080fd5b50600160a060020a03813581169160200135166105bc565b6101c26004803603602081101561016857600080fd5b81019060208101813564010000000081111561018357600080fd5b82018360208201111561019557600080fd5b803590602001918460018302840111640100000000831117156101b757600080fd5b5090925090506106b3565b60408051918252519081900360200190f35b6100e0600480360360408110156101ea57600080fd5b508035600160a060020a03169060200135600160e060020a0319166106ee565b6101086004803603604081101561022057600080fd5b50600160a060020a038135169060200135610778565b61026c6004803603604081101561024c57600080fd5b508035600160a060020a03169060200135600160e060020a0319166107ef565b604080519115158252519081900360200190f35b61026c6004803603604081101561029657600080fd5b508035600160a060020a03169060200135600160e060020a0319166108aa565b6000600160a060020a038416156102cd57836102cf565b335b9050336102db82610570565b600160a060020a031614610339576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b6103428361092a565b15610397576040805160e560020a62461bcd02815260206004820152601a60248201527f4d757374206e6f7420626520616e204552433136352068617368000000000000604482015290519081900360640190fd5b600160a060020a038216158015906103b85750600160a060020a0382163314155b156104ff5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012082600160a060020a031663249cb3fa85846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600160a060020a0316600160a060020a031681526020019250505060206040518083038186803b15801561047e57600080fd5b505afa158015610492573d6000803e3d6000fd5b505050506040513d60208110156104a857600080fd5b5051146104ff576040805160e560020a62461bcd02815260206004820181905260248201527f446f6573206e6f7420696d706c656d656e742074686520696e74657266616365604482015290519081900360640190fd5b600160a060020a03818116600081815260208181526040808320888452909152808220805473ffffffffffffffffffffffffffffffffffffffff19169487169485179055518692917f93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db15391a450505050565b600160a060020a03818116600090815260016020526040812054909116151561059a5750806105b7565b50600160a060020a03808216600090815260016020526040902054165b919050565b336105c683610570565b600160a060020a031614610624576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a031681600160a060020a0316146106435780610646565b60005b600160a060020a03838116600081815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169585169590951790945592519184169290917f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a43509190a35050565b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090505b92915050565b6106f882826107ef565b610703576000610705565b815b600160a060020a03928316600081815260208181526040808320600160e060020a031996909616808452958252808320805473ffffffffffffffffffffffffffffffffffffffff19169590971694909417909555908152600284528181209281529190925220805460ff19166001179055565b600080600160a060020a038416156107905783610792565b335b905061079d8361092a565b156107c357826107ad82826108aa565b6107b85760006107ba565b815b925050506106e8565b600160a060020a0390811660009081526020818152604080832086845290915290205416905092915050565b6000808061081d857f01ffc9a70000000000000000000000000000000000000000000000000000000061094c565b909250905081158061082d575080155b1561083d576000925050506106e8565b61084f85600160e060020a031961094c565b909250905081158061086057508015155b15610870576000925050506106e8565b61087a858561094c565b909250905060018214801561088f5750806001145b1561089f576001925050506106e8565b506000949350505050565b600160a060020a0382166000908152600260209081526040808320600160e060020a03198516845290915281205460ff1615156108f2576108eb83836107ef565b90506106e8565b50600160a060020a03808316600081815260208181526040808320600160e060020a0319871684529091529020549091161492915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff161590565b6040517f01ffc9a7000000000000000000000000000000000000000000000000000000008082526004820183905260009182919060208160248189617530fa90519096909550935050505056fea165627a7a72305820377f4a2d4301ede9949f163f319021a6e9c687c292a5e2b2c4734c126b524e6c00291ba01820182018201820182018201820182018201820182018201820182018201820a0182018201820182018201820182018201820182018201820182018201820182004f87e8085174876e800830186a08080ad601f80600e600039806000f350fe60003681823780368234f58015156014578182fd5b80825250506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a0222222222222222222222222222222222222222222222222222222222222222204f9016c8085174876e8008303c4d88080b90154608060405234801561001057600080fd5b50610134806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80634af63f0214602d575b600080fd5b60cf60048036036040811015604157600080fd5b810190602081018135640100000000811115605b57600080fd5b820183602082011115606c57600080fd5b80359060200191846001830284011164010000000083111715608d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925060eb915050565b604080516001600160a01b039092168252519081900360200190f35b6000818351602085016000f5939250505056fea26469706673582212206b44f8a82cb6b156bfcc3dc6aadd6df4eefd204bc928a4397fd15dacf6d5320564736f6c634300060200331b8324700082247004f8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222a26469706673582212203fa17ecff924ce33b575c56f0e087fe636c604862b48184c3680dab9c8486ae764736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b50611937806100206000396000f3fe6080604052600436106100dd5760003560e01c80639ed2c6f01161007f578063d7c641e711610059578063d7c641e714610240578063db633c3e14610255578063dd0c625a14610162578063ef77e71a1461027157600080fd5b80639ed2c6f0146101dd578063acd7d02a146101f8578063d3a3faab1461021857600080fd5b80634367d652116100bb5780634367d6521461016257806355e34a6b1461018b57806375ae22b5146101b357806389cf8ae6146101c857600080fd5b80631b9a680c146100e2578063290302ce1461010d5780632e7966411461014d575b600080fd5b3480156100ee57600080fd5b506100f7610299565b604051610104919061093e565b60405180910390f35b34801561011957600080fd5b5061013573a990077c3205cbdf861e17fa532eeb069ce9ff9681565b6040516001600160a01b039091168152602001610104565b34801561015957600080fd5b506100f76102b5565b34801561016e57600080fd5b5061017d662386f26fc1000081565b604051908152602001610104565b34801561019757600080fd5b5061013573bb6e024b9cffacb947a71991e386681b1cd1477d81565b3480156101bf57600080fd5b506100f76102d4565b3480156101d457600080fd5b506100f76102f0565b3480156101e957600080fd5b5061017d6657c084e5f3c00081565b34801561020457600080fd5b5061017d6102133660046109c2565b61030f565b34801561022457600080fd5b50610135734c8d290a1b368ac4728d83a9e8321fc3af2b39b181565b61025361024e3660046109ee565b610409565b005b34801561026157600080fd5b5061017d67011c37937e08000081565b34801561027d57600080fd5b50610135733fab184622dc19b6109349b94811493bf2a4536281565b6040518060e0016040528060a8815260200161185a60a8913981565b60405180610a600160405280610a3c8152602001610c2d610a3c913981565b6040518060c00160405280608181526020016116696081913981565b604051806101a0016040528061017081526020016116ea610170913981565b6040517fa66b327d0000000000000000000000000000000000000000000000000000000081526000600482018190524860248301529081906001600160a01b0385169063a66b327d90604401602060405180830381865afa158015610378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039c9190610a2f565b90506103aa83615208610a77565b6103b49082610a8e565b6103bf906004610a77565b67011c37937e080000662386f26fc100006103e16657c084e5f3c00082610a8e565b6103eb9190610a8e565b6103f59190610a8e565b6103ff9190610a8e565b9150505b92915050565b61044a83662386f26fc10000733fab184622dc19b6109349b94811493bf2a453626040518060e0016040528060a8815260200161185a60a891398686610555565b61048e836657c084e5f3c00073bb6e024b9cffacb947a71991e386681b1cd1477d604051806101a0016040528061017081526020016116ea61017091398686610555565b6104cf83662386f26fc10000734c8d290a1b368ac4728d83a9e8321fc3af2b39b16040518060c0016040528060818152602001611669608191398686610555565b6105148367011c37937e08000073a990077c3205cbdf861e17fa532eeb069ce9ff9660405180610a600160405280610a3c8152602001610c2d610a3c91398686610555565b6001600160a01b0382166105505760405133904780156108fc02916000818181858888f1935050505015801561054e573d6000803e3d6000fd5b505b505050565b6040517fa66b327d000000000000000000000000000000000000000000000000000000008152600060048201819052486024830152906001600160a01b0388169063a66b327d90604401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e09190610a2f565b905060006105f083615208610a77565b6105fa8389610a8e565b6106049190610a8e565b90506001600160a01b038416156107e75760008190506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067e9190610aa1565b905060128160ff1610156106e857610697816012610acb565b6106a290600a610bc8565b6106ac9084610bd7565b9150826106ba826012610acb565b6106c590600a610bc8565b6106cf9084610a77565b10156106e357816106df81610c12565b9250505b610717565b60128160ff161115610717576106ff601282610acb565b61070a90600a610bc8565b6107149084610a77565b91505b6040517f549e84260000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018b9052604482018690523360648301819052608483015261520860a483015260c4820187905260e4820184905261012061010483015260006101248301528b169063549e842690610144016020604051808303816000875af11580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df9190610a2f565b5050506108ab565b6040517f679b6ded0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201899052604482018490523360648301819052608483015261520860a483015260c4820185905261010060e4830152600061010483015289169063679b6ded9083906101240160206040518083038185885af1158015610884573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a99190610a2f565b505b6040517fb75436bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0389169063b75436bb906108f090889060040161093e565b6020604051808303816000875af115801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190610a2f565b505050505050505050565b600060208083528351808285015260005b8181101561096b5785810183015185820160400152820161094f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b03811681146109bf57600080fd5b50565b600080604083850312156109d557600080fd5b82356109e0816109aa565b946020939093013593505050565b600080600060608486031215610a0357600080fd5b8335610a0e816109aa565b92506020840135610a1e816109aa565b929592945050506040919091013590565b600060208284031215610a4157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761040357610403610a48565b8082018082111561040357610403610a48565b600060208284031215610ab357600080fd5b815160ff81168114610ac457600080fd5b9392505050565b60ff828116828216039081111561040357610403610a48565b600181815b80851115610b1f578160001904821115610b0557610b05610a48565b80851615610b1257918102915b93841c9390800290610ae9565b509250929050565b600082610b3657506001610403565b81610b4357506000610403565b8160018114610b595760028114610b6357610b7f565b6001915050610403565b60ff841115610b7457610b74610a48565b50506001821b610403565b5060208310610133831016604e8410600b8410161715610ba2575081810a610403565b610bac8383610ae4565b8060001904821115610bc057610bc0610a48565b029392505050565b6000610ac460ff841683610b27565b600082610c0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60006000198203610c2557610c25610a48565b506001019056fe04f90a388085174876e800830c35008080b909e5608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c010000000000000000000000000000000000000000000000000000000090048063a41e7d5111610078578063a41e7d51146101d4578063aabbb8ca1461020a578063b705676514610236578063f712f3e814610280576100a5565b806329965a1d146100aa5780633d584063146100e25780635df8122f1461012457806365ba36c114610152575b600080fd5b6100e0600480360360608110156100c057600080fd5b50600160a060020a038135811691602081013591604090910135166102b6565b005b610108600480360360208110156100f857600080fd5b5035600160a060020a0316610570565b60408051600160a060020a039092168252519081900360200190f35b6100e06004803603604081101561013a57600080fd5b50600160a060020a03813581169160200135166105bc565b6101c26004803603602081101561016857600080fd5b81019060208101813564010000000081111561018357600080fd5b82018360208201111561019557600080fd5b803590602001918460018302840111640100000000831117156101b757600080fd5b5090925090506106b3565b60408051918252519081900360200190f35b6100e0600480360360408110156101ea57600080fd5b508035600160a060020a03169060200135600160e060020a0319166106ee565b6101086004803603604081101561022057600080fd5b50600160a060020a038135169060200135610778565b61026c6004803603604081101561024c57600080fd5b508035600160a060020a03169060200135600160e060020a0319166107ef565b604080519115158252519081900360200190f35b61026c6004803603604081101561029657600080fd5b508035600160a060020a03169060200135600160e060020a0319166108aa565b6000600160a060020a038416156102cd57836102cf565b335b9050336102db82610570565b600160a060020a031614610339576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b6103428361092a565b15610397576040805160e560020a62461bcd02815260206004820152601a60248201527f4d757374206e6f7420626520616e204552433136352068617368000000000000604482015290519081900360640190fd5b600160a060020a038216158015906103b85750600160a060020a0382163314155b156104ff5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012082600160a060020a031663249cb3fa85846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600160a060020a0316600160a060020a031681526020019250505060206040518083038186803b15801561047e57600080fd5b505afa158015610492573d6000803e3d6000fd5b505050506040513d60208110156104a857600080fd5b5051146104ff576040805160e560020a62461bcd02815260206004820181905260248201527f446f6573206e6f7420696d706c656d656e742074686520696e74657266616365604482015290519081900360640190fd5b600160a060020a03818116600081815260208181526040808320888452909152808220805473ffffffffffffffffffffffffffffffffffffffff19169487169485179055518692917f93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db15391a450505050565b600160a060020a03818116600090815260016020526040812054909116151561059a5750806105b7565b50600160a060020a03808216600090815260016020526040902054165b919050565b336105c683610570565b600160a060020a031614610624576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a031681600160a060020a0316146106435780610646565b60005b600160a060020a03838116600081815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169585169590951790945592519184169290917f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a43509190a35050565b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090505b92915050565b6106f882826107ef565b610703576000610705565b815b600160a060020a03928316600081815260208181526040808320600160e060020a031996909616808452958252808320805473ffffffffffffffffffffffffffffffffffffffff19169590971694909417909555908152600284528181209281529190925220805460ff19166001179055565b600080600160a060020a038416156107905783610792565b335b905061079d8361092a565b156107c357826107ad82826108aa565b6107b85760006107ba565b815b925050506106e8565b600160a060020a0390811660009081526020818152604080832086845290915290205416905092915050565b6000808061081d857f01ffc9a70000000000000000000000000000000000000000000000000000000061094c565b909250905081158061082d575080155b1561083d576000925050506106e8565b61084f85600160e060020a031961094c565b909250905081158061086057508015155b15610870576000925050506106e8565b61087a858561094c565b909250905060018214801561088f5750806001145b1561089f576001925050506106e8565b506000949350505050565b600160a060020a0382166000908152600260209081526040808320600160e060020a03198516845290915281205460ff1615156108f2576108eb83836107ef565b90506106e8565b50600160a060020a03808316600081815260208181526040808320600160e060020a0319871684529091529020549091161492915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff161590565b6040517f01ffc9a7000000000000000000000000000000000000000000000000000000008082526004820183905260009182919060208160248189617530fa90519096909550935050505056fea165627a7a72305820377f4a2d4301ede9949f163f319021a6e9c687c292a5e2b2c4734c126b524e6c00291ba01820182018201820182018201820182018201820182018201820182018201820a0182018201820182018201820182018201820182018201820182018201820182004f87e8085174876e800830186a08080ad601f80600e600039806000f350fe60003681823780368234f58015156014578182fd5b80825250506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a0222222222222222222222222222222222222222222222222222222222222222204f9016c8085174876e8008303c4d88080b90154608060405234801561001057600080fd5b50610134806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80634af63f0214602d575b600080fd5b60cf60048036036040811015604157600080fd5b810190602081018135640100000000811115605b57600080fd5b820183602082011115606c57600080fd5b80359060200191846001830284011164010000000083111715608d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925060eb915050565b604080516001600160a01b039092168252519081900360200190f35b6000818351602085016000f5939250505056fea26469706673582212206b44f8a82cb6b156bfcc3dc6aadd6df4eefd204bc928a4397fd15dacf6d5320564736f6c634300060200331b8324700082247004f8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222a2646970667358221220c7502cea72eeeb1fc0468a30bb1755169a10a588d70ed98eb6b73f31d57f875364736f6c63430008110033", } // DeployHelperABI is the input ABI used to generate the binding from. @@ -4429,7 +4492,7 @@ func (_DeployHelper *DeployHelperTransactorSession) Perform(_inbox common.Addres // ERC20RollupEventInboxMetaData contains all meta data concerning the ERC20RollupEventInbox contract. var ERC20RollupEventInboxMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"}],\"name\":\"rollupInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b506080516108c9610030600039600061033801526108c96000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b61007461008436600461070b565b61032e565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c6366004610728565b610522565b60005461009c906001600160a01b031681565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906107a4565b6001600160a01b0316336001600160a01b03161461023d57600154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906107a4565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b591906107a4565b6001549091506001600160a01b038083169116036102ff576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103cc5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610234565b6000546001600160a01b03161561040f576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661044f576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f291906107a4565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610234565b806105c95760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610234565b600160008085838387876040516020016105e79594939291906107c1565b6040516020818303038152906040529050600061060382610646565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051610635919061080e565b60405180910390a250505050505050565b60008054825160208401206040517f75d81e25000000000000000000000000000000000000000000000000000000008152600b60048201526024810184905260448101919091526064810183905282916001600160a01b0316906375d81e25906084016020604051808303816000875af11580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec919061087a565b9392505050565b6001600160a01b038116811461070857600080fd5b50565b60006020828403121561071d57600080fd5b81356106ec816106f3565b60008060006040848603121561073d57600080fd5b83359250602084013567ffffffffffffffff8082111561075c57600080fd5b818601915086601f83011261077057600080fd5b81358181111561077f57600080fd5b87602082850101111561079157600080fd5b6020830194508093505050509250925092565b6000602082840312156107b657600080fd5b81516106ec816106f3565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b600060208083528351808285015260005b8181101561083b5785810183015185820160400152820161081f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60006020828403121561088c57600080fd5b505191905056fea2646970667358221220eb5238e6f79c0572cf39ff3293e8ff8a9da652d6d375f677a29d949a9853e58c64736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b506080516108c9610030600039600061033801526108c96000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b61007461008436600461070b565b61032e565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c6366004610728565b610522565b60005461009c906001600160a01b031681565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906107a4565b6001600160a01b0316336001600160a01b03161461023d57600154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906107a4565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b591906107a4565b6001549091506001600160a01b038083169116036102ff576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103cc5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610234565b6000546001600160a01b03161561040f576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661044f576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f291906107a4565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610234565b806105c95760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610234565b600160008085838387876040516020016105e79594939291906107c1565b6040516020818303038152906040529050600061060382610646565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b83604051610635919061080e565b60405180910390a250505050505050565b60008054825160208401206040517f75d81e25000000000000000000000000000000000000000000000000000000008152600b60048201526024810184905260448101919091526064810183905282916001600160a01b0316906375d81e25906084016020604051808303816000875af11580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec919061087a565b9392505050565b6001600160a01b038116811461070857600080fd5b50565b60006020828403121561071d57600080fd5b81356106ec816106f3565b60008060006040848603121561073d57600080fd5b83359250602084013567ffffffffffffffff8082111561075c57600080fd5b818601915086601f83011261077057600080fd5b81358181111561077f57600080fd5b87602082850101111561079157600080fd5b6020830194508093505050509250925092565b6000602082840312156107b657600080fd5b81516106ec816106f3565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b600060208083528351808285015260005b8181101561083b5785810183015185820160400152820161081f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b60006020828403121561088c57600080fd5b505191905056fea2646970667358221220ee8677b4eafaaeb1fc21515e42f0fecb06859156ef43489514be59e3d4bde96764736f6c63430008110033", } // ERC20RollupEventInboxABI is the input ABI used to generate the binding from. @@ -6031,7 +6094,7 @@ func (_IInboxBase *IInboxBaseCallerSession) Bridge() (common.Address, error) { // IOldRollupMetaData contains all meta data concerning the IOldRollup contract. var IOldRollupMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentNodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"afterState\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIOldRollup.Assertion\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"NodeCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"challengeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"confirmData\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"deadlineBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"noChildConfirmedBeforeBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"childStakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestChildNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"}],\"internalType\":\"structNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestStakedNode\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currentChallenge\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"}],\"internalType\":\"structOldStaker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentNodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"afterState\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIOldRollup.Assertion\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"NodeCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"challengeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"confirmData\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"deadlineBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"noChildConfirmedBeforeBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"childStakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestChildNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"}],\"internalType\":\"structNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestStakedNode\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currentChallenge\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"}],\"internalType\":\"structOldStaker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isZombie\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawStakerFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IOldRollupABI is the input ABI used to generate the binding from. @@ -6335,6 +6398,37 @@ func (_IOldRollup *IOldRollupCallerSession) IsValidator(validator common.Address return _IOldRollup.Contract.IsValidator(&_IOldRollup.CallOpts, validator) } +// IsZombie is a free data retrieval call binding the contract method 0x91c657e8. +// +// Solidity: function isZombie(address staker) view returns(bool) +func (_IOldRollup *IOldRollupCaller) IsZombie(opts *bind.CallOpts, staker common.Address) (bool, error) { + var out []interface{} + err := _IOldRollup.contract.Call(opts, &out, "isZombie", staker) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// IsZombie is a free data retrieval call binding the contract method 0x91c657e8. +// +// Solidity: function isZombie(address staker) view returns(bool) +func (_IOldRollup *IOldRollupSession) IsZombie(staker common.Address) (bool, error) { + return _IOldRollup.Contract.IsZombie(&_IOldRollup.CallOpts, staker) +} + +// IsZombie is a free data retrieval call binding the contract method 0x91c657e8. +// +// Solidity: function isZombie(address staker) view returns(bool) +func (_IOldRollup *IOldRollupCallerSession) IsZombie(staker common.Address) (bool, error) { + return _IOldRollup.Contract.IsZombie(&_IOldRollup.CallOpts, staker) +} + // LatestConfirmed is a free data retrieval call binding the contract method 0x65f7f80d. // // Solidity: function latestConfirmed() view returns(uint64) @@ -6366,6 +6460,37 @@ func (_IOldRollup *IOldRollupCallerSession) LatestConfirmed() (uint64, error) { return _IOldRollup.Contract.LatestConfirmed(&_IOldRollup.CallOpts) } +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IOldRollup *IOldRollupCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _IOldRollup.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IOldRollup *IOldRollupSession) Paused() (bool, error) { + return _IOldRollup.Contract.Paused(&_IOldRollup.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_IOldRollup *IOldRollupCallerSession) Paused() (bool, error) { + return _IOldRollup.Contract.Paused(&_IOldRollup.CallOpts) +} + // StakerCount is a free data retrieval call binding the contract method 0xdff69787. // // Solidity: function stakerCount() view returns(uint64) @@ -6459,6 +6584,27 @@ func (_IOldRollup *IOldRollupCallerSession) WasmModuleRoot() ([32]byte, error) { return _IOldRollup.Contract.WasmModuleRoot(&_IOldRollup.CallOpts) } +// WithdrawStakerFunds is a paid mutator transaction binding the contract method 0x61373919. +// +// Solidity: function withdrawStakerFunds() returns(uint256) +func (_IOldRollup *IOldRollupTransactor) WithdrawStakerFunds(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IOldRollup.contract.Transact(opts, "withdrawStakerFunds") +} + +// WithdrawStakerFunds is a paid mutator transaction binding the contract method 0x61373919. +// +// Solidity: function withdrawStakerFunds() returns(uint256) +func (_IOldRollup *IOldRollupSession) WithdrawStakerFunds() (*types.Transaction, error) { + return _IOldRollup.Contract.WithdrawStakerFunds(&_IOldRollup.TransactOpts) +} + +// WithdrawStakerFunds is a paid mutator transaction binding the contract method 0x61373919. +// +// Solidity: function withdrawStakerFunds() returns(uint256) +func (_IOldRollup *IOldRollupTransactorSession) WithdrawStakerFunds() (*types.Transaction, error) { + return _IOldRollup.Contract.WithdrawStakerFunds(&_IOldRollup.TransactOpts) +} + // IOldRollupNodeCreatedIterator is returned from FilterNodeCreated and is used to iterate over the raw logs and unpacked data for NodeCreated events raised by the IOldRollup contract. type IOldRollupNodeCreatedIterator struct { Event *IOldRollupNodeCreated // Event containing the contract specifics and raw log @@ -6842,7 +6988,7 @@ func (_IOldRollupAdmin *IOldRollupAdminTransactorSession) Resume() (*types.Trans // IRollupAdminMetaData contains all meta data concerning the IRollupAdmin contract. var IRollupAdminMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"AnyTrustFastConfirmerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"BaseStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"ChallengeManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"ConfirmPeriodBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelayedInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"InboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"LoserStakeEscrowSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"MinimumAssertionPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OldOutboxRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OutboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"StakersForceRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"ValidatorAfkBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"ValidatorWhitelistDisabledSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"enabled\",\"type\":\"bool[]\"}],\"name\":\"ValidatorsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"WasmModuleRootSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"forceConfirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"forceCreateAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"stacker\",\"type\":\"address[]\"}],\"name\":\"forceRefundStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"removeOldOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"setAnyTrustFastConfirmer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"setBaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_challengeManager\",\"type\":\"address\"}],\"name\":\"setChallengeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"setConfirmPeriodBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"setLoserStakeEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setMinimumAssertionPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validator\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_val\",\"type\":\"bool[]\"}],\"name\":\"setValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newAfkBlocks\",\"type\":\"uint64\"}],\"name\":\"setValidatorAfkBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"setValidatorWhitelistDisabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"setWasmModuleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"AnyTrustFastConfirmerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"BaseStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"ChallengeManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"ConfirmPeriodBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelayedInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"InboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"LoserStakeEscrowSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"MinimumAssertionPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OldOutboxRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OutboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"StakersForceRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"ValidatorAfkBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"ValidatorWhitelistDisabledSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"enabled\",\"type\":\"bool[]\"}],\"name\":\"ValidatorsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"WasmModuleRootSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"forceConfirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"forceCreateAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"stacker\",\"type\":\"address[]\"}],\"name\":\"forceRefundStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minimumAssertionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"validatorAfkBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"removeOldOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"setAnyTrustFastConfirmer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"setBaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_challengeManager\",\"type\":\"address\"}],\"name\":\"setChallengeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"setConfirmPeriodBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"setLoserStakeEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setMinimumAssertionPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validator\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_val\",\"type\":\"bool[]\"}],\"name\":\"setValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newAfkBlocks\",\"type\":\"uint64\"}],\"name\":\"setValidatorAfkBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"setValidatorWhitelistDisabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"setWasmModuleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IRollupAdminABI is the input ABI used to generate the binding from. @@ -7054,23 +7200,23 @@ func (_IRollupAdmin *IRollupAdminTransactorSession) ForceRefundStaker(stacker [] return _IRollupAdmin.Contract.ForceRefundStaker(&_IRollupAdmin.TransactOpts, stacker) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_IRollupAdmin *IRollupAdminTransactor) Initialize(opts *bind.TransactOpts, config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _IRollupAdmin.contract.Transact(opts, "initialize", config, connectedContracts) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_IRollupAdmin *IRollupAdminSession) Initialize(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _IRollupAdmin.Contract.Initialize(&_IRollupAdmin.TransactOpts, config, connectedContracts) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_IRollupAdmin *IRollupAdminTransactorSession) Initialize(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _IRollupAdmin.Contract.Initialize(&_IRollupAdmin.TransactOpts, config, connectedContracts) } @@ -14808,8 +14954,8 @@ func (_ISeqInboxPostUpgradeInit *ISeqInboxPostUpgradeInitTransactorSession) Post // RollupAdminLogicMetaData contains all meta data concerning the RollupAdminLogic contract. var RollupAdminLogicMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"AnyTrustFastConfirmerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sendRoot\",\"type\":\"bytes32\"}],\"name\":\"AssertionConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"}],\"name\":\"AssertionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"BaseStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"ChallengeManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"ConfirmPeriodBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelayedInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"InboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"LoserStakeEscrowSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"MinimumAssertionPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OldOutboxRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OutboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"challengeIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asserter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"challengedAssertion\",\"type\":\"uint64\"}],\"name\":\"RollupChallengeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"machineHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"RollupInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"StakersForceRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"UpgradedSecondary\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawableFundsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"ValidatorAfkBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"ValidatorWhitelistDisabledSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"enabled\",\"type\":\"bool[]\"}],\"name\":\"ValidatorsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"WasmModuleRootSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_stakerMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"amountStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeGracePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeManager\",\"outputs\":[{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmPeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"forceConfirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"forceCreateAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"forceRefundStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"secondChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isFirstChild\",\"type\":\"bool\"},{\"internalType\":\"enumAssertionStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"configHash\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertionCreationBlockForLogLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getFirstChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getSecondChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"internalType\":\"structIRollupCore.Staker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inbox\",\"outputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isFirstChild\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"latestStakedAssertion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loserStakeEscrow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumAssertionPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"outbox\",\"outputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"removeOldOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupDeploymentBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEventInbox\",\"outputs\":[{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"setAnyTrustFastConfirmer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"setBaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_challengeManager\",\"type\":\"address\"}],\"name\":\"setChallengeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"setConfirmPeriodBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"newInbox\",\"type\":\"address\"}],\"name\":\"setInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"setLoserStakeEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setMinimumAssertionPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validator\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_val\",\"type\":\"bool[]\"}],\"name\":\"setValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newAfkBlocks\",\"type\":\"uint64\"}],\"name\":\"setValidatorAfkBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"setValidatorWhitelistDisabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"setWasmModuleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWithdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeSecondaryTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeSecondaryToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"validateAssertionHash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"name\":\"validateConfig\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorAfkBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWhitelistDisabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"withdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawalAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c0604052620000196200003660201b6200305f1760201c565b15156080523060a0523480156200002f57600080fd5b5062000104565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491620000769190620000d3565b600060405180830381855afa9150503d8060008114620000b3576040519150601f19603f3d011682016040523d82523d6000602084013e620000b8565b606091505b5091509150818015620000cc575080516020145b9250505090565b6000825160005b81811015620000f65760208186018101518583015201620000da565b506000920191825250919050565b60805160a051615e776200017e60003960008181610f970152818161101c015281816113120152818161139701528181611521015281816115a60152818161170c01528181611bee01528181611c7301528181611d690152611dee01526000818161116c01528181612943015261445b0152615e776000f3fe60806040526004361061044a5760003560e01c806376e7e23b11610243578063b7ab4db511610143578063e8bd4922116100bb578063f112cea31161008a578063fb0e722b1161006f578063fb0e722b14610e77578063fc8ffa0314610e97578063ff204f3b14610eb757600080fd5b8063f112cea314610e37578063facd743b14610e5757600080fd5b8063e8bd492214610d23578063ee35f32714610dcc578063ef40a67014610de1578063f065de3f14610e1757600080fd5b8063dff6978711610112578063e531d8c7116100f7578063e531d8c714610cbb578063e6b3082c14610cdb578063e78cea9214610d0357600080fd5b8063dff6978714610c86578063e51019a614610c9b57600080fd5b8063b7ab4db514610c04578063bc45e0ae14610c26578063ce11e6ab14610c46578063ce66d05c14610c6657600080fd5b80639846129a116101d6578063a23c44b1116101a5578063a3ffb7721161018a578063a3ffb77214610ba4578063aa38a6e714610bc4578063b7626e7314610be457600080fd5b8063a23c44b114610a71578063a2b4f1d814610b8457600080fd5b80639846129a14610a085780639a7b455614610a1b5780639a8a059214610a3b5780639e7e6aa714610a5157600080fd5b80638830288411610212578063883028841461098557806389384960146109b25780638ee1a126146109d2578063948d6588146109e857600080fd5b806376e7e23b146108f15780637c75c298146109075780638456cb591461092757806384728cd01461093c57600080fd5b80633be680ea1161034e57806355840a58116102e15780635c975abb116102b057806365f7f80d1161029557806365f7f80d146108a65780636ddd3744146108bb57806371ef232c146108db57600080fd5b80635c975abb1461084b5780636177fd181461086357600080fd5b806355840a58146107c6578063567ca41b146107eb57806356bbc9e61461080b5780635bf038331461082b57600080fd5b80634f61f8501161031d5780634f61f8501461075157806351ed6a301461077157806352d1902d1461079157806353b60c4a146107a657600080fd5b80633be680ea146106cf57806345e38b641461070857806347fb24c51461071e5780634f1ef2861461073e57600080fd5b806313af4035116103e15780632e7acfa6116103b05780633083622811610395578063308362281461067a578063353325e01461069a5780633659cfe6146106af57600080fd5b80632e7acfa6146106235780632f30cabd1461064457600080fd5b806313af40351461058657806313c56ca7146105a65780631b1689e9146105d45780632abdd230146105ea57600080fd5b80630d40a0fd1161041d5780630d40a0fd146104e35780630d561b3714610503578063117155851461052357806312ab3d3b1461055c57600080fd5b8063023a96fe1461044f578063046f7da21461048c57806304972af9146104a357806306ae5851146104c3575b600080fd5b34801561045b57600080fd5b5060695461046f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561049857600080fd5b506104a1610ed7565b005b3480156104af57600080fd5b506104a16104be366004615203565b610ee1565b3480156104cf57600080fd5b506104a16104de36600461523b565b610efb565b3480156104ef57600080fd5b506104a16104fe366004615269565b610f8d565b34801561050f57600080fd5b506104a161051e366004615269565b6110d6565b34801561052f57600080fd5b5061054361053e36600461523b565b611143565b60405167ffffffffffffffff9091168152602001610483565b34801561056857600080fd5b50607b546105769060ff1681565b6040519015158152602001610483565b34801561059257600080fd5b506104a16105a1366004615269565b61115f565b3480156105b257600080fd5b506105c66105c136600461523b565b611168565b604051908152602001610483565b3480156105e057600080fd5b506105c6607a5481565b3480156105f657600080fd5b506105c6610605366004615269565b6001600160a01b031660009081526077602052604090206001015490565b34801561062f57600080fd5b506066546105439067ffffffffffffffff1681565b34801561065057600080fd5b506105c661065f366004615269565b6001600160a01b031660009081526078602052604090205490565b34801561068657600080fd5b5061057661069536600461523b565b6112b0565b3480156106a657600080fd5b506105c66112cc565b3480156106bb57600080fd5b506104a16106ca366004615269565b611308565b3480156106db57600080fd5b506069546105439074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561071457600080fd5b506105c660715481565b34801561072a57600080fd5b506104a1610739366004615294565b61144e565b6104a161074c36600461533d565b611517565b34801561075d57600080fd5b506104a161076c366004615269565b61164d565b34801561077d57600080fd5b5060705461046f906001600160a01b031681565b34801561079d57600080fd5b506105c66116ff565b3480156107b257600080fd5b506104a16107c1366004615269565b6117c4565b3480156107d257600080fd5b50607b5461046f9061010090046001600160a01b031681565b3480156107f757600080fd5b506104a1610806366004615269565b611812565b34801561081757600080fd5b5061054361082636600461523b565b611929565b34801561083757600080fd5b506104a16108463660046153fd565b61194c565b34801561085757600080fd5b5060335460ff16610576565b34801561086f57600080fd5b5061057661087e366004615269565b6001600160a01b0316600090815260776020526040902060020154600160401b900460ff1690565b3480156108b257600080fd5b506074546105c6565b3480156108c757600080fd5b5061046f6108d6366004615455565b611991565b3480156108e757600080fd5b506105c660795481565b3480156108fd57600080fd5b506105c660675481565b34801561091357600080fd5b506104a16109223660046154bc565b6119cb565b34801561093357600080fd5b506104a1611ad0565b34801561094857600080fd5b5061046f610957366004615269565b6001600160a01b03908116600090815260776020526040902060020154690100000000000000000090041690565b34801561099157600080fd5b506109a56109a036600461523b565b611ad8565b6040516104839190615532565b3480156109be57600080fd5b506104a16109cd36600461523b565b611b7a565b3480156109de57600080fd5b506105c660685481565b3480156109f457600080fd5b506104a1610a0336600461523b565b611baf565b6104a1610a1636600461533d565b611be4565b348015610a2757600080fd5b506104a1610a36366004615593565b611d1a565b348015610a4757600080fd5b506105c660655481565b348015610a5d57600080fd5b506104a1610a6c3660046155d7565b611d5f565b348015610a7d57600080fd5b50610b2d610a8c366004615269565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160a01b03908116600090815260776020908152604091829020825160a081018452815481526001820154928101929092526002015467ffffffffffffffff81169282019290925260ff600160401b830416151560608201526901000000000000000000909104909116608082015290565b6040516104839190600060a082019050825182526020830151602083015267ffffffffffffffff60408401511660408301526060830151151560608301526001600160a01b03608084015116608083015292915050565b348015610b9057600080fd5b506104a1610b9f36600461562b565b612a6b565b348015610bb057600080fd5b506104a1610bbf366004615648565b612aac565b348015610bd057600080fd5b50606d5461046f906001600160a01b031681565b348015610bf057600080fd5b506104a1610bff366004615269565b612c41565b348015610c1057600080fd5b50610c19612c8f565b60405161048391906156b4565b348015610c3257600080fd5b50606e5461046f906001600160a01b031681565b348015610c5257600080fd5b50606c5461046f906001600160a01b031681565b348015610c7257600080fd5b506104a1610c81366004615455565b612ca0565b348015610c9257600080fd5b50607654610543565b348015610ca757600080fd5b506104a1610cb6366004615701565b612d4a565b348015610cc757600080fd5b50610576610cd636600461523b565b612db7565b348015610ce757600080fd5b5060665461054390600160401b900467ffffffffffffffff1681565b348015610d0f57600080fd5b50606b5461046f906001600160a01b031681565b348015610d2f57600080fd5b50610d8c610d3e366004615269565b60776020526000908152604090208054600182015460029092015490919067ffffffffffffffff811690600160401b810460ff1690690100000000000000000090046001600160a01b031685565b60408051958652602086019490945267ffffffffffffffff9092169284019290925290151560608301526001600160a01b0316608082015260a001610483565b348015610dd857600080fd5b5061046f612de7565b348015610ded57600080fd5b506105c6610dfc366004615269565b6001600160a01b031660009081526077602052604090205490565b348015610e2357600080fd5b50606f5461046f906001600160a01b031681565b348015610e4357600080fd5b506104a1610e52366004615455565b612e6e565b348015610e6357600080fd5b50610576610e72366004615269565b612ede565b348015610e8357600080fd5b50606a5461046f906001600160a01b031681565b348015610ea357600080fd5b506104a1610eb2366004615269565b612eeb565b348015610ec357600080fd5b506104a1610ed2366004615269565b612f8f565b610edf613125565b565b610ef781610eee84613177565b600101546131d8565b5050565b6067548111610f515760405162461bcd60e51b815260206004820152601c60248201527f424153455f5354414b455f4d5553545f42455f494e435245415345440000000060448201526064015b60405180910390fd5b60678190556040518181527f54404e5f5326112dad416747228f2fcd704e702c56bf0673ce7e531108e07c1b906020015b60405180910390a150565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361101a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661104c6132dd565b6001600160a01b0316146110b75760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b604080516000808252602082019092526110d391839190613310565b50565b607b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b038416908102919091179091556040519081527fd3ab4cbe1b6f519eb43f09ded17a12e81b811e297063ada2d65dddef5b612c7c90602001610f82565b600061114e82613177565b5467ffffffffffffffff1692915050565b6110d3816134b0565b60007f0000000000000000000000000000000000000000000000000000000000000000156111f2576000828152607c6020526040902054806111ec5760405162461bcd60e51b815260206004820152600c60248201527f4e4f5f415353455254494f4e00000000000000000000000000000000000000006044820152606401610f48565b92915050565b60006111fd83613177565b6040805160c081018252825467ffffffffffffffff8082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b830481161515606083015292935061129392909184916080840191600160c81b900416600281111561126f5761126f6154fe565b6002811115611280576112806154fe565b8152602001600182015481525050613504565b54600160801b900467ffffffffffffffff1692915050565b919050565b60006112bb82613177565b54600160c01b900460ff1692915050565b60006112d6615100565b6040805160608101825282815260016020820152600091810182905290806112ff818481613569565b94505050505090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113955760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113c76132dd565b6001600160a01b0316146114325760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b604080516000808252602082019092526110d391839190613582565b606b546040517f47fb24c50000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301528315156024830152909116906347fb24c590604401600060405180830381600087803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b5050604080516001600160a01b038616815284151560208201527fce7e7eac3fe4e3d77ad155523b4ddb4446965e38cbc7c8a484bb82dc817637ef93500190505b60405180910390a15050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115a45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115d66132dd565b6001600160a01b0316146116415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b610ef782826001613582565b606b546040517f4f61f8500000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690634f61f85090602401600060405180830381600087803b1580156116ad57600080fd5b505af11580156116c1573d6000803e3d6000fd5b50506040516001600160a01b03841681527f82740fc8dc15b355f3eb60cd600d43cd104e6906458cccd4cb51bcd1384c0c3492506020019050610f82565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461179f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f48565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b606a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f9cf43f86b7edba7593cadbd304522caa8a94db8ec03e204762b19c6955f2c34590602001610f82565b606c546001600160a01b03908116908216036118705760405162461bcd60e51b815260206004820152600a60248201527f4355525f4f5554424f58000000000000000000000000000000000000000000006044820152606401610f48565b606b546040517fcee3d7280000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600060248301529091169063cee3d72890604401600060405180830381600087803b1580156118d757600080fd5b505af11580156118eb573d6000803e3d6000fd5b50506040516001600160a01b03841681527ffe29ae11ccc2c860bf49dbf67ca96fa1db99cb935b0a7c02e3fad38ea80d6c2592506020019050610f82565b600061193482613177565b54600160401b900467ffffffffffffffff1692915050565b611954613722565b61196084848484613774565b60405184907f0ef6ac64bd6b0fa95ed37aa19a1b16613fb89e2269c92639a9d516a64fea493890600090a250505050565b600060768267ffffffffffffffff16815481106119b0576119b061573f565b6000918252602090912001546001600160a01b031692915050565b6119d3613722565b80611a205760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f41525241590000000000000000000000000000000000000000006044820152606401610f48565b60005b81811015611a9e57611a5a838383818110611a4057611a4061573f565b9050602002016020810190611a559190615269565b613991565b611a8b838383818110611a6f57611a6f61573f565b9050602002016020810190611a849190615269565b6000613a95565b5080611a968161576b565b915050611a23565b507f53e7f63f13f0c1bf266cf49783f9c98757c2adbe729a1358bc92635b2b4d7352828260405161150b9291906157ce565b610edf613b96565b611ae0615125565b611ae982613177565b6040805160c081018252825467ffffffffffffffff8082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b909104166002811115611b5457611b546154fe565b6002811115611b6557611b656154fe565b81526020016001820154815250509050919050565b60688190556040518181527f7c4db9e8738aa15b72d17ae77a824047a59f8657e14b5a5a75cb6d08213a1db790602001610f82565b60718190556040518181527f238dc443e1da4236615831e66e5dd5ed97848f0eec72bcb57efa87438fca687390602001610f82565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611c715760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ca36132dd565b6001600160a01b031614611d0e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b610ef782826001613310565b611d22613722565b611d2d828483613bd3565b505060405181907fe5256bb4fdac498ff91fac1e162648b613c54eae8e784a5e73ca9ffcb0a08a6e90600090a2505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611dec5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e1e6132dd565b6001600160a01b031614611e895760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b600054610100900460ff1615808015611ea95750600054600160ff909116105b80611ec35750303b158015611ec3575060005460ff166001145b611f355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f48565b6000805460ff191660011790558015611f58576000805461ff0019166101001790555b43607a55611f696020830183615269565b606b80546001600160a01b0319166001600160a01b0392909216919091179055611f966020830183615269565b6001600160a01b03166347fb24c5611fb46060850160408601615269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801561201457600080fd5b505af1158015612028573d6000803e3d6000fd5b5061203a925050506020830183615269565b6001600160a01b0316634f61f8506120586040850160208601615269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b1580156120b157600080fd5b505af11580156120c5573d6000803e3d6000fd5b506120da925050506060830160408401615269565b606a80546001600160a01b0319166001600160a01b039290921691909117905561210a6080830160608401615269565b606c80546001600160a01b0319166001600160a01b03929092169190911790556121376020830183615269565b6001600160a01b031663cee3d7286121556080850160608601615269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b1580156121b557600080fd5b505af11580156121c9573d6000803e3d6000fd5b506121de9250505060a0830160808401615269565b606d80546001600160a01b0319166001600160a01b03928316179055606b541663ae60bd1361221360a0850160808601615269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561226f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229391906157e2565b6123bc576122a46020830183615269565b6001600160a01b03166347fb24c56122c260a0850160808601615269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801561232257600080fd5b505af1158015612336573d6000803e3d6000fd5b5061234b9250505060a0830160808401615269565b6001600160a01b031663cf8d56d660c085013561236b60e08701876157ff565b6040518463ffffffff1660e01b815260040161238993929190615864565b600060405180830381600087803b1580156123a357600080fd5b505af11580156123b7573d6000803e3d6000fd5b505050505b6123cc6040830160208401615269565b6001600160a01b0316637fa3a40e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242d919061589a565b6000036124e7576124446040830160208401615269565b6040517fe0bc972900000000000000000000000000000000000000000000000000000000815260006004820181905260c0602483015260c4820181905260016044830181905260648301829052608483019190915260a48201526001600160a01b03919091169063e0bc97299060e401600060405180830381600087803b1580156124ce57600080fd5b505af11580156124e2573d6000803e3d6000fd5b505050505b6124f961012083016101008401615269565b606e80546001600160a01b0319166001600160a01b039290921691909117905561252960c0830160a08401615269565b606980546001600160a01b0319166001600160a01b03929092169190911790556125566020840184615455565b6066805460c086013560655560408601356067556060860135606855604b60715567ffffffffffffffff929092166fffffffffffffffffffffffffffffffff19909216919091176a03138000000000000000001790556125be61034084016103208501615455565b6069805467ffffffffffffffff9290921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055600061262260c0850160a08601615269565b6001600160a01b0316036126785760405162461bcd60e51b815260206004820152601060248201527f494e56414c49445f455343524f575f30000000000000000000000000000000006044820152606401610f48565b61268860c0840160a08501615269565b606f80546001600160a01b0319166001600160a01b03929092169190911790556126b86040840160208501615269565b607080546001600160a01b0319166001600160a01b03929092169190911790556126ea61030084016102e08501615269565b607b80546001600160a01b0392909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055600080806127808161274b612746368a90038a016102008b016159d4565b6144fe565b604080516020808201949094528082019290925260608083018790528151808403909101815260809092019052805191012090565b90506000606b60009054906101000a90046001600160a01b03166001600160a01b03166284120c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fa919061589a565b9050866102c00135810361281657612813600182615a3b565b90505b60685460675460695460665460408051602080820196909652808201949094526bffffffffffffffffffffffff19606093841b16928401929092527fffffffffffffffff00000000000000000000000000000000000000000000000060c091821b811660748501529085901b16607c830152805160648184030181526084909201905280519101206000906128ad9060019061452e565b90506128b98184614566565b6128c161515c565b6128d4368a90038a016102008b016159d4565b60408083019190915260685460675460695460665493518a9489947f901c3aee23cf4478825462caaab375c606ab83516060388344f0650340753630946129399489948e948d9493926001600160a01b03169167ffffffffffffffff90911690615adc565b60405180910390a37f0000000000000000000000000000000000000000000000000000000000000000156129da5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ca919061589a565b6000858152607c60205260409020555b6040805160608b0135815260c08b013560208201527ffc1b83c11d99d08a938e0b82a0bd45f822f71ff5abf23f999c93c4533d752464910160405180910390a15050505050508015612a66576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b607b805460ff19168215159081179091556040519081527f016436ae56a1958a8efa3965e4839a8a90009e0a225fd19fe89b701c99f3e6e990602001610f82565b82612af95760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f41525241590000000000000000000000000000000000000000006044820152606401610f48565b828114612b485760405162461bcd60e51b815260206004820152600c60248201527f57524f4e475f4c454e47544800000000000000000000000000000000000000006044820152606401610f48565b60005b83811015612bfd57828282818110612b6557612b6561573f565b9050602002016020810190612b7a919061562b565b15612bb757612bb1858583818110612b9457612b9461573f565b9050602002016020810190612ba99190615269565b607290614689565b50612beb565b612be9858583818110612bcc57612bcc61573f565b9050602002016020810190612be19190615269565b60729061469e565b505b80612bf58161576b565b915050612b4b565b507f0d9690f97165f35991ae60d2a97e04aff472c08729722a9236ff1bc8b9ba90c084848484604051612c339493929190615bbb565b60405180910390a150505050565b606980546001600160a01b0319166001600160a01b0383169081179091556040519081527fe86d63ef871123954e3c79261a2ad29d42552412045093f9e7f3ba09a459874290602001610f82565b6060612c9b60726146b3565b905090565b60008167ffffffffffffffff1611612cfa5760405162461bcd60e51b815260206004820152601660248201527f494e56414c49445f434f4e4649524d5f504552494f44000000000000000000006044820152606401610f48565b6066805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527fa65727a75a71361b541984b5db16e2bd4a6a013f072fe8bb097eafd3844b769790602001610f82565b612d6382612d5d368690038601866159d4565b83613569565b8414612db15760405162461bcd60e51b815260206004820152601660248201527f494e56414c49445f415353455254494f4e5f48415348000000000000000000006044820152606401610f48565b50505050565b60006001612dc483613177565b54600160c81b900460ff166002811115612de057612de06154fe565b1492915050565b606b54604080517fee35f32700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163ee35f3279160048083019260209291908290030181865afa158015612e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9b9190615c19565b606680547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16600160401b67ffffffffffffffff8416908102919091179091556040519081527f43f7dc42145cd896e425c1ba47e44ad7fac3214c8993455b88ea382f68a5ed3390602001610f82565b60006111ec6072836146c0565b6001600160a01b038116612f415760405162461bcd60e51b815260206004820152601060248201527f494e56414c49445f455343524f575f30000000000000000000000000000000006044820152606401610f48565b606f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f0b0f78bec1daf434a03f0d26fd75936a5391ef694a7ce32a964a316f40b530dd90602001610f82565b606c80546001600160a01b0319166001600160a01b03838116918217909255606b546040517fcee3d7280000000000000000000000000000000000000000000000000000000081526004810192909252600160248301529091169063cee3d72890604401600060405180830381600087803b15801561300d57600080fd5b505af1158015613021573d6000803e3d6000fd5b50506040516001600160a01b03841681527f0bff4fc5e4cd8fc762bca2b6ff29e3b73a463474097b3f1e972ed2a167b534a792506020019050610f82565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f2000000000000000000000000000000000000000000000000000000001790529051600091829182916064916130cb9190615c5a565b600060405180830381855afa9150503d8060008114613106576040519150601f19603f3d011682016040523d82523d6000602084013e61310b565b606091505b509150915081801561311e575080516020145b9250505090565b61312d613722565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000816131c65760405162461bcd60e51b815260206004820152601b60248201527f415353455254494f4e5f49445f43414e4e4f545f42455f5a45524f00000000006044820152606401610f48565b50600090815260756020526040902090565b61328f823560208401356131f26060860160408701615269565b6132026080870160608801615455565b61321260a0880160808901615455565b60408051602080820197909752808201959095526bffffffffffffffffffffffff19606094851b16938501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b81166074860152911b16607c8301528051606481840301815260849092019052805191012090565b8114610ef75760405162461bcd60e51b815260206004820152601460248201527f434f4e4649475f484153485f4d49534d415443480000000000000000000000006044820152606401610f48565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b7f49bd798cd84788856140a4cd5030756b4d08a9e4d55db725ec195f232d262a895460ff161561334357612a66836146e2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561339d575060408051601f3d908101601f1916820190925261339a9181019061589a565b60015b61340f5760405162461bcd60e51b815260206004820152603860248201527f45524331393637557067726164653a206e6577207365636f6e6461727920696d60448201527f706c656d656e746174696f6e206973206e6f74205555505300000000000000006064820152608401610f48565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d81146134a45760405162461bcd60e51b815260206004820152603360248201527f45524331393637557067726164653a20756e737570706f72746564207365636f60448201527f6e646172792070726f786961626c6555554944000000000000000000000000006064820152608401610f48565b50612a668383836147a3565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6134d96147c8565b604080516001600160a01b03928316815291841660208301520160405180910390a16110d3816147f0565b60008160800151600281111561351c5761351c6154fe565b036110d35760405162461bcd60e51b815260206004820152601360248201527f415353455254494f4e5f4e4f545f4558495354000000000000000000000000006044820152606401610f48565b60006135788461274b856144fe565b90505b9392505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156135b557612a6683614893565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561360f575060408051601f3d908101601f1916820190925261360c9181019061589a565b60015b6136815760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f48565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146137165760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f48565b50612a66838383614937565b60335460ff16610edf5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f48565b600061377f85613177565b905060018154600160c81b900460ff1660028111156137a0576137a06154fe565b146137ed5760405162461bcd60e51b815260206004820152600b60248201527f4e4f545f50454e44494e470000000000000000000000000000000000000000006044820152606401610f48565b61380684613800368690038601866159d4565b84613569565b85146138545760405162461bcd60e51b815260206004820152600c60248201527f434f4e4649524d5f4441544100000000000000000000000000000000000000006044820152606401610f48565b600061386d61386836869003860186615c76565b614940565b9050600061388861388336879003870187615c76565b614952565b606c546040517fa04cee6000000000000000000000000000000000000000000000000000000000815260048101839052602481018590529192506001600160a01b03169063a04cee6090604401600060405180830381600087803b1580156138ef57600080fd5b505af1158015613903573d6000803e3d6000fd5b50505060748890555082547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff167902000000000000000000000000000000000000000000000000001783556040805183815260208101839052815189927ffc42829b29c259a7370ab56c8f69fce23b5f351a9ce151da453281993ec0090c928290030190a250505050505050565b6001600160a01b038116600090815260776020526040902060020154600160401b900460ff16613a035760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f5354414b4544000000000000000000000000000000000000000000006044820152606401610f48565b6001600160a01b03811660009081526077602052604081206001015460745490919082149080613a3284613177565b5467ffffffffffffffff161190508180613a495750805b612db15760405162461bcd60e51b815260206004820152600c60248201527f5354414b455f41435449564500000000000000000000000000000000000000006044820152606401610f48565b6001600160a01b038083166000908152607760205260408120600281015481549293919269010000000000000000009091049091169080851115613b1b5760405162461bcd60e51b815260206004820152601060248201527f544f4f5f4c4954544c455f5354414b45000000000000000000000000000000006044820152606401610f48565b6000613b278683615c92565b8685559050613b36838261495e565b826001600160a01b0316876001600160a01b03167fd957cf2340073335d256f72a9ef89cf1a43c31143341a6a53575ef33e987beb88489604051613b84929190918252602082015260400190565b60405180910390a39695505050505050565b613b9e614a03565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861315a3390565b600080613be660408601610eee86613177565b6001613bfa61024087016102208801615ca5565b6002811115613c0b57613c0b6154fe565b1480613c3957506002613c2661024087016102208801615ca5565b6002811115613c3757613c376154fe565b145b613c855760405162461bcd60e51b815260206004820152601060248201527f4241445f41465445525f535441545553000000000000000000000000000000006044820152606401610f48565b83613ca78635613c9d36899003890160e08a016159d4565b6020890135613569565b14613cf45760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4245464f52455f53544154450000000000000000000000006044820152606401610f48565b6001613d0861018087016101608801615ca5565b6002811115613d1957613d196154fe565b14613d665760405162461bcd60e51b815260206004820152600f60248201527f4241445f505245565f53544154555300000000000000000000000000000000006044820152606401610f48565b6000613d7185613177565b90506000806101a0880160e0890182613d8a8383614a56565b1215613dd85760405162461bcd60e51b815260206004820152600f60248201527f494e424f585f4241434b574152445300000000000000000000000000000000006044820152606401610f48565b6000613dfe613ded60e08d0160c08e01615455565b849067ffffffffffffffff16614b63565b90506000811315613e515760405162461bcd60e51b815260206004820152600d60248201527f494e424f585f544f4f5f464152000000000000000000000000000000000000006044820152606401610f48565b6002613e656102408d016102208e01615ca5565b6002811115613e7657613e766154fe565b14158015613e845750600081125b15613ee657600196506000613e998484614a56565b13613ee65760405162461bcd60e51b815260206004820152601360248201527f4f564552464c4f575f5354414e445354494c4c000000000000000000000000006044820152606401610f48565b606b54604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015613f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f6b919061589a565b90506000613f798583614b63565b1315613fc75760405162461bcd60e51b815260206004820152600e60248201527f494e424f585f504153545f454e440000000000000000000000000000000000006044820152606401610f48565b80613fd860e08e0160c08f01615455565b67ffffffffffffffff1611156140305760405162461bcd60e51b815260206004820152601360248201527f494e424f585f4e4f545f504f50554c41544544000000000000000000000000006044820152606401610f48565b600061404961404436879003870187615c76565b614beb565b67ffffffffffffffff16905081810361406e57614067826001615a3b565b9650614072565b8196505b806000036140c25760405162461bcd60e51b815260206004820152601160248201527f454d5054595f494e424f585f434f554e540000000000000000000000000000006044820152606401610f48565b606b546001600160a01b03166316bf55796140de600184615c92565b6040518263ffffffff1660e01b81526004016140fc91815260200190565b602060405180830381865afa158015614119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061413d919061589a565b9550505050505061415d87896101a001803603810190612d5d91906159d4565b94508585148061416b575085155b6141b75760405162461bcd60e51b815260206004820152601960248201527f554e45585045435445445f415353455254494f4e5f48415348000000000000006044820152606401610f48565b60006141c286613177565b54600160c81b900460ff1660028111156141de576141de6154fe565b1461422b5760405162461bcd60e51b815260206004820152600e60248201527f415353455254494f4e5f5345454e0000000000000000000000000000000000006044820152606401610f48565b825460685460675460695460665460408051602080820196909652808201949094526bffffffffffffffffffffffff19606093841b16928401929092527fffffffffffffffff00000000000000000000000000000000000000000000000060c091821b811660748501529087901b16607c830152805160648184030181526084909201905280519101206000916142cf9167ffffffffffffffff909116159061452e565b90506142da84614bf9565b60008681526075602090815260409182902083518154928501519385015160608601511515600160c01b027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff928316600160801b02167fffffffffffffff000000000000000000ffffffffffffffffffffffffffffffff968316600160401b026fffffffffffffffffffffffffffffffff19909616929093169190911793909317939093169290921717808255608083015183929182907fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff16600160c81b8360028111156143d3576143d36154fe565b021790555060a0820151816001015590505087867f901c3aee23cf4478825462caaab375c606ab83516060388344f06503407536308b8587606854606754606960009054906101000a90046001600160a01b0316606660009054906101000a900467ffffffffffffffff166040516144519796959493929190615d29565b60405180910390a37f0000000000000000000000000000000000000000000000000000000000000000156144f25760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156144be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e2919061589a565b6000878152607c60205260409020555b50505050935093915050565b6000816040516020016145119190615dc3565b604051602081830303815290604052805190602001209050919050565b614536615125565b61453e615125565b67ffffffffffffffff4316604082015292151560608401525060a08201526001608082015290565b61456e614c7d565b6002608083018190525060008181526075602090815260409182902084518154928601519386015160608701511515600160c01b027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff928316600160801b02167fffffffffffffff000000000000000000ffffffffffffffffffffffffffffffff968316600160401b026fffffffffffffffffffffffffffffffff19909616929093169190911793909317939093169290921717808255608084015184929182907fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff16600160c81b836002811115614671576146716154fe565b021790555060a0919091015160019091015560745550565b600061357b836001600160a01b038416614d02565b600061357b836001600160a01b038416614d51565b6060600061357b83614e3a565b6001600160a01b0381166000908152600183016020526040812054151561357b565b6001600160a01b0381163b61475f5760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e74726163740000000000000000006064820152608401610f48565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6147ac83614e96565b6000825111806147b95750805b15612a6657612db18383614ed6565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103613301565b6001600160a01b03811661486c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f48565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103614782565b6001600160a01b0381163b6149105760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f48565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc614782565b6147ac83614efb565b8051600090815b602002015192915050565b80516000906001614947565b6001600160a01b038216600090815260786020526040812054906149828383615a3b565b6001600160a01b03851660009081526078602052604081208290556079805492935085929091906149b4908490615a3b565b909155505060408051838152602081018390526001600160a01b038616917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a250505050565b60335460ff1615610edf5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f48565b600080614a6b61404436869003860186615c76565b90506000614a8161404436869003860186615c76565b90508067ffffffffffffffff168267ffffffffffffffff161015614aab57600019925050506111ec565b8067ffffffffffffffff168267ffffffffffffffff161115614ad2576001925050506111ec565b6000614aeb614ae636889003880188615c76565b614f3b565b90506000614b01614ae636889003880188615c76565b90508067ffffffffffffffff168267ffffffffffffffff161015614b2d576000199450505050506111ec565b8067ffffffffffffffff168267ffffffffffffffff161115614b565760019450505050506111ec565b60009450505050506111ec565b600080614b7861404436869003860186615c76565b9050828167ffffffffffffffff161015614b97576000199150506111ec565b828167ffffffffffffffff161115614bb35760019150506111ec565b6000614bc7614ae636879003870187615c76565b67ffffffffffffffff161115614be15760019150506111ec565b60009150506111ec565b602081015160009081614947565b805467ffffffffffffffff16600003614c2957805467ffffffffffffffff19164367ffffffffffffffff16179055565b8054600160401b900467ffffffffffffffff166000036110d35780547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16600160401b4367ffffffffffffffff1602179055565b600054610100900460ff16614cfa5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f48565b610edf614f4a565b6000818152600183016020526040812054614d49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556111ec565b5060006111ec565b60008181526001830160205260408120548015614be1576000614d75600183615c92565b8554909150600090614d8990600190615c92565b9050818114614dee576000866000018281548110614da957614da961573f565b9060005260206000200154905080876000018481548110614dcc57614dcc61573f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614dff57614dff615dd1565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506111ec565b606081600001805480602002602001604051908101604052809291908181526020018280548015614e8a57602002820191906000526020600020905b815481526020019060010190808311614e76575b50505050509050919050565b614e9f816146e2565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b606061357b8383604051806060016040528060278152602001615e1b60279139614fd3565b614f0481614893565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60208101516000906001614947565b600054610100900460ff16614fc75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f48565b6033805460ff19169055565b60606001600160a01b0384163b6150525760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610f48565b600080856001600160a01b03168560405161506d9190615c5a565b600060405180830381855af49150503d80600081146150a8576040519150601f19603f3d011682016040523d82523d6000602084013e6150ad565b606091505b50915091506150bd8282866150c7565b9695505050505050565b606083156150d657508161357b565b8251156150e65782518084602001fd5b8160405162461bcd60e51b8152600401610f489190615de7565b60405180604001604052806151136151c6565b81526020016151206151c6565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290529060808201905b8152600060209091015290565b60405180606001604052806151ac604080516060808201835260008083526020808401829052845160a0810186528281529081018290528085018290529182018190526080820152909182015290565b81526020016151b96151e4565b81526020016151206151e4565b60405180604001604052806002906020820280368337509192915050565b60405180606001604052806151f7615100565b8152602001600061514f565b60008082840360c081121561521757600080fd5b8335925060a0601f198201121561522d57600080fd5b506020830190509250929050565b60006020828403121561524d57600080fd5b5035919050565b6001600160a01b03811681146110d357600080fd5b60006020828403121561527b57600080fd5b813561357b81615254565b80151581146110d357600080fd5b600080604083850312156152a757600080fd5b82356152b281615254565b915060208301356152c281615286565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715615306576153066152cd565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615335576153356152cd565b604052919050565b6000806040838503121561535057600080fd5b823561535b81615254565b915060208381013567ffffffffffffffff8082111561537957600080fd5b818601915086601f83011261538d57600080fd5b81358181111561539f5761539f6152cd565b6153b184601f19601f8401160161530c565b915080825287848285010111156153c757600080fd5b80848401858401376000848284010152508093505050509250929050565b600060c082840312156153f757600080fd5b50919050565b600080600080610120858703121561541457600080fd5b843593506020850135925061542c86604087016153e5565b939692955092936101000135925050565b803567ffffffffffffffff811681146112ab57600080fd5b60006020828403121561546757600080fd5b61357b8261543d565b60008083601f84011261548257600080fd5b50813567ffffffffffffffff81111561549a57600080fd5b6020830191508360208260051b85010111156154b557600080fd5b9250929050565b600080602083850312156154cf57600080fd5b823567ffffffffffffffff8111156154e657600080fd5b6154f285828601615470565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b600381106110d357634e487b7160e01b600052602160045260246000fd5b600060c08201905067ffffffffffffffff80845116835280602085015116602084015280604085015116604084015250606083015115156060830152608083015161557c81615514565b8060808401525060a083015160a083015292915050565b60008060008385036102a08112156155aa57600080fd5b84359350610260601f19820112156155c157600080fd5b5060208401915061028084013590509250925092565b6000808284036101408112156155ec57600080fd5b833567ffffffffffffffff81111561560357600080fd5b84016103a0818703121561561657600080fd5b9250610120601f198201121561522d57600080fd5b60006020828403121561563d57600080fd5b813561357b81615286565b6000806000806040858703121561565e57600080fd5b843567ffffffffffffffff8082111561567657600080fd5b61568288838901615470565b9096509450602087013591508082111561569b57600080fd5b506156a887828801615470565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156156f55783516001600160a01b0316835292840192918401916001016156d0565b50909695505050505050565b600080600080610120858703121561571857600080fd5b8435935061572986602087016153e5565b939693955050505060e082013591610100013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820361577e5761577e615755565b5060010190565b8183526000602080850194508260005b858110156157c35781356157a881615254565b6001600160a01b031687529582019590820190600101615795565b509495945050505050565b602081526000613578602083018486615785565b6000602082840312156157f457600080fd5b815161357b81615286565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261583457600080fd5b83018035915067ffffffffffffffff82111561584f57600080fd5b6020019150368190038213156154b557600080fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000602082840312156158ac57600080fd5b5051919050565b600082601f8301126158c457600080fd5b6040516040810181811067ffffffffffffffff821117156158e7576158e76152cd565b80604052508060408401858111156158fe57600080fd5b845b8181101561591f576159118161543d565b835260209283019201615900565b509195945050505050565b60006080828403121561593c57600080fd5b6040516040810181811067ffffffffffffffff8211171561595f5761595f6152cd565b604052905080601f8301841361597457600080fd5b61597c6152e3565b80604085018681111561598e57600080fd5b855b818110156159a8578035845260209384019301615990565b508184526159b687826158b3565b60208501525050505092915050565b8035600381106112ab57600080fd5b600060c082840312156159e657600080fd5b6040516060810181811067ffffffffffffffff82111715615a0957615a096152cd565b604052615a16848461592a565b8152615a24608084016159c5565b602082015260a09290920135604083015250919050565b808201808211156111ec576111ec615755565b615a5781615514565b9052565b805180518360005b6002811015615a82578251825260209283019290910190600101615a63565b505050602090810151906040840160005b6002811015615aba57835167ffffffffffffffff1682529282019290820190600101615a93565b50508201519050615ace6080840182615a4e565b506040015160a09190910152565b600061032082019050885180518352602081015160208401526040810151905080516040840152602081015160608401526001600160a01b036040820151166080840152606081015167ffffffffffffffff80821660a08601528060808401511660c08601525050506020890151615b5760e0840182615a5b565b506040890151615b6b6101a0840182615a5b565b508761026083015286610280830152856102a0830152846102c0830152615b9e6102e08301856001600160a01b03169052565b67ffffffffffffffff831661030083015298975050505050505050565b604081526000615bcf604083018688615785565b8281036020848101919091528482528591810160005b86811015615c0c578335615bf881615286565b151582529282019290820190600101615be5565b5098975050505050505050565b600060208284031215615c2b57600080fd5b815161357b81615254565b60005b83811015615c51578181015183820152602001615c39565b50506000910152565b60008251615c6c818460208701615c36565b9190910192915050565b600060808284031215615c8857600080fd5b61357b838361592a565b818103818111156111ec576111ec615755565b600060208284031215615cb757600080fd5b61357b826159c5565b6040818337604082016040820160005b6002811015615d015767ffffffffffffffff615ceb8361543d565b1683526020928301929190910190600101615cd0565b505050615d10608082016159c5565b615d1981615514565b608083015260a090810135910152565b600061032082019050883582526020890135602083015260408901356040830152606089013560608301526080890135615d6281615254565b6001600160a01b03166080830152615d7c60a08a0161543d565b67ffffffffffffffff80821660a085015280615d9a60c08d0161543d565b1660c08501525050615db260e0830160e08b01615cc0565b6101a0615b6b818401828c01615cc0565b60c081016111ec8284615a5b565b634e487b7160e01b600052603160045260246000fd5b6020815260008251806020840152615e06816040850160208701615c36565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dd6d9989023bc385a9c6e6643518ea30bfc0354680f9af3468ae53d31cb2984c64736f6c63430008110033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"AnyTrustFastConfirmerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sendRoot\",\"type\":\"bytes32\"}],\"name\":\"AssertionConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"}],\"name\":\"AssertionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"AssertionForceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"BaseStakeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"}],\"name\":\"ChallengeManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"ConfirmPeriodBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelayedInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"InboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"LoserStakeEscrowSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"MinimumAssertionPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OldOutboxRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"OutboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"challengeIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asserter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"challengedAssertion\",\"type\":\"uint64\"}],\"name\":\"RollupChallengeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"machineHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"RollupInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"StakersForceRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"UpgradedSecondary\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawableFundsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"ValidatorAfkBlocksSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"ValidatorWhitelistDisabledSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bool[]\",\"name\":\"enabled\",\"type\":\"bool[]\"}],\"name\":\"ValidatorsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"WasmModuleRootSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_stakerMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"amountStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeGracePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeManager\",\"outputs\":[{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmPeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"forceConfirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"forceCreateAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"staker\",\"type\":\"address[]\"}],\"name\":\"forceRefundStaker\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"secondChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isFirstChild\",\"type\":\"bool\"},{\"internalType\":\"enumAssertionStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"configHash\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertionCreationBlockForLogLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getFirstChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getSecondChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"internalType\":\"structIRollupCore.Staker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inbox\",\"outputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minimumAssertionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"validatorAfkBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isFirstChild\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"latestStakedAssertion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loserStakeEscrow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumAssertionPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"outbox\",\"outputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"removeOldOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupDeploymentBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEventInbox\",\"outputs\":[{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anyTrustFastConfirmer\",\"type\":\"address\"}],\"name\":\"setAnyTrustFastConfirmer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseStake\",\"type\":\"uint256\"}],\"name\":\"setBaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_challengeManager\",\"type\":\"address\"}],\"name\":\"setChallengeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newConfirmPeriod\",\"type\":\"uint64\"}],\"name\":\"setConfirmPeriodBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"newInbox\",\"type\":\"address\"}],\"name\":\"setInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newLoserStakerEscrow\",\"type\":\"address\"}],\"name\":\"setLoserStakeEscrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPeriod\",\"type\":\"uint256\"}],\"name\":\"setMinimumAssertionPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"_outbox\",\"type\":\"address\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validator\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"_val\",\"type\":\"bool[]\"}],\"name\":\"setValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newAfkBlocks\",\"type\":\"uint64\"}],\"name\":\"setValidatorAfkBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_validatorWhitelistDisabled\",\"type\":\"bool\"}],\"name\":\"setValidatorWhitelistDisabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newWasmModuleRoot\",\"type\":\"bytes32\"}],\"name\":\"setWasmModuleRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWithdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeSecondaryTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeSecondaryToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"validateAssertionHash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"name\":\"validateConfig\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorAfkBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWhitelistDisabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"withdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawalAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x60c0604052620000196200003660201b620030521760201c565b15156080523060a0523480156200002f57600080fd5b5062000104565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491620000769190620000d3565b600060405180830381855afa9150503d8060008114620000b3576040519150601f19603f3d011682016040523d82523d6000602084013e620000b8565b606091505b5091509150818015620000cc575080516020145b9250505090565b6000825160005b81811015620000f65760208186018101518583015201620000da565b506000920191825250919050565b60805160a051615eb56200017e60003960008181610f970152818161101c0152818161114d015281816111d201528181612020015281816120a50152818161222f015281816122b40152818161241a015281816128fc0152612981015260008181611d2901528181611e7a01526146330152615eb56000f3fe60806040526004361061044a5760003560e01c806371ef232c11610243578063b7ab4db511610143578063e8bd4922116100bb578063f112cea31161008a578063fb0e722b1161006f578063fb0e722b14610e77578063fc8ffa0314610e97578063ff204f3b14610eb757600080fd5b8063f112cea314610e37578063facd743b14610e5757600080fd5b8063e8bd492214610d23578063ee35f32714610dcc578063ef40a67014610de1578063f065de3f14610e1757600080fd5b8063dff6978711610112578063e531d8c7116100f7578063e531d8c714610cbb578063e6b3082c14610cdb578063e78cea9214610d0357600080fd5b8063dff6978714610c86578063e51019a614610c9b57600080fd5b8063b7ab4db514610c04578063bc45e0ae14610c26578063ce11e6ab14610c46578063ce66d05c14610c6657600080fd5b8063948d6588116101d6578063a23c44b1116101a5578063a3ffb7721161018a578063a3ffb77214610ba4578063aa38a6e714610bc4578063b7626e7314610be457600080fd5b8063a23c44b114610a71578063a2b4f1d814610b8457600080fd5b8063948d658814610a085780639846129a14610a285780639a7b455614610a3b5780639a8a059214610a5b57600080fd5b806384728cd01161021257806384728cd01461095c57806388302884146109a557806389384960146109d25780638ee1a126146109f257600080fd5b806371ef232c146108fb57806376e7e23b146109115780637c75c298146109275780638456cb591461094757600080fd5b80633659cfe61161034e57806353b60c4a116102e15780635bf03833116102b05780636177fd18116102955780636177fd181461088357806365f7f80d146108c65780636ddd3744146108db57600080fd5b80635bf038331461084b5780635c975abb1461086b57600080fd5b806353b60c4a146107c657806355840a58146107e6578063567ca41b1461080b57806356bbc9e61461082b57600080fd5b80634f1ef2861161031d5780634f1ef2861461075e5780634f61f8501461077157806351ed6a301461079157806352d1902d146107b157600080fd5b80633659cfe6146106cf5780633be680ea146106ef57806345e38b641461072857806347fb24c51461073e57600080fd5b806312ab3d3b116103e15780632abdd230116103b05780632f30cabd116103955780632f30cabd14610664578063308362281461069a578063353325e0146106ba57600080fd5b80632abdd2301461060a5780632e7acfa61461064357600080fd5b806312ab3d3b1461057c57806313af4035146105a657806313c56ca7146105c65780631b1689e9146105f457600080fd5b80630d40a0fd1161041d5780630d40a0fd146104e35780630d561b37146105035780630ee5ef0c14610523578063117155851461054357600080fd5b8063023a96fe1461044f578063046f7da21461048c57806304972af9146104a357806306ae5851146104c3575b600080fd5b34801561045b57600080fd5b5060695461046f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561049857600080fd5b506104a1610ed7565b005b3480156104af57600080fd5b506104a16104be366004615241565b610ee1565b3480156104cf57600080fd5b506104a16104de366004615279565b610efb565b3480156104ef57600080fd5b506104a16104fe3660046152a7565b610f8d565b34801561050f57600080fd5b506104a161051e3660046152a7565b6110d6565b34801561052f57600080fd5b506104a161053e3660046152c4565b611143565b34801561054f57600080fd5b5061056361055e366004615279565b611e51565b60405167ffffffffffffffff9091168152602001610483565b34801561058857600080fd5b50607b546105969060ff1681565b6040519015158152602001610483565b3480156105b257600080fd5b506104a16105c13660046152a7565b611e6d565b3480156105d257600080fd5b506105e66105e1366004615279565b611e76565b604051908152602001610483565b34801561060057600080fd5b506105e6607a5481565b34801561061657600080fd5b506105e66106253660046152a7565b6001600160a01b031660009081526077602052604090206001015490565b34801561064f57600080fd5b506066546105639067ffffffffffffffff1681565b34801561067057600080fd5b506105e661067f3660046152a7565b6001600160a01b031660009081526078602052604090205490565b3480156106a657600080fd5b506105966106b5366004615279565b611fbe565b3480156106c657600080fd5b506105e6611fda565b3480156106db57600080fd5b506104a16106ea3660046152a7565b612016565b3480156106fb57600080fd5b506069546105639074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561073457600080fd5b506105e660715481565b34801561074a57600080fd5b506104a1610759366004615326565b61215c565b6104a161076c3660046153cf565b612225565b34801561077d57600080fd5b506104a161078c3660046152a7565b61235b565b34801561079d57600080fd5b5060705461046f906001600160a01b031681565b3480156107bd57600080fd5b506105e661240d565b3480156107d257600080fd5b506104a16107e13660046152a7565b6124d2565b3480156107f257600080fd5b50607b5461046f9061010090046001600160a01b031681565b34801561081757600080fd5b506104a16108263660046152a7565b612520565b34801561083757600080fd5b50610563610846366004615279565b612637565b34801561085757600080fd5b506104a161086636600461548f565b61265a565b34801561087757600080fd5b5060335460ff16610596565b34801561088f57600080fd5b5061059661089e3660046152a7565b6001600160a01b0316600090815260776020526040902060020154600160401b900460ff1690565b3480156108d257600080fd5b506074546105e6565b3480156108e757600080fd5b5061046f6108f63660046154e7565b61269f565b34801561090757600080fd5b506105e660795481565b34801561091d57600080fd5b506105e660675481565b34801561093357600080fd5b506104a161094236600461554e565b6126d9565b34801561095357600080fd5b506104a16127de565b34801561096857600080fd5b5061046f6109773660046152a7565b6001600160a01b03908116600090815260776020526040902060020154690100000000000000000090041690565b3480156109b157600080fd5b506109c56109c0366004615279565b6127e6565b60405161048391906155c4565b3480156109de57600080fd5b506104a16109ed366004615279565b612888565b3480156109fe57600080fd5b506105e660685481565b348015610a1457600080fd5b506104a1610a23366004615279565b6128bd565b6104a1610a363660046153cf565b6128f2565b348015610a4757600080fd5b506104a1610a56366004615625565b612a28565b348015610a6757600080fd5b506105e660655481565b348015610a7d57600080fd5b50610b2d610a8c3660046152a7565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160a01b03908116600090815260776020908152604091829020825160a081018452815481526001820154928101929092526002015467ffffffffffffffff81169282019290925260ff600160401b830416151560608201526901000000000000000000909104909116608082015290565b6040516104839190600060a082019050825182526020830151602083015267ffffffffffffffff60408401511660408301526060830151151560608301526001600160a01b03608084015116608083015292915050565b348015610b9057600080fd5b506104a1610b9f366004615669565b612a6d565b348015610bb057600080fd5b506104a1610bbf366004615686565b612aae565b348015610bd057600080fd5b50606d5461046f906001600160a01b031681565b348015610bf057600080fd5b506104a1610bff3660046152a7565b612c43565b348015610c1057600080fd5b50610c19612c91565b60405161048391906156f2565b348015610c3257600080fd5b50606e5461046f906001600160a01b031681565b348015610c5257600080fd5b50606c5461046f906001600160a01b031681565b348015610c7257600080fd5b506104a1610c813660046154e7565b612ca2565b348015610c9257600080fd5b50607654610563565b348015610ca757600080fd5b506104a1610cb636600461573f565b612d4c565b348015610cc757600080fd5b50610596610cd6366004615279565b612db9565b348015610ce757600080fd5b5060665461056390600160401b900467ffffffffffffffff1681565b348015610d0f57600080fd5b50606b5461046f906001600160a01b031681565b348015610d2f57600080fd5b50610d8c610d3e3660046152a7565b60776020526000908152604090208054600182015460029092015490919067ffffffffffffffff811690600160401b810460ff1690690100000000000000000090046001600160a01b031685565b60408051958652602086019490945267ffffffffffffffff9092169284019290925290151560608301526001600160a01b0316608082015260a001610483565b348015610dd857600080fd5b5061046f612de9565b348015610ded57600080fd5b506105e6610dfc3660046152a7565b6001600160a01b031660009081526077602052604090205490565b348015610e2357600080fd5b50606f5461046f906001600160a01b031681565b348015610e4357600080fd5b506104a1610e523660046154e7565b612e70565b348015610e6357600080fd5b50610596610e723660046152a7565b612ed1565b348015610e8357600080fd5b50606a5461046f906001600160a01b031681565b348015610ea357600080fd5b506104a1610eb23660046152a7565b612ede565b348015610ec357600080fd5b506104a1610ed23660046152a7565b612f82565b610edf613118565b565b610ef781610eee8461316a565b600101546131cb565b5050565b6067548111610f515760405162461bcd60e51b815260206004820152601c60248201527f424153455f5354414b455f4d5553545f42455f494e435245415345440000000060448201526064015b60405180910390fd5b60678190556040518181527f54404e5f5326112dad416747228f2fcd704e702c56bf0673ce7e531108e07c1b906020015b60405180910390a150565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361101a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661104c6132d0565b6001600160a01b0316146110b75760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b604080516000808252602082019092526110d391839190613303565b50565b607b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b038416908102919091179091556040519081527fd3ab4cbe1b6f519eb43f09ded17a12e81b811e297063ada2d65dddef5b612c7c90602001610f82565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111d05760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112026132d0565b6001600160a01b03161461126d5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b600054610100900460ff161580801561128d5750600054600160ff909116105b806112a75750303b1580156112a7575060005460ff166001145b6113195760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f48565b6000805460ff19166001179055801561133c576000805461ff0019166101001790555b43607a5561134d60208301836152a7565b606b80546001600160a01b0319166001600160a01b039290921691909117905561137a60208301836152a7565b6001600160a01b03166347fb24c561139860608501604086016152a7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b1580156113f857600080fd5b505af115801561140c573d6000803e3d6000fd5b5061141e9250505060208301836152a7565b6001600160a01b0316634f61f85061143c60408501602086016152a7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561149557600080fd5b505af11580156114a9573d6000803e3d6000fd5b506114be9250505060608301604084016152a7565b606a80546001600160a01b0319166001600160a01b03929092169190911790556114ee60808301606084016152a7565b606c80546001600160a01b0319166001600160a01b039290921691909117905561151b60208301836152a7565b6001600160a01b031663cee3d72861153960808501606086016152a7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801561159957600080fd5b505af11580156115ad573d6000803e3d6000fd5b506115c29250505060a08301608084016152a7565b606d80546001600160a01b0319166001600160a01b03928316179055606b541663ae60bd136115f760a08501608086016152a7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611677919061577d565b6117a05761168860208301836152a7565b6001600160a01b03166347fb24c56116a660a08501608086016152a7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801561170657600080fd5b505af115801561171a573d6000803e3d6000fd5b5061172f9250505060a08301608084016152a7565b6001600160a01b031663cf8d56d660c085013561174f60e087018761579a565b6040518463ffffffff1660e01b815260040161176d939291906157ff565b600060405180830381600087803b15801561178757600080fd5b505af115801561179b573d6000803e3d6000fd5b505050505b6117b060408301602084016152a7565b6001600160a01b0316637fa3a40e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190615835565b6000036118cb5761182860408301602084016152a7565b6040517fe0bc972900000000000000000000000000000000000000000000000000000000815260006004820181905260c0602483015260c4820181905260016044830181905260648301829052608483019190915260a48201526001600160a01b03919091169063e0bc97299060e401600060405180830381600087803b1580156118b257600080fd5b505af11580156118c6573d6000803e3d6000fd5b505050505b6118dd610120830161010084016152a7565b606e80546001600160a01b0319166001600160a01b039290921691909117905561190d60c0830160a084016152a7565b606980546001600160a01b0319166001600160a01b039290921691909117905561193a60208401846154e7565b6066805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560c08301356065556040830135606755606083013560685561010083013560715561198f610140840161012085016154e7565b6066805467ffffffffffffffff92909216600160401b026fffffffffffffffff0000000000000000199092169190911790556119d3610380840161036085016154e7565b6069805467ffffffffffffffff9290921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790556000611a3760c0850160a086016152a7565b6001600160a01b031603611a8d5760405162461bcd60e51b815260206004820152601060248201527f494e56414c49445f455343524f575f30000000000000000000000000000000006044820152606401610f48565b611a9d60c0840160a085016152a7565b606f80546001600160a01b0319166001600160a01b0392909216919091179055611acd60408401602085016152a7565b607080546001600160a01b0319166001600160a01b0392909216919091179055611aff610340840161032085016152a7565b607b80546001600160a01b0392909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff90921691909117905560008080611b6681611b60611b5b368a90038a016102408b0161596f565b6134a3565b846134d3565b90506000606b60009054906101000a90046001600160a01b03166001600160a01b03166284120c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190615835565b90508661030001358103611bfc57611bf96001826159ec565b90505b60685460675460695460665460408051602080820196909652808201949094526bffffffffffffffffffffffff19606093841b16928401929092527fffffffffffffffff00000000000000000000000000000000000000000000000060c091821b811660748501529085901b16607c83015280516064818403018152608490920190528051910120600090611c9390600190613511565b9050611c9f8184613549565b611ca761513e565b611cba368a90038a016102408b0161596f565b60408083019190915260685460675460695460665493518a9489947f901c3aee23cf4478825462caaab375c606ab83516060388344f065034075363094611d1f9489948e948d9493926001600160a01b03169167ffffffffffffffff90911690615a8d565b60405180910390a37f000000000000000000000000000000000000000000000000000000000000000015611dc05760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db09190615835565b6000858152607c60205260409020555b6040805160608b0135815260c08b013560208201527ffc1b83c11d99d08a938e0b82a0bd45f822f71ff5abf23f999c93c4533d752464910160405180910390a15050505050508015611e4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000611e5c8261316a565b5467ffffffffffffffff1692915050565b6110d38161367b565b60007f000000000000000000000000000000000000000000000000000000000000000015611f00576000828152607c602052604090205480611efa5760405162461bcd60e51b815260206004820152600c60248201527f4e4f5f415353455254494f4e00000000000000000000000000000000000000006044820152606401610f48565b92915050565b6000611f0b8361316a565b6040805160c081018252825467ffffffffffffffff8082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b8304811615156060830152929350611fa192909184916080840191600160c81b9004166002811115611f7d57611f7d615590565b6002811115611f8e57611f8e615590565b81526020016001820154815250506136cf565b54600160801b900467ffffffffffffffff1692915050565b919050565b6000611fc98261316a565b54600160c01b900460ff1692915050565b6000611fe46151ad565b60408051606081018252828152600160208201526000918101829052908061200d818481613734565b94505050505090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036120a35760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120d56132d0565b6001600160a01b0316146121405760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b604080516000808252602082019092526110d39183919061374b565b606b546040517f47fb24c50000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301528315156024830152909116906347fb24c590604401600060405180830381600087803b1580156121c457600080fd5b505af11580156121d8573d6000803e3d6000fd5b5050604080516001600160a01b038616815284151560208201527fce7e7eac3fe4e3d77ad155523b4ddb4446965e38cbc7c8a484bb82dc817637ef93500190505b60405180910390a15050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036122b25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122e46132d0565b6001600160a01b03161461234f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b610ef78282600161374b565b606b546040517f4f61f8500000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690634f61f85090602401600060405180830381600087803b1580156123bb57600080fd5b505af11580156123cf573d6000803e3d6000fd5b50506040516001600160a01b03841681527f82740fc8dc15b355f3eb60cd600d43cd104e6906458cccd4cb51bcd1384c0c3492506020019050610f82565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124ad5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f48565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b606a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f9cf43f86b7edba7593cadbd304522caa8a94db8ec03e204762b19c6955f2c34590602001610f82565b606c546001600160a01b039081169082160361257e5760405162461bcd60e51b815260206004820152600a60248201527f4355525f4f5554424f58000000000000000000000000000000000000000000006044820152606401610f48565b606b546040517fcee3d7280000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600060248301529091169063cee3d72890604401600060405180830381600087803b1580156125e557600080fd5b505af11580156125f9573d6000803e3d6000fd5b50506040516001600160a01b03841681527ffe29ae11ccc2c860bf49dbf67ca96fa1db99cb935b0a7c02e3fad38ea80d6c2592506020019050610f82565b60006126428261316a565b54600160401b900467ffffffffffffffff1692915050565b6126626138eb565b61266e8484848461393d565b60405184907f0ef6ac64bd6b0fa95ed37aa19a1b16613fb89e2269c92639a9d516a64fea493890600090a250505050565b600060768267ffffffffffffffff16815481106126be576126be615b6c565b6000918252602090912001546001600160a01b031692915050565b6126e16138eb565b8061272e5760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f41525241590000000000000000000000000000000000000000006044820152606401610f48565b60005b818110156127ac5761276883838381811061274e5761274e615b6c565b905060200201602081019061276391906152a7565b613b5a565b61279983838381811061277d5761277d615b6c565b905060200201602081019061279291906152a7565b6000613c5e565b50806127a481615b82565b915050612731565b507f53e7f63f13f0c1bf266cf49783f9c98757c2adbe729a1358bc92635b2b4d73528282604051612219929190615be5565b610edf613d5f565b6127ee6151cd565b6127f78261316a565b6040805160c081018252825467ffffffffffffffff8082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b90910416600281111561286257612862615590565b600281111561287357612873615590565b81526020016001820154815250509050919050565b60688190556040518181527f7c4db9e8738aa15b72d17ae77a824047a59f8657e14b5a5a75cb6d08213a1db790602001610f82565b60718190556040518181527f238dc443e1da4236615831e66e5dd5ed97848f0eec72bcb57efa87438fca687390602001610f82565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361297f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610f48565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166129b16132d0565b6001600160a01b031614612a1c5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610f48565b610ef782826001613303565b612a306138eb565b612a3b828483613d9c565b505060405181907fe5256bb4fdac498ff91fac1e162648b613c54eae8e784a5e73ca9ffcb0a08a6e90600090a2505050565b607b805460ff19168215159081179091556040519081527f016436ae56a1958a8efa3965e4839a8a90009e0a225fd19fe89b701c99f3e6e990602001610f82565b82612afb5760405162461bcd60e51b815260206004820152600b60248201527f454d5054595f41525241590000000000000000000000000000000000000000006044820152606401610f48565b828114612b4a5760405162461bcd60e51b815260206004820152600c60248201527f57524f4e475f4c454e47544800000000000000000000000000000000000000006044820152606401610f48565b60005b83811015612bff57828282818110612b6757612b67615b6c565b9050602002016020810190612b7c9190615669565b15612bb957612bb3858583818110612b9657612b96615b6c565b9050602002016020810190612bab91906152a7565b6072906146d6565b50612bed565b612beb858583818110612bce57612bce615b6c565b9050602002016020810190612be391906152a7565b6072906146eb565b505b80612bf781615b82565b915050612b4d565b507f0d9690f97165f35991ae60d2a97e04aff472c08729722a9236ff1bc8b9ba90c084848484604051612c359493929190615bf9565b60405180910390a150505050565b606980546001600160a01b0319166001600160a01b0383169081179091556040519081527fe86d63ef871123954e3c79261a2ad29d42552412045093f9e7f3ba09a459874290602001610f82565b6060612c9d6072614700565b905090565b60008167ffffffffffffffff1611612cfc5760405162461bcd60e51b815260206004820152601660248201527f494e56414c49445f434f4e4649524d5f504552494f44000000000000000000006044820152606401610f48565b6066805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527fa65727a75a71361b541984b5db16e2bd4a6a013f072fe8bb097eafd3844b769790602001610f82565b612d6582612d5f3686900386018661596f565b83613734565b8414612db35760405162461bcd60e51b815260206004820152601660248201527f494e56414c49445f415353455254494f4e5f48415348000000000000000000006044820152606401610f48565b50505050565b60006001612dc68361316a565b54600160c81b900460ff166002811115612de257612de2615590565b1492915050565b606b54604080517fee35f32700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163ee35f3279160048083019260209291908290030181865afa158015612e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9d9190615c57565b606680546fffffffffffffffff00000000000000001916600160401b67ffffffffffffffff8416908102919091179091556040519081527f43f7dc42145cd896e425c1ba47e44ad7fac3214c8993455b88ea382f68a5ed3390602001610f82565b6000611efa60728361470d565b6001600160a01b038116612f345760405162461bcd60e51b815260206004820152601060248201527f494e56414c49445f455343524f575f30000000000000000000000000000000006044820152606401610f48565b606f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f0b0f78bec1daf434a03f0d26fd75936a5391ef694a7ce32a964a316f40b530dd90602001610f82565b606c80546001600160a01b0319166001600160a01b03838116918217909255606b546040517fcee3d7280000000000000000000000000000000000000000000000000000000081526004810192909252600160248301529091169063cee3d72890604401600060405180830381600087803b15801561300057600080fd5b505af1158015613014573d6000803e3d6000fd5b50506040516001600160a01b03841681527f0bff4fc5e4cd8fc762bca2b6ff29e3b73a463474097b3f1e972ed2a167b534a792506020019050610f82565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f2000000000000000000000000000000000000000000000000000000001790529051600091829182916064916130be9190615c98565b600060405180830381855afa9150503d80600081146130f9576040519150601f19603f3d011682016040523d82523d6000602084013e6130fe565b606091505b5091509150818015613111575080516020145b9250505090565b6131206138eb565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000816131b95760405162461bcd60e51b815260206004820152601b60248201527f415353455254494f4e5f49445f43414e4e4f545f42455f5a45524f00000000006044820152606401610f48565b50600090815260756020526040902090565b613282823560208401356131e560608601604087016152a7565b6131f560808701606088016154e7565b61320560a08801608089016154e7565b60408051602080820197909752808201959095526bffffffffffffffffffffffff19606094851b16938501939093527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b81166074860152911b16607c8301528051606481840301815260849092019052805191012090565b8114610ef75760405162461bcd60e51b815260206004820152601460248201527f434f4e4649475f484153485f4d49534d415443480000000000000000000000006044820152606401610f48565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b7f49bd798cd84788856140a4cd5030756b4d08a9e4d55db725ec195f232d262a895460ff161561333657611e4c8361472f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613390575060408051601f3d908101601f1916820190925261338d91810190615835565b60015b6134025760405162461bcd60e51b815260206004820152603860248201527f45524331393637557067726164653a206e6577207365636f6e6461727920696d60448201527f706c656d656e746174696f6e206973206e6f74205555505300000000000000006064820152608401610f48565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d81146134975760405162461bcd60e51b815260206004820152603360248201527f45524331393637557067726164653a20756e737570706f72746564207365636f60448201527f6e646172792070726f786961626c6555554944000000000000000000000000006064820152608401610f48565b50611e4c8383836147f0565b6000816040516020016134b69190615cb4565b604051602081830303815290604052805190602001209050919050565b6040805160208101859052908101839052606081018290526000906080016040516020818303038152906040528051906020012090505b9392505050565b6135196151cd565b6135216151cd565b67ffffffffffffffff4316604082015292151560608401525060a08201526001608082015290565b613551614815565b6002608083018190525060008181526075602090815260409182902084518154928601519386015160608701511515600160c01b027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff928316600160801b02167fffffffffffffff000000000000000000ffffffffffffffffffffffffffffffff968316600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909616929093169190911793909317939093169290921717808255608084015184929182907fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff16600160c81b83600281111561366357613663615590565b021790555060a0919091015160019091015560745550565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6136a461489a565b604080516001600160a01b03928316815291841660208301520160405180910390a16110d3816148c2565b6000816080015160028111156136e7576136e7615590565b036110d35760405162461bcd60e51b815260206004820152601360248201527f415353455254494f4e5f4e4f545f4558495354000000000000000000000000006044820152606401610f48565b600061374384611b60856134a3565b949350505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561377e57611e4c83614965565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156137d8575060408051601f3d908101601f191682019092526137d591810190615835565b60015b61384a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f48565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146138df5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f48565b50611e4c838383614a09565b60335460ff16610edf5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f48565b60006139488561316a565b905060018154600160c81b900460ff16600281111561396957613969615590565b146139b65760405162461bcd60e51b815260206004820152600b60248201527f4e4f545f50454e44494e470000000000000000000000000000000000000000006044820152606401610f48565b6139cf846139c93686900386018661596f565b84613734565b8514613a1d5760405162461bcd60e51b815260206004820152600c60248201527f434f4e4649524d5f4441544100000000000000000000000000000000000000006044820152606401610f48565b6000613a36613a3136869003860186615cc2565b614a12565b90506000613a51613a4c36879003870187615cc2565b614a24565b606c546040517fa04cee6000000000000000000000000000000000000000000000000000000000815260048101839052602481018590529192506001600160a01b03169063a04cee6090604401600060405180830381600087803b158015613ab857600080fd5b505af1158015613acc573d6000803e3d6000fd5b50505060748890555082547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff167902000000000000000000000000000000000000000000000000001783556040805183815260208101839052815189927ffc42829b29c259a7370ab56c8f69fce23b5f351a9ce151da453281993ec0090c928290030190a250505050505050565b6001600160a01b038116600090815260776020526040902060020154600160401b900460ff16613bcc5760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f5354414b4544000000000000000000000000000000000000000000006044820152606401610f48565b6001600160a01b03811660009081526077602052604081206001015460745490919082149080613bfb8461316a565b5467ffffffffffffffff161190508180613c125750805b612db35760405162461bcd60e51b815260206004820152600c60248201527f5354414b455f41435449564500000000000000000000000000000000000000006044820152606401610f48565b6001600160a01b038083166000908152607760205260408120600281015481549293919269010000000000000000009091049091169080851115613ce45760405162461bcd60e51b815260206004820152601060248201527f544f4f5f4c4954544c455f5354414b45000000000000000000000000000000006044820152606401610f48565b6000613cf08683615cde565b8685559050613cff8382614a30565b826001600160a01b0316876001600160a01b03167fd957cf2340073335d256f72a9ef89cf1a43c31143341a6a53575ef33e987beb88489604051613d4d929190918252602082015260400190565b60405180910390a39695505050505050565b613d67614ad5565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861314d3390565b600080613daf60408601610eee8661316a565b6001613dc361024087016102208801615cf1565b6002811115613dd457613dd4615590565b1480613e0257506002613def61024087016102208801615cf1565b6002811115613e0057613e00615590565b145b613e4e5760405162461bcd60e51b815260206004820152601060248201527f4241445f41465445525f535441545553000000000000000000000000000000006044820152606401610f48565b83613e708635613e6636899003890160e08a0161596f565b6020890135613734565b14613ebd5760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4245464f52455f53544154450000000000000000000000006044820152606401610f48565b6001613ed161018087016101608801615cf1565b6002811115613ee257613ee2615590565b14613f2f5760405162461bcd60e51b815260206004820152600f60248201527f4241445f505245565f53544154555300000000000000000000000000000000006044820152606401610f48565b6000613f3a8561316a565b90506000806101a0880160e0890182613f538383614b28565b1215613fa15760405162461bcd60e51b815260206004820152600f60248201527f494e424f585f4241434b574152445300000000000000000000000000000000006044820152606401610f48565b6000613fc7613fb660e08d0160c08e016154e7565b849067ffffffffffffffff16614c35565b9050600081131561401a5760405162461bcd60e51b815260206004820152600d60248201527f494e424f585f544f4f5f464152000000000000000000000000000000000000006044820152606401610f48565b600261402e6102408d016102208e01615cf1565b600281111561403f5761403f615590565b1415801561404d5750600081125b156140af576001965060006140628484614b28565b136140af5760405162461bcd60e51b815260206004820152601360248201527f4f564552464c4f575f5354414e445354494c4c000000000000000000000000006044820152606401610f48565b606b54604080517e84120c00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa158015614110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141349190615835565b905060006141428583614c35565b13156141905760405162461bcd60e51b815260206004820152600e60248201527f494e424f585f504153545f454e440000000000000000000000000000000000006044820152606401610f48565b806141a160e08e0160c08f016154e7565b67ffffffffffffffff1611156141f95760405162461bcd60e51b815260206004820152601360248201527f494e424f585f4e4f545f504f50554c41544544000000000000000000000000006044820152606401610f48565b600061421261420d36879003870187615cc2565b614cbd565b67ffffffffffffffff169050818103614237576142308260016159ec565b965061423b565b8196505b8060000361428b5760405162461bcd60e51b815260206004820152601160248201527f454d5054595f494e424f585f434f554e540000000000000000000000000000006044820152606401610f48565b606b546001600160a01b03166316bf55796142a7600184615cde565b6040518263ffffffff1660e01b81526004016142c591815260200190565b602060405180830381865afa1580156142e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143069190615835565b9550505050505061432687896101a001803603810190612d5f919061596f565b945085851480614334575085155b6143805760405162461bcd60e51b815260206004820152601960248201527f554e45585045435445445f415353455254494f4e5f48415348000000000000006044820152606401610f48565b600061438b8661316a565b54600160c81b900460ff1660028111156143a7576143a7615590565b146143f45760405162461bcd60e51b815260206004820152600e60248201527f415353455254494f4e5f5345454e0000000000000000000000000000000000006044820152606401610f48565b825460685460675460695460665460408051602080820196909652808201949094526bffffffffffffffffffffffff19606093841b16928401929092527fffffffffffffffff00000000000000000000000000000000000000000000000060c091821b811660748501529087901b16607c830152805160648184030181526084909201905280519101206000916144989167ffffffffffffffff9091161590613511565b90506144a384614ccb565b60008681526075602090815260409182902083518154928501519385015160608601511515600160c01b027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff928316600160801b02167fffffffffffffff000000000000000000ffffffffffffffffffffffffffffffff968316600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909616929093169190911793909317939093169290921717808255608083015183929182907fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff16600160c81b8360028111156145ab576145ab615590565b021790555060a0820151816001015590505087867f901c3aee23cf4478825462caaab375c606ab83516060388344f06503407536308b8587606854606754606960009054906101000a90046001600160a01b0316606660009054906101000a900467ffffffffffffffff166040516146299796959493929190615d75565b60405180910390a37f0000000000000000000000000000000000000000000000000000000000000000156146ca5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614696573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146ba9190615835565b6000878152607c60205260409020555b50505050935093915050565b600061350a836001600160a01b038416614d40565b600061350a836001600160a01b038416614d8f565b6060600061350a83614e78565b6001600160a01b0381166000908152600183016020526040812054151561350a565b6001600160a01b0381163b6147ac5760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e74726163740000000000000000006064820152608401610f48565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6147f983614ed4565b6000825111806148065750805b15611e4c57612db38383614f14565b600054610100900460ff166148925760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f48565b610edf614f39565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036132f4565b6001600160a01b03811661493e5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610f48565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036147cf565b6001600160a01b0381163b6149e25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f48565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6147cf565b6147f983614fc2565b8051600090815b602002015192915050565b80516000906001614a19565b6001600160a01b03821660009081526078602052604081205490614a5483836159ec565b6001600160a01b0385166000908152607860205260408120829055607980549293508592909190614a869084906159ec565b909155505060408051838152602081018390526001600160a01b038616917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a250505050565b60335460ff1615610edf5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f48565b600080614b3d61420d36869003860186615cc2565b90506000614b5361420d36869003860186615cc2565b90508067ffffffffffffffff168267ffffffffffffffff161015614b7d5760001992505050611efa565b8067ffffffffffffffff168267ffffffffffffffff161115614ba457600192505050611efa565b6000614bbd614bb836889003880188615cc2565b615002565b90506000614bd3614bb836889003880188615cc2565b90508067ffffffffffffffff168267ffffffffffffffff161015614bff57600019945050505050611efa565b8067ffffffffffffffff168267ffffffffffffffff161115614c28576001945050505050611efa565b6000945050505050611efa565b600080614c4a61420d36869003860186615cc2565b9050828167ffffffffffffffff161015614c6957600019915050611efa565b828167ffffffffffffffff161115614c85576001915050611efa565b6000614c99614bb836879003870187615cc2565b67ffffffffffffffff161115614cb3576001915050611efa565b6000915050611efa565b602081015160009081614a19565b805467ffffffffffffffff16600003614cfb57805467ffffffffffffffff19164367ffffffffffffffff16179055565b8054600160401b900467ffffffffffffffff166000036110d35780546fffffffffffffffff00000000000000001916600160401b4367ffffffffffffffff1602179055565b6000818152600183016020526040812054614d8757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611efa565b506000611efa565b60008181526001830160205260408120548015614cb3576000614db3600183615cde565b8554909150600090614dc790600190615cde565b9050818114614e2c576000866000018281548110614de757614de7615b6c565b9060005260206000200154905080876000018481548110614e0a57614e0a615b6c565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614e3d57614e3d615e0f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611efa565b606081600001805480602002602001604051908101604052809291908181526020018280548015614ec857602002820191906000526020600020905b815481526020019060010190808311614eb4575b50505050509050919050565b614edd8161472f565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b606061350a8383604051806060016040528060278152602001615e5960279139615011565b600054610100900460ff16614fb65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f48565b6033805460ff19169055565b614fcb81614965565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60208101516000906001614a19565b60606001600160a01b0384163b6150905760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610f48565b600080856001600160a01b0316856040516150ab9190615c98565b600060405180830381855af49150503d80600081146150e6576040519150601f19603f3d011682016040523d82523d6000602084013e6150eb565b606091505b50915091506150fb828286615105565b9695505050505050565b6060831561511457508161350a565b8251156151245782518084602001fd5b8160405162461bcd60e51b8152600401610f489190615e25565b604051806060016040528061518e604080516060808201835260008083526020808401829052845160a0810186528281529081018290528085018290529182018190526080820152909182015290565b815260200161519b615204565b81526020016151a8615204565b905290565b60405180604001604052806151c0615223565b81526020016151a8615223565b6040805160c081018252600080825260208201819052918101829052606081018290529060808201905b8152600060209091015290565b60405180606001604052806152176151ad565b815260200160006151f7565b60405180604001604052806002906020820280368337509192915050565b60008082840360c081121561525557600080fd5b8335925060a0601f198201121561526b57600080fd5b506020830190509250929050565b60006020828403121561528b57600080fd5b5035919050565b6001600160a01b03811681146110d357600080fd5b6000602082840312156152b957600080fd5b813561350a81615292565b6000808284036101408112156152d957600080fd5b833567ffffffffffffffff8111156152f057600080fd5b84016103e0818703121561530357600080fd5b9250610120601f198201121561526b57600080fd5b80151581146110d357600080fd5b6000806040838503121561533957600080fd5b823561534481615292565b9150602083013561535481615318565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156153985761539861535f565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156153c7576153c761535f565b604052919050565b600080604083850312156153e257600080fd5b82356153ed81615292565b915060208381013567ffffffffffffffff8082111561540b57600080fd5b818601915086601f83011261541f57600080fd5b8135818111156154315761543161535f565b61544384601f19601f8401160161539e565b9150808252878482850101111561545957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060c0828403121561548957600080fd5b50919050565b60008060008061012085870312156154a657600080fd5b84359350602085013592506154be8660408701615477565b939692955092936101000135925050565b803567ffffffffffffffff81168114611fb957600080fd5b6000602082840312156154f957600080fd5b61350a826154cf565b60008083601f84011261551457600080fd5b50813567ffffffffffffffff81111561552c57600080fd5b6020830191508360208260051b850101111561554757600080fd5b9250929050565b6000806020838503121561556157600080fd5b823567ffffffffffffffff81111561557857600080fd5b61558485828601615502565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b600381106110d357634e487b7160e01b600052602160045260246000fd5b600060c08201905067ffffffffffffffff80845116835280602085015116602084015280604085015116604084015250606083015115156060830152608083015161560e816155a6565b8060808401525060a083015160a083015292915050565b60008060008385036102a081121561563c57600080fd5b84359350610260601f198201121561565357600080fd5b5060208401915061028084013590509250925092565b60006020828403121561567b57600080fd5b813561350a81615318565b6000806000806040858703121561569c57600080fd5b843567ffffffffffffffff808211156156b457600080fd5b6156c088838901615502565b909650945060208701359150808211156156d957600080fd5b506156e687828801615502565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156157335783516001600160a01b03168352928401929184019160010161570e565b50909695505050505050565b600080600080610120858703121561575657600080fd5b843593506157678660208701615477565b939693955050505060e082013591610100013590565b60006020828403121561578f57600080fd5b815161350a81615318565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126157cf57600080fd5b83018035915067ffffffffffffffff8211156157ea57600080fd5b60200191503681900382131561554757600080fd5b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60006020828403121561584757600080fd5b5051919050565b600082601f83011261585f57600080fd5b6040516040810181811067ffffffffffffffff821117156158825761588261535f565b806040525080604084018581111561589957600080fd5b845b818110156158ba576158ac816154cf565b83526020928301920161589b565b509195945050505050565b6000608082840312156158d757600080fd5b6040516040810181811067ffffffffffffffff821117156158fa576158fa61535f565b604052905080601f8301841361590f57600080fd5b615917615375565b80604085018681111561592957600080fd5b855b8181101561594357803584526020938401930161592b565b50818452615951878261584e565b60208501525050505092915050565b803560038110611fb957600080fd5b600060c0828403121561598157600080fd5b6040516060810181811067ffffffffffffffff821117156159a4576159a461535f565b6040526159b184846158c5565b81526159bf60808401615960565b602082015260a09290920135604083015250919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611efa57611efa6159d6565b615a08816155a6565b9052565b805180518360005b6002811015615a33578251825260209283019290910190600101615a14565b505050602090810151906040840160005b6002811015615a6b57835167ffffffffffffffff1682529282019290820190600101615a44565b50508201519050615a7f60808401826159ff565b506040015160a09190910152565b600061032082019050885180518352602081015160208401526040810151905080516040840152602081015160608401526001600160a01b036040820151166080840152606081015167ffffffffffffffff80821660a08601528060808401511660c08601525050506020890151615b0860e0840182615a0c565b506040890151615b1c6101a0840182615a0c565b508761026083015286610280830152856102a0830152846102c0830152615b4f6102e08301856001600160a01b03169052565b67ffffffffffffffff831661030083015298975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006000198203615b9557615b956159d6565b5060010190565b8183526000602080850194508260005b85811015615bda578135615bbf81615292565b6001600160a01b031687529582019590820190600101615bac565b509495945050505050565b602081526000613743602083018486615b9c565b604081526000615c0d604083018688615b9c565b8281036020848101919091528482528591810160005b86811015615c4a578335615c3681615318565b151582529282019290820190600101615c23565b5098975050505050505050565b600060208284031215615c6957600080fd5b815161350a81615292565b60005b83811015615c8f578181015183820152602001615c77565b50506000910152565b60008251615caa818460208701615c74565b9190910192915050565b60c08101611efa8284615a0c565b600060808284031215615cd457600080fd5b61350a83836158c5565b81810381811115611efa57611efa6159d6565b600060208284031215615d0357600080fd5b61350a82615960565b6040818337604082016040820160005b6002811015615d4d5767ffffffffffffffff615d37836154cf565b1683526020928301929190910190600101615d1c565b505050615d5c60808201615960565b615d65816155a6565b608083015260a090810135910152565b600061032082019050883582526020890135602083015260408901356040830152606089013560608301526080890135615dae81615292565b6001600160a01b03166080830152615dc860a08a016154cf565b67ffffffffffffffff80821660a085015280615de660c08d016154cf565b1660c08501525050615dfe60e0830160e08b01615d0c565b6101a0615b1c818401828c01615d0c565b634e487b7160e01b600052603160045260246000fd5b6020815260008251806020840152615e44816040850160208701615c74565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201b1f12c1dedf74ff792cdd420011c650d657ae97ae48a1ecb2f81ecc86d9a30064736f6c63430008110033", } // RollupAdminLogicABI is the input ABI used to generate the binding from. @@ -16400,23 +16546,23 @@ func (_RollupAdminLogic *RollupAdminLogicTransactorSession) ForceRefundStaker(st return _RollupAdminLogic.Contract.ForceRefundStaker(&_RollupAdminLogic.TransactOpts, staker) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupAdminLogic *RollupAdminLogicTransactor) Initialize(opts *bind.TransactOpts, config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupAdminLogic.contract.Transact(opts, "initialize", config, connectedContracts) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupAdminLogic *RollupAdminLogicSession) Initialize(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupAdminLogic.Contract.Initialize(&_RollupAdminLogic.TransactOpts, config, connectedContracts) } -// Initialize is a paid mutator transaction binding the contract method 0x9e7e6aa7. +// Initialize is a paid mutator transaction binding the contract method 0x0ee5ef0c. // -// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initialize((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupAdminLogic *RollupAdminLogicTransactorSession) Initialize(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupAdminLogic.Contract.Initialize(&_RollupAdminLogic.TransactOpts, config, connectedContracts) } @@ -23946,8 +24092,8 @@ func (_RollupCore *RollupCoreFilterer) ParseUserWithdrawableFundsUpdated(log typ // RollupCreatorMetaData contains all meta data concerning the RollupCreator contract. var RollupCreatorMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"rollupAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nativeToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inboxAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adminProxy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"upgradeExecutor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"name\":\"RollupCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"TemplatesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridgeCreator\",\"outputs\":[{\"internalType\":\"contractBridgeCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeManagerTemplate\",\"outputs\":[{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"maxDataSize\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"nativeToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"deployFactoriesToL2\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGasForRetryables\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"batchPosters\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"batchPosterManager\",\"type\":\"address\"}],\"internalType\":\"structRollupCreator.RollupDeploymentParams\",\"name\":\"deployParams\",\"type\":\"tuple\"}],\"name\":\"createRollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2FactoriesDeployer\",\"outputs\":[{\"internalType\":\"contractDeployHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"osp\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"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\":[],\"name\":\"rollupAdminLogic\",\"outputs\":[{\"internalType\":\"contractIRollupAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupUserLogic\",\"outputs\":[{\"internalType\":\"contractIRollupUser\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractBridgeCreator\",\"name\":\"_bridgeCreator\",\"type\":\"address\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"_osp\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"_challengeManagerLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupAdmin\",\"name\":\"_rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"_rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"contractIUpgradeExecutor\",\"name\":\"_upgradeExecutorLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_validatorWalletCreator\",\"type\":\"address\"},{\"internalType\":\"contractDeployHelper\",\"name\":\"_l2FactoriesDeployer\",\"type\":\"address\"}],\"name\":\"setTemplates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgradeExecutorLogic\",\"outputs\":[{\"internalType\":\"contractIUpgradeExecutor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615b24806200007f6000396000f3fe608060405260043610620000e75760003560e01c80639dba32411162000089578063f0dae4941162000060578063f0dae494146200022d578063f26a62c61462000252578063f2fde38b1462000274578063f860cefa146200029957600080fd5b80639dba324114620001c7578063ac0425bc14620001e9578063bc45e0ae146200020b57600080fd5b80638da5cb5b11620000be5780638da5cb5b14620001635780639c683d1014620001835780639d4798e314620001a557600080fd5b8063030cb85e14620000f45780635491abea1462000132578063715018a6146200014957600080fd5b36620000ef57005b600080fd5b3480156200010157600080fd5b5060065462000116906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b620001166200014336600462002406565b620002bb565b3480156200015657600080fd5b506200016162000ee7565b005b3480156200017057600080fd5b506000546001600160a01b031662000116565b3480156200019057600080fd5b5060035462000116906001600160a01b031681565b348015620001b257600080fd5b5060055462000116906001600160a01b031681565b348015620001d457600080fd5b5060045462000116906001600160a01b031681565b348015620001f657600080fd5b5060085462000116906001600160a01b031681565b3480156200021857600080fd5b5060075462000116906001600160a01b031681565b3480156200023a57600080fd5b50620001616200024c36600462002517565b62000eff565b3480156200025f57600080fd5b5060025462000116906001600160a01b031681565b3480156200028157600080fd5b506200016162000293366004620025d1565b62000fce565b348015620002a657600080fd5b5060015462000116906001600160a01b031681565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b03166311f022276040518163ffffffff1660e01b815260040160c060405180830381865afa15801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b9190620025f1565b505093509350935050826001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a9919062002685565b856040015114620004015760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d415443480000000000000060448201526064015b60405180910390fd5b816001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000440573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000466919062002685565b856040015114620004ba5760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d41544348000000000000006044820152606401620003f8565b806001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051f919062002685565b856040015114620005735760405162461bcd60e51b815260206004820152601860248201527f495f4d41585f444154415f53495a455f4d49534d4154434800000000000000006044820152606401620003f8565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b03166376768ab96040518163ffffffff1660e01b815260040160c060405180830381865afa158015620005cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005f29190620025f1565b505093509350935050826001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000660919062002685565b886040015114620006b45760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d41544348000000000000006044820152606401620003f8565b816001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000719919062002685565b8860400151146200076d5760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d41544348000000000000006044820152606401620003f8565b806001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007d2919062002685565b886040015114620008265760405162461bcd60e51b815260206004820152601860248201527f495f4d41585f444154415f53495a455f4d49534d4154434800000000000000006044820152606401620003f8565b50505050505060006040516200083c9062001d74565b604051809103906000f08015801562000859573d6000803e3d6000fd5b509050600083604051602001620008719190620029c3565b60405160208183030381529060405280519060200120604051620008959062001d82565b8190604051809103906000f5905080158015620008b6573d6000803e3d6000fd5b5060015460608601518651610120810151610240909101516040517f57d3a2000000000000000000000000000000000000000000000000000000000081529495506000946001600160a01b03909416936357d3a200936200091e938993899360040162002a8b565b60a0604051808303816000875af11580156200093e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000964919062002b11565b90506000620009798385886000015162001064565b90506000620009918760000151608001518662001187565b6040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509086169063f2fde38b90602401600060405180830381600087803b158015620009f257600080fd5b505af115801562000a07573d6000803e3d6000fd5b50508851306080918201528951604080516101208101825288516001600160a01b0390811682528983015181166020808401919091528a01518116828401528985015181166060808401919091528a015181169482019490945287841660a082015260048054851660c0830152600554851660e0830152600754851661010083015291517fd384644b000000000000000000000000000000000000000000000000000000008152938a16955063d384644b945062000ac89390910162002bb7565b600060405180830381600087803b15801562000ae357600080fd5b505af115801562000af8573d6000803e3d6000fd5b5050505060005b8760c001515181101562000bd45783604001516001600160a01b0316636e7df3e78960c00151838151811062000b395762000b3962002c9d565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801562000ba557600080fd5b505af115801562000bba573d6000803e3d6000fd5b50505050808062000bcb9062002cc9565b91505062000aff565b5060e08701516001600160a01b03161562000c6a5760408084015160e089015191517f1ff647900000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911690631ff6479090602401600060405180830381600087803b15801562000c5057600080fd5b505af115801562000c65573d6000803e3d6000fd5b505050505b6020870151511562000d9757600087602001515167ffffffffffffffff81111562000c995762000c9962001d9e565b60405190808252806020026020018201604052801562000cc3578160200160208202803683370190505b50905060005b88602001515181101562000d1357600182828151811062000cee5762000cee62002c9d565b911515602092830291909101909101528062000d0a8162002cc9565b91505062000cc9565b5060208801516040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0387169163a3ffb7729162000d619190859060040162002ce6565b600060405180830381600087803b15801562000d7c57600080fd5b505af115801562000d91573d6000803e3d6000fd5b50505050505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528516906313af403590602401600060405180830381600087803b15801562000df457600080fd5b505af115801562000e09573d6000803e3d6000fd5b5050505086608001511562000e315762000e31836020015188606001518960a00151620012b8565b606087810151602085810151608080880151888601516040808b01518b5160075483516001600160a01b03988916815295881698860198909852928616848301528a8616988401989098528c85169383019390935295831660a082015294821660c086015285821660e0860152918116610100850152905191811692908716917fd9bfd3bb3012f0caa103d1ba172692464d2de5c7b75877ce255c72147086a79d918190036101200190a3509195945050505050565b62000ef162001910565b62000efd60006200196c565b565b62000f0962001910565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038b8116919091179092556002805482168a8416179055600380548216898416179055600480548216888416179055600580548216878416179055600680548216868416179055600780548216858416179055600880549091169183169190911790556040517fc9d3947d22fa124aaec4c7e8c919f79016e2d7b48eee10568375d98b86460d1b90600090a15050505050505050565b62000fd862001910565b6001600160a01b038116620010565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401620003f8565b62001061816200196c565b50565b60035460405160009182916001600160a01b03909116908590620010889062001d90565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f080158015620010cb573d6000803e3d6000fd5b509050806001600160a01b0316631a72d54c868560000151600260009054906101000a90046001600160a01b03168761014001518861016001518961018001518a602001518b608001518c61020001518d61010001516040518b63ffffffff1660e01b8152600401620011489a9998979695949392919062002d43565b600060405180830381600087803b1580156200116357600080fd5b505af115801562001178573d6000803e3d6000fd5b509293505050505b9392505050565b6006546040805160208101825260008082529151919283926001600160a01b03909116918591620011b89062001d90565b620011c69392919062002dc0565b604051809103906000f080158015620011e3573d6000803e3d6000fd5b506040805160018082528183019092529192506000919060208083019080368337019050509050848160008151811062001221576200122162002c9d565b6001600160a01b0392831660209182029290920101526040517f946d92040000000000000000000000000000000000000000000000000000000081529083169063946d92049062001279908590859060040162002dee565b600060405180830381600087803b1580156200129457600080fd5b505af1158015620012a9573d6000803e3d6000fd5b50939450505050505b92915050565b6001600160a01b03821662001489576008546040517facd7d02a0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201849052600092169063acd7d02a90604401602060405180830381865afa15801562001333573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001359919062002685565b6008546040517fd7c641e70000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015286811660248301526044820186905292935091169063d7c641e79083906064016000604051808303818588803b158015620013cc57600080fd5b505af1158015620013e1573d6000803e3d6000fd5b5050604051600093503392504791508381818185875af1925050503d80600081146200142a576040519150601f19603f3d011682016040523d82523d6000602084013e6200142f565b606091505b5050905080620014825760405162461bcd60e51b815260206004820152600d60248201527f526566756e64206661696c6564000000000000000000000000000000000000006044820152606401620003f8565b5050505050565b6008546040517facd7d02a0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201849052600092169063acd7d02a90604401602060405180830381865afa158015620014f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200151b919062002685565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200155e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001584919062002e12565b905081601260ff8316101562001831576000620015a48561520862002e32565b905060006200163a82600860009054906101000a90046001600160a01b03166001600160a01b0316634367d6526040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001601573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001627919062002685565b62001633919062002e4c565b85620019d4565b90506000620016d083600860009054906101000a90046001600160a01b03166001600160a01b0316639ed2c6f06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001697573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016bd919062002685565b620016c9919062002e4c565b86620019d4565b905060006200176684600860009054906101000a90046001600160a01b03166001600160a01b031663dd0c625a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200172d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001753919062002685565b6200175f919062002e4c565b87620019d4565b90506000620017fc85600860009054906101000a90046001600160a01b03166001600160a01b031663db633c3e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e9919062002685565b620017f5919062002e4c565b88620019d4565b905080826200180c858762002e4c565b62001818919062002e4c565b62001824919062002e4c565b9550505050505062001867565b60128260ff16111562001867576200184b60128362002e62565b6200185890600a62002f7b565b62001864908462002e32565b90505b6200187e6001600160a01b03861633888462001a4f565b6008546040517fd7c641e70000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482018790529091169063d7c641e790606401600060405180830381600087803b158015620018ee57600080fd5b505af115801562001903573d6000803e3d6000fd5b505050505050505b505050565b6000546001600160a01b0316331462000efd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003f8565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082601260ff841610156200118057620019f183601262002e62565b620019fe90600a62002f7b565b62001a0a908562002f8c565b90508362001a1a84601262002e62565b62001a2790600a62002f7b565b62001a33908362002e32565b101562001180578062001a468162002cc9565b95945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001ad990859062001adf565b50505050565b600062001b36826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662001bcb9092919063ffffffff16565b8051909150156200190b578080602001905181019062001b57919062002faf565b6200190b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401620003f8565b606062001bdc848460008562001be4565b949350505050565b60608247101562001c5e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401620003f8565b6001600160a01b0385163b62001cb75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620003f8565b600080866001600160a01b0316858760405162001cd5919062002fcf565b60006040518083038185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b509150915062001d2b82828662001d36565b979650505050505050565b6060831562001d4757508162001180565b82511562001d585782518084602001fd5b8160405162461bcd60e51b8152600401620003f8919062002fed565b61080b806200300383390190565b61140e806200380e83390190565b610ed38062004c1c83390190565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b60405290565b6040805190810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b604051610260810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b604051610100810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e805762001e8062001d9e565b604052919050565b803567ffffffffffffffff8116811462001ea157600080fd5b919050565b6001600160a01b03811681146200106157600080fd5b803562001ea18162001ea6565b600082601f83011262001edb57600080fd5b813567ffffffffffffffff81111562001ef85762001ef862001d9e565b62001f0d6020601f19601f8401160162001e54565b81815284602083860101111562001f2357600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111562001f5d5762001f5d62001d9e565b5060051b60200190565b600082601f83011262001f7957600080fd5b8135602062001f9262001f8c8362001f40565b62001e54565b82815260059290921b8401810191818101908684111562001fb257600080fd5b8286015b8481101562001fcf578035835291830191830162001fb6565b509695505050505050565b60006080828403121562001fed57600080fd5b6040516080810181811067ffffffffffffffff8211171562002013576200201362001d9e565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f8301126200205657600080fd5b6200206062001de0565b8060408401858111156200207357600080fd5b845b818110156200209857620020898162001e88565b84526020938401930162002075565b509095945050505050565b80356003811062001ea157600080fd5b600081830360c0811215620020c757600080fd5b620020d162001db4565b91506080811215620020e257600080fd5b50620020ed62001de0565b83601f840112620020fd57600080fd5b6200210762001de0565b8060408501868111156200211a57600080fd5b855b81811015620021365780358452602093840193016200211c565b5081845262002146878262002044565b602085015250505081526200215e60808301620020a3565b602082015260a0820135604082015292915050565b60ff811681146200106157600080fd5b803562001ea18162002173565b600060608284031215620021a357600080fd5b620021ad62001db4565b9050620021ba8262001e88565b8152620021ca6020830162001e88565b6020820152620021dd6040830162001e88565b604082015292915050565b60006103a08284031215620021fc57600080fd5b6200220662001e06565b9050620022138262001e88565b8152620022236020830162001ebc565b602082015260408201356040820152606082013560608201526200224a6080830162001ebc565b60808201526200225d60a0830162001ebc565b60a082015260c082013560c082015260e082013567ffffffffffffffff808211156200228857600080fd5b620022968583860162001ec9565b60e084015261010091508184013581811115620022b257600080fd5b620022c08682870162001f67565b83850152505050610120620022d88482850162001fda565b908201526101a0828101356101408301526101c0808401356101608401526101e0808501356101808501526102006200231487828801620020b3565b848601526102c086013583860152620023316102e0870162001ebc565b8286015262002344610300870162002183565b81860152505050506200235b610320830162001e88565b6102208201526200237183610340840162002190565b61024082015292915050565b600082601f8301126200238f57600080fd5b81356020620023a262001f8c8362001f40565b82815260059290921b84018101918181019086841115620023c257600080fd5b8286015b8481101562001fcf578035620023dc8162001ea6565b8352918301918301620023c6565b80151581146200106157600080fd5b803562001ea181620023ea565b6000602082840312156200241957600080fd5b813567ffffffffffffffff808211156200243257600080fd5b9083019061010082860312156200244857600080fd5b6200245262001e2d565b8235828111156200246257600080fd5b6200247087828601620021e8565b8252506020830135828111156200248657600080fd5b62002494878286016200237d565b60208301525060408301356040820152620024b26060840162001ebc565b6060820152620024c560808401620023f9565b608082015260a083013560a082015260c083013582811115620024e757600080fd5b620024f5878286016200237d565b60c0830152506200250960e0840162001ebc565b60e082015295945050505050565b600080600080600080600080610100898b0312156200253557600080fd5b8835620025428162001ea6565b97506020890135620025548162001ea6565b96506040890135620025668162001ea6565b95506060890135620025788162001ea6565b945060808901356200258a8162001ea6565b935060a08901356200259c8162001ea6565b925060c0890135620025ae8162001ea6565b915060e0890135620025c08162001ea6565b809150509295985092959890939650565b600060208284031215620025e457600080fd5b8135620011808162001ea6565b60008060008060008060c087890312156200260b57600080fd5b8651620026188162001ea6565b60208801519096506200262b8162001ea6565b60408801519095506200263e8162001ea6565b6060880151909450620026518162001ea6565b6080880151909350620026648162001ea6565b60a0880151909250620026778162001ea6565b809150509295509295509295565b6000602082840312156200269857600080fd5b5051919050565b60005b83811015620026bc578181015183820152602001620026a2565b50506000910152565b60008151808452620026df8160208601602086016200269f565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015620027255781518752958201959082019060010162002707565b509495945050505050565b600381106200274f57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b60028110156200277c5782518252602092830192909101906001016200275b565b505050602090810151906040840160005b6002811015620027b657835167ffffffffffffffff16825292820192908201906001016200278d565b50508201519050620027cc608084018262002730565b506040015160a09190910152565b805167ffffffffffffffff16825260006103a060208301516200280860208601826001600160a01b03169052565b50604083015160408501526060830151606085015260808301516200283860808601826001600160a01b03169052565b5060a08301516200285460a08601826001600160a01b03169052565b5060c083015160c085015260e08301518160e08601526200287882860182620026c5565b9150506101008084015185830382870152620028958382620026f3565b6101208681015180518983015260208101516101408a015260408101516101608a015260608101516101808a01529194509250905050506101408301516101a0818187015261016085015191506101c0828188015261018086015192506101e083818901528287015193506102009250620029138389018562002753565b908601516102c08801528501516001600160a01b03166102e087015284015160ff166103008601525061022083015167ffffffffffffffff908116610320860152610240840151805182166103408701526020810151821661036087015260408101519091166103808601525b509392505050565b600081518084526020808501945080840160005b83811015620027255781516001600160a01b0316875295820195908201906001016200299c565b6020815260008251610100806020850152620029e4610120850183620027da565b91506020850151601f198086850301604087015262002a04848362002988565b9350604087015160608701526060870151915062002a2d60808701836001600160a01b03169052565b608087015180151560a0880152915060a087015160c087015260c08701519150808685030160e08701525062002a64838262002988565b92505060e085015162002a81828601826001600160a01b03169052565b5090949350505050565b6001600160a01b038681168252858116602083015284166040820152610140810162002adb6060830185805182526020810151602083015260408101516040830152606081015160608301525050565b825167ffffffffffffffff90811660e0840152602084015181166101008401526040840151166101208301529695505050505050565b600060a0828403121562002b2457600080fd5b60405160a0810181811067ffffffffffffffff8211171562002b4a5762002b4a62001d9e565b604052825162002b5a8162001ea6565b8152602083015162002b6c8162001ea6565b6020820152604083015162002b818162001ea6565b6040820152606083015162002b968162001ea6565b6060820152608083015162002bab8162001ea6565b60808201529392505050565b600061014080835262002bcd81840186620027da565b9150506001600160a01b038351166020830152602083015162002bfb60408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010062002c82818501836001600160a01b03169052565b8401516001600160a01b038116610120850152905062002980565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820362002cdf5762002cdf62002cb3565b5060010190565b60408152600062002cfb604083018562002988565b82810360208481019190915284518083528582019282019060005b8181101562002d3657845115158352938301939183019160010162002d16565b5090979650505050505050565b60006101406001600160a01b03808e16845267ffffffffffffffff8d166020850152808c1660408501528a60608501528960808501528860a085015280881660c085015280871660e08501525060ff85166101008401528061012084015262002daf81840185620026f3565b9d9c50505050505050505050505050565b60006001600160a01b0380861683528085166020840152506060604083015262001a466060830184620026c5565b6001600160a01b038316815260406020820152600062001bdc604083018462002988565b60006020828403121562002e2557600080fd5b8151620011808162002173565b8082028115828204841417620012b257620012b262002cb3565b80820180821115620012b257620012b262002cb3565b60ff8281168282160390811115620012b257620012b262002cb3565b600181815b8085111562002ebf57816000190482111562002ea35762002ea362002cb3565b8085161562002eb157918102915b93841c939080029062002e83565b509250929050565b60008262002ed857506001620012b2565b8162002ee757506000620012b2565b816001811462002f00576002811462002f0b5762002f2b565b6001915050620012b2565b60ff84111562002f1f5762002f1f62002cb3565b50506001821b620012b2565b5060208310610133831016604e8410600b841016171562002f50575081810a620012b2565b62002f5c838362002e7e565b806000190482111562002f735762002f7362002cb3565b029392505050565b60006200118060ff84168362002ec7565b60008262002faa57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121562002fc257600080fd5b81516200118081620023ea565b6000825162002fe38184602087016200269f565b9190910192915050565b602081526000620011806020830184620026c556fe608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61078d8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610579565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d161022e565b005b3480156100df57600080fd5b506100d16100ee36600461059d565b610242565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f366004610605565b6102c3565b34801561013057600080fd5b506100d161013f36600461059d565b61034b565b34801561015057600080fd5b506100d161015f366004610579565b61039a565b34801561017057600080fd5b506100a061017f366004610579565b610449565b6000806000836001600160a01b03166040516101c3907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b50915091508161021257600080fd5b8080602001905181019061022691906106db565b949350505050565b610236610488565b61024060006104fc565b565b61024a610488565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b505050505050565b6102cb610488565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061031490869086906004016106f8565b6000604051808303818588803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050505050565b610353610488565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161028d565b6103a2610488565b6001600160a01b03811661043d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610446816104fc565b50565b6000806000836001600160a01b03166040516101c3907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000546001600160a01b03163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610434565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461044657600080fd5b60006020828403121561058b57600080fd5b813561059681610564565b9392505050565b600080604083850312156105b057600080fd5b82356105bb81610564565b915060208301356105cb81610564565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561061a57600080fd5b833561062581610564565b9250602084013561063581610564565b9150604084013567ffffffffffffffff8082111561065257600080fd5b818601915086601f83011261066657600080fd5b813581811115610678576106786105d6565b604051601f8201601f19908116603f011681019083821181831017156106a0576106a06105d6565b816040528281528960208487010111156106b957600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156106ed57600080fd5b815161059681610564565b6001600160a01b038316815260006020604081840152835180604085015260005b8181101561073557858101830151858201606001528201610719565b506000606082860101526060601f19601f83011685010192505050939250505056fea2646970667358221220b5f17b9b80290312697ad0c26141bee28c1a1e448364e9044054c3ec2b5708bd64736f6c63430008110033608060405234801561001057600080fd5b506113ee806100206000396000f3fe6080604052600436106100225760003560e01c8063d384644b1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d792919061113d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e7e6aa70000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461132b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a661134c565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61132b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff61134c565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e61132b565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d146104585761045861134c565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610648838360405180606001604052806027815260200161139260279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf9190611362565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c919061137e565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b604051610260810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103a08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008084013583811115610e7357600080fd5b610e7f8a828701610a82565b8284015250506101209150610e9688838501610b02565b828201526101a0915081830135848201526101c09350838301356101608201526101e080840135610180830152610200610ed28a828701610bce565b848401526102c085013586840152610eed6102e086016109fb565b82840152610efe6103008601610c7e565b9083015250610f1061032084016109e3565b610220820152610f24886103408501610c8f565b61024082015280955050505050610f3e8460208501610cde565b90509250929050565b60005b83811015610f62578181015183820152602001610f4a565b50506000910152565b60008151808452610f83816020860160208601610f47565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b60038110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b600281101561101b578251825260209283019290910190600101610ffc565b505050602090810151906040840160005b600281101561105357835167ffffffffffffffff168252928201929082019060010161102c565b505082015190506110676080840182610fd2565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110b660608401826001600160a01b03169052565b5060808101516110d160808401826001600160a01b03169052565b5060a08101516110ec60a08401826001600160a01b03169052565b5060c081015161110760c08401826001600160a01b03169052565b5060e081015161112260e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b600061014080835261115b818401865167ffffffffffffffff169052565b6020850151610160611177818601836001600160a01b03169052565b604087015191506101808281870152606088015192506101a08381880152608089015193506101c06111b3818901866001600160a01b03169052565b60a08a015194506101e06111d1818a01876001600160a01b03169052565b60c08b0151955061020086818b015260e08c015196506102206103a0818c01526111ff6104e08c0189610f6b565b97506101008d01516102407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301818e015261123d8a83610f97565b99506101208f015191506112766102608e0183805182526020810151602083015260408101516040830152606081015160608301525050565b998e01516102e08d0152878e01516103008d0152868e01516103208d0152858e0151996112a76103408e018c610ff4565b948e01516104008d015250918c01516001600160a01b03166104208b01528b015160ff166104408a01528a015167ffffffffffffffff9081166104608a0152908a0151805182166104808a0152602081015182166104a08a015260408101519091166104c0890152945061131a92505050565b915061082490506020830184611075565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251611374818460208701610f47565b9190910192915050565b6020815260006106486020830184610f6b56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122031f55e3d5fa05a560e2a6fd55fb29943763c9e5689f86f5b2da68232793f691264736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220cec60e5effc99213402cb26606cc757ffd01cbc7a8e2c0c94463bd6f89259b7b64736f6c63430008110033", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"rollupAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nativeToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inboxAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adminProxy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"upgradeExecutor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"name\":\"RollupCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"TemplatesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridgeCreator\",\"outputs\":[{\"internalType\":\"contractBridgeCreator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeManagerTemplate\",\"outputs\":[{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minimumAssertionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"validatorAfkBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"maxDataSize\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"nativeToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"deployFactoriesToL2\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGasForRetryables\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"batchPosters\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"batchPosterManager\",\"type\":\"address\"}],\"internalType\":\"structRollupCreator.RollupDeploymentParams\",\"name\":\"deployParams\",\"type\":\"tuple\"}],\"name\":\"createRollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2FactoriesDeployer\",\"outputs\":[{\"internalType\":\"contractDeployHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"osp\",\"outputs\":[{\"internalType\":\"contractIOneStepProofEntry\",\"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\":[],\"name\":\"rollupAdminLogic\",\"outputs\":[{\"internalType\":\"contractIRollupAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupUserLogic\",\"outputs\":[{\"internalType\":\"contractIRollupUser\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractBridgeCreator\",\"name\":\"_bridgeCreator\",\"type\":\"address\"},{\"internalType\":\"contractIOneStepProofEntry\",\"name\":\"_osp\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"_challengeManagerLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupAdmin\",\"name\":\"_rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"_rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"contractIUpgradeExecutor\",\"name\":\"_upgradeExecutorLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_validatorWalletCreator\",\"type\":\"address\"},{\"internalType\":\"contractDeployHelper\",\"name\":\"_l2FactoriesDeployer\",\"type\":\"address\"}],\"name\":\"setTemplates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgradeExecutorLogic\",\"outputs\":[{\"internalType\":\"contractIUpgradeExecutor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615bb5806200007f6000396000f3fe608060405260043610620000e75760003560e01c8063a2f454fc1162000089578063f0dae4941162000060578063f0dae494146200022d578063f26a62c61462000252578063f2fde38b1462000274578063f860cefa146200029957600080fd5b8063a2f454fc14620001d2578063ac0425bc14620001e9578063bc45e0ae146200020b57600080fd5b80639c683d1011620000be5780639c683d10146200016c5780639d4798e3146200018e5780639dba324114620001b057600080fd5b8063030cb85e14620000f4578063715018a614620001325780638da5cb5b146200014c57600080fd5b36620000ef57005b600080fd5b3480156200010157600080fd5b5060065462000116906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156200013f57600080fd5b506200014a620002bb565b005b3480156200015957600080fd5b506000546001600160a01b031662000116565b3480156200017957600080fd5b5060035462000116906001600160a01b031681565b3480156200019b57600080fd5b5060055462000116906001600160a01b031681565b348015620001bd57600080fd5b5060045462000116906001600160a01b031681565b62000116620001e336600462002427565b620002d3565b348015620001f657600080fd5b5060085462000116906001600160a01b031681565b3480156200021857600080fd5b5060075462000116906001600160a01b031681565b3480156200023a57600080fd5b506200014a6200024c36600462002538565b62000eff565b3480156200025f57600080fd5b5060025462000116906001600160a01b031681565b3480156200028157600080fd5b506200014a62000293366004620025f2565b62000fce565b348015620002a657600080fd5b5060015462000116906001600160a01b031681565b620002c562001064565b620002d16000620010c0565b565b600080600080600160009054906101000a90046001600160a01b03166001600160a01b03166311f022276040518163ffffffff1660e01b815260040160c060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062002612565b505093509350935050826001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c19190620026a6565b856040015114620004195760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d415443480000000000000060448201526064015b60405180910390fd5b816001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e9190620026a6565b856040015114620004d25760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d4154434800000000000000604482015260640162000410565b806001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000511573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005379190620026a6565b8560400151146200058b5760405162461bcd60e51b815260206004820152601860248201527f495f4d41585f444154415f53495a455f4d49534d415443480000000000000000604482015260640162000410565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b03166376768ab96040518163ffffffff1660e01b815260040160c060405180830381865afa158015620005e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060a919062002612565b505093509350935050826001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000652573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006789190620026a6565b886040015114620006cc5760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d4154434800000000000000604482015260640162000410565b816001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200070b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007319190620026a6565b886040015114620007855760405162461bcd60e51b815260206004820152601960248201527f53495f4d41585f444154415f53495a455f4d49534d4154434800000000000000604482015260640162000410565b806001600160a01b031663e8eb1dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007ea9190620026a6565b8860400151146200083e5760405162461bcd60e51b815260206004820152601860248201527f495f4d41585f444154415f53495a455f4d49534d415443480000000000000000604482015260640162000410565b5050505050506000604051620008549062001d74565b604051809103906000f08015801562000871573d6000803e3d6000fd5b50905060008360405160200162000889919062002a0f565b60405160208183030381529060405280519060200120604051620008ad9062001d82565b8190604051809103906000f5905080158015620008ce573d6000803e3d6000fd5b5060015460608601518651610160810151610280909101516040517f57d3a2000000000000000000000000000000000000000000000000000000000081529495506000946001600160a01b03909416936357d3a2009362000936938993899360040162002ad7565b60a0604051808303816000875af115801562000956573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200097c919062002b5d565b90506000620009918385886000015162001128565b90506000620009a9876000015160800151866200124b565b6040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509086169063f2fde38b90602401600060405180830381600087803b15801562000a0a57600080fd5b505af115801562000a1f573d6000803e3d6000fd5b50508851306080918201528951604080516101208101825288516001600160a01b0390811682528983015181166020808401919091528a01518116828401528985015181166060808401919091528a015181169482019490945287841660a082015260048054851660c0830152600554851660e0830152600754851661010083015291517fadfef6ac000000000000000000000000000000000000000000000000000000008152938a16955063adfef6ac945062000ae09390910162002c03565b600060405180830381600087803b15801562000afb57600080fd5b505af115801562000b10573d6000803e3d6000fd5b5050505060005b8760c001515181101562000bec5783604001516001600160a01b0316636e7df3e78960c00151838151811062000b515762000b5162002ce9565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b15801562000bbd57600080fd5b505af115801562000bd2573d6000803e3d6000fd5b50505050808062000be39062002d15565b91505062000b17565b5060e08701516001600160a01b03161562000c825760408084015160e089015191517f1ff647900000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911690631ff6479090602401600060405180830381600087803b15801562000c6857600080fd5b505af115801562000c7d573d6000803e3d6000fd5b505050505b6020870151511562000daf57600087602001515167ffffffffffffffff81111562000cb15762000cb162001d9e565b60405190808252806020026020018201604052801562000cdb578160200160208202803683370190505b50905060005b88602001515181101562000d2b57600182828151811062000d065762000d0662002ce9565b911515602092830291909101909101528062000d228162002d15565b91505062000ce1565b5060208801516040517fa3ffb7720000000000000000000000000000000000000000000000000000000081526001600160a01b0387169163a3ffb7729162000d799190859060040162002d32565b600060405180830381600087803b15801562000d9457600080fd5b505af115801562000da9573d6000803e3d6000fd5b50505050505b6040517f13af40350000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301528516906313af403590602401600060405180830381600087803b15801562000e0c57600080fd5b505af115801562000e21573d6000803e3d6000fd5b5050505086608001511562000e495762000e49836020015188606001518960a001516200137c565b606087810151602085810151608080880151888601516040808b01518b5160075483516001600160a01b03988916815295881698860198909852928616848301528a8616988401989098528c85169383019390935295831660a082015294821660c086015285821660e0860152918116610100850152905191811692908716917fd9bfd3bb3012f0caa103d1ba172692464d2de5c7b75877ce255c72147086a79d918190036101200190a3509195945050505050565b62000f0962001064565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038b8116919091179092556002805482168a8416179055600380548216898416179055600480548216888416179055600580548216878416179055600680548216868416179055600780548216858416179055600880549091169183169190911790556040517fc9d3947d22fa124aaec4c7e8c919f79016e2d7b48eee10568375d98b86460d1b90600090a15050505050505050565b62000fd862001064565b6001600160a01b038116620010565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000410565b6200106181620010c0565b50565b6000546001600160a01b03163314620002d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000410565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60035460405160009182916001600160a01b039091169085906200114c9062001d90565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f0801580156200118f573d6000803e3d6000fd5b509050806001600160a01b0316631a72d54c868560000151600260009054906101000a90046001600160a01b0316876101800151886101a00151896101c001518a602001518b608001518c61024001518d61014001516040518b63ffffffff1660e01b81526004016200120c9a9998979695949392919062002d8f565b600060405180830381600087803b1580156200122757600080fd5b505af11580156200123c573d6000803e3d6000fd5b509293505050505b9392505050565b6006546040805160208101825260008082529151919283926001600160a01b039091169185916200127c9062001d90565b6200128a9392919062002e0c565b604051809103906000f080158015620012a7573d6000803e3d6000fd5b5060408051600180825281830190925291925060009190602080830190803683370190505090508481600081518110620012e557620012e562002ce9565b6001600160a01b0392831660209182029290920101526040517f946d92040000000000000000000000000000000000000000000000000000000081529083169063946d9204906200133d908590859060040162002e3a565b600060405180830381600087803b1580156200135857600080fd5b505af11580156200136d573d6000803e3d6000fd5b50939450505050505b92915050565b6001600160a01b0382166200154d576008546040517facd7d02a0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201849052600092169063acd7d02a90604401602060405180830381865afa158015620013f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200141d9190620026a6565b6008546040517fd7c641e70000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015286811660248301526044820186905292935091169063d7c641e79083906064016000604051808303818588803b1580156200149057600080fd5b505af1158015620014a5573d6000803e3d6000fd5b5050604051600093503392504791508381818185875af1925050503d8060008114620014ee576040519150601f19603f3d011682016040523d82523d6000602084013e620014f3565b606091505b5050905080620015465760405162461bcd60e51b815260206004820152600d60248201527f526566756e64206661696c656400000000000000000000000000000000000000604482015260640162000410565b5050505050565b6008546040517facd7d02a0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201849052600092169063acd7d02a90604401602060405180830381865afa158015620015b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015df9190620026a6565b90506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001648919062002e5e565b905081601260ff83161015620018f5576000620016688561520862002e7e565b90506000620016fe82600860009054906101000a90046001600160a01b03166001600160a01b0316634367d6526040518163ffffffff1660e01b8152600401602060405180830381865afa158015620016c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016eb9190620026a6565b620016f7919062002e98565b85620019d4565b905060006200179483600860009054906101000a90046001600160a01b03166001600160a01b0316639ed2c6f06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200175b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017819190620026a6565b6200178d919062002e98565b86620019d4565b905060006200182a84600860009054906101000a90046001600160a01b03166001600160a01b031663dd0c625a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018179190620026a6565b62001823919062002e98565b87620019d4565b90506000620018c085600860009054906101000a90046001600160a01b03166001600160a01b031663db633c3e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001887573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ad9190620026a6565b620018b9919062002e98565b88620019d4565b90508082620018d0858762002e98565b620018dc919062002e98565b620018e8919062002e98565b955050505050506200192b565b60128260ff1611156200192b576200190f60128362002eae565b6200191c90600a62002fc7565b62001928908462002e7e565b90505b620019426001600160a01b03861633888462001a4f565b6008546040517fd7c641e70000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528781166024830152604482018790529091169063d7c641e790606401600060405180830381600087803b158015620019b257600080fd5b505af1158015620019c7573d6000803e3d6000fd5b505050505050505b505050565b600082601260ff841610156200124457620019f183601262002eae565b620019fe90600a62002fc7565b62001a0a908562002fd8565b90508362001a1a84601262002eae565b62001a2790600a62002fc7565b62001a33908362002e7e565b101562001244578062001a468162002d15565b95945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905262001ad990859062001adf565b50505050565b600062001b36826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662001bcb9092919063ffffffff16565b805190915015620019cf578080602001905181019062001b57919062002ffb565b620019cf5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840162000410565b606062001bdc848460008562001be4565b949350505050565b60608247101562001c5e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840162000410565b6001600160a01b0385163b62001cb75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000410565b600080866001600160a01b0316858760405162001cd591906200301b565b60006040518083038185875af1925050503d806000811462001d14576040519150601f19603f3d011682016040523d82523d6000602084013e62001d19565b606091505b509150915062001d2b82828662001d36565b979650505050505050565b6060831562001d4757508162001244565b82511562001d585782518084602001fd5b8160405162461bcd60e51b815260040162000410919062003039565b61080b806200304f83390190565b611453806200385a83390190565b610ed38062004cad83390190565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b60405290565b6040805190810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b6040516102a0810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b604051610100810167ffffffffffffffff8111828210171562001dda5762001dda62001d9e565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e805762001e8062001d9e565b604052919050565b803567ffffffffffffffff8116811462001ea157600080fd5b919050565b6001600160a01b03811681146200106157600080fd5b803562001ea18162001ea6565b600082601f83011262001edb57600080fd5b813567ffffffffffffffff81111562001ef85762001ef862001d9e565b62001f0d6020601f19601f8401160162001e54565b81815284602083860101111562001f2357600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111562001f5d5762001f5d62001d9e565b5060051b60200190565b600082601f83011262001f7957600080fd5b8135602062001f9262001f8c8362001f40565b62001e54565b82815260059290921b8401810191818101908684111562001fb257600080fd5b8286015b8481101562001fcf578035835291830191830162001fb6565b509695505050505050565b60006080828403121562001fed57600080fd5b6040516080810181811067ffffffffffffffff8211171562002013576200201362001d9e565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f8301126200205657600080fd5b6200206062001de0565b8060408401858111156200207357600080fd5b845b818110156200209857620020898162001e88565b84526020938401930162002075565b509095945050505050565b80356003811062001ea157600080fd5b600081830360c0811215620020c757600080fd5b620020d162001db4565b91506080811215620020e257600080fd5b50620020ed62001de0565b83601f840112620020fd57600080fd5b6200210762001de0565b8060408501868111156200211a57600080fd5b855b81811015620021365780358452602093840193016200211c565b5081845262002146878262002044565b602085015250505081526200215e60808301620020a3565b602082015260a0820135604082015292915050565b60ff811681146200106157600080fd5b803562001ea18162002173565b600060608284031215620021a357600080fd5b620021ad62001db4565b9050620021ba8262001e88565b8152620021ca6020830162001e88565b6020820152620021dd6040830162001e88565b604082015292915050565b60006103e08284031215620021fc57600080fd5b6200220662001e06565b9050620022138262001e88565b8152620022236020830162001ebc565b602082015260408201356040820152606082013560608201526200224a6080830162001ebc565b60808201526200225d60a0830162001ebc565b60a082015260c082013560c082015260e082013567ffffffffffffffff808211156200228857600080fd5b620022968583860162001ec9565b60e084015261010084810135908401526101209150620022b882850162001e88565b8284015261014091508184013581811115620022d357600080fd5b620022e18682870162001f67565b83850152505050610160620022f98482850162001fda565b908201526101e082810135610180830152610200808401356101a0840152610220808501356101c08501526102406200233587828801620020b3565b848601526103008601358386015262002352610320870162001ebc565b8286015262002365610340870162002183565b81860152505050506200237c610360830162001e88565b6102608201526200239283610380840162002190565b61028082015292915050565b600082601f830112620023b057600080fd5b81356020620023c362001f8c8362001f40565b82815260059290921b84018101918181019086841115620023e357600080fd5b8286015b8481101562001fcf578035620023fd8162001ea6565b8352918301918301620023e7565b80151581146200106157600080fd5b803562001ea1816200240b565b6000602082840312156200243a57600080fd5b813567ffffffffffffffff808211156200245357600080fd5b9083019061010082860312156200246957600080fd5b6200247362001e2d565b8235828111156200248357600080fd5b6200249187828601620021e8565b825250602083013582811115620024a757600080fd5b620024b5878286016200239e565b60208301525060408301356040820152620024d36060840162001ebc565b6060820152620024e6608084016200241a565b608082015260a083013560a082015260c0830135828111156200250857600080fd5b62002516878286016200239e565b60c0830152506200252a60e0840162001ebc565b60e082015295945050505050565b600080600080600080600080610100898b0312156200255657600080fd5b8835620025638162001ea6565b97506020890135620025758162001ea6565b96506040890135620025878162001ea6565b95506060890135620025998162001ea6565b94506080890135620025ab8162001ea6565b935060a0890135620025bd8162001ea6565b925060c0890135620025cf8162001ea6565b915060e0890135620025e18162001ea6565b809150509295985092959890939650565b6000602082840312156200260557600080fd5b8135620012448162001ea6565b60008060008060008060c087890312156200262c57600080fd5b8651620026398162001ea6565b60208801519096506200264c8162001ea6565b60408801519095506200265f8162001ea6565b6060880151909450620026728162001ea6565b6080880151909350620026858162001ea6565b60a0880151909250620026988162001ea6565b809150509295509295509295565b600060208284031215620026b957600080fd5b5051919050565b60005b83811015620026dd578181015183820152602001620026c3565b50506000910152565b6000815180845262002700816020860160208601620026c0565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015620027465781518752958201959082019060010162002728565b509495945050505050565b600381106200277057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b60028110156200279d5782518252602092830192909101906001016200277c565b505050602090810151906040840160005b6002811015620027d757835167ffffffffffffffff1682529282019290820190600101620027ae565b50508201519050620027ed608084018262002751565b506040015160a09190910152565b805167ffffffffffffffff16825260006103e060208301516200282960208601826001600160a01b03169052565b50604083015160408501526060830151606085015260808301516200285960808601826001600160a01b03169052565b5060a08301516200287560a08601826001600160a01b03169052565b5060c083015160c085015260e08301518160e08601526200289982860182620026e6565b91505061010080840151818601525061012080840151620028c58287018267ffffffffffffffff169052565b50506101408084015185830382870152620028e1838262002714565b6101608681015180518983015260208101516101808a015260408101516101a08a015260608101516101c08a01529194509250905050506101808301516101e081818701526101a0850151915061020082818801526101c08601519250610220838189015282870151935061024092506200295f8389018562002774565b908601516103008801528501516001600160a01b031661032087015284015160ff166103408601525061026083015167ffffffffffffffff90811661036086015261028084015180518216610380870152602081015182166103a087015260408101519091166103c08601525b509392505050565b600081518084526020808501945080840160005b83811015620027465781516001600160a01b031687529582019590820190600101620029e8565b602081526000825161010080602085015262002a30610120850183620027fb565b91506020850151601f198086850301604087015262002a508483620029d4565b9350604087015160608701526060870151915062002a7960808701836001600160a01b03169052565b608087015180151560a0880152915060a087015160c087015260c08701519150808685030160e08701525062002ab08382620029d4565b92505060e085015162002acd828601826001600160a01b03169052565b5090949350505050565b6001600160a01b038681168252858116602083015284166040820152610140810162002b276060830185805182526020810151602083015260408101516040830152606081015160608301525050565b825167ffffffffffffffff90811660e0840152602084015181166101008401526040840151166101208301529695505050505050565b600060a0828403121562002b7057600080fd5b60405160a0810181811067ffffffffffffffff8211171562002b965762002b9662001d9e565b604052825162002ba68162001ea6565b8152602083015162002bb88162001ea6565b6020820152604083015162002bcd8162001ea6565b6040820152606083015162002be28162001ea6565b6060820152608083015162002bf78162001ea6565b60808201529392505050565b600061014080835262002c1981840186620027fb565b9150506001600160a01b038351166020830152602083015162002c4760408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010062002cce818501836001600160a01b03169052565b8401516001600160a01b0381166101208501529050620029cc565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019820362002d2b5762002d2b62002cff565b5060010190565b60408152600062002d476040830185620029d4565b82810360208481019190915284518083528582019282019060005b8181101562002d8257845115158352938301939183019160010162002d62565b5090979650505050505050565b60006101406001600160a01b03808e16845267ffffffffffffffff8d166020850152808c1660408501528a60608501528960808501528860a085015280881660c085015280871660e08501525060ff85166101008401528061012084015262002dfb8184018562002714565b9d9c50505050505050505050505050565b60006001600160a01b0380861683528085166020840152506060604083015262001a466060830184620026e6565b6001600160a01b038316815260406020820152600062001bdc6040830184620029d4565b60006020828403121562002e7157600080fd5b8151620012448162002173565b808202811582820484141762001376576200137662002cff565b8082018082111562001376576200137662002cff565b60ff828116828216039081111562001376576200137662002cff565b600181815b8085111562002f0b57816000190482111562002eef5762002eef62002cff565b8085161562002efd57918102915b93841c939080029062002ecf565b509250929050565b60008262002f245750600162001376565b8162002f335750600062001376565b816001811462002f4c576002811462002f575762002f77565b600191505062001376565b60ff84111562002f6b5762002f6b62002cff565b50506001821b62001376565b5060208310610133831016604e8410600b841016171562002f9c575081810a62001376565b62002fa8838362002eca565b806000190482111562002fbf5762002fbf62002cff565b029392505050565b60006200124460ff84168362002f13565b60008262002ff657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200300e57600080fd5b815162001244816200240b565b600082516200302f818460208701620026c0565b9190910192915050565b602081526000620012446020830184620026e656fe608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61078d8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610579565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d161022e565b005b3480156100df57600080fd5b506100d16100ee36600461059d565b610242565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f366004610605565b6102c3565b34801561013057600080fd5b506100d161013f36600461059d565b61034b565b34801561015057600080fd5b506100d161015f366004610579565b61039a565b34801561017057600080fd5b506100a061017f366004610579565b610449565b6000806000836001600160a01b03166040516101c3907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b50915091508161021257600080fd5b8080602001905181019061022691906106db565b949350505050565b610236610488565b61024060006104fc565b565b61024a610488565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b505050505050565b6102cb610488565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061031490869086906004016106f8565b6000604051808303818588803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050505050565b610353610488565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161028d565b6103a2610488565b6001600160a01b03811661043d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610446816104fc565b50565b6000806000836001600160a01b03166040516101c3907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000546001600160a01b03163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610434565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461044657600080fd5b60006020828403121561058b57600080fd5b813561059681610564565b9392505050565b600080604083850312156105b057600080fd5b82356105bb81610564565b915060208301356105cb81610564565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561061a57600080fd5b833561062581610564565b9250602084013561063581610564565b9150604084013567ffffffffffffffff8082111561065257600080fd5b818601915086601f83011261066657600080fd5b813581811115610678576106786105d6565b604051601f8201601f19908116603f011681019083821181831017156106a0576106a06105d6565b816040528281528960208487010111156106b957600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156106ed57600080fd5b815161059681610564565b6001600160a01b038316815260006020604081840152835180604085015260005b8181101561073557858101830151858201606001528201610719565b506000606082860101526060601f19601f83011685010192505050939250505056fea2646970667358221220b5f17b9b80290312697ad0c26141bee28c1a1e448364e9044054c3ec2b5708bd64736f6c63430008110033608060405234801561001057600080fd5b50611433806100206000396000f3fe6080604052600436106100225760003560e01c8063adfef6ac1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d7929190611158565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ee5ef0c0000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104611370565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a6611391565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611370565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff611391565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e611370565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d1461045857610458611391565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061064883836040518060600160405280602781526020016113d760279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf91906113a7565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c91906113c3565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b6040516102a0810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103e08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008381013590820152610120610e788185016109e3565b908201528284013582811115610e8d57600080fd5b610e9989828601610a82565b85830152506101609350610eaf88858501610b02565b848201526101e09350838301356101808201526102009150818301356101a0820152610220808401356101c0830152610240610eed8a828701610bce565b8684015261030085013584840152610f0861032086016109fb565b82840152610f196103408601610c7e565b9083015250610f2b61036084016109e3565b610260820152610f3f886103808501610c8f565b61028082015280955050505050610f598460208501610cde565b90509250929050565b60005b83811015610f7d578181015183820152602001610f65565b50506000910152565b60008151808452610f9e816020860160208601610f62565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6003811061100b57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b6002811015611036578251825260209283019290910190600101611017565b505050602090810151906040840160005b600281101561106e57835167ffffffffffffffff1682529282019290820190600101611047565b505082015190506110826080840182610fed565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110d160608401826001600160a01b03169052565b5060808101516110ec60808401826001600160a01b03169052565b5060a081015161110760a08401826001600160a01b03169052565b5060c081015161112260c08401826001600160a01b03169052565b5060e081015161113d60e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b6000610140808352611176818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c06111c6818801856001600160a01b03169052565b60a089015193506101e06111e4818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526112126105208b0188610f86565b96506101008c015161024081818d01526101208e01519150610260611242818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e01526112808a8c610fb2565b9a506101608f015199506112b96102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506112eb6103808e018b61100f565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a015294506113609350505050565b5090506108246020830184611090565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516113b9818460208701610f62565b9190910192915050565b6020815260006106486020830184610f8656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c50f3bd10cc10c9d6a7e3c77a603ea076a398bfabf2598ec9e1d71302b8c13b364736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122061665d179f569479a9dfd3d0b9cfd05eb1a6f6b777fef5fb6aeba9b4604a4c9364736f6c63430008110033", } // RollupCreatorABI is the input ABI used to generate the binding from. @@ -24396,23 +24542,23 @@ func (_RollupCreator *RollupCreatorCallerSession) ValidatorWalletCreator() (comm return _RollupCreator.Contract.ValidatorWalletCreator(&_RollupCreator.CallOpts) } -// CreateRollup is a paid mutator transaction binding the contract method 0x5491abea. +// CreateRollup is a paid mutator transaction binding the contract method 0xa2f454fc. // -// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) +// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) func (_RollupCreator *RollupCreatorTransactor) CreateRollup(opts *bind.TransactOpts, deployParams RollupCreatorRollupDeploymentParams) (*types.Transaction, error) { return _RollupCreator.contract.Transact(opts, "createRollup", deployParams) } -// CreateRollup is a paid mutator transaction binding the contract method 0x5491abea. +// CreateRollup is a paid mutator transaction binding the contract method 0xa2f454fc. // -// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) +// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) func (_RollupCreator *RollupCreatorSession) CreateRollup(deployParams RollupCreatorRollupDeploymentParams) (*types.Transaction, error) { return _RollupCreator.Contract.CreateRollup(&_RollupCreator.TransactOpts, deployParams) } -// CreateRollup is a paid mutator transaction binding the contract method 0x5491abea. +// CreateRollup is a paid mutator transaction binding the contract method 0xa2f454fc. // -// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) +// Solidity: function createRollup(((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)),address[],uint256,address,bool,uint256,address[],address) deployParams) payable returns(address) func (_RollupCreator *RollupCreatorTransactorSession) CreateRollup(deployParams RollupCreatorRollupDeploymentParams) (*types.Transaction, error) { return _RollupCreator.Contract.CreateRollup(&_RollupCreator.TransactOpts, deployParams) } @@ -24952,7 +25098,7 @@ func (_RollupCreator *RollupCreatorFilterer) ParseTemplatesUpdated(log types.Log // RollupEventInboxMetaData contains all meta data concerning the RollupEventInbox contract. var RollupEventInboxMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HadZeroInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RollupNotChanged\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"InboxMessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageNum\",\"type\":\"uint256\"}],\"name\":\"InboxMessageDeliveredFromOrigin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"}],\"name\":\"rollupInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b50608051610a7d61003060003960006103380152610a7d6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b610074610084366004610859565b61032e565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c636600461087d565b610522565b60005461009c906001600160a01b031681565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906108f9565b6001600160a01b0316336001600160a01b03161461023d57600154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906108f9565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b591906108f9565b6001549091506001600160a01b038083169116036102ff576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103cc5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610234565b6000546001600160a01b03161561040f576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661044f576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f291906108f9565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610234565b806105c95760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610234565b600160006105d5610651565b9050600085838387876040516020016105f2959493929190610916565b6040516020818303038152906040529050600061060e826106d6565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516106409190610987565b60405180910390a250505050505050565b60004861065c61077b565b156106d157606c6001600160a01b031663f5d6ded76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c491906109d8565b6106ce90826109f1565b90505b919050565b60008054825160208401206040517f8db5993b000000000000000000000000000000000000000000000000000000008152600b60048201526024810184905260448101919091526001600160a01b0390911690638db5993b906064016020604051808303816000875af1158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906109d8565b92915050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f2000000000000000000000000000000000000000000000000000000001790529051600091829182916064916107e79190610a2b565b600060405180830381855afa9150503d8060008114610822576040519150601f19603f3d011682016040523d82523d6000602084013e610827565b606091505b509150915081801561083a575080516020145b9250505090565b6001600160a01b038116811461085657600080fd5b50565b60006020828403121561086b57600080fd5b813561087681610841565b9392505050565b60008060006040848603121561089257600080fd5b83359250602084013567ffffffffffffffff808211156108b157600080fd5b818601915086601f8301126108c557600080fd5b8135818111156108d457600080fd5b8760208285010111156108e657600080fd5b6020830194508093505050509250925092565b60006020828403121561090b57600080fd5b815161087681610841565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b60005b8381101561097e578181015183820152602001610966565b50506000910152565b60208152600082518060208401526109a6816040850160208701610963565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156109ea57600080fd5b5051919050565b80820180821115610775577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008251610a3d818460208701610963565b919091019291505056fea2646970667358221220d917643e4b216387cf33e0df5c1967d70b7c8a47c71de3465b36ed19688edcb464736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b50608051610a7d61003060003960006103380152610a7d6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063cb23bcb511610050578063cb23bcb514610089578063cf8d56d6146100b8578063e78cea92146100cb57600080fd5b80636ae71f121461006c578063c4d66de814610076575b600080fd5b6100746100de565b005b610074610084366004610859565b61032e565b60015461009c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100746100c636600461087d565b610522565b60005461009c906001600160a01b031681565b600160009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015591906108f9565b6001600160a01b0316336001600160a01b03161461023d57600154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905133926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906108f9565b6040517f23295f0e0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b591906108f9565b6001549091506001600160a01b038083169116036102ff576040517fd054909f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103cc5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610234565b6000546001600160a01b03161561040f576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661044f576040517f1ad0f74300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f291906108f9565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6001546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820152600b60248201527f4f4e4c595f524f4c4c55500000000000000000000000000000000000000000006044820152606401610234565b806105c95760405162461bcd60e51b815260206004820152601260248201527f454d5054595f434841494e5f434f4e46494700000000000000000000000000006044820152606401610234565b600160006105d5610651565b9050600085838387876040516020016105f2959493929190610916565b6040516020818303038152906040529050600061060e826106d6565b9050807fff64905f73a67fb594e0f940a8075a860db489ad991e032f48c81123eb52d60b836040516106409190610987565b60405180910390a250505050505050565b60004861065c61077b565b156106d157606c6001600160a01b031663f5d6ded76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c491906109d8565b6106ce90826109f1565b90505b919050565b60008054825160208401206040517f8db5993b000000000000000000000000000000000000000000000000000000008152600b60048201526024810184905260448101919091526001600160a01b0390911690638db5993b906064016020604051808303816000875af1158015610751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077591906109d8565b92915050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f051038f2000000000000000000000000000000000000000000000000000000001790529051600091829182916064916107e79190610a2b565b600060405180830381855afa9150503d8060008114610822576040519150601f19603f3d011682016040523d82523d6000602084013e610827565b606091505b509150915081801561083a575080516020145b9250505090565b6001600160a01b038116811461085657600080fd5b50565b60006020828403121561086b57600080fd5b813561087681610841565b9392505050565b60008060006040848603121561089257600080fd5b83359250602084013567ffffffffffffffff808211156108b157600080fd5b818601915086601f8301126108c557600080fd5b8135818111156108d457600080fd5b8760208285010111156108e657600080fd5b6020830194508093505050509250925092565b60006020828403121561090b57600080fd5b815161087681610841565b8581527fff000000000000000000000000000000000000000000000000000000000000008560f81b1660208201528360218201528183604183013760009101604101908152949350505050565b60005b8381101561097e578181015183820152602001610966565b50506000910152565b60208152600082518060208401526109a6816040850160208701610963565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156109ea57600080fd5b5051919050565b80820180821115610775577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008251610a3d818460208701610963565b919091019291505056fea26469706673582212202e329e1a0c9bb43dce08dd86f50a25f359bac1bbd58289ad7319cb11e151130e64736f6c63430008110033", } // RollupEventInboxABI is the input ABI used to generate the binding from. @@ -25539,7 +25685,7 @@ func (_RollupEventInbox *RollupEventInboxFilterer) ParseInboxMessageDeliveredFro // RollupLibMetaData contains all meta data concerning the RollupLib contract. var RollupLibMetaData = &bind.MetaData{ ABI: "[]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220786a7b38b2cbee38dfbc925e63a40bf0253ad8da37665fa5dcd7c748b8486fec64736f6c63430008110033", + Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039b174994e2d34a85830ffbb5b5d59959f2ac9699795a68437c431049fdb18a664736f6c63430008110033", } // RollupLibABI is the input ABI used to generate the binding from. @@ -25711,8 +25857,8 @@ func (_RollupLib *RollupLibTransactorRaw) Transact(opts *bind.TransactOpts, meth // RollupProxyMetaData contains all meta data concerning the RollupProxy contract. var RollupProxyMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"UpgradedSecondary\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initializeProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b506113ee806100206000396000f3fe6080604052600436106100225760003560e01c8063d384644b1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d792919061113d565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9e7e6aa70000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461132b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a661134c565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61132b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff61134c565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e61132b565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d146104585761045861134c565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610648838360405180606001604052806027815260200161139260279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf9190611362565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c919061137e565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b604051610260810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103a08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008084013583811115610e7357600080fd5b610e7f8a828701610a82565b8284015250506101209150610e9688838501610b02565b828201526101a0915081830135848201526101c09350838301356101608201526101e080840135610180830152610200610ed28a828701610bce565b848401526102c085013586840152610eed6102e086016109fb565b82840152610efe6103008601610c7e565b9083015250610f1061032084016109e3565b610220820152610f24886103408501610c8f565b61024082015280955050505050610f3e8460208501610cde565b90509250929050565b60005b83811015610f62578181015183820152602001610f4a565b50506000910152565b60008151808452610f83816020860160208601610f47565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b60038110610ff057634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b600281101561101b578251825260209283019290910190600101610ffc565b505050602090810151906040840160005b600281101561105357835167ffffffffffffffff168252928201929082019060010161102c565b505082015190506110676080840182610fd2565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110b660608401826001600160a01b03169052565b5060808101516110d160808401826001600160a01b03169052565b5060a08101516110ec60a08401826001600160a01b03169052565b5060c081015161110760c08401826001600160a01b03169052565b5060e081015161112260e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b600061014080835261115b818401865167ffffffffffffffff169052565b6020850151610160611177818601836001600160a01b03169052565b604087015191506101808281870152606088015192506101a08381880152608089015193506101c06111b3818901866001600160a01b03169052565b60a08a015194506101e06111d1818a01876001600160a01b03169052565b60c08b0151955061020086818b015260e08c015196506102206103a0818c01526111ff6104e08c0189610f6b565b97506101008d01516102407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301818e015261123d8a83610f97565b99506101208f015191506112766102608e0183805182526020810151602083015260408101516040830152606081015160608301525050565b998e01516102e08d0152878e01516103008d0152868e01516103208d0152858e0151996112a76103408e018c610ff4565b948e01516104008d015250918c01516001600160a01b03166104208b01528b015160ff166104408a01528a015167ffffffffffffffff9081166104608a0152908a0151805182166104808a0152602081015182166104a08a015260408101519091166104c0890152945061131a92505050565b915061082490506020830184611075565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008251611374818460208701610f47565b9190910192915050565b6020815260006106486020830184610f6b56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122031f55e3d5fa05a560e2a6fd55fb29943763c9e5689f86f5b2da68232793f691264736f6c63430008110033", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"UpgradedSecondary\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"stakeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStake\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loserStakeEscrow\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"chainConfig\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"minimumAssertionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"validatorAfkBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"miniStakeValues\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"delayBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureBlocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delaySeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"futureSeconds\",\"type\":\"uint256\"}],\"internalType\":\"structISequencerInbox.MaxTimeVariation\",\"name\":\"sequencerInboxMaxTimeVariation\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBlockEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroBigStepEdgeHeight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"layerZeroSmallStepEdgeHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"genesisAssertionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"genesisInboxCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anyTrustFastConfirmer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"numBigStepLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"challengeGracePeriodBlocks\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"replenishRateInBasis\",\"type\":\"uint64\"}],\"internalType\":\"structBufferConfig\",\"name\":\"bufferConfig\",\"type\":\"tuple\"}],\"internalType\":\"structConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIBridge\",\"name\":\"bridge\",\"type\":\"address\"},{\"internalType\":\"contractISequencerInbox\",\"name\":\"sequencerInbox\",\"type\":\"address\"},{\"internalType\":\"contractIInboxBase\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"contractIOutbox\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"rollupEventInbox\",\"type\":\"address\"},{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollupAdminLogic\",\"type\":\"address\"},{\"internalType\":\"contractIRollupUser\",\"name\":\"rollupUserLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"validatorWalletCreator\",\"type\":\"address\"}],\"internalType\":\"structContractDependencies\",\"name\":\"connectedContracts\",\"type\":\"tuple\"}],\"name\":\"initializeProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + Bin: "0x608060405234801561001057600080fd5b50611433806100206000396000f3fe6080604052600436106100225760003560e01c8063adfef6ac1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f610054366004610d95565b61006b565b6100696100646101bd565b6102a1565b565b60006100756102ca565b6001600160a01b031614801561009b575060006100906102fd565b6001600160a01b0316145b80156100b7575060006100ac610325565b6001600160a01b0316145b156101b5576101b18160c0015183836040516024016100d7929190611158565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0ee5ef0c0000000000000000000000000000000000000000000000000000000017905260e08601519087015191516001600160a01b0390921660248301529060440160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de800000000000000000000000000000000000000000000000000000000179052608087015161034d565b5050565b6101b1610059565b600060043610156102155760405162461bcd60e51b815260206004820152600b60248201527f4e4f5f46554e435f53494700000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000336102206102ca565b6001600160a01b03160361023b576102366102fd565b610243565b610243610325565b90506001600160a01b0381163b61029c5760405162461bcd60e51b815260206004820152601360248201527f5441524745545f4e4f545f434f4e545241435400000000000000000000000000604482015260640161020c565b919050565b3660008037600080366000845af43d6000803e8080156102c0573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6102ee565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6102ee565b61037860017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104611370565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103146103a6576103a6611391565b6103d160017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd611370565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc146103ff576103ff611391565b61042a60017f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546e611370565b7f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d1461045857610458611391565b61046181610480565b61046d858560006104d7565b61047983836000610502565b5050505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104a96102ca565b604080516001600160a01b03928316815291841660208301520160405180910390a16104d48161050b565b50565b6104e0836105e3565b6000825111806104ed5750805b156102c5576104fc8383610623565b50505050565b6104e083610651565b6001600160a01b0381166105875760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161020c565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6105ec81610691565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061064883836040518060600160405280602781526020016113d760279139610735565b90505b92915050565b61065a8161082b565b6040516001600160a01b038216907ff7eed2a7fabbf1bec8d55ed5e785cc76622376dde5df4ff15470551e030b813490600090a250565b6001600160a01b0381163b61070e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161020c565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6105aa565b60606001600160a01b0384163b6107b45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e74726163740000000000000000000000000000000000000000000000000000606482015260840161020c565b600080856001600160a01b0316856040516107cf91906113a7565b600060405180830381855af49150503d806000811461080a576040519150601f19603f3d011682016040523d82523d6000602084013e61080f565b606091505b509150915061081f8282866108cf565b925050505b9392505050565b6001600160a01b0381163b6108a85760405162461bcd60e51b815260206004820152603760248201527f455243313936373a206e6577207365636f6e6461727920696d706c656d656e7460448201527f6174696f6e206973206e6f74206120636f6e7472616374000000000000000000606482015260840161020c565b807f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d6105aa565b606083156108de575081610824565b8251156108ee5782518084602001fd5b8160405162461bcd60e51b815260040161020c91906113c3565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561094157610941610908565b60405290565b6040805190810167ffffffffffffffff8111828210171561094157610941610908565b604051610120810167ffffffffffffffff8111828210171561094157610941610908565b6040516102a0810167ffffffffffffffff8111828210171561094157610941610908565b604051601f8201601f1916810167ffffffffffffffff811182821017156109db576109db610908565b604052919050565b803567ffffffffffffffff8116811461029c57600080fd5b80356001600160a01b038116811461029c57600080fd5b600082601f830112610a2357600080fd5b813567ffffffffffffffff811115610a3d57610a3d610908565b610a506020601f19601f840116016109b2565b818152846020838601011115610a6557600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610a9357600080fd5b8135602067ffffffffffffffff821115610aaf57610aaf610908565b8160051b610abe8282016109b2565b9283528481018201928281019087851115610ad857600080fd5b83870192505b84831015610af757823582529183019190830190610ade565b979650505050505050565b600060808284031215610b1457600080fd5b6040516080810181811067ffffffffffffffff82111715610b3757610b37610908565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f830112610b7957600080fd5b610b81610947565b806040840185811115610b9357600080fd5b845b81811015610bb457610ba6816109e3565b845260209384019301610b95565b509095945050505050565b80356003811061029c57600080fd5b600081830360c0811215610be157600080fd5b610be961091e565b91506080811215610bf957600080fd5b50610c02610947565b83601f840112610c1157600080fd5b610c19610947565b806040850186811115610c2b57600080fd5b855b81811015610c45578035845260209384019301610c2d565b50818452610c538782610b68565b60208501525050508152610c6960808301610bbf565b602082015260a0820135604082015292915050565b803560ff8116811461029c57600080fd5b600060608284031215610ca157600080fd5b610ca961091e565b9050610cb4826109e3565b8152610cc2602083016109e3565b6020820152610cd3604083016109e3565b604082015292915050565b60006101208284031215610cf157600080fd5b610cf961096a565b9050610d04826109fb565b8152610d12602083016109fb565b6020820152610d23604083016109fb565b6040820152610d34606083016109fb565b6060820152610d45608083016109fb565b6080820152610d5660a083016109fb565b60a0820152610d6760c083016109fb565b60c0820152610d7860e083016109fb565b60e0820152610100610d8b8184016109fb565b9082015292915050565b600080610140808486031215610daa57600080fd5b833567ffffffffffffffff80821115610dc257600080fd5b908501906103e08288031215610dd757600080fd5b610ddf61098e565b610de8836109e3565b8152610df6602084016109fb565b60208201526040830135604082015260608301356060820152610e1b608084016109fb565b6080820152610e2c60a084016109fb565b60a082015260c083013560c082015260e083013582811115610e4d57600080fd5b610e5989828601610a12565b60e0830152506101008381013590820152610120610e788185016109e3565b908201528284013582811115610e8d57600080fd5b610e9989828601610a82565b85830152506101609350610eaf88858501610b02565b848201526101e09350838301356101808201526102009150818301356101a0820152610220808401356101c0830152610240610eed8a828701610bce565b8684015261030085013584840152610f0861032086016109fb565b82840152610f196103408601610c7e565b9083015250610f2b61036084016109e3565b610260820152610f3f886103808501610c8f565b61028082015280955050505050610f598460208501610cde565b90509250929050565b60005b83811015610f7d578181015183820152602001610f65565b50506000910152565b60008151808452610f9e816020860160208601610f62565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6003811061100b57634e487b7160e01b600052602160045260246000fd5b9052565b805180518360005b6002811015611036578251825260209283019290910190600101611017565b505050602090810151906040840160005b600281101561106e57835167ffffffffffffffff1682529282019290820190600101611047565b505082015190506110826080840182610fed565b506040015160a09190910152565b6001600160a01b038082511683528060208301511660208401528060408301511660408401525060608101516110d160608401826001600160a01b03169052565b5060808101516110ec60808401826001600160a01b03169052565b5060a081015161110760a08401826001600160a01b03169052565b5060c081015161112260c08401826001600160a01b03169052565b5060e081015161113d60e08401826001600160a01b03169052565b50610100818101516001600160a01b038116848301526104fc565b6000610140808352611176818401865167ffffffffffffffff169052565b60208501516001600160a01b0381166101608501525060408501516101808181860152606087015191506101a08281870152608088015192506101c06111c6818801856001600160a01b03169052565b60a089015193506101e06111e4818901866001600160a01b03169052565b60c08a0151945061020085818a015260e08b015195506102206103e0818b01526112126105208b0188610f86565b96506101008c015161024081818d01526101208e01519150610260611242818e018467ffffffffffffffff169052565b8a8f01519a5061028092507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec08d8b0301838e01526112808a8c610fb2565b9a506101608f015199506112b96102a08e018b805182526020810151602083015260408101516040830152606081015160608301525050565b888f01516103208e0152878f01516103408e0152868f01516103608e0152858f015199506112eb6103808e018b61100f565b938e01516104408d0152918d01516001600160a01b03166104608c0152908c015160ff166104808b0152908b015167ffffffffffffffff9081166104a08b0152908b0151805182166104c08b0152602081015182166104e08b015260408101519091166105008a015294506113609350505050565b5090506108246020830184611090565b8181038181111561064b57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516113b9818460208701610f62565b9190910192915050565b6020815260006106486020830184610f8656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c50f3bd10cc10c9d6a7e3c77a603ea076a398bfabf2598ec9e1d71302b8c13b364736f6c63430008110033", } // RollupProxyABI is the input ABI used to generate the binding from. @@ -25882,23 +26028,23 @@ func (_RollupProxy *RollupProxyTransactorRaw) Transact(opts *bind.TransactOpts, return _RollupProxy.Contract.contract.Transact(opts, method, params...) } -// InitializeProxy is a paid mutator transaction binding the contract method 0xd384644b. +// InitializeProxy is a paid mutator transaction binding the contract method 0xadfef6ac. // -// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupProxy *RollupProxyTransactor) InitializeProxy(opts *bind.TransactOpts, config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupProxy.contract.Transact(opts, "initializeProxy", config, connectedContracts) } -// InitializeProxy is a paid mutator transaction binding the contract method 0xd384644b. +// InitializeProxy is a paid mutator transaction binding the contract method 0xadfef6ac. // -// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupProxy *RollupProxySession) InitializeProxy(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupProxy.Contract.InitializeProxy(&_RollupProxy.TransactOpts, config, connectedContracts) } -// InitializeProxy is a paid mutator transaction binding the contract method 0xd384644b. +// InitializeProxy is a paid mutator transaction binding the contract method 0xadfef6ac. // -// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() +// Solidity: function initializeProxy((uint64,address,uint256,bytes32,address,address,uint256,string,uint256,uint64,uint256[],(uint256,uint256,uint256,uint256),uint256,uint256,uint256,((bytes32[2],uint64[2]),uint8,bytes32),uint256,address,uint8,uint64,(uint64,uint64,uint64)) config, (address,address,address,address,address,address,address,address,address) connectedContracts) returns() func (_RollupProxy *RollupProxyTransactorSession) InitializeProxy(config Config, connectedContracts ContractDependencies) (*types.Transaction, error) { return _RollupProxy.Contract.InitializeProxy(&_RollupProxy.TransactOpts, config, connectedContracts) } @@ -26512,660 +26658,10 @@ func (_RollupProxy *RollupProxyFilterer) ParseUpgradedSecondary(log types.Log) ( return event, nil } -// RollupReaderMetaData contains all meta data concerning the RollupReader contract. -var RollupReaderMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"contractIOldRollup\",\"name\":\"_rollup\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentNodeHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"executionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"afterState\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structIOldRollup.Assertion\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"NodeCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nodeNum\",\"type\":\"uint64\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"challengeHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"confirmData\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"prevNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"deadlineBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"noChildConfirmedBeforeBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"stakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"childStakerCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestChildNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"nodeHash\",\"type\":\"bytes32\"}],\"internalType\":\"structNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"latestStakedNode\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"currentChallenge\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"}],\"internalType\":\"structOldStaker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOldRollup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a060405234801561001057600080fd5b50604051610c6d380380610c6d83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610ba36100ca600039600081816101c801528181610219015281816102a20152818161035d015281816103da015281816104f7015281816105c2015281816106310152818161069101526107280152610ba36000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a23c44b111610076578063cb23bcb51161005b578063cb23bcb5146101c3578063dff69787146101ea578063facd743b146101f257600080fd5b8063a23c44b114610152578063bc45e0ae146101bb57600080fd5b80636ddd3744116100a75780636ddd3744146101095780638ee1a1261461011c57806392c8134c1461013257600080fd5b806355840a58146100c357806365f7f80d146100e8575b600080fd5b6100cb610215565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f061029e565b60405167ffffffffffffffff90911681526020016100df565b6100cb6101173660046107ae565b610322565b6101246103d6565b6040519081526020016100df565b6101456101403660046107ae565b61045a565b6040516100df91906107d2565b6101656101603660046108eb565b610563565b6040516100df9190600060a08201905082518252602083015167ffffffffffffffff8082166020850152806040860151166040850152806060860151166060850152505060808301511515608083015292915050565b6100cb61062d565b6100cb7f000000000000000000000000000000000000000000000000000000000000000081565b6100f061068d565b6102056102003660046108eb565b6106ed565b60405190151581526020016100df565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166355840a586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610908565b905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365f7f80d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610935565b6040517f6ddd374400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636ddd374490602401602060405180830381865afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610908565b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638ee1a1266040518163ffffffff1660e01b8152600401602060405180830381865afa158015610436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102999190610952565b6040805161018081018252600080825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018190526101208201819052610140820181905261016082015290517f92c8134c00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906392c8134c9060240161018060405180830381865afa15801561053f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d091906109bc565b6040805160a08101825260008082526020820181905281830181905260608201819052608082015290517fa23c44b10000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a23c44b19060240160a060405180830381865afa158015610609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610a9e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bc45e0ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610275573d6000803e3d6000fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dff697876040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fe573d6000803e3d6000fd5b6040517ffacd743b0000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063facd743b90602401602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610b52565b67ffffffffffffffff811681146107ab57600080fd5b50565b6000602082840312156107c057600080fd5b81356107cb81610795565b9392505050565b600061018082019050825182526020830151602083015260408301516040830152606083015161080e606084018267ffffffffffffffff169052565b50608083015161082a608084018267ffffffffffffffff169052565b5060a083015161084660a084018267ffffffffffffffff169052565b5060c083015161086260c084018267ffffffffffffffff169052565b5060e083015161087e60e084018267ffffffffffffffff169052565b506101008381015167ffffffffffffffff81168483015250506101208381015167ffffffffffffffff81168483015250506101408381015167ffffffffffffffff811684830152505061016092830151919092015290565b6001600160a01b03811681146107ab57600080fd5b6000602082840312156108fd57600080fd5b81356107cb816108d6565b60006020828403121561091a57600080fd5b81516107cb816108d6565b805161093081610795565b919050565b60006020828403121561094757600080fd5b81516107cb81610795565b60006020828403121561096457600080fd5b5051919050565b604051610180810167ffffffffffffffff811182821017156109b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b600061018082840312156109cf57600080fd5b6109d761096b565b8251815260208301516020820152604083015160408201526109fb60608401610925565b6060820152610a0c60808401610925565b6080820152610a1d60a08401610925565b60a0820152610a2e60c08401610925565b60c0820152610a3f60e08401610925565b60e0820152610100610a52818501610925565b90820152610120610a64848201610925565b90820152610140610a76848201610925565b90820152610160928301519281019290925250919050565b8051801515811461093057600080fd5b600060a08284031215610ab057600080fd5b60405160a0810181811067ffffffffffffffff82111715610afa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526020830151610b0f81610795565b60208201526040830151610b2281610795565b60408201526060830151610b3581610795565b6060820152610b4660808401610a8e565b60808201529392505050565b600060208284031215610b6457600080fd5b6107cb82610a8e56fea264697066735822122039c32239ca8cecd157175b73f3f47cd8547ebdf92e1a6567375fd2c867d6fa9f64736f6c63430008110033", -} - -// RollupReaderABI is the input ABI used to generate the binding from. -// Deprecated: Use RollupReaderMetaData.ABI instead. -var RollupReaderABI = RollupReaderMetaData.ABI - -// RollupReaderBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use RollupReaderMetaData.Bin instead. -var RollupReaderBin = RollupReaderMetaData.Bin - -// DeployRollupReader deploys a new Ethereum contract, binding an instance of RollupReader to it. -func DeployRollupReader(auth *bind.TransactOpts, backend bind.ContractBackend, _rollup common.Address) (common.Address, *types.Transaction, *RollupReader, error) { - parsed, err := RollupReaderMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RollupReaderBin), backend, _rollup) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &RollupReader{RollupReaderCaller: RollupReaderCaller{contract: contract}, RollupReaderTransactor: RollupReaderTransactor{contract: contract}, RollupReaderFilterer: RollupReaderFilterer{contract: contract}}, nil -} - -// RollupReader is an auto generated Go binding around an Ethereum contract. -type RollupReader struct { - RollupReaderCaller // Read-only binding to the contract - RollupReaderTransactor // Write-only binding to the contract - RollupReaderFilterer // Log filterer for contract events -} - -// RollupReaderCaller is an auto generated read-only Go binding around an Ethereum contract. -type RollupReaderCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// RollupReaderTransactor is an auto generated write-only Go binding around an Ethereum contract. -type RollupReaderTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// RollupReaderFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type RollupReaderFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// RollupReaderSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type RollupReaderSession struct { - Contract *RollupReader // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// RollupReaderCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type RollupReaderCallerSession struct { - Contract *RollupReaderCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// RollupReaderTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type RollupReaderTransactorSession struct { - Contract *RollupReaderTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// RollupReaderRaw is an auto generated low-level Go binding around an Ethereum contract. -type RollupReaderRaw struct { - Contract *RollupReader // Generic contract binding to access the raw methods on -} - -// RollupReaderCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type RollupReaderCallerRaw struct { - Contract *RollupReaderCaller // Generic read-only contract binding to access the raw methods on -} - -// RollupReaderTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type RollupReaderTransactorRaw struct { - Contract *RollupReaderTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewRollupReader creates a new instance of RollupReader, bound to a specific deployed contract. -func NewRollupReader(address common.Address, backend bind.ContractBackend) (*RollupReader, error) { - contract, err := bindRollupReader(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &RollupReader{RollupReaderCaller: RollupReaderCaller{contract: contract}, RollupReaderTransactor: RollupReaderTransactor{contract: contract}, RollupReaderFilterer: RollupReaderFilterer{contract: contract}}, nil -} - -// NewRollupReaderCaller creates a new read-only instance of RollupReader, bound to a specific deployed contract. -func NewRollupReaderCaller(address common.Address, caller bind.ContractCaller) (*RollupReaderCaller, error) { - contract, err := bindRollupReader(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &RollupReaderCaller{contract: contract}, nil -} - -// NewRollupReaderTransactor creates a new write-only instance of RollupReader, bound to a specific deployed contract. -func NewRollupReaderTransactor(address common.Address, transactor bind.ContractTransactor) (*RollupReaderTransactor, error) { - contract, err := bindRollupReader(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &RollupReaderTransactor{contract: contract}, nil -} - -// NewRollupReaderFilterer creates a new log filterer instance of RollupReader, bound to a specific deployed contract. -func NewRollupReaderFilterer(address common.Address, filterer bind.ContractFilterer) (*RollupReaderFilterer, error) { - contract, err := bindRollupReader(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &RollupReaderFilterer{contract: contract}, nil -} - -// bindRollupReader binds a generic wrapper to an already deployed contract. -func bindRollupReader(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := RollupReaderMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_RollupReader *RollupReaderRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _RollupReader.Contract.RollupReaderCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_RollupReader *RollupReaderRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _RollupReader.Contract.RollupReaderTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_RollupReader *RollupReaderRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _RollupReader.Contract.RollupReaderTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_RollupReader *RollupReaderCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _RollupReader.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_RollupReader *RollupReaderTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _RollupReader.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_RollupReader *RollupReaderTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _RollupReader.Contract.contract.Transact(opts, method, params...) -} - -// AnyTrustFastConfirmer is a free data retrieval call binding the contract method 0x55840a58. -// -// Solidity: function anyTrustFastConfirmer() view returns(address) -func (_RollupReader *RollupReaderCaller) AnyTrustFastConfirmer(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "anyTrustFastConfirmer") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// AnyTrustFastConfirmer is a free data retrieval call binding the contract method 0x55840a58. -// -// Solidity: function anyTrustFastConfirmer() view returns(address) -func (_RollupReader *RollupReaderSession) AnyTrustFastConfirmer() (common.Address, error) { - return _RollupReader.Contract.AnyTrustFastConfirmer(&_RollupReader.CallOpts) -} - -// AnyTrustFastConfirmer is a free data retrieval call binding the contract method 0x55840a58. -// -// Solidity: function anyTrustFastConfirmer() view returns(address) -func (_RollupReader *RollupReaderCallerSession) AnyTrustFastConfirmer() (common.Address, error) { - return _RollupReader.Contract.AnyTrustFastConfirmer(&_RollupReader.CallOpts) -} - -// GetNode is a free data retrieval call binding the contract method 0x92c8134c. -// -// Solidity: function getNode(uint64 nodeNum) view returns((bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,bytes32)) -func (_RollupReader *RollupReaderCaller) GetNode(opts *bind.CallOpts, nodeNum uint64) (Node, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "getNode", nodeNum) - - if err != nil { - return *new(Node), err - } - - out0 := *abi.ConvertType(out[0], new(Node)).(*Node) - - return out0, err - -} - -// GetNode is a free data retrieval call binding the contract method 0x92c8134c. -// -// Solidity: function getNode(uint64 nodeNum) view returns((bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,bytes32)) -func (_RollupReader *RollupReaderSession) GetNode(nodeNum uint64) (Node, error) { - return _RollupReader.Contract.GetNode(&_RollupReader.CallOpts, nodeNum) -} - -// GetNode is a free data retrieval call binding the contract method 0x92c8134c. -// -// Solidity: function getNode(uint64 nodeNum) view returns((bytes32,bytes32,bytes32,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,bytes32)) -func (_RollupReader *RollupReaderCallerSession) GetNode(nodeNum uint64) (Node, error) { - return _RollupReader.Contract.GetNode(&_RollupReader.CallOpts, nodeNum) -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address staker) view returns((uint256,uint64,uint64,uint64,bool)) -func (_RollupReader *RollupReaderCaller) GetStaker(opts *bind.CallOpts, staker common.Address) (OldStaker, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "getStaker", staker) - - if err != nil { - return *new(OldStaker), err - } - - out0 := *abi.ConvertType(out[0], new(OldStaker)).(*OldStaker) - - return out0, err - -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address staker) view returns((uint256,uint64,uint64,uint64,bool)) -func (_RollupReader *RollupReaderSession) GetStaker(staker common.Address) (OldStaker, error) { - return _RollupReader.Contract.GetStaker(&_RollupReader.CallOpts, staker) -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address staker) view returns((uint256,uint64,uint64,uint64,bool)) -func (_RollupReader *RollupReaderCallerSession) GetStaker(staker common.Address) (OldStaker, error) { - return _RollupReader.Contract.GetStaker(&_RollupReader.CallOpts, staker) -} - -// GetStakerAddress is a free data retrieval call binding the contract method 0x6ddd3744. -// -// Solidity: function getStakerAddress(uint64 stakerNum) view returns(address) -func (_RollupReader *RollupReaderCaller) GetStakerAddress(opts *bind.CallOpts, stakerNum uint64) (common.Address, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "getStakerAddress", stakerNum) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// GetStakerAddress is a free data retrieval call binding the contract method 0x6ddd3744. -// -// Solidity: function getStakerAddress(uint64 stakerNum) view returns(address) -func (_RollupReader *RollupReaderSession) GetStakerAddress(stakerNum uint64) (common.Address, error) { - return _RollupReader.Contract.GetStakerAddress(&_RollupReader.CallOpts, stakerNum) -} - -// GetStakerAddress is a free data retrieval call binding the contract method 0x6ddd3744. -// -// Solidity: function getStakerAddress(uint64 stakerNum) view returns(address) -func (_RollupReader *RollupReaderCallerSession) GetStakerAddress(stakerNum uint64) (common.Address, error) { - return _RollupReader.Contract.GetStakerAddress(&_RollupReader.CallOpts, stakerNum) -} - -// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. -// -// Solidity: function isValidator(address validator) view returns(bool) -func (_RollupReader *RollupReaderCaller) IsValidator(opts *bind.CallOpts, validator common.Address) (bool, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "isValidator", validator) - - if err != nil { - return *new(bool), err - } - - out0 := *abi.ConvertType(out[0], new(bool)).(*bool) - - return out0, err - -} - -// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. -// -// Solidity: function isValidator(address validator) view returns(bool) -func (_RollupReader *RollupReaderSession) IsValidator(validator common.Address) (bool, error) { - return _RollupReader.Contract.IsValidator(&_RollupReader.CallOpts, validator) -} - -// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. -// -// Solidity: function isValidator(address validator) view returns(bool) -func (_RollupReader *RollupReaderCallerSession) IsValidator(validator common.Address) (bool, error) { - return _RollupReader.Contract.IsValidator(&_RollupReader.CallOpts, validator) -} - -// LatestConfirmed is a free data retrieval call binding the contract method 0x65f7f80d. -// -// Solidity: function latestConfirmed() view returns(uint64) -func (_RollupReader *RollupReaderCaller) LatestConfirmed(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "latestConfirmed") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// LatestConfirmed is a free data retrieval call binding the contract method 0x65f7f80d. -// -// Solidity: function latestConfirmed() view returns(uint64) -func (_RollupReader *RollupReaderSession) LatestConfirmed() (uint64, error) { - return _RollupReader.Contract.LatestConfirmed(&_RollupReader.CallOpts) -} - -// LatestConfirmed is a free data retrieval call binding the contract method 0x65f7f80d. -// -// Solidity: function latestConfirmed() view returns(uint64) -func (_RollupReader *RollupReaderCallerSession) LatestConfirmed() (uint64, error) { - return _RollupReader.Contract.LatestConfirmed(&_RollupReader.CallOpts) -} - -// Rollup is a free data retrieval call binding the contract method 0xcb23bcb5. -// -// Solidity: function rollup() view returns(address) -func (_RollupReader *RollupReaderCaller) Rollup(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "rollup") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Rollup is a free data retrieval call binding the contract method 0xcb23bcb5. -// -// Solidity: function rollup() view returns(address) -func (_RollupReader *RollupReaderSession) Rollup() (common.Address, error) { - return _RollupReader.Contract.Rollup(&_RollupReader.CallOpts) -} - -// Rollup is a free data retrieval call binding the contract method 0xcb23bcb5. -// -// Solidity: function rollup() view returns(address) -func (_RollupReader *RollupReaderCallerSession) Rollup() (common.Address, error) { - return _RollupReader.Contract.Rollup(&_RollupReader.CallOpts) -} - -// StakerCount is a free data retrieval call binding the contract method 0xdff69787. -// -// Solidity: function stakerCount() view returns(uint64) -func (_RollupReader *RollupReaderCaller) StakerCount(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "stakerCount") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// StakerCount is a free data retrieval call binding the contract method 0xdff69787. -// -// Solidity: function stakerCount() view returns(uint64) -func (_RollupReader *RollupReaderSession) StakerCount() (uint64, error) { - return _RollupReader.Contract.StakerCount(&_RollupReader.CallOpts) -} - -// StakerCount is a free data retrieval call binding the contract method 0xdff69787. -// -// Solidity: function stakerCount() view returns(uint64) -func (_RollupReader *RollupReaderCallerSession) StakerCount() (uint64, error) { - return _RollupReader.Contract.StakerCount(&_RollupReader.CallOpts) -} - -// ValidatorWalletCreator is a free data retrieval call binding the contract method 0xbc45e0ae. -// -// Solidity: function validatorWalletCreator() view returns(address) -func (_RollupReader *RollupReaderCaller) ValidatorWalletCreator(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "validatorWalletCreator") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// ValidatorWalletCreator is a free data retrieval call binding the contract method 0xbc45e0ae. -// -// Solidity: function validatorWalletCreator() view returns(address) -func (_RollupReader *RollupReaderSession) ValidatorWalletCreator() (common.Address, error) { - return _RollupReader.Contract.ValidatorWalletCreator(&_RollupReader.CallOpts) -} - -// ValidatorWalletCreator is a free data retrieval call binding the contract method 0xbc45e0ae. -// -// Solidity: function validatorWalletCreator() view returns(address) -func (_RollupReader *RollupReaderCallerSession) ValidatorWalletCreator() (common.Address, error) { - return _RollupReader.Contract.ValidatorWalletCreator(&_RollupReader.CallOpts) -} - -// WasmModuleRoot is a free data retrieval call binding the contract method 0x8ee1a126. -// -// Solidity: function wasmModuleRoot() view returns(bytes32) -func (_RollupReader *RollupReaderCaller) WasmModuleRoot(opts *bind.CallOpts) ([32]byte, error) { - var out []interface{} - err := _RollupReader.contract.Call(opts, &out, "wasmModuleRoot") - - if err != nil { - return *new([32]byte), err - } - - out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - - return out0, err - -} - -// WasmModuleRoot is a free data retrieval call binding the contract method 0x8ee1a126. -// -// Solidity: function wasmModuleRoot() view returns(bytes32) -func (_RollupReader *RollupReaderSession) WasmModuleRoot() ([32]byte, error) { - return _RollupReader.Contract.WasmModuleRoot(&_RollupReader.CallOpts) -} - -// WasmModuleRoot is a free data retrieval call binding the contract method 0x8ee1a126. -// -// Solidity: function wasmModuleRoot() view returns(bytes32) -func (_RollupReader *RollupReaderCallerSession) WasmModuleRoot() ([32]byte, error) { - return _RollupReader.Contract.WasmModuleRoot(&_RollupReader.CallOpts) -} - -// RollupReaderNodeCreatedIterator is returned from FilterNodeCreated and is used to iterate over the raw logs and unpacked data for NodeCreated events raised by the RollupReader contract. -type RollupReaderNodeCreatedIterator struct { - Event *RollupReaderNodeCreated // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *RollupReaderNodeCreatedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(RollupReaderNodeCreated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(RollupReaderNodeCreated) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *RollupReaderNodeCreatedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *RollupReaderNodeCreatedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// RollupReaderNodeCreated represents a NodeCreated event raised by the RollupReader contract. -type RollupReaderNodeCreated struct { - NodeNum uint64 - ParentNodeHash [32]byte - NodeHash [32]byte - ExecutionHash [32]byte - Assertion IOldRollupAssertion - AfterInboxBatchAcc [32]byte - WasmModuleRoot [32]byte - InboxMaxCount *big.Int - Raw types.Log // Blockchain specific contextual infos -} - -// FilterNodeCreated is a free log retrieval operation binding the contract event 0x4f4caa9e67fb994e349dd35d1ad0ce23053d4323f83ce11dc817b5435031d096. -// -// Solidity: event NodeCreated(uint64 indexed nodeNum, bytes32 indexed parentNodeHash, bytes32 indexed nodeHash, bytes32 executionHash, (((bytes32[2],uint64[2]),uint8),((bytes32[2],uint64[2]),uint8),uint64) assertion, bytes32 afterInboxBatchAcc, bytes32 wasmModuleRoot, uint256 inboxMaxCount) -func (_RollupReader *RollupReaderFilterer) FilterNodeCreated(opts *bind.FilterOpts, nodeNum []uint64, parentNodeHash [][32]byte, nodeHash [][32]byte) (*RollupReaderNodeCreatedIterator, error) { - - var nodeNumRule []interface{} - for _, nodeNumItem := range nodeNum { - nodeNumRule = append(nodeNumRule, nodeNumItem) - } - var parentNodeHashRule []interface{} - for _, parentNodeHashItem := range parentNodeHash { - parentNodeHashRule = append(parentNodeHashRule, parentNodeHashItem) - } - var nodeHashRule []interface{} - for _, nodeHashItem := range nodeHash { - nodeHashRule = append(nodeHashRule, nodeHashItem) - } - - logs, sub, err := _RollupReader.contract.FilterLogs(opts, "NodeCreated", nodeNumRule, parentNodeHashRule, nodeHashRule) - if err != nil { - return nil, err - } - return &RollupReaderNodeCreatedIterator{contract: _RollupReader.contract, event: "NodeCreated", logs: logs, sub: sub}, nil -} - -// WatchNodeCreated is a free log subscription operation binding the contract event 0x4f4caa9e67fb994e349dd35d1ad0ce23053d4323f83ce11dc817b5435031d096. -// -// Solidity: event NodeCreated(uint64 indexed nodeNum, bytes32 indexed parentNodeHash, bytes32 indexed nodeHash, bytes32 executionHash, (((bytes32[2],uint64[2]),uint8),((bytes32[2],uint64[2]),uint8),uint64) assertion, bytes32 afterInboxBatchAcc, bytes32 wasmModuleRoot, uint256 inboxMaxCount) -func (_RollupReader *RollupReaderFilterer) WatchNodeCreated(opts *bind.WatchOpts, sink chan<- *RollupReaderNodeCreated, nodeNum []uint64, parentNodeHash [][32]byte, nodeHash [][32]byte) (event.Subscription, error) { - - var nodeNumRule []interface{} - for _, nodeNumItem := range nodeNum { - nodeNumRule = append(nodeNumRule, nodeNumItem) - } - var parentNodeHashRule []interface{} - for _, parentNodeHashItem := range parentNodeHash { - parentNodeHashRule = append(parentNodeHashRule, parentNodeHashItem) - } - var nodeHashRule []interface{} - for _, nodeHashItem := range nodeHash { - nodeHashRule = append(nodeHashRule, nodeHashItem) - } - - logs, sub, err := _RollupReader.contract.WatchLogs(opts, "NodeCreated", nodeNumRule, parentNodeHashRule, nodeHashRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(RollupReaderNodeCreated) - if err := _RollupReader.contract.UnpackLog(event, "NodeCreated", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseNodeCreated is a log parse operation binding the contract event 0x4f4caa9e67fb994e349dd35d1ad0ce23053d4323f83ce11dc817b5435031d096. -// -// Solidity: event NodeCreated(uint64 indexed nodeNum, bytes32 indexed parentNodeHash, bytes32 indexed nodeHash, bytes32 executionHash, (((bytes32[2],uint64[2]),uint8),((bytes32[2],uint64[2]),uint8),uint64) assertion, bytes32 afterInboxBatchAcc, bytes32 wasmModuleRoot, uint256 inboxMaxCount) -func (_RollupReader *RollupReaderFilterer) ParseNodeCreated(log types.Log) (*RollupReaderNodeCreated, error) { - event := new(RollupReaderNodeCreated) - if err := _RollupReader.contract.UnpackLog(event, "NodeCreated", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - // RollupUserLogicMetaData contains all meta data concerning the RollupUserLogic contract. var RollupUserLogicMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sendRoot\",\"type\":\"bytes32\"}],\"name\":\"AssertionConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"afterInboxBatchAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"}],\"name\":\"AssertionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"challengeIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asserter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"challengedAssertion\",\"type\":\"uint64\"}],\"name\":\"RollupChallengeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"machineHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"RollupInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"UpgradedSecondary\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserStakeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalBalance\",\"type\":\"uint256\"}],\"name\":\"UserWithdrawableFundsUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_stakerMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedWithdrawalAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"addToDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"amountStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anyTrustFastConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeGracePeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"challengeManager\",\"outputs\":[{\"internalType\":\"contractIEdgeChallengeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"computeAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"winningEdgeId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"prevConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"confirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmPeriodBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parentAssertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"confirmState\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"fastConfirmAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"fastConfirmNewAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisAssertionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"firstChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"secondChildBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAtBlock\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isFirstChild\",\"type\":\"bool\"},{\"internalType\":\"enumAssertionStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"configHash\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionNode\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getAssertionCreationBlockForLogLookup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getFirstChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"getSecondChildCreationBlock\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountStaked\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"latestStakedAssertion\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"index\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isStaked\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"}],\"internalType\":\"structIRollupCore.Staker\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"stakerNum\",\"type\":\"uint64\"}],\"name\":\"getStakerAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inbox\",\"outputs\":[{\"internalType\":\"contractIInboxBase\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stakeToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isFirstChild\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"}],\"name\":\"isPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"isStaked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfirmed\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"latestStakedAssertion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loserStakeEscrow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumAssertionPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_withdrawalAddress\",\"type\":\"address\"}],\"name\":\"newStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_withdrawalAddress\",\"type\":\"address\"}],\"name\":\"newStakeOnNewAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"newStakeOnNewAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"outbox\",\"outputs\":[{\"internalType\":\"contractIOutbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"target\",\"type\":\"uint256\"}],\"name\":\"reduceDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeWhitelistAfterFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"removeWhitelistAfterValidatorAfk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"returnOldDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerAddress\",\"type\":\"address\"}],\"name\":\"returnOldDepositFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupDeploymentBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupEventInbox\",\"outputs\":[{\"internalType\":\"contractIRollupEventInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"contractISequencerInbox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"prevPrevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"sequencerBatchAcc\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"internalType\":\"structBeforeStateData\",\"name\":\"beforeStateData\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"beforeState\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"afterState\",\"type\":\"tuple\"}],\"internalType\":\"structAssertionInputs\",\"name\":\"assertion\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"expectedAssertionHash\",\"type\":\"bytes32\"}],\"name\":\"stakeOnNewAssertion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakerCount\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalWithdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"endHistoryRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structAssertionState\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"prevAssertionHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"inboxAcc\",\"type\":\"bytes32\"}],\"name\":\"validateAssertionHash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"wasmModuleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"requiredStake\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"challengeManager\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"confirmPeriodBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextInboxPosition\",\"type\":\"uint64\"}],\"internalType\":\"structConfigData\",\"name\":\"configData\",\"type\":\"tuple\"}],\"name\":\"validateConfig\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorAfkBlocks\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWalletCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorWhitelistDisabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wasmModuleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawStakerFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"withdrawableFunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"withdrawalAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60e0604052620000196200003a60201b62001b281760201c565b15156080523060a0524660c0523480156200003357600080fd5b5062000108565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200007a9190620000d7565b600060405180830381855afa9150503d8060008114620000b7576040519150601f19603f3d011682016040523d82523d6000602084013e620000bc565b606091505b5091509150818015620000d0575080516020145b9250505090565b6000825160005b81811015620000fa5760208186018101518583015201620000de565b506000920191825250919050565b60805160a05160c0516142ef6200014d600039600061182c01526000818161121001528181611899015261191e015260008181610c0e015261292801526142ef6000f3fe608060405234801561001057600080fd5b50600436106102c45760003560e01c806365f7f80d1161017957806365f7f80d1461052157806368129b1414610529578063685f5ecc1461053c5780636ddd37441461054f57806371ef232c146105625780637300201c1461056b57806376e7e23b1461057e57806384728cd014610587578063883028841461059a5780638da5cb5b146105ba5780638ee1a126146105c25780639a8a0592146105cb578063a23c44b1146105d4578063aa38a6e7146106cd578063b7ab4db5146106e0578063bc45e0ae146106f5578063c2c2e68e14610708578063c4d66de814610710578063ce11e6ab14610723578063dff6978714610736578063e51019a61461073e578063e531d8c714610751578063e6b3082c14610764578063e78cea921461077e578063e8bd492214610791578063ee35f32714610825578063ef40a6701461082d578063f065de3f14610840578063facd743b14610853578063fb0e722b1461086657600080fd5b8063023a96fe146102c957806304972af9146102f957806310b98a351461030e578063117155851461032157806312ab3d3b1461034c57806313c56ca71461036957806318baaab91461038a5780631b1689e9146103925780631e83d30f1461039b5780632abdd230146103ae5780632e7acfa6146103c15780632f30cabd146103d457806330836228146103fd57806333635fc214610410578063353325e0146104235780633b86de191461042b5780633be680ea1461043e57806345e38b641461045857806350f32f681461046157806351ed6a301461047457806352d1902d1461048757806355840a581461048f57806356bbc9e6146104a757806357ef4ab9146104ba578063588c7a16146104c25780635c975abb146104d55780636096686d146104e057806361373919146104f35780636177fd18146104fb5780636420fb9f1461050e575b600080fd5b6069546102dc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61030c610307366004613766565b610879565b005b61030c61031c3660046137a5565b610893565b61033461032f366004613803565b610bef565b6040516001600160401b0390911681526020016102f0565b607b546103599060ff1681565b60405190151581526020016102f0565b61037c610377366004613803565b610c0a565b6040519081526020016102f0565b61030c610d3f565b61037c607a5481565b61030c6103a9366004613803565b610db9565b61037c6103bc366004613831565b610e0e565b606654610334906001600160401b031681565b61037c6103e2366004613831565b6001600160a01b031660009081526078602052604090205490565b61035961040b366004613803565b610e2c565b61037c61041e36600461384e565b610e48565b61037c610e6d565b61030c610439366004613898565b610ea9565b60695461033490600160a01b90046001600160401b031681565b61037c60715481565b61030c61046f3660046138c5565b6111ba565b6070546102dc906001600160a01b031681565b61037c611203565b607b546102dc9061010090046001600160a01b031681565b6103346104b5366004613803565b6112c6565b61030c6112e8565b61030c6104d0366004613831565b611331565b60335460ff16610359565b61030c6104ee366004613911565b6113d9565b61037c611441565b610359610509366004613831565b6114bb565b61030c61051c366004613898565b6114e3565b60745461037c565b61030c610537366004613951565b61167f565b61030c61054a366004613981565b6116c6565b6102dc61055d3660046139d7565b6116e2565b61037c60795481565b61030c6105793660046139f4565b61171b565b61037c60675481565b6102dc610595366004613831565b611727565b6105ad6105a8366004613803565b61174f565b6040516102f09190613a60565b6102dc6117f0565b61037c60685481565b61037c60655481565b61067c6105e2366004613831565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160a01b03908116600090815260776020908152604091829020825160a08101845281548152600182015492810192909252600201546001600160401b0381169282019290925260ff600160401b83041615156060820152600160481b909104909116608082015290565b6040516102f0919081518152602080830151908201526040808301516001600160401b0316908201526060808301511515908201526080918201516001600160a01b03169181019190915260a00190565b606d546102dc906001600160a01b031681565b6106e86117fa565b6040516102f09190613ac0565b606e546102dc906001600160a01b031681565b61030c611806565b61030c61071e366004613831565b61188f565b606c546102dc906001600160a01b031681565b607654610334565b61030c61074c366004613b0d565b611a02565b61035961075f366004613803565b611a62565b60665461033490600160401b90046001600160401b031681565b606b546102dc906001600160a01b031681565b6107e661079f366004613831565b6077602052600090815260409020805460018201546002909201549091906001600160401b03811690600160401b810460ff1690600160481b90046001600160a01b031685565b6040805195865260208601949094526001600160401b039092169284019290925290151560608301526001600160a01b0316608082015260a0016102f0565b6102dc611a92565b61037c61083b366004613831565b611b00565b606f546102dc906001600160a01b031681565b610359610861366004613831565b611b1b565b606a546102dc906001600160a01b031681565b61088f8161088684611bc0565b60010154611c1f565b5050565b3361089f607282611ca3565b806108ac5750607b5460ff165b6108d15760405162461bcd60e51b81526004016108c890613b4b565b60405180910390fd5b6108d9611cc4565b60006108e488611bc0565b905060006108f188611bc0565b9050610901858260010154611c1f565b61091160808601606087016139d7565b825461092d9190600160801b90046001600160401b0316613b88565b6001600160401b03164310156109775760405162461bcd60e51b815260206004820152600f60248201526e4245464f52455f444541444c494e4560881b60448201526064016108c8565b60745488146109c45760405162461bcd60e51b81526020600482015260196024820152781414915597d393d517d310551154d517d0d3d3919254935151603a1b60448201526064016108c8565b8054600160401b90046001600160401b031615610bd85760006109ed6060870160408801613831565b6001600160a01b031663fda2892e886040518263ffffffff1660e01b8152600401610a1a91815260200190565b6101e060405180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190613c4f565b9050898160e0015114610a9e5760405162461bcd60e51b815260206004820152600a6024820152692727aa2faba4a72722a960b11b60448201526064016108c8565b60018161016001516001811115610ab757610ab7613a2c565b14610af95760405162461bcd60e51b8152602060048201526012602482015271115111d157d393d517d0d3d391925493515160721b60448201526064016108c8565b8061014001516001600160401b0316600003610b515760405162461bcd60e51b81526020600482015260176024820152765a45524f5f434f4e4649524d45445f41545f424c4f434b60481b60448201526064016108c8565b606954610140820151610b7491600160a01b90046001600160401b031690613b88565b6001600160401b0316431015610bd65760405162461bcd60e51b815260206004820152602160248201527f4348414c4c454e47455f47524143455f504552494f445f4e4f545f50415353456044820152601160fa1b60648201526084016108c8565b505b610be489898987611d0c565b505050505050505050565b6000610bfa82611bc0565b546001600160401b031692915050565b60007f000000000000000000000000000000000000000000000000000000000000000015610c83576000828152607c602052604090205480610c7d5760405162461bcd60e51b815260206004820152600c60248201526b2727afa0a9a9a2a92a24a7a760a11b60448201526064016108c8565b92915050565b6000610c8e83611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b8304811615156060830152929350610d2392909184916080840191600160c81b9004166002811115610cff57610cff613a2c565b6002811115610d1057610d10613a2c565b8152602001600182015481525050611eb6565b54600160801b90046001600160401b031692915050565b919050565b607b5460ff1615610d625760405162461bcd60e51b81526004016108c890613d39565b610d6a611f11565b610daa5760405162461bcd60e51b815260206004820152601160248201527056414c494441544f525f4e4f545f41464b60781b60448201526064016108c8565b607b805460ff19166001179055565b33610dc5607282611ca3565b80610dd25750607b5460ff165b610dee5760405162461bcd60e51b81526004016108c890613b4b565b610df6611cc4565b610dff3361203f565b610e0933836120dd565b505050565b6001600160a01b031660009081526077602052604090206001015490565b6000610e3782611bc0565b54600160c01b900460ff1692915050565b6000610e6384610e5d36869003860186613e86565b846121b9565b90505b9392505050565b6000610e776136d5565b604080516060810182528281526001602082015260009181018290529080610ea08184816121b9565b94505050505090565b33610eb5607282611ca3565b80610ec25750607b5460ff165b610ede5760405162461bcd60e51b81526004016108c890613b4b565b610ee6611cc4565b811580610f1757506000610ef983611bc0565b54600160c81b900460ff166002811115610f1557610f15613a2c565b145b610f5d5760405162461bcd60e51b815260206004820152601760248201527622ac2822a1aa22a22fa0a9a9a2a92a24a7a72fa9a2a2a760491b60448201526064016108c8565b610f66336114bb565b610f825760405162461bcd60e51b81526004016108c890613eec565b6060830135610f9033611b00565b1015610fd35760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f5354414b4560701b60448201526064016108c8565b6000610ff68435610fec36879003870160e08801613e86565b60208701356121b9565b905061106e61100482611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b909104166002811115610cff57610cff613a2c565b600061107933610e0e565b90508181148061109b5750600061108f82611bc0565b546001600160401b0316115b6110e25760405162461bcd60e51b81526020600482015260186024820152770a6a882968a88be9e9cbe829c9ea8908aa4be84a4829c86960431b60448201526064016108c8565b6000806110f08785886121fd565b33600090815260776020526040902060010182905590925090508061117857600061111a85611bc0565b5461113590600160801b90046001600160401b031643613f10565b90506071548110156111765760405162461bcd60e51b815260206004820152600a60248201526954494d455f44454c544160b01b60448201526064016108c8565b505b61118182611bc0565b54600160c01b900460ff166111b157606f546070546111b1916001600160a01b03918216911660608a01356129cb565b50505050505050565b6001600160a01b0381166111e05760405162461bcd60e51b81526004016108c890613f23565b6111ea8482612a2e565b6111f48383610ea9565b6111fd84612abd565b50505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112a15760405162461bcd60e51b815260206004820152603b60248201527f555550534e6f745570677261646561626c653a206d757374206e6f742062652060448201527a18d85b1b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b602a1b60648201526084016108c8565b507f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d90565b60006112d182611bc0565b54600160401b90046001600160401b031692915050565b336112f4607282611ca3565b806113015750607b5460ff165b61131d5760405162461bcd60e51b81526004016108c890613b4b565b611325611cc4565b61132e33612ad5565b50565b8061133d607282611ca3565b8061134a5750607b5460ff165b6113665760405162461bcd60e51b81526004016108c890613b4b565b61136e611cc4565b61137782611727565b6001600160a01b0316336001600160a01b0316146113d05760405162461bcd60e51b81526020600482015260166024820152754e4f545f5749544844524157414c5f4144445245535360501b60448201526064016108c8565b61088f82612ad5565b6113e1611cc4565b607b5461010090046001600160a01b031633146114355760405162461bcd60e51b81526020600482015260126024820152712727aa2fa320a9aa2fa1a7a72324a926a2a960711b60448201526064016108c8565b6111fd84848484611d0c565b600061144b611cc4565b600061145633612ae7565b90506000811161149f5760405162461bcd60e51b81526020600482015260146024820152734e4f5f46554e44535f544f5f574954484452415760601b60448201526064016108c8565b6070546114b6906001600160a01b031633836129cb565b905090565b6001600160a01b0316600090815260776020526040902060020154600160401b900460ff1690565b6114eb611cc4565b806115325760405162461bcd60e51b815260206004820152601760248201527608ab0a08a86a88a88be82a6a68aa4a8929e9cbe9082a69604b1b60448201526064016108c8565b600061153d82611bc0565b54600160c81b900460ff16905060006115638435610fec36879003870160e08801613e86565b905061157161100482611bc0565b600082600281111561158557611585613a2c565b036115d55760006115978583866121fd565b5090506115a381611bc0565b54600160c01b900460ff166115d357606f546070546115d3916001600160a01b03918216911660608801356129cb565b505b606b546111fd90849083906101a08801906001600160a01b03166316bf5579600161160d611608368d90038d0186613f55565b612b68565b6116179190613f71565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa15801561165b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190613f91565b611687611cc4565b6001600160a01b0381166116ad5760405162461bcd60e51b81526004016108c890613f23565b6116b78282612a2e565b811561088f5761088f82612abd565b6116ce611cc4565b6116d9838383612b7d565b610e0981612abd565b60006076826001600160401b03168154811061170057611700613faa565b6000918252602090912001546001600160a01b031692915050565b610e09838383336111ba565b6001600160a01b03908116600090815260776020526040902060020154600160481b90041690565b6117576136fa565b61176082611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b9091041660028111156117ca576117ca613a2c565b60028111156117db576117db613a2c565b81526020016001820154815250509050919050565b60006114b6612c4d565b60606114b66072612c80565b607b5460ff16156118295760405162461bcd60e51b81526004016108c890613d39565b467f000000000000000000000000000000000000000000000000000000000000000003610daa5760405162461bcd60e51b815260206004820152601460248201527310d210525397d25117d393d517d0d2105391d15160621b60448201526064016108c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361191c5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016108c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661194e612c8d565b6001600160a01b0316146119b95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016108c8565b6001600160a01b03811661132e5760405162461bcd60e51b815260206004820152601060248201526f2722a2a22fa9aa20a5a2afaa27a5a2a760811b60448201526064016108c8565b611a1b82611a1536869003860186613e86565b836121b9565b84146111fd5760405162461bcd60e51b81526020600482015260166024820152750929cac82989288be82a6a68aa4a8929e9cbe9082a6960531b60448201526064016108c8565b60006001611a6f83611bc0565b54600160c81b900460ff166002811115611a8b57611a8b613a2c565b1492915050565b606b546040805163ee35f32760e01b815290516000926001600160a01b03169163ee35f3279160048083019260209291908290030181865afa158015611adc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190613fc0565b6001600160a01b031660009081526077602052604090205490565b6000610c7d607283611ca3565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491611b669190614001565b600060405180830381855afa9150503d8060008114611ba1576040519150601f19603f3d011682016040523d82523d6000602084013e611ba6565b606091505b5091509150818015611bb9575080516020145b9250505090565b600081611c0d5760405162461bcd60e51b815260206004820152601b60248201527a415353455254494f4e5f49445f43414e4e4f545f42455f5a45524f60281b60448201526064016108c8565b50600090815260756020526040902090565b611c5e82356020840135611c396060860160408701613831565b611c4960808701606088016139d7565b611c5960a08801608089016139d7565b612cb5565b811461088f5760405162461bcd60e51b81526020600482015260146024820152730869e9c8c928ebe9082a690be9a92a69a82a886960631b60448201526064016108c8565b6001600160a01b031660009081526001919091016020526040902054151590565b60335460ff1615611d0a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108c8565b565b6000611d1785611bc0565b905060018154600160c81b900460ff166002811115611d3857611d38613a2c565b14611d735760405162461bcd60e51b815260206004820152600b60248201526a4e4f545f50454e44494e4760a81b60448201526064016108c8565b611d8684610e5d36869003860186613e86565b8514611dc35760405162461bcd60e51b815260206004820152600c60248201526b434f4e4649524d5f4441544160a01b60448201526064016108c8565b6000611ddc611dd736869003860186613f55565b612d15565b90506000611df7611df236879003870187613f55565b612d20565b606c54604051630502677360e51b815260048101839052602481018590529192506001600160a01b03169063a04cee6090604401600060405180830381600087803b158015611e4557600080fd5b505af1158015611e59573d6000803e3d6000fd5b505050607488905550825460ff60c81b1916600160c91b1783556040805183815260208101839052815189927ffc42829b29c259a7370ab56c8f69fce23b5f351a9ce151da453281993ec0090c928290030190a250505050505050565b600081608001516002811115611ece57611ece613a2c565b0361132e5760405162461bcd60e51b81526020600482015260136024820152721054d4d154951253d397d393d517d1561254d5606a1b60448201526064016108c8565b600080611f25611f2060745490565b611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b909104166002811115611f8f57611f8f613a2c565b6002811115611fa057611fa0613a2c565b815260019190910154602090910152606654909150600160401b90046001600160401b03166000819003611fd75760009250505090565b81604001516001600160401b0316600003611ff55760009250505090565b81516001600160401b031615612025578151439061201d9083906001600160401b031661401d565b109250505090565b438183604001516001600160401b031661201d919061401d565b612048816114bb565b6120645760405162461bcd60e51b81526004016108c890613eec565b600061206f82610e0e565b9050600061207c60745490565b8214905060008061208c84611bc0565b546001600160401b031611905081806120a25750805b6111fd5760405162461bcd60e51b815260206004820152600c60248201526b5354414b455f41435449564560a01b60448201526064016108c8565b6001600160a01b0380831660009081526077602052604081206002810154815492939192600160481b90910490911690808511156121505760405162461bcd60e51b815260206004820152601060248201526f544f4f5f4c4954544c455f5354414b4560801b60448201526064016108c8565b600061215c8683613f10565b868555905061216b8382612d2c565b826001600160a01b0316876001600160a01b031660008051602061429a83398151915284896040516121a7929190918252602082015260400190565b60405180910390a39695505050505050565b6000610e63846121c885612dd1565b604080516020808201949094528082019290925260608083018790528151808403909101815260809092019052805191012090565b6000806122106040860161088686611bc0565b600161222461024087016102208801614030565b600281111561223557612235613a2c565b14806122635750600261225061024087016102208801614030565b600281111561226157612261613a2c565b145b6122a25760405162461bcd60e51b815260206004820152601060248201526f4241445f41465445525f53544154555360801b60448201526064016108c8565b836122c486356122ba36899003890160e08a01613e86565b60208901356121b9565b146123085760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f4245464f52455f535441544560601b60448201526064016108c8565b600161231c61018087016101608801614030565b600281111561232d5761232d613a2c565b1461236c5760405162461bcd60e51b815260206004820152600f60248201526e4241445f505245565f53544154555360881b60448201526064016108c8565b600061237785611bc0565b90506000806101a0880160e08901826123908383612e01565b12156123d05760405162461bcd60e51b815260206004820152600f60248201526e494e424f585f4241434b574152445360881b60448201526064016108c8565b60006123f56123e560e08d0160c08e016139d7565b84906001600160401b0316612f06565b905060008113156124385760405162461bcd60e51b815260206004820152600d60248201526c24a72127ac2faa27a7afa320a960991b60448201526064016108c8565b600261244c6102408d016102208e01614030565b600281111561245d5761245d613a2c565b1415801561246b5750600081125b156124c3576001965060006124808484612e01565b136124c35760405162461bcd60e51b815260206004820152601360248201527213d59154919313d5d7d4d510539114d5125313606a1b60448201526064016108c8565b606b54604080516221048360e21b815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190613f91565b9050600061253d8583612f06565b131561257c5760405162461bcd60e51b815260206004820152600e60248201526d12539093d617d41054d517d1539160921b60448201526064016108c8565b8061258d60e08e0160c08f016139d7565b6001600160401b031611156125da5760405162461bcd60e51b815260206004820152601360248201527212539093d617d393d517d413d4155310551151606a1b60448201526064016108c8565b60006125ee61160836879003870187613f55565b6001600160401b031690508181036126125761260b82600161401d565b9650612616565b8196505b8060000361265a5760405162461bcd60e51b8152602060048201526011602482015270115354151657d2539093d617d0d3d55395607a1b60448201526064016108c8565b606b546001600160a01b03166316bf5579612676600184613f10565b6040518263ffffffff1660e01b815260040161269491815260200190565b602060405180830381865afa1580156126b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d59190613f91565b955050505050506126f587896101a001803603810190611a159190613e86565b945085851480612703575085155b61274b5760405162461bcd60e51b81526020600482015260196024820152780aa9c8ab0a08a86a88a88be82a6a68aa4a8929e9cbe9082a69603b1b60448201526064016108c8565b600061275686611bc0565b54600160c81b900460ff16600281111561277257612772613a2c565b146127b05760405162461bcd60e51b815260206004820152600e60248201526d20a9a9a2a92a24a7a72fa9a2a2a760911b60448201526064016108c8565b82546068546067546069546066546000946127f2946001600160401b0391821615946127ed94919390926001600160a01b03909216911689612cb5565b612f92565b90506127fd84612fc9565b60008681526075602090815260409182902083518154928501519385015160608601511515600160c01b0260ff60c01b196001600160401b03928316600160801b0216600160801b600160c81b0319968316600160401b026001600160801b03199096169290931691909117939093179390931692909217178082556080830151839291829060ff60c81b1916600160c81b8360028111156128a1576128a1613a2c565b021790555060a0820151816001015590505087867f901c3aee23cf4478825462caaab375c606ab83516060388344f06503407536308b8587606854606754606960009054906101000a90046001600160a01b0316606660009054906101000a90046001600160401b031660405161291e97969594939291906140c2565b60405180910390a37f0000000000000000000000000000000000000000000000000000000000000000156129bf5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129af9190613f91565b6000878152607c60205260409020555b50505050935093915050565b6040516001600160a01b038316602482015260448101829052610e0990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613034565b33612a3a607282611ca3565b80612a475750607b5460ff165b612a635760405162461bcd60e51b81526004016108c890613b4b565b612a6b611cc4565b612a74336114bb565b15612ab25760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d4d51052d15160921b60448201526064016108c8565b610e09338484613106565b60705461132e906001600160a01b0316333084613224565b612ade8161203f565b61132e8161325c565b6001600160a01b0381166000908152607860205260408120805490829055607980548291908490612b19908490613f10565b909155505060408051828152600060208201526001600160a01b038516917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a292915050565b6020810151600090815b602002015192915050565b82612b89607282611ca3565b80612b965750607b5460ff165b612bb25760405162461bcd60e51b81526004016108c890613b4b565b612bba611cc4565b612bc3846114bb565b612bdf5760405162461bcd60e51b81526004016108c890613eec565b826001600160a01b0316612bf285611727565b6001600160a01b031614612c435760405162461bcd60e51b815260206004820152601860248201527757524f4e475f5749544844524157414c5f4144445245535360401b60448201526064016108c8565b6111fd84836132cf565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606000610e6683613345565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d612c71565b60408051602080820197909752808201959095526001600160601b0319606094851b16938501939093526001600160c01b031960c092831b81166074860152911b16607c8301528051606481840301815260849092019052805191012090565b805160009081612b72565b80516000906001612b72565b6001600160a01b03821660009081526078602052604081205490612d50838361401d565b6001600160a01b0385166000908152607860205260408120829055607980549293508592909190612d8290849061401d565b909155505060408051838152602081018390526001600160a01b038616917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a250505050565b600081604051602001612de491906141ac565b604051602081830303815290604052805190602001209050919050565b600080612e1661160836869003860186613f55565b90506000612e2c61160836869003860186613f55565b9050806001600160401b0316826001600160401b03161015612e545760001992505050610c7d565b806001600160401b0316826001600160401b03161115612e7957600192505050610c7d565b6000612e92612e8d36889003880188613f55565b6133a1565b90506000612ea8612e8d36889003880188613f55565b9050806001600160401b0316826001600160401b03161015612ed257600019945050505050610c7d565b806001600160401b0316826001600160401b03161115612ef9576001945050505050610c7d565b6000945050505050610c7d565b600080612f1b61160836869003860186613f55565b905082816001600160401b03161015612f3957600019915050610c7d565b82816001600160401b03161115612f54576001915050610c7d565b6000612f68612e8d36879003870187613f55565b6001600160401b03161115612f81576001915050610c7d565b6000915050610c7d565b5092915050565b612f9a6136fa565b612fa26136fa565b6001600160401b034316604082015292151560608401525060a08201526001608082015290565b80546001600160401b0316600003612ff65780546001600160401b031916436001600160401b0316179055565b8054600160401b90046001600160401b031660000361132e57805467ffffffffffffffff60401b1916600160401b436001600160401b031602179055565b6000613089826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133b09092919063ffffffff16565b805190915015610e0957808060200190518101906130a79190614235565b610e095760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108c8565b6076805460018082019092557fb5732705f5241370a28908c2fe1303cb223f03b90d857fd0573f003f79fefed4810180546001600160a01b0319166001600160a01b038781169182179092556040805160a08101825287815260745460208083019182526001600160401b03808816848601908152606085018a81528b89166080870181815260008a8152607787528981209851895596519c88019c909c5591516002909601805491519b51969093166001600160481b031990911617600160401b9a15159a909a0299909917600160481b600160e81b031916600160481b9490971693909302959095179091558151908152928301879052929392909160008051602061429a83398151915291015b60405180910390a350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526111fd9085906323b872dd60e01b906084016129f7565b6001600160a01b038082166000908152607760205260409020600281015481549192600160481b90910416906132928282612d2c565b61329b846133bf565b60408051828152600060208201526001600160a01b03808516929087169160008051602061429a8339815191529101613216565b6001600160a01b0382166000908152607760205260408120805490916132f5848361401d565b808455600284015460408051858152602081018490529293506001600160a01b03600160481b9092048216929188169160008051602061429a833981519152910160405180910390a35050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561339557602002820191906000526020600020905b815481526020019060010190808311613381575b50505050509050919050565b60208101516000906001612b72565b6060610e63848460008561356b565b6001600160a01b03811660009081526077602052604090206002810154600160401b900460ff166134025760405162461bcd60e51b81526004016108c890613eec565b6002810154607680546001600160401b039092169161342390600190613f10565b8154811061343357613433613faa565b600091825260209091200154607680546001600160a01b03909216916001600160401b03841690811061346857613468613faa565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080607760006076846001600160401b0316815481106134b7576134b7613faa565b6000918252602080832091909101546001600160a01b03168352820192909252604001902060020180546001600160401b0319166001600160401b0392909216919091179055607680548061350e5761350e614250565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b039490941681526077909352505060408120818155600181019190915560020180546001600160e81b0319169055565b6060824710156135cc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108c8565b6001600160a01b0385163b6136235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108c8565b600080866001600160a01b0316858760405161363f9190614001565b60006040518083038185875af1925050503d806000811461367c576040519150601f19603f3d011682016040523d82523d6000602084013e613681565b606091505b509150915061369182828661369c565b979650505050505050565b606083156136ab575081610e66565b8251156136bb5782518084602001fd5b8160405162461bcd60e51b81526004016108c89190614266565b60405180604001604052806136e8613730565b81526020016136f5613730565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290529060808201908152600060209091015290565b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561376057600080fd5b50919050565b60008060c0838503121561377957600080fd5b8235915061378a846020850161374e565b90509250929050565b600060c0828403121561376057600080fd5b6000806000806000806101e087890312156137bf57600080fd5b86359550602087013594506137d78860408901613793565b935061010087013592506137ef88610120890161374e565b91506101c087013590509295509295509295565b60006020828403121561381557600080fd5b5035919050565b6001600160a01b038116811461132e57600080fd5b60006020828403121561384357600080fd5b8135610e668161381c565b6000806000610100848603121561386457600080fd5b833592506138758560208601613793565b915060e084013590509250925092565b6000610260828403121561376057600080fd5b60008061028083850312156138ac57600080fd5b6138b68484613885565b94610260939093013593505050565b6000806000806102c085870312156138dc57600080fd5b843593506138ed8660208701613885565b925061028085013591506102a08501356139068161381c565b939692955090935050565b600080600080610120858703121561392857600080fd5b84359350602085013592506139408660408701613793565b939692955092936101000135925050565b6000806040838503121561396457600080fd5b8235915060208301356139768161381c565b809150509250929050565b60008060006060848603121561399657600080fd5b83356139a18161381c565b925060208401356139b18161381c565b929592945050506040919091013590565b6001600160401b038116811461132e57600080fd5b6000602082840312156139e957600080fd5b8135610e66816139c2565b60008060006102a08486031215613a0a57600080fd5b83359250613a1b8560208601613885565b915061028084013590509250925092565b634e487b7160e01b600052602160045260246000fd5b6003811061132e57634e487b7160e01b600052602160045260246000fd5b600060c0820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151151560608301526080830151613aa981613a42565b8060808401525060a083015160a083015292915050565b6020808252825182820181905260009190848201906040850190845b81811015613b015783516001600160a01b031683529284019291840191600101613adc565b50909695505050505050565b6000806000806101208587031215613b2457600080fd5b84359350613b358660208701613793565b939693955050505060e082013591610100013590565b6020808252600d908201526c2727aa2fab20a624a220aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019080821115612f8b57612f8b613b72565b634e487b7160e01b600052604160045260246000fd5b6040516101e081016001600160401b0381118282101715613be157613be1613ba8565b60405290565b604080519081016001600160401b0381118282101715613be157613be1613ba8565b8051610d3a8161381c565b8051610d3a816139c2565b805160028110610d3a57600080fd5b805160ff81168114610d3a57600080fd5b80518015158114610d3a57600080fd5b60006101e08284031215613c6257600080fd5b613c6a613bbe565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100613cc2818501613c09565b90820152610120613cd4848201613c14565b90820152610140613ce6848201613c14565b90820152610160613cf8848201613c1f565b90820152610180613d0a848201613c2e565b908201526101a0613d1c848201613c3f565b908201526101c0613d2e848201613c14565b908201529392505050565b60208082526012908201527115d2125511531254d517d11254d05093115160721b604082015260600190565b600082601f830112613d7657600080fd5b604051604081018181106001600160401b0382111715613d9857613d98613ba8565b8060405250806040840185811115613daf57600080fd5b845b81811015613dd2578035613dc4816139c2565b835260209283019201613db1565b509195945050505050565b600060808284031215613def57600080fd5b604051604081018181106001600160401b0382111715613e1157613e11613ba8565b604052905080601f83018413613e2657600080fd5b613e2e613be7565b806040850186811115613e4057600080fd5b855b81811015613e5a578035845260209384019301613e42565b50818452613e688782613d65565b60208501525050505092915050565b803560038110610d3a57600080fd5b600060c08284031215613e9857600080fd5b604051606081018181106001600160401b0382111715613eba57613eba613ba8565b604052613ec78484613ddd565b8152613ed560808401613e77565b602082015260a09290920135604083015250919050565b6020808252600a90820152691393d517d4d51052d15160b21b604082015260600190565b81810381811115610c7d57610c7d613b72565b602080825260189082015277454d5054595f5749544844524157414c5f4144445245535360401b604082015260600190565b600060808284031215613f6757600080fd5b610e668383613ddd565b6001600160401b03828116828216039080821115612f8b57612f8b613b72565b600060208284031215613fa357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613fd257600080fd5b8151610e668161381c565b60005b83811015613ff8578181015183820152602001613fe0565b50506000910152565b60008251614013818460208701613fdd565b9190910192915050565b80820180821115610c7d57610c7d613b72565b60006020828403121561404257600080fd5b610e6682613e77565b61405481613a42565b9052565b6040818337604082016040820160005b600281101561409a57813561407c816139c2565b6001600160401b031683526020928301929190910190600101614068565b5050506140a960808201613e77565b6140b281613a42565b608083015260a090810135910152565b6000610320820190508835825260208901356020830152604089013560408301526060890135606083015260808901356140fb8161381c565b6001600160a01b0316608083015260a0890135614117816139c2565b6001600160401b0390811660a084015260c08a013590614136826139c2565b1660c083015261414c60e0808401908b01614058565b6101a061415d818401828c01614058565b508761026083015286610280830152856102a0830152846102c08301526141906102e08301856001600160a01b03169052565b6001600160401b03831661030083015298975050505050505050565b8151805160c0830191908360005b60028110156141d95782518252602092830192909101906001016141ba565b505050602090810151906040840160005b60028110156142105783516001600160401b0316825292820192908201906001016141ea565b50508401519050614224608084018261404b565b50604083015160a083015292915050565b60006020828403121561424757600080fd5b610e6682613c3f565b634e487b7160e01b600052603160045260246000fd5b6020815260008251806020840152614285816040850160208701613fdd565b601f01601f1916919091016040019291505056fed957cf2340073335d256f72a9ef89cf1a43c31143341a6a53575ef33e987beb8a26469706673582212209f1da9c9c9bbaf53130699163367002bb10ea8ceaa6ba625098cc49366b8d6d964736f6c63430008110033", + Bin: "0x60e0604052620000196200003a60201b62001b281760201c565b15156080523060a0524660c0523480156200003357600080fd5b5062000108565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b1790529051600091829182916064916200007a9190620000d7565b600060405180830381855afa9150503d8060008114620000b7576040519150601f19603f3d011682016040523d82523d6000602084013e620000bc565b606091505b5091509150818015620000d0575080516020145b9250505090565b6000825160005b81811015620000fa5760208186018101518583015201620000de565b506000920191825250919050565b60805160a05160c0516142ef6200014d600039600061182c01526000818161121001528181611899015261191e015260008181610c0e015261292801526142ef6000f3fe608060405234801561001057600080fd5b50600436106102c45760003560e01c806365f7f80d1161017957806365f7f80d1461052157806368129b1414610529578063685f5ecc1461053c5780636ddd37441461054f57806371ef232c146105625780637300201c1461056b57806376e7e23b1461057e57806384728cd014610587578063883028841461059a5780638da5cb5b146105ba5780638ee1a126146105c25780639a8a0592146105cb578063a23c44b1146105d4578063aa38a6e7146106cd578063b7ab4db5146106e0578063bc45e0ae146106f5578063c2c2e68e14610708578063c4d66de814610710578063ce11e6ab14610723578063dff6978714610736578063e51019a61461073e578063e531d8c714610751578063e6b3082c14610764578063e78cea921461077e578063e8bd492214610791578063ee35f32714610825578063ef40a6701461082d578063f065de3f14610840578063facd743b14610853578063fb0e722b1461086657600080fd5b8063023a96fe146102c957806304972af9146102f957806310b98a351461030e578063117155851461032157806312ab3d3b1461034c57806313c56ca71461036957806318baaab91461038a5780631b1689e9146103925780631e83d30f1461039b5780632abdd230146103ae5780632e7acfa6146103c15780632f30cabd146103d457806330836228146103fd57806333635fc214610410578063353325e0146104235780633b86de191461042b5780633be680ea1461043e57806345e38b641461045857806350f32f681461046157806351ed6a301461047457806352d1902d1461048757806355840a581461048f57806356bbc9e6146104a757806357ef4ab9146104ba578063588c7a16146104c25780635c975abb146104d55780636096686d146104e057806361373919146104f35780636177fd18146104fb5780636420fb9f1461050e575b600080fd5b6069546102dc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61030c610307366004613766565b610879565b005b61030c61031c3660046137a5565b610893565b61033461032f366004613803565b610bef565b6040516001600160401b0390911681526020016102f0565b607b546103599060ff1681565b60405190151581526020016102f0565b61037c610377366004613803565b610c0a565b6040519081526020016102f0565b61030c610d3f565b61037c607a5481565b61030c6103a9366004613803565b610db9565b61037c6103bc366004613831565b610e0e565b606654610334906001600160401b031681565b61037c6103e2366004613831565b6001600160a01b031660009081526078602052604090205490565b61035961040b366004613803565b610e2c565b61037c61041e36600461384e565b610e48565b61037c610e6d565b61030c610439366004613898565b610ea9565b60695461033490600160a01b90046001600160401b031681565b61037c60715481565b61030c61046f3660046138c5565b6111ba565b6070546102dc906001600160a01b031681565b61037c611203565b607b546102dc9061010090046001600160a01b031681565b6103346104b5366004613803565b6112c6565b61030c6112e8565b61030c6104d0366004613831565b611331565b60335460ff16610359565b61030c6104ee366004613911565b6113d9565b61037c611441565b610359610509366004613831565b6114bb565b61030c61051c366004613898565b6114e3565b60745461037c565b61030c610537366004613951565b61167f565b61030c61054a366004613981565b6116c6565b6102dc61055d3660046139d7565b6116e2565b61037c60795481565b61030c6105793660046139f4565b61171b565b61037c60675481565b6102dc610595366004613831565b611727565b6105ad6105a8366004613803565b61174f565b6040516102f09190613a60565b6102dc6117f0565b61037c60685481565b61037c60655481565b61067c6105e2366004613831565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160a01b03908116600090815260776020908152604091829020825160a08101845281548152600182015492810192909252600201546001600160401b0381169282019290925260ff600160401b83041615156060820152600160481b909104909116608082015290565b6040516102f0919081518152602080830151908201526040808301516001600160401b0316908201526060808301511515908201526080918201516001600160a01b03169181019190915260a00190565b606d546102dc906001600160a01b031681565b6106e86117fa565b6040516102f09190613ac0565b606e546102dc906001600160a01b031681565b61030c611806565b61030c61071e366004613831565b61188f565b606c546102dc906001600160a01b031681565b607654610334565b61030c61074c366004613b0d565b611a02565b61035961075f366004613803565b611a62565b60665461033490600160401b90046001600160401b031681565b606b546102dc906001600160a01b031681565b6107e661079f366004613831565b6077602052600090815260409020805460018201546002909201549091906001600160401b03811690600160401b810460ff1690600160481b90046001600160a01b031685565b6040805195865260208601949094526001600160401b039092169284019290925290151560608301526001600160a01b0316608082015260a0016102f0565b6102dc611a92565b61037c61083b366004613831565b611b00565b606f546102dc906001600160a01b031681565b610359610861366004613831565b611b1b565b606a546102dc906001600160a01b031681565b61088f8161088684611bc0565b60010154611c1f565b5050565b3361089f607282611ca3565b806108ac5750607b5460ff165b6108d15760405162461bcd60e51b81526004016108c890613b4b565b60405180910390fd5b6108d9611cc4565b60006108e488611bc0565b905060006108f188611bc0565b9050610901858260010154611c1f565b61091160808601606087016139d7565b825461092d9190600160801b90046001600160401b0316613b88565b6001600160401b03164310156109775760405162461bcd60e51b815260206004820152600f60248201526e4245464f52455f444541444c494e4560881b60448201526064016108c8565b60745488146109c45760405162461bcd60e51b81526020600482015260196024820152781414915597d393d517d310551154d517d0d3d3919254935151603a1b60448201526064016108c8565b8054600160401b90046001600160401b031615610bd85760006109ed6060870160408801613831565b6001600160a01b031663fda2892e886040518263ffffffff1660e01b8152600401610a1a91815260200190565b6101e060405180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190613c4f565b9050898160e0015114610a9e5760405162461bcd60e51b815260206004820152600a6024820152692727aa2faba4a72722a960b11b60448201526064016108c8565b60018161016001516001811115610ab757610ab7613a2c565b14610af95760405162461bcd60e51b8152602060048201526012602482015271115111d157d393d517d0d3d391925493515160721b60448201526064016108c8565b8061014001516001600160401b0316600003610b515760405162461bcd60e51b81526020600482015260176024820152765a45524f5f434f4e4649524d45445f41545f424c4f434b60481b60448201526064016108c8565b606954610140820151610b7491600160a01b90046001600160401b031690613b88565b6001600160401b0316431015610bd65760405162461bcd60e51b815260206004820152602160248201527f4348414c4c454e47455f47524143455f504552494f445f4e4f545f50415353456044820152601160fa1b60648201526084016108c8565b505b610be489898987611d0c565b505050505050505050565b6000610bfa82611bc0565b546001600160401b031692915050565b60007f000000000000000000000000000000000000000000000000000000000000000015610c83576000828152607c602052604090205480610c7d5760405162461bcd60e51b815260206004820152600c60248201526b2727afa0a9a9a2a92a24a7a760a11b60448201526064016108c8565b92915050565b6000610c8e83611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b8304811615156060830152929350610d2392909184916080840191600160c81b9004166002811115610cff57610cff613a2c565b6002811115610d1057610d10613a2c565b8152602001600182015481525050611eb6565b54600160801b90046001600160401b031692915050565b919050565b607b5460ff1615610d625760405162461bcd60e51b81526004016108c890613d39565b610d6a611f11565b610daa5760405162461bcd60e51b815260206004820152601160248201527056414c494441544f525f4e4f545f41464b60781b60448201526064016108c8565b607b805460ff19166001179055565b33610dc5607282611ca3565b80610dd25750607b5460ff165b610dee5760405162461bcd60e51b81526004016108c890613b4b565b610df6611cc4565b610dff3361203f565b610e0933836120dd565b505050565b6001600160a01b031660009081526077602052604090206001015490565b6000610e3782611bc0565b54600160c01b900460ff1692915050565b6000610e6384610e5d36869003860186613e86565b846121b9565b90505b9392505050565b6000610e776136d5565b604080516060810182528281526001602082015260009181018290529080610ea08184816121b9565b94505050505090565b33610eb5607282611ca3565b80610ec25750607b5460ff165b610ede5760405162461bcd60e51b81526004016108c890613b4b565b610ee6611cc4565b811580610f1757506000610ef983611bc0565b54600160c81b900460ff166002811115610f1557610f15613a2c565b145b610f5d5760405162461bcd60e51b815260206004820152601760248201527622ac2822a1aa22a22fa0a9a9a2a92a24a7a72fa9a2a2a760491b60448201526064016108c8565b610f66336114bb565b610f825760405162461bcd60e51b81526004016108c890613eec565b6060830135610f9033611b00565b1015610fd35760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f5354414b4560701b60448201526064016108c8565b6000610ff68435610fec36879003870160e08801613e86565b60208701356121b9565b905061106e61100482611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b909104166002811115610cff57610cff613a2c565b600061107933610e0e565b90508181148061109b5750600061108f82611bc0565b546001600160401b0316115b6110e25760405162461bcd60e51b81526020600482015260186024820152770a6a882968a88be9e9cbe829c9ea8908aa4be84a4829c86960431b60448201526064016108c8565b6000806110f08785886121fd565b33600090815260776020526040902060010182905590925090508061117857600061111a85611bc0565b5461113590600160801b90046001600160401b031643613f10565b90506071548110156111765760405162461bcd60e51b815260206004820152600a60248201526954494d455f44454c544160b01b60448201526064016108c8565b505b61118182611bc0565b54600160c01b900460ff166111b157606f546070546111b1916001600160a01b03918216911660608a01356129cb565b50505050505050565b6001600160a01b0381166111e05760405162461bcd60e51b81526004016108c890613f23565b6111ea8482612a2e565b6111f48383610ea9565b6111fd84612abd565b50505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112a15760405162461bcd60e51b815260206004820152603b60248201527f555550534e6f745570677261646561626c653a206d757374206e6f742062652060448201527a18d85b1b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b602a1b60648201526084016108c8565b507f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d90565b60006112d182611bc0565b54600160401b90046001600160401b031692915050565b336112f4607282611ca3565b806113015750607b5460ff165b61131d5760405162461bcd60e51b81526004016108c890613b4b565b611325611cc4565b61132e33612ad5565b50565b8061133d607282611ca3565b8061134a5750607b5460ff165b6113665760405162461bcd60e51b81526004016108c890613b4b565b61136e611cc4565b61137782611727565b6001600160a01b0316336001600160a01b0316146113d05760405162461bcd60e51b81526020600482015260166024820152754e4f545f5749544844524157414c5f4144445245535360501b60448201526064016108c8565b61088f82612ad5565b6113e1611cc4565b607b5461010090046001600160a01b031633146114355760405162461bcd60e51b81526020600482015260126024820152712727aa2fa320a9aa2fa1a7a72324a926a2a960711b60448201526064016108c8565b6111fd84848484611d0c565b600061144b611cc4565b600061145633612ae7565b90506000811161149f5760405162461bcd60e51b81526020600482015260146024820152734e4f5f46554e44535f544f5f574954484452415760601b60448201526064016108c8565b6070546114b6906001600160a01b031633836129cb565b905090565b6001600160a01b0316600090815260776020526040902060020154600160401b900460ff1690565b6114eb611cc4565b806115325760405162461bcd60e51b815260206004820152601760248201527608ab0a08a86a88a88be82a6a68aa4a8929e9cbe9082a69604b1b60448201526064016108c8565b600061153d82611bc0565b54600160c81b900460ff16905060006115638435610fec36879003870160e08801613e86565b905061157161100482611bc0565b600082600281111561158557611585613a2c565b036115d55760006115978583866121fd565b5090506115a381611bc0565b54600160c01b900460ff166115d357606f546070546115d3916001600160a01b03918216911660608801356129cb565b505b606b546111fd90849083906101a08801906001600160a01b03166316bf5579600161160d611608368d90038d0186613f55565b612b68565b6116179190613f71565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865afa15801561165b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190613f91565b611687611cc4565b6001600160a01b0381166116ad5760405162461bcd60e51b81526004016108c890613f23565b6116b78282612a2e565b811561088f5761088f82612abd565b6116ce611cc4565b6116d9838383612b7d565b610e0981612abd565b60006076826001600160401b03168154811061170057611700613faa565b6000918252602090912001546001600160a01b031692915050565b610e09838383336111ba565b6001600160a01b03908116600090815260776020526040902060020154600160481b90041690565b6117576136fa565b61176082611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b9091041660028111156117ca576117ca613a2c565b60028111156117db576117db613a2c565b81526020016001820154815250509050919050565b60006114b6612c4d565b60606114b66072612c80565b607b5460ff16156118295760405162461bcd60e51b81526004016108c890613d39565b467f000000000000000000000000000000000000000000000000000000000000000003610daa5760405162461bcd60e51b815260206004820152601460248201527310d210525397d25117d393d517d0d2105391d15160621b60448201526064016108c8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361191c5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016108c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661194e612c8d565b6001600160a01b0316146119b95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016108c8565b6001600160a01b03811661132e5760405162461bcd60e51b815260206004820152601060248201526f2722a2a22fa9aa20a5a2afaa27a5a2a760811b60448201526064016108c8565b611a1b82611a1536869003860186613e86565b836121b9565b84146111fd5760405162461bcd60e51b81526020600482015260166024820152750929cac82989288be82a6a68aa4a8929e9cbe9082a6960531b60448201526064016108c8565b60006001611a6f83611bc0565b54600160c81b900460ff166002811115611a8b57611a8b613a2c565b1492915050565b606b546040805163ee35f32760e01b815290516000926001600160a01b03169163ee35f3279160048083019260209291908290030181865afa158015611adc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190613fc0565b6001600160a01b031660009081526077602052604090205490565b6000610c7d607283611ca3565b60408051600481526024810182526020810180516001600160e01b03166302881c7960e11b179052905160009182918291606491611b669190614001565b600060405180830381855afa9150503d8060008114611ba1576040519150601f19603f3d011682016040523d82523d6000602084013e611ba6565b606091505b5091509150818015611bb9575080516020145b9250505090565b600081611c0d5760405162461bcd60e51b815260206004820152601b60248201527a415353455254494f4e5f49445f43414e4e4f545f42455f5a45524f60281b60448201526064016108c8565b50600090815260756020526040902090565b611c5e82356020840135611c396060860160408701613831565b611c4960808701606088016139d7565b611c5960a08801608089016139d7565b612cb5565b811461088f5760405162461bcd60e51b81526020600482015260146024820152730869e9c8c928ebe9082a690be9a92a69a82a886960631b60448201526064016108c8565b6001600160a01b031660009081526001919091016020526040902054151590565b60335460ff1615611d0a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108c8565b565b6000611d1785611bc0565b905060018154600160c81b900460ff166002811115611d3857611d38613a2c565b14611d735760405162461bcd60e51b815260206004820152600b60248201526a4e4f545f50454e44494e4760a81b60448201526064016108c8565b611d8684610e5d36869003860186613e86565b8514611dc35760405162461bcd60e51b815260206004820152600c60248201526b434f4e4649524d5f4441544160a01b60448201526064016108c8565b6000611ddc611dd736869003860186613f55565b612d15565b90506000611df7611df236879003870187613f55565b612d20565b606c54604051630502677360e51b815260048101839052602481018590529192506001600160a01b03169063a04cee6090604401600060405180830381600087803b158015611e4557600080fd5b505af1158015611e59573d6000803e3d6000fd5b505050607488905550825460ff60c81b1916600160c91b1783556040805183815260208101839052815189927ffc42829b29c259a7370ab56c8f69fce23b5f351a9ce151da453281993ec0090c928290030190a250505050505050565b600081608001516002811115611ece57611ece613a2c565b0361132e5760405162461bcd60e51b81526020600482015260136024820152721054d4d154951253d397d393d517d1561254d5606a1b60448201526064016108c8565b600080611f25611f2060745490565b611bc0565b6040805160c08101825282546001600160401b038082168352600160401b820481166020840152600160801b8204169282019290925260ff600160c01b83048116151560608301529092916080840191600160c81b909104166002811115611f8f57611f8f613a2c565b6002811115611fa057611fa0613a2c565b815260019190910154602090910152606654909150600160401b90046001600160401b03166000819003611fd75760009250505090565b81604001516001600160401b0316600003611ff55760009250505090565b81516001600160401b031615612025578151439061201d9083906001600160401b031661401d565b109250505090565b438183604001516001600160401b031661201d919061401d565b612048816114bb565b6120645760405162461bcd60e51b81526004016108c890613eec565b600061206f82610e0e565b9050600061207c60745490565b8214905060008061208c84611bc0565b546001600160401b031611905081806120a25750805b6111fd5760405162461bcd60e51b815260206004820152600c60248201526b5354414b455f41435449564560a01b60448201526064016108c8565b6001600160a01b0380831660009081526077602052604081206002810154815492939192600160481b90910490911690808511156121505760405162461bcd60e51b815260206004820152601060248201526f544f4f5f4c4954544c455f5354414b4560801b60448201526064016108c8565b600061215c8683613f10565b868555905061216b8382612d2c565b826001600160a01b0316876001600160a01b031660008051602061429a83398151915284896040516121a7929190918252602082015260400190565b60405180910390a39695505050505050565b6000610e63846121c885612dd1565b604080516020808201949094528082019290925260608083018790528151808403909101815260809092019052805191012090565b6000806122106040860161088686611bc0565b600161222461024087016102208801614030565b600281111561223557612235613a2c565b14806122635750600261225061024087016102208801614030565b600281111561226157612261613a2c565b145b6122a25760405162461bcd60e51b815260206004820152601060248201526f4241445f41465445525f53544154555360801b60448201526064016108c8565b836122c486356122ba36899003890160e08a01613e86565b60208901356121b9565b146123085760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f4245464f52455f535441544560601b60448201526064016108c8565b600161231c61018087016101608801614030565b600281111561232d5761232d613a2c565b1461236c5760405162461bcd60e51b815260206004820152600f60248201526e4241445f505245565f53544154555360881b60448201526064016108c8565b600061237785611bc0565b90506000806101a0880160e08901826123908383612e01565b12156123d05760405162461bcd60e51b815260206004820152600f60248201526e494e424f585f4241434b574152445360881b60448201526064016108c8565b60006123f56123e560e08d0160c08e016139d7565b84906001600160401b0316612f06565b905060008113156124385760405162461bcd60e51b815260206004820152600d60248201526c24a72127ac2faa27a7afa320a960991b60448201526064016108c8565b600261244c6102408d016102208e01614030565b600281111561245d5761245d613a2c565b1415801561246b5750600081125b156124c3576001965060006124808484612e01565b136124c35760405162461bcd60e51b815260206004820152601360248201527213d59154919313d5d7d4d510539114d5125313606a1b60448201526064016108c8565b606b54604080516221048360e21b815290516000926001600160a01b0316916284120c9160048083019260209291908290030181865afa15801561250b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252f9190613f91565b9050600061253d8583612f06565b131561257c5760405162461bcd60e51b815260206004820152600e60248201526d12539093d617d41054d517d1539160921b60448201526064016108c8565b8061258d60e08e0160c08f016139d7565b6001600160401b031611156125da5760405162461bcd60e51b815260206004820152601360248201527212539093d617d393d517d413d4155310551151606a1b60448201526064016108c8565b60006125ee61160836879003870187613f55565b6001600160401b031690508181036126125761260b82600161401d565b9650612616565b8196505b8060000361265a5760405162461bcd60e51b8152602060048201526011602482015270115354151657d2539093d617d0d3d55395607a1b60448201526064016108c8565b606b546001600160a01b03166316bf5579612676600184613f10565b6040518263ffffffff1660e01b815260040161269491815260200190565b602060405180830381865afa1580156126b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d59190613f91565b955050505050506126f587896101a001803603810190611a159190613e86565b945085851480612703575085155b61274b5760405162461bcd60e51b81526020600482015260196024820152780aa9c8ab0a08a86a88a88be82a6a68aa4a8929e9cbe9082a69603b1b60448201526064016108c8565b600061275686611bc0565b54600160c81b900460ff16600281111561277257612772613a2c565b146127b05760405162461bcd60e51b815260206004820152600e60248201526d20a9a9a2a92a24a7a72fa9a2a2a760911b60448201526064016108c8565b82546068546067546069546066546000946127f2946001600160401b0391821615946127ed94919390926001600160a01b03909216911689612cb5565b612f92565b90506127fd84612fc9565b60008681526075602090815260409182902083518154928501519385015160608601511515600160c01b0260ff60c01b196001600160401b03928316600160801b0216600160801b600160c81b0319968316600160401b026001600160801b03199096169290931691909117939093179390931692909217178082556080830151839291829060ff60c81b1916600160c81b8360028111156128a1576128a1613a2c565b021790555060a0820151816001015590505087867f901c3aee23cf4478825462caaab375c606ab83516060388344f06503407536308b8587606854606754606960009054906101000a90046001600160a01b0316606660009054906101000a90046001600160401b031660405161291e97969594939291906140c2565b60405180910390a37f0000000000000000000000000000000000000000000000000000000000000000156129bf5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129af9190613f91565b6000878152607c60205260409020555b50505050935093915050565b6040516001600160a01b038316602482015260448101829052610e0990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613034565b33612a3a607282611ca3565b80612a475750607b5460ff165b612a635760405162461bcd60e51b81526004016108c890613b4b565b612a6b611cc4565b612a74336114bb565b15612ab25760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d4d51052d15160921b60448201526064016108c8565b610e09338484613106565b60705461132e906001600160a01b0316333084613224565b612ade8161203f565b61132e8161325c565b6001600160a01b0381166000908152607860205260408120805490829055607980548291908490612b19908490613f10565b909155505060408051828152600060208201526001600160a01b038516917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a292915050565b6020810151600090815b602002015192915050565b82612b89607282611ca3565b80612b965750607b5460ff165b612bb25760405162461bcd60e51b81526004016108c890613b4b565b612bba611cc4565b612bc3846114bb565b612bdf5760405162461bcd60e51b81526004016108c890613eec565b826001600160a01b0316612bf285611727565b6001600160a01b031614612c435760405162461bcd60e51b815260206004820152601860248201527757524f4e475f5749544844524157414c5f4144445245535360401b60448201526064016108c8565b6111fd84836132cf565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b60606000610e6683613345565b60007f2b1dbce74324248c222f0ec2d5ed7bd323cfc425b336f0253c5ccfda7265546d612c71565b60408051602080820197909752808201959095526001600160601b0319606094851b16938501939093526001600160c01b031960c092831b81166074860152911b16607c8301528051606481840301815260849092019052805191012090565b805160009081612b72565b80516000906001612b72565b6001600160a01b03821660009081526078602052604081205490612d50838361401d565b6001600160a01b0385166000908152607860205260408120829055607980549293508592909190612d8290849061401d565b909155505060408051838152602081018390526001600160a01b038616917fa740af14c56e4e04a617b1de1eb20de73270decbaaead14f142aabf3038e5ae2910160405180910390a250505050565b600081604051602001612de491906141ac565b604051602081830303815290604052805190602001209050919050565b600080612e1661160836869003860186613f55565b90506000612e2c61160836869003860186613f55565b9050806001600160401b0316826001600160401b03161015612e545760001992505050610c7d565b806001600160401b0316826001600160401b03161115612e7957600192505050610c7d565b6000612e92612e8d36889003880188613f55565b6133a1565b90506000612ea8612e8d36889003880188613f55565b9050806001600160401b0316826001600160401b03161015612ed257600019945050505050610c7d565b806001600160401b0316826001600160401b03161115612ef9576001945050505050610c7d565b6000945050505050610c7d565b600080612f1b61160836869003860186613f55565b905082816001600160401b03161015612f3957600019915050610c7d565b82816001600160401b03161115612f54576001915050610c7d565b6000612f68612e8d36879003870187613f55565b6001600160401b03161115612f81576001915050610c7d565b6000915050610c7d565b5092915050565b612f9a6136fa565b612fa26136fa565b6001600160401b034316604082015292151560608401525060a08201526001608082015290565b80546001600160401b0316600003612ff65780546001600160401b031916436001600160401b0316179055565b8054600160401b90046001600160401b031660000361132e57805467ffffffffffffffff60401b1916600160401b436001600160401b031602179055565b6000613089826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166133b09092919063ffffffff16565b805190915015610e0957808060200190518101906130a79190614235565b610e095760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108c8565b6076805460018082019092557fb5732705f5241370a28908c2fe1303cb223f03b90d857fd0573f003f79fefed4810180546001600160a01b0319166001600160a01b038781169182179092556040805160a08101825287815260745460208083019182526001600160401b03808816848601908152606085018a81528b89166080870181815260008a8152607787528981209851895596519c88019c909c5591516002909601805491519b51969093166001600160481b031990911617600160401b9a15159a909a0299909917600160481b600160e81b031916600160481b9490971693909302959095179091558151908152928301879052929392909160008051602061429a83398151915291015b60405180910390a350505050565b6040516001600160a01b03808516602483015283166044820152606481018290526111fd9085906323b872dd60e01b906084016129f7565b6001600160a01b038082166000908152607760205260409020600281015481549192600160481b90910416906132928282612d2c565b61329b846133bf565b60408051828152600060208201526001600160a01b03808516929087169160008051602061429a8339815191529101613216565b6001600160a01b0382166000908152607760205260408120805490916132f5848361401d565b808455600284015460408051858152602081018490529293506001600160a01b03600160481b9092048216929188169160008051602061429a833981519152910160405180910390a35050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561339557602002820191906000526020600020905b815481526020019060010190808311613381575b50505050509050919050565b60208101516000906001612b72565b6060610e63848460008561356b565b6001600160a01b03811660009081526077602052604090206002810154600160401b900460ff166134025760405162461bcd60e51b81526004016108c890613eec565b6002810154607680546001600160401b039092169161342390600190613f10565b8154811061343357613433613faa565b600091825260209091200154607680546001600160a01b03909216916001600160401b03841690811061346857613468613faa565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080607760006076846001600160401b0316815481106134b7576134b7613faa565b6000918252602080832091909101546001600160a01b03168352820192909252604001902060020180546001600160401b0319166001600160401b0392909216919091179055607680548061350e5761350e614250565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b039490941681526077909352505060408120818155600181019190915560020180546001600160e81b0319169055565b6060824710156135cc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108c8565b6001600160a01b0385163b6136235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108c8565b600080866001600160a01b0316858760405161363f9190614001565b60006040518083038185875af1925050503d806000811461367c576040519150601f19603f3d011682016040523d82523d6000602084013e613681565b606091505b509150915061369182828661369c565b979650505050505050565b606083156136ab575081610e66565b8251156136bb5782518084602001fd5b8160405162461bcd60e51b81526004016108c89190614266565b60405180604001604052806136e8613730565b81526020016136f5613730565b905290565b6040805160c081018252600080825260208201819052918101829052606081018290529060808201908152600060209091015290565b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561376057600080fd5b50919050565b60008060c0838503121561377957600080fd5b8235915061378a846020850161374e565b90509250929050565b600060c0828403121561376057600080fd5b6000806000806000806101e087890312156137bf57600080fd5b86359550602087013594506137d78860408901613793565b935061010087013592506137ef88610120890161374e565b91506101c087013590509295509295509295565b60006020828403121561381557600080fd5b5035919050565b6001600160a01b038116811461132e57600080fd5b60006020828403121561384357600080fd5b8135610e668161381c565b6000806000610100848603121561386457600080fd5b833592506138758560208601613793565b915060e084013590509250925092565b6000610260828403121561376057600080fd5b60008061028083850312156138ac57600080fd5b6138b68484613885565b94610260939093013593505050565b6000806000806102c085870312156138dc57600080fd5b843593506138ed8660208701613885565b925061028085013591506102a08501356139068161381c565b939692955090935050565b600080600080610120858703121561392857600080fd5b84359350602085013592506139408660408701613793565b939692955092936101000135925050565b6000806040838503121561396457600080fd5b8235915060208301356139768161381c565b809150509250929050565b60008060006060848603121561399657600080fd5b83356139a18161381c565b925060208401356139b18161381c565b929592945050506040919091013590565b6001600160401b038116811461132e57600080fd5b6000602082840312156139e957600080fd5b8135610e66816139c2565b60008060006102a08486031215613a0a57600080fd5b83359250613a1b8560208601613885565b915061028084013590509250925092565b634e487b7160e01b600052602160045260246000fd5b6003811061132e57634e487b7160e01b600052602160045260246000fd5b600060c0820190506001600160401b03808451168352806020850151166020840152806040850151166040840152506060830151151560608301526080830151613aa981613a42565b8060808401525060a083015160a083015292915050565b6020808252825182820181905260009190848201906040850190845b81811015613b015783516001600160a01b031683529284019291840191600101613adc565b50909695505050505050565b6000806000806101208587031215613b2457600080fd5b84359350613b358660208701613793565b939693955050505060e082013591610100013590565b6020808252600d908201526c2727aa2fab20a624a220aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019080821115612f8b57612f8b613b72565b634e487b7160e01b600052604160045260246000fd5b6040516101e081016001600160401b0381118282101715613be157613be1613ba8565b60405290565b604080519081016001600160401b0381118282101715613be157613be1613ba8565b8051610d3a8161381c565b8051610d3a816139c2565b805160028110610d3a57600080fd5b805160ff81168114610d3a57600080fd5b80518015158114610d3a57600080fd5b60006101e08284031215613c6257600080fd5b613c6a613bbe565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100613cc2818501613c09565b90820152610120613cd4848201613c14565b90820152610140613ce6848201613c14565b90820152610160613cf8848201613c1f565b90820152610180613d0a848201613c2e565b908201526101a0613d1c848201613c3f565b908201526101c0613d2e848201613c14565b908201529392505050565b60208082526012908201527115d2125511531254d517d11254d05093115160721b604082015260600190565b600082601f830112613d7657600080fd5b604051604081018181106001600160401b0382111715613d9857613d98613ba8565b8060405250806040840185811115613daf57600080fd5b845b81811015613dd2578035613dc4816139c2565b835260209283019201613db1565b509195945050505050565b600060808284031215613def57600080fd5b604051604081018181106001600160401b0382111715613e1157613e11613ba8565b604052905080601f83018413613e2657600080fd5b613e2e613be7565b806040850186811115613e4057600080fd5b855b81811015613e5a578035845260209384019301613e42565b50818452613e688782613d65565b60208501525050505092915050565b803560038110610d3a57600080fd5b600060c08284031215613e9857600080fd5b604051606081018181106001600160401b0382111715613eba57613eba613ba8565b604052613ec78484613ddd565b8152613ed560808401613e77565b602082015260a09290920135604083015250919050565b6020808252600a90820152691393d517d4d51052d15160b21b604082015260600190565b81810381811115610c7d57610c7d613b72565b602080825260189082015277454d5054595f5749544844524157414c5f4144445245535360401b604082015260600190565b600060808284031215613f6757600080fd5b610e668383613ddd565b6001600160401b03828116828216039080821115612f8b57612f8b613b72565b600060208284031215613fa357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613fd257600080fd5b8151610e668161381c565b60005b83811015613ff8578181015183820152602001613fe0565b50506000910152565b60008251614013818460208701613fdd565b9190910192915050565b80820180821115610c7d57610c7d613b72565b60006020828403121561404257600080fd5b610e6682613e77565b61405481613a42565b9052565b6040818337604082016040820160005b600281101561409a57813561407c816139c2565b6001600160401b031683526020928301929190910190600101614068565b5050506140a960808201613e77565b6140b281613a42565b608083015260a090810135910152565b6000610320820190508835825260208901356020830152604089013560408301526060890135606083015260808901356140fb8161381c565b6001600160a01b0316608083015260a0890135614117816139c2565b6001600160401b0390811660a084015260c08a013590614136826139c2565b1660c083015261414c60e0808401908b01614058565b6101a061415d818401828c01614058565b508761026083015286610280830152856102a0830152846102c08301526141906102e08301856001600160a01b03169052565b6001600160401b03831661030083015298975050505050505050565b8151805160c0830191908360005b60028110156141d95782518252602092830192909101906001016141ba565b505050602090810151906040840160005b60028110156142105783516001600160401b0316825292820192908201906001016141ea565b50508401519050614224608084018261404b565b50604083015160a083015292915050565b60006020828403121561424757600080fd5b610e6682613c3f565b634e487b7160e01b600052603160045260246000fd5b6020815260008251806020840152614285816040850160208701613fdd565b601f01601f1916919091016040019291505056fed957cf2340073335d256f72a9ef89cf1a43c31143341a6a53575ef33e987beb8a2646970667358221220adac40079ee3a5b023334745bf53c80fdb89f53847bb69953dd97b277c6655f564736f6c63430008110033", } // RollupUserLogicABI is the input ABI used to generate the binding from. @@ -30939,7 +30435,7 @@ func (_RollupUserLogic *RollupUserLogicFilterer) ParseUserWithdrawableFundsUpdat // StateHashPreImageLookupMetaData contains all meta data concerning the StateHashPreImageLookup contract. var StateHashPreImageLookupMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"structExecutionState\",\"name\":\"executionState\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"HashSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"get\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"executionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"executionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32[2]\",\"name\":\"bytes32Vals\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint64[2]\",\"name\":\"u64Vals\",\"type\":\"uint64[2]\"}],\"internalType\":\"structGlobalState\",\"name\":\"globalState\",\"type\":\"tuple\"},{\"internalType\":\"enumMachineStatus\",\"name\":\"machineStatus\",\"type\":\"uint8\"}],\"internalType\":\"structExecutionState\",\"name\":\"executionState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inboxMaxCount\",\"type\":\"uint256\"}],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea26469706673582212206f17ff74638b091f76dd1fd0369b5226eebb0992cba2c4263a21abfb3c644d8e64736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b50610a0d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806331644130146100465780638eaa6ac01461006c578063945c94941461008d575b600080fd5b61005961005436600461041d565b6100a2565b6040519081526020015b60405180910390f35b61007f61007a366004610448565b610193565b604051610063929190610483565b6100a061009b36600461050a565b6102bf565b005b60006101526100b636859003850185610598565b8051805160209182015192820151805190830151604080517f476c6f62616c2073746174653a0000000000000000000000000000000000000081870152602d810194909452604d8401959095527fffffffffffffffff00000000000000000000000000000000000000000000000060c092831b8116606d850152911b1660758201528251808203605d018152607d909101909252815191012090565b8261016360a0860160808701610667565b6040516020016101759392919061068b565b60405160208183030381529060405280519060200120905092915050565b61019b6103ab565b600082815260208190526040812080546101b4906106c9565b80601f01602080910402602001604051908101604052809291908181526020018280546101e0906106c9565b801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508060200190518101906102459190610766565b909250905060008190036102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f48617368206e6f7420796574207365740000000000000000000000000000000060448201526064015b60405180910390fd5b915091565b6102c982826100a2565b8314610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c69642068617368000000000000000000000000000000000000000060448201526064016102b1565b818160405160200161034492919061088c565b60408051601f1981840301815291815260008581526020819052209061036a90826108f5565b507f14c0a6b8d81f5915dacfd85e41ae4798343ec29de408ac4c13360c7238ae0ad983838360405161039e939291906109b5565b60405180910390a1505050565b60405180604001604052806103be6103cb565b815260200160005b905290565b60405180604001604052806103de6103e7565b81526020016103c65b60405180604001604052806002906020820280368337509192915050565b600060a0828403121561041757600080fd5b50919050565b60008060c0838503121561043057600080fd5b61043a8484610405565b9460a0939093013593505050565b60006020828403121561045a57600080fd5b5035919050565b6003811061047f57634e487b7160e01b600052602160045260246000fd5b9052565b8251805160c0830191908360005b60028110156104b0578251825260209283019290910190600101610491565b505050602090810151906040840160005b60028110156104e857835167ffffffffffffffff16825292820192908201906001016104c1565b505085015190506104fc6080840182610461565b508260a08301529392505050565b600080600060e0848603121561051f57600080fd5b833592506105308560208601610405565b915060c084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561057957610579610540565b60405290565b67ffffffffffffffff8116811461059557600080fd5b50565b6000608082840312156105aa57600080fd5b6105b2610556565b83601f8401126105c157600080fd5b6105c9610556565b8060408501868111156105db57600080fd5b855b818110156105f55780358452602093840193016105dd565b5081845286605f87011261060857600080fd5b610610610556565b9250829150608086018781111561062657600080fd5b8082101561064b5781356106398161057f565b84526020938401939190910190610626565b50506020830152509392505050565b6003811061059557600080fd5b60006020828403121561067957600080fd5b81356106848161065a565b9392505050565b8381528260208201526000600383106106b457634e487b7160e01b600052602160045260246000fd5b5060f89190911b604082015260410192915050565b600181811c908216806106dd57607f821691505b60208210810361041757634e487b7160e01b600052602260045260246000fd5b600082601f83011261070e57600080fd5b610716610556565b80604084018581111561072857600080fd5b845b8181101561074b57805161073d8161057f565b84526020938401930161072a565b509095945050505050565b80516107618161065a565b919050565b60008082840360c081121561077a57600080fd5b60a081121561078857600080fd5b610790610556565b608082121561079e57600080fd5b6107a6610556565b915085601f8601126107b757600080fd5b6107bf610556565b8060408701888111156107d157600080fd5b875b818110156107eb5780518452602093840193016107d3565b508185526107f989826106fd565b602086015250505081815261081060808601610756565b602082015260a094909401519395939450505050565b6040818337604082016040820160005b600281101561086957813561084a8161057f565b67ffffffffffffffff1683526020928301929190910190600101610836565b505050608081013561087a8161065a565b6108876080840182610461565b505050565b60c0810161089a8285610826565b8260a08301529392505050565b601f82111561088757600081815260208120601f850160051c810160208610156108ce5750805b601f850160051c820191505b818110156108ed578281556001016108da565b505050505050565b815167ffffffffffffffff81111561090f5761090f610540565b6109238161091d84546106c9565b846108a7565b602080601f83116001811461095857600084156109405750858301515b600019600386901b1c1916600185901b1785556108ed565b600085815260208120601f198616915b8281101561098757888601518255948401946001909101908401610968565b50858210156109a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b83815260e081016109c96020830185610826565b8260c083015294935050505056fea264697066735822122003e908b2ad90a8679efc2624edf7a504089600109aba032cab81af5798ba4d5b64736f6c63430008110033", } // StateHashPreImageLookupABI is the input ABI used to generate the binding from. @@ -31345,7 +30841,7 @@ func (_StateHashPreImageLookup *StateHashPreImageLookupFilterer) ParseHashSet(lo // ValidatorWalletMetaData contains all meta data concerning the ValidatorWallet contract. var ValidatorWalletMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"BadArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"}],\"name\":\"NotExecutorOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"OnlyOwnerDestination\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"WithdrawEthFail\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"AllowedExecutorDestinationsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isExecutor\",\"type\":\"bool\"}],\"name\":\"ExecutorUpdated\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedExecutorDestinations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"executeTransactionWithGasRefunder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"address[]\",\"name\":\"destination\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amount\",\"type\":\"uint256[]\"}],\"name\":\"executeTransactions\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIGasRefunder\",\"name\":\"gasRefunder\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"},{\"internalType\":\"address[]\",\"name\":\"destination\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amount\",\"type\":\"uint256[]\"}],\"name\":\"executeTransactionsWithGasRefunder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"executors\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"initialExecutorAllowedDests\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address[]\",\"name\":\"destinations\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"isSet\",\"type\":\"bool[]\"}],\"name\":\"setAllowedExecutorDestinations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"newExecutors\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"isExecutor\",\"type\":\"bool[]\"}],\"name\":\"setExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"validateExecuteTransaction\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"withdrawEth\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60c0604052306080526202000060a05234801561001b57600080fd5b5060805160a051611c206100486000396000818161055d015261115f01526000610a350152611c206000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a158657c11610059578063a158657c14610247578063c179f1d914610267578063ce1d571f1461027a578063f2fde38b1461028d57600080fd5b80638da5cb5b146101cf5780639ac2a011146101f75780639be7bbd21461022757600080fd5b80633a7c721a116100bb5780633a7c721a14610167578063715018a61461018757806372f458661461019c57806377a24f36146101af57600080fd5b8063097da1f8146100ed5780630a2435f814610102578063193c8edd1461012257600080fd5b366100e857005b600080fd5b6101006100fb366004611530565b6102ad565b005b34801561010e57600080fd5b5061010061011d3660046115e5565b610663565b34801561012e57600080fd5b5061015261013d366004611651565b60666020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561017357600080fd5b506101006101823660046115e5565b6107e6565b34801561019357600080fd5b50610100610930565b6101006101aa366004611675565b610944565b3480156101bb57600080fd5b506101006101ca36600461170f565b61095c565b3480156101db57600080fd5b506033546040516001600160a01b03909116815260200161015e565b34801561020357600080fd5b50610152610212366004611651565b60656020526000908152604090205460ff1681565b34801561023357600080fd5b50610100610242366004611651565b610c73565b34801561025357600080fd5b50610100610262366004611768565b610cfe565b610100610275366004611798565b610da3565b610100610288366004611845565b611267565b34801561029957600080fd5b506101006102a8366004611651565b61127b565b3360009081526065602052604090205460ff161580156102d857506033546001600160a01b03163314155b1561032257335b6040517ff26aea8b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b846000805a90508515610386576001600160a01b0385163b6103865760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b61038f85610c73565b6000856001600160a01b03168589896040516103ac9291906118a2565b60006040518083038185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610404576040513d806000833e8082fd5b506001600160a01b0383161561065957366000602061042483601f6118c8565b61042e91906118e1565b905061020061043e6002836119e7565b61044891906118e1565b6104538260066119f6565b61045d91906118c8565b61046790846118c8565b925033321461047957600091506105ac565b6001600160a01b038416156105ac57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156104e757506040513d6000823e601f3d908101601f191682016040526104e49190810190611a23565b60015b156105ac578051156105aa576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105579190611ae1565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161058891906119f6565b61059291906119f6565b61059c91906118e1565b6105a690866118c8565b9450505b505b846001600160a01b031663e3db8a49335a6105c79087611afa565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015610631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611b1b565b5050505b5050505050505050565b61066b611308565b8281146106955760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b67ffffffffffffffff81168411156107df5782828267ffffffffffffffff168181106106c6576106c6611b38565b90506020020160208101906106db9190611b4e565b6065600087878567ffffffffffffffff168181106106fb576106fb611b38565b90506020020160208101906107109190611651565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055848467ffffffffffffffff831681811061075457610754611b38565b90506020020160208101906107699190611651565b6001600160a01b03167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea284848467ffffffffffffffff168181106107af576107af611b38565b90506020020160208101906107c49190611b4e565b604051901515815260200160405180910390a2600101610698565b5050505050565b6107ee611308565b8281146108185760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b838110156107df5782828281811061083557610835611b38565b905060200201602081019061084a9190611b4e565b6066600087878581811061086057610860611b38565b90506020020160208101906108759190611651565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106108af576108af611b38565b90506020020160208101906108c49190611651565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a484848481811061090057610900611b38565b90506020020160208101906109159190611b4e565b604051901515815260200160405180910390a260010161081b565b610938611308565b6109426000611362565b565b6109546000878787878787610da3565b505050505050565b600054610100900460ff161580801561097c5750600054600160ff909116105b806109965750303b158015610996575060005460ff166001145b610a085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610319565b6000805460ff191660011790558015610a2b576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ac95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610319565b610ad16113cc565b610ada8461127b565b6001600160a01b038516600081815260656020908152604091829020805460ff1916600190811790915591519182527f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2910160405180910390a260005b67ffffffffffffffff8116831115610c265760016066600086868567ffffffffffffffff16818110610b6b57610b6b611b38565b9050602002016020810190610b809190611651565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055838367ffffffffffffffff8316818110610bc457610bc4611b38565b9050602002016020810190610bd99190611651565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a46001604051610c16911515815260200190565b60405180910390a2600101610b37565b5080156107df576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6001600160a01b03811660009081526066602052604090205460ff16158015610ca757506033546001600160a01b03163314155b15610cfb576033546040517f41fc6f8a0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523360248201529082166044820152606401610319565b50565b610d06611308565b6000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610d53576040519150601f19603f3d011682016040523d82523d6000602084013e610d58565b606091505b5050905080610d9e576040517f7edbb4980000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610319565b505050565b3360009081526065602052604090205460ff16158015610dce57506033546001600160a01b03163314155b15610dd957336102df565b866000805a905087868114610e0b5760405163088253c360e11b81526004810182905260248101889052604401610319565b808514610e355760405163088253c360e11b81526004810182905260248101869052604401610319565b60005b818110156110055760008b8b83818110610e5457610e54611b38565b9050602002810190610e669190611b6b565b90501115610ef357610ea7898983818110610e8357610e83611b38565b9050602002016020810190610e989190611651565b6001600160a01b03163b151590565b610ef35760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b610f1d898983818110610f0857610f08611b38565b90506020020160208101906102429190611651565b6000898983818110610f3157610f31611b38565b9050602002016020810190610f469190611651565b6001600160a01b0316888884818110610f6157610f61611b38565b905060200201358d8d85818110610f7a57610f7a611b38565b9050602002810190610f8c9190611b6b565b604051610f9a9291906118a2565b60006040518083038185875af1925050503d8060008114610fd7576040519150601f19603f3d011682016040523d82523d6000602084013e610fdc565b606091505b5050905080610ff2576040513d806000833e8082fd5b5080610ffd81611bd0565b915050610e38565b50506001600160a01b0383161561125b57366000602061102683601f6118c8565b61103091906118e1565b90506102006110406002836119e7565b61104a91906118e1565b6110558260066119f6565b61105f91906118c8565b61106990846118c8565b925033321461107b57600091506111ae565b6001600160a01b038416156111ae57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156110e957506040513d6000823e601f3d908101601f191682016040526110e69190810190611a23565b60015b156111ae578051156111ac576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111599190611ae1565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161118a91906119f6565b61119491906119f6565b61119e91906118e1565b6111a890866118c8565b9450505b505b846001600160a01b031663e3db8a49335a6111c99087611afa565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611b1b565b5050505b50505050505050505050565b6112756000858585856102ad565b50505050565b611283611308565b6001600160a01b0381166112ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610319565b610cfb81611362565b6033546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166114495760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b610942600054610100900460ff166114c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b61094233611362565b6001600160a01b0381168114610cfb57600080fd5b60008083601f8401126114f957600080fd5b50813567ffffffffffffffff81111561151157600080fd5b60208301915083602082850101111561152957600080fd5b9250929050565b60008060008060006080868803121561154857600080fd5b8535611553816114d2565b9450602086013567ffffffffffffffff81111561156f57600080fd5b61157b888289016114e7565b909550935050604086013561158f816114d2565b949793965091946060013592915050565b60008083601f8401126115b257600080fd5b50813567ffffffffffffffff8111156115ca57600080fd5b6020830191508360208260051b850101111561152957600080fd5b600080600080604085870312156115fb57600080fd5b843567ffffffffffffffff8082111561161357600080fd5b61161f888389016115a0565b9096509450602087013591508082111561163857600080fd5b50611645878288016115a0565b95989497509550505050565b60006020828403121561166357600080fd5b813561166e816114d2565b9392505050565b6000806000806000806060878903121561168e57600080fd5b863567ffffffffffffffff808211156116a657600080fd5b6116b28a838b016115a0565b909850965060208901359150808211156116cb57600080fd5b6116d78a838b016115a0565b909650945060408901359150808211156116f057600080fd5b506116fd89828a016115a0565b979a9699509497509295939492505050565b6000806000806060858703121561172557600080fd5b8435611730816114d2565b93506020850135611740816114d2565b9250604085013567ffffffffffffffff81111561175c57600080fd5b611645878288016115a0565b6000806040838503121561177b57600080fd5b82359150602083013561178d816114d2565b809150509250929050565b60008060008060008060006080888a0312156117b357600080fd5b87356117be816114d2565b9650602088013567ffffffffffffffff808211156117db57600080fd5b6117e78b838c016115a0565b909850965060408a013591508082111561180057600080fd5b61180c8b838c016115a0565b909650945060608a013591508082111561182557600080fd5b506118328a828b016115a0565b989b979a50959850939692959293505050565b6000806000806060858703121561185b57600080fd5b843567ffffffffffffffff81111561187257600080fd5b61187e878288016114e7565b9095509350506020850135611892816114d2565b9396929550929360400135925050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156118db576118db6118b2565b92915050565b6000826118fe57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561193e578160001904821115611924576119246118b2565b8085161561193157918102915b93841c9390800290611908565b509250929050565b600082611955575060016118db565b81611962575060006118db565b816001811461197857600281146119825761199e565b60019150506118db565b60ff841115611993576119936118b2565b50506001821b6118db565b5060208310610133831016604e8410600b84101617156119c1575081810a6118db565b6119cb8383611903565b80600019048211156119df576119df6118b2565b029392505050565b600061166e60ff841683611946565b80820281158282048414176118db576118db6118b2565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a3657600080fd5b825167ffffffffffffffff80821115611a4e57600080fd5b818501915085601f830112611a6257600080fd5b815181811115611a7457611a74611a0d565b8060051b604051601f19603f83011681018181108582111715611a9957611a99611a0d565b604052918252848201925083810185019188831115611ab757600080fd5b938501935b82851015611ad557845184529385019392850192611abc565b98975050505050505050565b600060208284031215611af357600080fd5b5051919050565b818103818111156118db576118db6118b2565b8015158114610cfb57600080fd5b600060208284031215611b2d57600080fd5b815161166e81611b0d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b6057600080fd5b813561166e81611b0d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611ba057600080fd5b83018035915067ffffffffffffffff821115611bbb57600080fd5b60200191503681900382131561152957600080fd5b60006000198203611be357611be36118b2565b506001019056fea2646970667358221220187853fd6dd8c62c33ebeef6f71eaa150eb383fa46be942ec436bbf0604ca58f64736f6c63430008110033", + Bin: "0x60c0604052306080526202000060a05234801561001b57600080fd5b5060805160a051611c3f61004860003960008181610562015261116901526000610a3a0152611c3f6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a158657c11610059578063a158657c14610247578063c179f1d914610267578063ce1d571f1461027a578063f2fde38b1461028d57600080fd5b80638da5cb5b146101cf5780639ac2a011146101f75780639be7bbd21461022757600080fd5b80633a7c721a116100bb5780633a7c721a14610167578063715018a61461018757806372f458661461019c57806377a24f36146101af57600080fd5b8063097da1f8146100ed5780630a2435f814610102578063193c8edd1461012257600080fd5b366100e857005b600080fd5b6101006100fb36600461154f565b6102ad565b005b34801561010e57600080fd5b5061010061011d366004611604565b610668565b34801561012e57600080fd5b5061015261013d366004611670565b60666020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561017357600080fd5b50610100610182366004611604565b6107eb565b34801561019357600080fd5b50610100610935565b6101006101aa366004611694565b610949565b3480156101bb57600080fd5b506101006101ca36600461172e565b610961565b3480156101db57600080fd5b506033546040516001600160a01b03909116815260200161015e565b34801561020357600080fd5b50610152610212366004611670565b60656020526000908152604090205460ff1681565b34801561023357600080fd5b50610100610242366004611670565b610c78565b34801561025357600080fd5b50610100610262366004611787565b610d03565b6101006102753660046117b7565b610da8565b610100610288366004611864565b611271565b34801561029957600080fd5b506101006102a8366004611670565b611285565b3360009081526065602052604090205460ff161580156102d857506033546001600160a01b03163314155b1561032257335b6040517ff26aea8b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b846000805a90508515610386576001600160a01b0385163b6103865760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b61038f85610c78565b6000856001600160a01b03168589896040516103ac9291906118c1565b60006040518083038185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610404576040513d806000833e8082fd5b506001600160a01b0383161561065e57366000602061042483601f6118e7565b61042e9190611900565b905061020061043e600283611a06565b6104489190611900565b610453826006611a15565b61045d91906118e7565b61046790846118e7565b9250610471611312565b61047e57600091506105b1565b6001600160a01b038416156105b157836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156104ec57506040513d6000823e601f3d908101601f191682016040526104e99190810190611a42565b60015b156105b1578051156105af576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611b00565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161058d9190611a15565b6105979190611a15565b6105a19190611900565b6105ab90866118e7565b9450505b505b846001600160a01b031663e3db8a49335a6105cc9087611b19565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015610636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065a9190611b3a565b5050505b5050505050505050565b610670611327565b82811461069a5760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b67ffffffffffffffff81168411156107e45782828267ffffffffffffffff168181106106cb576106cb611b57565b90506020020160208101906106e09190611b6d565b6065600087878567ffffffffffffffff1681811061070057610700611b57565b90506020020160208101906107159190611670565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055848467ffffffffffffffff831681811061075957610759611b57565b905060200201602081019061076e9190611670565b6001600160a01b03167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea284848467ffffffffffffffff168181106107b4576107b4611b57565b90506020020160208101906107c99190611b6d565b604051901515815260200160405180910390a260010161069d565b5050505050565b6107f3611327565b82811461081d5760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b838110156107e45782828281811061083a5761083a611b57565b905060200201602081019061084f9190611b6d565b6066600087878581811061086557610865611b57565b905060200201602081019061087a9190611670565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106108b4576108b4611b57565b90506020020160208101906108c99190611670565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a484848481811061090557610905611b57565b905060200201602081019061091a9190611b6d565b604051901515815260200160405180910390a2600101610820565b61093d611327565b6109476000611381565b565b6109596000878787878787610da8565b505050505050565b600054610100900460ff16158080156109815750600054600160ff909116105b8061099b5750303b15801561099b575060005460ff166001145b610a0d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610319565b6000805460ff191660011790558015610a30576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ace5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610319565b610ad66113eb565b610adf84611285565b6001600160a01b038516600081815260656020908152604091829020805460ff1916600190811790915591519182527f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2910160405180910390a260005b67ffffffffffffffff8116831115610c2b5760016066600086868567ffffffffffffffff16818110610b7057610b70611b57565b9050602002016020810190610b859190611670565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055838367ffffffffffffffff8316818110610bc957610bc9611b57565b9050602002016020810190610bde9190611670565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a46001604051610c1b911515815260200190565b60405180910390a2600101610b3c565b5080156107e4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6001600160a01b03811660009081526066602052604090205460ff16158015610cac57506033546001600160a01b03163314155b15610d00576033546040517f41fc6f8a0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523360248201529082166044820152606401610319565b50565b610d0b611327565b6000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610d58576040519150601f19603f3d011682016040523d82523d6000602084013e610d5d565b606091505b5050905080610da3576040517f7edbb4980000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610319565b505050565b3360009081526065602052604090205460ff16158015610dd357506033546001600160a01b03163314155b15610dde57336102df565b866000805a905087868114610e105760405163088253c360e11b81526004810182905260248101889052604401610319565b808514610e3a5760405163088253c360e11b81526004810182905260248101869052604401610319565b60005b8181101561100a5760008b8b83818110610e5957610e59611b57565b9050602002810190610e6b9190611b8a565b90501115610ef857610eac898983818110610e8857610e88611b57565b9050602002016020810190610e9d9190611670565b6001600160a01b03163b151590565b610ef85760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b610f22898983818110610f0d57610f0d611b57565b90506020020160208101906102429190611670565b6000898983818110610f3657610f36611b57565b9050602002016020810190610f4b9190611670565b6001600160a01b0316888884818110610f6657610f66611b57565b905060200201358d8d85818110610f7f57610f7f611b57565b9050602002810190610f919190611b8a565b604051610f9f9291906118c1565b60006040518083038185875af1925050503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b5050905080610ff7576040513d806000833e8082fd5b508061100281611bef565b915050610e3d565b50506001600160a01b0383161561126557366000602061102b83601f6118e7565b6110359190611900565b9050610200611045600283611a06565b61104f9190611900565b61105a826006611a15565b61106491906118e7565b61106e90846118e7565b9250611078611312565b61108557600091506111b8565b6001600160a01b038416156111b857836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156110f357506040513d6000823e601f3d908101601f191682016040526110f09190810190611a42565b60015b156111b8578051156111b6576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111639190611b00565b905048817f000000000000000000000000000000000000000000000000000000000000000084516111949190611a15565b61119e9190611a15565b6111a89190611900565b6111b290866118e7565b9450505b505b846001600160a01b031663e3db8a49335a6111d39087611b19565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611b3a565b5050505b50505050505050505050565b61127f6000858585856102ad565b50505050565b61128d611327565b6001600160a01b0381166113095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610319565b610d0081611381565b600033321480156113225750333b155b905090565b6033546001600160a01b031633146109475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166114685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b610947600054610100900460ff166114e85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b61094733611381565b6001600160a01b0381168114610d0057600080fd5b60008083601f84011261151857600080fd5b50813567ffffffffffffffff81111561153057600080fd5b60208301915083602082850101111561154857600080fd5b9250929050565b60008060008060006080868803121561156757600080fd5b8535611572816114f1565b9450602086013567ffffffffffffffff81111561158e57600080fd5b61159a88828901611506565b90955093505060408601356115ae816114f1565b949793965091946060013592915050565b60008083601f8401126115d157600080fd5b50813567ffffffffffffffff8111156115e957600080fd5b6020830191508360208260051b850101111561154857600080fd5b6000806000806040858703121561161a57600080fd5b843567ffffffffffffffff8082111561163257600080fd5b61163e888389016115bf565b9096509450602087013591508082111561165757600080fd5b50611664878288016115bf565b95989497509550505050565b60006020828403121561168257600080fd5b813561168d816114f1565b9392505050565b600080600080600080606087890312156116ad57600080fd5b863567ffffffffffffffff808211156116c557600080fd5b6116d18a838b016115bf565b909850965060208901359150808211156116ea57600080fd5b6116f68a838b016115bf565b9096509450604089013591508082111561170f57600080fd5b5061171c89828a016115bf565b979a9699509497509295939492505050565b6000806000806060858703121561174457600080fd5b843561174f816114f1565b9350602085013561175f816114f1565b9250604085013567ffffffffffffffff81111561177b57600080fd5b611664878288016115bf565b6000806040838503121561179a57600080fd5b8235915060208301356117ac816114f1565b809150509250929050565b60008060008060008060006080888a0312156117d257600080fd5b87356117dd816114f1565b9650602088013567ffffffffffffffff808211156117fa57600080fd5b6118068b838c016115bf565b909850965060408a013591508082111561181f57600080fd5b61182b8b838c016115bf565b909650945060608a013591508082111561184457600080fd5b506118518a828b016115bf565b989b979a50959850939692959293505050565b6000806000806060858703121561187a57600080fd5b843567ffffffffffffffff81111561189157600080fd5b61189d87828801611506565b90955093505060208501356118b1816114f1565b9396929550929360400135925050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156118fa576118fa6118d1565b92915050565b60008261191d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561195d578160001904821115611943576119436118d1565b8085161561195057918102915b93841c9390800290611927565b509250929050565b600082611974575060016118fa565b81611981575060006118fa565b816001811461199757600281146119a1576119bd565b60019150506118fa565b60ff8411156119b2576119b26118d1565b50506001821b6118fa565b5060208310610133831016604e8410600b84101617156119e0575081810a6118fa565b6119ea8383611922565b80600019048211156119fe576119fe6118d1565b029392505050565b600061168d60ff841683611965565b80820281158282048414176118fa576118fa6118d1565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a5557600080fd5b825167ffffffffffffffff80821115611a6d57600080fd5b818501915085601f830112611a8157600080fd5b815181811115611a9357611a93611a2c565b8060051b604051601f19603f83011681018181108582111715611ab857611ab8611a2c565b604052918252848201925083810185019188831115611ad657600080fd5b938501935b82851015611af457845184529385019392850192611adb565b98975050505050505050565b600060208284031215611b1257600080fd5b5051919050565b818103818111156118fa576118fa6118d1565b8015158114610d0057600080fd5b600060208284031215611b4c57600080fd5b815161168d81611b2c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b7f57600080fd5b813561168d81611b2c565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611bbf57600080fd5b83018035915067ffffffffffffffff821115611bda57600080fd5b60200191503681900382131561154857600080fd5b60006000198203611c0257611c026118d1565b506001019056fea2646970667358221220882051f6e829b418b3473ef41822df9cfc791203d7f7fbd235fe7bff670541f664736f6c63430008110033", } // ValidatorWalletABI is the input ABI used to generate the binding from. @@ -32448,7 +31944,7 @@ func (_ValidatorWallet *ValidatorWalletFilterer) ParseOwnershipTransferred(log t // ValidatorWalletCreatorMetaData contains all meta data concerning the ValidatorWalletCreator contract. var ValidatorWalletCreatorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[],\"name\":\"TemplateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executorAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ownerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"adminProxy\",\"type\":\"address\"}],\"name\":\"WalletCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"initialExecutorAllowedDests\",\"type\":\"address[]\"}],\"name\":\"createWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"_template\",\"type\":\"address\"}],\"name\":\"setTemplate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"template\",\"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: "0x608060405234801561001057600080fd5b5061001a33610068565b604051610026906100b8565b604051809103906000f080158015610042573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b03929092169190911790556100c5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611c6880611e3b83390190565b611d67806100d46000396000f3fe60806040523480156200001157600080fd5b50600436106200007b5760003560e01c806389c716d1116200005657806389c716d114620000d35780638da5cb5b14620000ea578063f2fde38b14620000fc57600080fd5b80631cf89b4b14620000805780636f2ddd9314620000b3578063715018a614620000c7575b600080fd5b62000097620000913660046200052d565b62000113565b6040516001600160a01b03909116815260200160405180910390f35b60015462000097906001600160a01b031681565b620000d1620002fe565b005b620000d1620000e4366004620005c4565b62000316565b6000546001600160a01b031662000097565b620000d16200010d366004620005c4565b6200037f565b6040516000903390819083906200012a9062000511565b604051809103906000f08015801562000147573d6000803e3d6000fd5b506001546040519192506000916001600160a01b039091169083906200016d906200051f565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f080158015620001b0573d6000803e3d6000fd5b506040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529192509083169063f2fde38b90602401600060405180830381600087803b1580156200021257600080fd5b505af115801562000227573d6000803e3d6000fd5b50506040517f77a24f360000000000000000000000000000000000000000000000000000000081526001600160a01b03841692506377a24f3691506200027890879087908c908c90600401620005e9565b600060405180830381600087803b1580156200029357600080fd5b505af1158015620002a8573d6000803e3d6000fd5b50506040516001600160a01b038581168252808716935087811692508416907f7a6fe39e62e2aeedf6430893f8ce67c6aa08c92d3c7d66c83706057ee178ee489060200160405180910390a49695505050505050565b6200030862000433565b620003146000620004a9565b565b6200032062000433565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f6eb26f176dd9180849dd4874d3530de0e5c1f62a6e6798d34e3abfc11f1db2cc90600090a150565b6200038962000433565b6001600160a01b03811662000425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6200043081620004a9565b50565b6000546001600160a01b0316331462000314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200041c565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61080b806200065483390190565b610ed38062000e5f83390190565b600080602083850312156200054157600080fd5b823567ffffffffffffffff808211156200055a57600080fd5b818501915085601f8301126200056f57600080fd5b8135818111156200057f57600080fd5b8660208260051b85010111156200059557600080fd5b60209290920196919550909350505050565b80356001600160a01b0381168114620005bf57600080fd5b919050565b600060208284031215620005d757600080fd5b620005e282620005a7565b9392505050565b6000606082016001600160a01b038088168452602081881681860152606060408601528286845260808601905087935060005b878110156200064557836200063186620005a7565b16825293820193908201906001016200061c565b50999850505050505050505056fe608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61078d8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610579565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d161022e565b005b3480156100df57600080fd5b506100d16100ee36600461059d565b610242565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f366004610605565b6102c3565b34801561013057600080fd5b506100d161013f36600461059d565b61034b565b34801561015057600080fd5b506100d161015f366004610579565b61039a565b34801561017057600080fd5b506100a061017f366004610579565b610449565b6000806000836001600160a01b03166040516101c3907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b50915091508161021257600080fd5b8080602001905181019061022691906106db565b949350505050565b610236610488565b61024060006104fc565b565b61024a610488565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b505050505050565b6102cb610488565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061031490869086906004016106f8565b6000604051808303818588803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050505050565b610353610488565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161028d565b6103a2610488565b6001600160a01b03811661043d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610446816104fc565b50565b6000806000836001600160a01b03166040516101c3907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000546001600160a01b03163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610434565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461044657600080fd5b60006020828403121561058b57600080fd5b813561059681610564565b9392505050565b600080604083850312156105b057600080fd5b82356105bb81610564565b915060208301356105cb81610564565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561061a57600080fd5b833561062581610564565b9250602084013561063581610564565b9150604084013567ffffffffffffffff8082111561065257600080fd5b818601915086601f83011261066657600080fd5b813581811115610678576106786105d6565b604051601f8201601f19908116603f011681019083821181831017156106a0576106a06105d6565b816040528281528960208487010111156106b957600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156106ed57600080fd5b815161059681610564565b6001600160a01b038316815260006020604081840152835180604085015260005b8181101561073557858101830151858201606001528201610719565b506000606082860101526060601f19601f83011685010192505050939250505056fea2646970667358221220b5f17b9b80290312697ad0c26141bee28c1a1e448364e9044054c3ec2b5708bd64736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ec69e705297c7580fc1fa9767a7537899b2eb10c880bf2dc8de96b2907e6fe3b64736f6c6343000811003360c0604052306080526202000060a05234801561001b57600080fd5b5060805160a051611c206100486000396000818161055d015261115f01526000610a350152611c206000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a158657c11610059578063a158657c14610247578063c179f1d914610267578063ce1d571f1461027a578063f2fde38b1461028d57600080fd5b80638da5cb5b146101cf5780639ac2a011146101f75780639be7bbd21461022757600080fd5b80633a7c721a116100bb5780633a7c721a14610167578063715018a61461018757806372f458661461019c57806377a24f36146101af57600080fd5b8063097da1f8146100ed5780630a2435f814610102578063193c8edd1461012257600080fd5b366100e857005b600080fd5b6101006100fb366004611530565b6102ad565b005b34801561010e57600080fd5b5061010061011d3660046115e5565b610663565b34801561012e57600080fd5b5061015261013d366004611651565b60666020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561017357600080fd5b506101006101823660046115e5565b6107e6565b34801561019357600080fd5b50610100610930565b6101006101aa366004611675565b610944565b3480156101bb57600080fd5b506101006101ca36600461170f565b61095c565b3480156101db57600080fd5b506033546040516001600160a01b03909116815260200161015e565b34801561020357600080fd5b50610152610212366004611651565b60656020526000908152604090205460ff1681565b34801561023357600080fd5b50610100610242366004611651565b610c73565b34801561025357600080fd5b50610100610262366004611768565b610cfe565b610100610275366004611798565b610da3565b610100610288366004611845565b611267565b34801561029957600080fd5b506101006102a8366004611651565b61127b565b3360009081526065602052604090205460ff161580156102d857506033546001600160a01b03163314155b1561032257335b6040517ff26aea8b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b846000805a90508515610386576001600160a01b0385163b6103865760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b61038f85610c73565b6000856001600160a01b03168589896040516103ac9291906118a2565b60006040518083038185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610404576040513d806000833e8082fd5b506001600160a01b0383161561065957366000602061042483601f6118c8565b61042e91906118e1565b905061020061043e6002836119e7565b61044891906118e1565b6104538260066119f6565b61045d91906118c8565b61046790846118c8565b925033321461047957600091506105ac565b6001600160a01b038416156105ac57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156104e757506040513d6000823e601f3d908101601f191682016040526104e49190810190611a23565b60015b156105ac578051156105aa576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105579190611ae1565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161058891906119f6565b61059291906119f6565b61059c91906118e1565b6105a690866118c8565b9450505b505b846001600160a01b031663e3db8a49335a6105c79087611afa565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015610631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611b1b565b5050505b5050505050505050565b61066b611308565b8281146106955760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b67ffffffffffffffff81168411156107df5782828267ffffffffffffffff168181106106c6576106c6611b38565b90506020020160208101906106db9190611b4e565b6065600087878567ffffffffffffffff168181106106fb576106fb611b38565b90506020020160208101906107109190611651565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055848467ffffffffffffffff831681811061075457610754611b38565b90506020020160208101906107699190611651565b6001600160a01b03167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea284848467ffffffffffffffff168181106107af576107af611b38565b90506020020160208101906107c49190611b4e565b604051901515815260200160405180910390a2600101610698565b5050505050565b6107ee611308565b8281146108185760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b838110156107df5782828281811061083557610835611b38565b905060200201602081019061084a9190611b4e565b6066600087878581811061086057610860611b38565b90506020020160208101906108759190611651565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106108af576108af611b38565b90506020020160208101906108c49190611651565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a484848481811061090057610900611b38565b90506020020160208101906109159190611b4e565b604051901515815260200160405180910390a260010161081b565b610938611308565b6109426000611362565b565b6109546000878787878787610da3565b505050505050565b600054610100900460ff161580801561097c5750600054600160ff909116105b806109965750303b158015610996575060005460ff166001145b610a085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610319565b6000805460ff191660011790558015610a2b576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ac95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610319565b610ad16113cc565b610ada8461127b565b6001600160a01b038516600081815260656020908152604091829020805460ff1916600190811790915591519182527f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2910160405180910390a260005b67ffffffffffffffff8116831115610c265760016066600086868567ffffffffffffffff16818110610b6b57610b6b611b38565b9050602002016020810190610b809190611651565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055838367ffffffffffffffff8316818110610bc457610bc4611b38565b9050602002016020810190610bd99190611651565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a46001604051610c16911515815260200190565b60405180910390a2600101610b37565b5080156107df576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6001600160a01b03811660009081526066602052604090205460ff16158015610ca757506033546001600160a01b03163314155b15610cfb576033546040517f41fc6f8a0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523360248201529082166044820152606401610319565b50565b610d06611308565b6000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610d53576040519150601f19603f3d011682016040523d82523d6000602084013e610d58565b606091505b5050905080610d9e576040517f7edbb4980000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610319565b505050565b3360009081526065602052604090205460ff16158015610dce57506033546001600160a01b03163314155b15610dd957336102df565b866000805a905087868114610e0b5760405163088253c360e11b81526004810182905260248101889052604401610319565b808514610e355760405163088253c360e11b81526004810182905260248101869052604401610319565b60005b818110156110055760008b8b83818110610e5457610e54611b38565b9050602002810190610e669190611b6b565b90501115610ef357610ea7898983818110610e8357610e83611b38565b9050602002016020810190610e989190611651565b6001600160a01b03163b151590565b610ef35760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b610f1d898983818110610f0857610f08611b38565b90506020020160208101906102429190611651565b6000898983818110610f3157610f31611b38565b9050602002016020810190610f469190611651565b6001600160a01b0316888884818110610f6157610f61611b38565b905060200201358d8d85818110610f7a57610f7a611b38565b9050602002810190610f8c9190611b6b565b604051610f9a9291906118a2565b60006040518083038185875af1925050503d8060008114610fd7576040519150601f19603f3d011682016040523d82523d6000602084013e610fdc565b606091505b5050905080610ff2576040513d806000833e8082fd5b5080610ffd81611bd0565b915050610e38565b50506001600160a01b0383161561125b57366000602061102683601f6118c8565b61103091906118e1565b90506102006110406002836119e7565b61104a91906118e1565b6110558260066119f6565b61105f91906118c8565b61106990846118c8565b925033321461107b57600091506111ae565b6001600160a01b038416156111ae57836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156110e957506040513d6000823e601f3d908101601f191682016040526110e69190810190611a23565b60015b156111ae578051156111ac576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111599190611ae1565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161118a91906119f6565b61119491906119f6565b61119e91906118e1565b6111a890866118c8565b9450505b505b846001600160a01b031663e3db8a49335a6111c99087611afa565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611b1b565b5050505b50505050505050505050565b6112756000858585856102ad565b50505050565b611283611308565b6001600160a01b0381166112ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610319565b610cfb81611362565b6033546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166114495760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b610942600054610100900460ff166114c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b61094233611362565b6001600160a01b0381168114610cfb57600080fd5b60008083601f8401126114f957600080fd5b50813567ffffffffffffffff81111561151157600080fd5b60208301915083602082850101111561152957600080fd5b9250929050565b60008060008060006080868803121561154857600080fd5b8535611553816114d2565b9450602086013567ffffffffffffffff81111561156f57600080fd5b61157b888289016114e7565b909550935050604086013561158f816114d2565b949793965091946060013592915050565b60008083601f8401126115b257600080fd5b50813567ffffffffffffffff8111156115ca57600080fd5b6020830191508360208260051b850101111561152957600080fd5b600080600080604085870312156115fb57600080fd5b843567ffffffffffffffff8082111561161357600080fd5b61161f888389016115a0565b9096509450602087013591508082111561163857600080fd5b50611645878288016115a0565b95989497509550505050565b60006020828403121561166357600080fd5b813561166e816114d2565b9392505050565b6000806000806000806060878903121561168e57600080fd5b863567ffffffffffffffff808211156116a657600080fd5b6116b28a838b016115a0565b909850965060208901359150808211156116cb57600080fd5b6116d78a838b016115a0565b909650945060408901359150808211156116f057600080fd5b506116fd89828a016115a0565b979a9699509497509295939492505050565b6000806000806060858703121561172557600080fd5b8435611730816114d2565b93506020850135611740816114d2565b9250604085013567ffffffffffffffff81111561175c57600080fd5b611645878288016115a0565b6000806040838503121561177b57600080fd5b82359150602083013561178d816114d2565b809150509250929050565b60008060008060008060006080888a0312156117b357600080fd5b87356117be816114d2565b9650602088013567ffffffffffffffff808211156117db57600080fd5b6117e78b838c016115a0565b909850965060408a013591508082111561180057600080fd5b61180c8b838c016115a0565b909650945060608a013591508082111561182557600080fd5b506118328a828b016115a0565b989b979a50959850939692959293505050565b6000806000806060858703121561185b57600080fd5b843567ffffffffffffffff81111561187257600080fd5b61187e878288016114e7565b9095509350506020850135611892816114d2565b9396929550929360400135925050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156118db576118db6118b2565b92915050565b6000826118fe57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561193e578160001904821115611924576119246118b2565b8085161561193157918102915b93841c9390800290611908565b509250929050565b600082611955575060016118db565b81611962575060006118db565b816001811461197857600281146119825761199e565b60019150506118db565b60ff841115611993576119936118b2565b50506001821b6118db565b5060208310610133831016604e8410600b84101617156119c1575081810a6118db565b6119cb8383611903565b80600019048211156119df576119df6118b2565b029392505050565b600061166e60ff841683611946565b80820281158282048414176118db576118db6118b2565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a3657600080fd5b825167ffffffffffffffff80821115611a4e57600080fd5b818501915085601f830112611a6257600080fd5b815181811115611a7457611a74611a0d565b8060051b604051601f19603f83011681018181108582111715611a9957611a99611a0d565b604052918252848201925083810185019188831115611ab757600080fd5b938501935b82851015611ad557845184529385019392850192611abc565b98975050505050505050565b600060208284031215611af357600080fd5b5051919050565b818103818111156118db576118db6118b2565b8015158114610cfb57600080fd5b600060208284031215611b2d57600080fd5b815161166e81611b0d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b6057600080fd5b813561166e81611b0d565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611ba057600080fd5b83018035915067ffffffffffffffff821115611bbb57600080fd5b60200191503681900382131561152957600080fd5b60006000198203611be357611be36118b2565b506001019056fea2646970667358221220187853fd6dd8c62c33ebeef6f71eaa150eb383fa46be942ec436bbf0604ca58f64736f6c63430008110033", + Bin: "0x608060405234801561001057600080fd5b5061001a33610068565b604051610026906100b8565b604051809103906000f080158015610042573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b03929092169190911790556100c5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611c8780611e3b83390190565b611d67806100d46000396000f3fe60806040523480156200001157600080fd5b50600436106200007b5760003560e01c806389c716d1116200005657806389c716d114620000d35780638da5cb5b14620000ea578063f2fde38b14620000fc57600080fd5b80631cf89b4b14620000805780636f2ddd9314620000b3578063715018a614620000c7575b600080fd5b62000097620000913660046200052d565b62000113565b6040516001600160a01b03909116815260200160405180910390f35b60015462000097906001600160a01b031681565b620000d1620002fe565b005b620000d1620000e4366004620005c4565b62000316565b6000546001600160a01b031662000097565b620000d16200010d366004620005c4565b6200037f565b6040516000903390819083906200012a9062000511565b604051809103906000f08015801562000147573d6000803e3d6000fd5b506001546040519192506000916001600160a01b039091169083906200016d906200051f565b6001600160a01b03928316815291166020820152606060408201819052600090820152608001604051809103906000f080158015620001b0573d6000803e3d6000fd5b506040517ff2fde38b0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529192509083169063f2fde38b90602401600060405180830381600087803b1580156200021257600080fd5b505af115801562000227573d6000803e3d6000fd5b50506040517f77a24f360000000000000000000000000000000000000000000000000000000081526001600160a01b03841692506377a24f3691506200027890879087908c908c90600401620005e9565b600060405180830381600087803b1580156200029357600080fd5b505af1158015620002a8573d6000803e3d6000fd5b50506040516001600160a01b038581168252808716935087811692508416907f7a6fe39e62e2aeedf6430893f8ce67c6aa08c92d3c7d66c83706057ee178ee489060200160405180910390a49695505050505050565b6200030862000433565b620003146000620004a9565b565b6200032062000433565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f6eb26f176dd9180849dd4874d3530de0e5c1f62a6e6798d34e3abfc11f1db2cc90600090a150565b6200038962000433565b6001600160a01b03811662000425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6200043081620004a9565b50565b6000546001600160a01b0316331462000314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200041c565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61080b806200065483390190565b610ed38062000e5f83390190565b600080602083850312156200054157600080fd5b823567ffffffffffffffff808211156200055a57600080fd5b818501915085601f8301126200056f57600080fd5b8135818111156200057f57600080fd5b8660208260051b85010111156200059557600080fd5b60209290920196919550909350505050565b80356001600160a01b0381168114620005bf57600080fd5b919050565b600060208284031215620005d757600080fd5b620005e282620005a7565b9392505050565b6000606082016001600160a01b038088168452602081881681860152606060408601528286845260808601905087935060005b878110156200064557836200063186620005a7565b16825293820193908201906001016200061c565b50999850505050505050505056fe608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61078d8061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610579565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d161022e565b005b3480156100df57600080fd5b506100d16100ee36600461059d565b610242565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f366004610605565b6102c3565b34801561013057600080fd5b506100d161013f36600461059d565b61034b565b34801561015057600080fd5b506100d161015f366004610579565b61039a565b34801561017057600080fd5b506100a061017f366004610579565b610449565b6000806000836001600160a01b03166040516101c3907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b50915091508161021257600080fd5b8080602001905181019061022691906106db565b949350505050565b610236610488565b61024060006104fc565b565b61024a610488565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b1580156102a757600080fd5b505af11580156102bb573d6000803e3d6000fd5b505050505050565b6102cb610488565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061031490869086906004016106f8565b6000604051808303818588803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050505050565b610353610488565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161028d565b6103a2610488565b6001600160a01b03811661043d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610446816104fc565b50565b6000806000836001600160a01b03166040516101c3907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b6000546001600160a01b03163314610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610434565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461044657600080fd5b60006020828403121561058b57600080fd5b813561059681610564565b9392505050565b600080604083850312156105b057600080fd5b82356105bb81610564565b915060208301356105cb81610564565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848603121561061a57600080fd5b833561062581610564565b9250602084013561063581610564565b9150604084013567ffffffffffffffff8082111561065257600080fd5b818601915086601f83011261066657600080fd5b813581811115610678576106786105d6565b604051601f8201601f19908116603f011681019083821181831017156106a0576106a06105d6565b816040528281528960208487010111156106b957600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156106ed57600080fd5b815161059681610564565b6001600160a01b038316815260006020604081840152835180604085015260005b8181101561073557858101830151858201606001528201610719565b506000606082860101526060601f19601f83011685010192505050939250505056fea2646970667358221220b5f17b9b80290312697ad0c26141bee28c1a1e448364e9044054c3ec2b5708bd64736f6c63430008110033608060405260405162000ed338038062000ed3833981016040819052620000269162000487565b828162000036828260006200004d565b50620000449050826200008a565b505050620005ba565b6200005883620000e5565b600082511180620000665750805b1562000085576200008383836200012760201b6200023e1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000b562000156565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000e2816200018f565b50565b620000f08162000244565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200014f838360405180606001604052806027815260200162000eac60279139620002f8565b9392505050565b60006200018060008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b546001600160a01b0316919050565b6001600160a01b038116620001fa5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200022360008051602062000e8c83398151915260001b620003de60201b620001fa1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200025a81620003e160201b6200026a1760201c565b620002be5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001f1565b80620002237f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003de60201b620001fa1760201c565b60606001600160a01b0384163b620003625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f1565b600080856001600160a01b0316856040516200037f919062000567565b600060405180830381855af49150503d8060008114620003bc576040519150601f19603f3d011682016040523d82523d6000602084013e620003c1565b606091505b509092509050620003d4828286620003f0565b9695505050505050565b90565b6001600160a01b03163b151590565b60608315620004015750816200014f565b825115620004125782518084602001fd5b8160405162461bcd60e51b8152600401620001f1919062000585565b80516001600160a01b03811681146200044657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200047e57818101518382015260200162000464565b50506000910152565b6000806000606084860312156200049d57600080fd5b620004a8846200042e565b9250620004b8602085016200042e565b60408501519092506001600160401b0380821115620004d657600080fd5b818601915086601f830112620004eb57600080fd5b8151818111156200050057620005006200044b565b604051601f8201601f19908116603f011681019083821181831017156200052b576200052b6200044b565b816040528281528960208487010111156200054557600080fd5b6200055883602083016020880162000461565b80955050505050509250925092565b600082516200057b81846020870162000461565b9190910192915050565b6020815260008251806020840152620005a681604085016020870162000461565b601f01601f19169190910160400192915050565b6108c280620005ca6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100a85780638f283970146100d9578063f851a440146100f95761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61010e565b005b61006b61010e565b34801561008157600080fd5b5061006b610090366004610736565b610128565b61006b6100a3366004610751565b610165565b3480156100b457600080fd5b506100bd6101cc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e557600080fd5b5061006b6100f4366004610736565b6101fd565b34801561010557600080fd5b506100bd61021d565b610116610279565b610126610121610329565b610333565b565b610130610357565b6001600160a01b0316330361015d5761015a8160405180602001604052806000815250600061038a565b50565b61015a61010e565b61016d610357565b6001600160a01b031633036101c4576101bf8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061038a915050565b505050565b6101bf61010e565b60006101d6610357565b6001600160a01b031633036101f2576101ed610329565b905090565b6101fa61010e565b90565b610205610357565b6001600160a01b0316330361015d5761015a816103b5565b6000610227610357565b6001600160a01b031633036101f2576101ed610357565b6060610263838360405180606001604052806027815260200161086660279139610409565b9392505050565b6001600160a01b03163b151590565b610281610357565b6001600160a01b031633036101265760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b60006101ed6104fd565b3660008037600080366000845af43d6000803e808015610352573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61039383610525565b6000825111806103a05750805b156101bf576103af838361023e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103de610357565b604080516001600160a01b03928316815291841660208301520160405180910390a161015a81610565565b60606001600160a01b0384163b6104885760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610320565b600080856001600160a01b0316856040516104a391906107f8565b600060405180830381855af49150503d80600081146104de576040519150601f19603f3d011682016040523d82523d6000602084013e6104e3565b606091505b50915091506104f382828661063d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61037b565b61052e81610676565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105e15760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610320565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6060831561064c575081610263565b82511561065c5782518084602001fd5b8160405162461bcd60e51b81526004016103209190610814565b6001600160a01b0381163b6106f35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610320565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610604565b80356001600160a01b038116811461073157600080fd5b919050565b60006020828403121561074857600080fd5b6102638261071a565b60008060006040848603121561076657600080fd5b61076f8461071a565b9250602084013567ffffffffffffffff8082111561078c57600080fd5b818601915086601f8301126107a057600080fd5b8135818111156107af57600080fd5b8760208285010111156107c157600080fd5b6020830194508093505050509250925092565b60005b838110156107ef5781810151838201526020016107d7565b50506000910152565b6000825161080a8184602087016107d4565b9190910192915050565b60208152600082518060208401526108338160408501602087016107d4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1888b421836e473bfc3e72d153dc5c76569ce769e37cfa444506490e142daa564736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d3114bf28eb36833909410921f72e4bc4d599e2ed5ba6ab7981e109ed12cd99364736f6c6343000811003360c0604052306080526202000060a05234801561001b57600080fd5b5060805160a051611c3f61004860003960008181610562015261116901526000610a3a0152611c3f6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063a158657c11610059578063a158657c14610247578063c179f1d914610267578063ce1d571f1461027a578063f2fde38b1461028d57600080fd5b80638da5cb5b146101cf5780639ac2a011146101f75780639be7bbd21461022757600080fd5b80633a7c721a116100bb5780633a7c721a14610167578063715018a61461018757806372f458661461019c57806377a24f36146101af57600080fd5b8063097da1f8146100ed5780630a2435f814610102578063193c8edd1461012257600080fd5b366100e857005b600080fd5b6101006100fb36600461154f565b6102ad565b005b34801561010e57600080fd5b5061010061011d366004611604565b610668565b34801561012e57600080fd5b5061015261013d366004611670565b60666020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561017357600080fd5b50610100610182366004611604565b6107eb565b34801561019357600080fd5b50610100610935565b6101006101aa366004611694565b610949565b3480156101bb57600080fd5b506101006101ca36600461172e565b610961565b3480156101db57600080fd5b506033546040516001600160a01b03909116815260200161015e565b34801561020357600080fd5b50610152610212366004611670565b60656020526000908152604090205460ff1681565b34801561023357600080fd5b50610100610242366004611670565b610c78565b34801561025357600080fd5b50610100610262366004611787565b610d03565b6101006102753660046117b7565b610da8565b610100610288366004611864565b611271565b34801561029957600080fd5b506101006102a8366004611670565b611285565b3360009081526065602052604090205460ff161580156102d857506033546001600160a01b03163314155b1561032257335b6040517ff26aea8b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024015b60405180910390fd5b846000805a90508515610386576001600160a01b0385163b6103865760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b61038f85610c78565b6000856001600160a01b03168589896040516103ac9291906118c1565b60006040518083038185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610404576040513d806000833e8082fd5b506001600160a01b0383161561065e57366000602061042483601f6118e7565b61042e9190611900565b905061020061043e600283611a06565b6104489190611900565b610453826006611a15565b61045d91906118e7565b61046790846118e7565b9250610471611312565b61047e57600091506105b1565b6001600160a01b038416156105b157836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156104ec57506040513d6000823e601f3d908101601f191682016040526104e99190810190611a42565b60015b156105b1578051156105af576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611b00565b905048817f0000000000000000000000000000000000000000000000000000000000000000845161058d9190611a15565b6105979190611a15565b6105a19190611900565b6105ab90866118e7565b9450505b505b846001600160a01b031663e3db8a49335a6105cc9087611b19565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af1158015610636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065a9190611b3a565b5050505b5050505050505050565b610670611327565b82811461069a5760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b67ffffffffffffffff81168411156107e45782828267ffffffffffffffff168181106106cb576106cb611b57565b90506020020160208101906106e09190611b6d565b6065600087878567ffffffffffffffff1681811061070057610700611b57565b90506020020160208101906107159190611670565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055848467ffffffffffffffff831681811061075957610759611b57565b905060200201602081019061076e9190611670565b6001600160a01b03167f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea284848467ffffffffffffffff168181106107b4576107b4611b57565b90506020020160208101906107c99190611b6d565b604051901515815260200160405180910390a260010161069d565b5050505050565b6107f3611327565b82811461081d5760405163088253c360e11b81526004810184905260248101829052604401610319565b60005b838110156107e45782828281811061083a5761083a611b57565b905060200201602081019061084f9190611b6d565b6066600087878581811061086557610865611b57565b905060200201602081019061087a9190611670565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106108b4576108b4611b57565b90506020020160208101906108c99190611670565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a484848481811061090557610905611b57565b905060200201602081019061091a9190611b6d565b604051901515815260200160405180910390a2600101610820565b61093d611327565b6109476000611381565b565b6109596000878787878787610da8565b505050505050565b600054610100900460ff16158080156109815750600054600160ff909116105b8061099b5750303b15801561099b575060005460ff166001145b610a0d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610319565b6000805460ff191660011790558015610a30576000805461ff0019166101001790555b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ace5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610319565b610ad66113eb565b610adf84611285565b6001600160a01b038516600081815260656020908152604091829020805460ff1916600190811790915591519182527f9fdbc2d48b8a0db2f62663bf9312ad02f5b1f6414ad600b55a247d09aeec3ea2910160405180910390a260005b67ffffffffffffffff8116831115610c2b5760016066600086868567ffffffffffffffff16818110610b7057610b70611b57565b9050602002016020810190610b859190611670565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055838367ffffffffffffffff8316818110610bc957610bc9611b57565b9050602002016020810190610bde9190611670565b6001600160a01b03167fab063fe575c4df359aaf3733bcf10706bacfdd24557e670a2c1cba126ae4d8a46001604051610c1b911515815260200190565b60405180910390a2600101610b3c565b5080156107e4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6001600160a01b03811660009081526066602052604090205460ff16158015610cac57506033546001600160a01b03163314155b15610d00576033546040517f41fc6f8a0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523360248201529082166044820152606401610319565b50565b610d0b611327565b6000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610d58576040519150601f19603f3d011682016040523d82523d6000602084013e610d5d565b606091505b5050905080610da3576040517f7edbb4980000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610319565b505050565b3360009081526065602052604090205460ff16158015610dd357506033546001600160a01b03163314155b15610dde57336102df565b866000805a905087868114610e105760405163088253c360e11b81526004810182905260248101889052604401610319565b808514610e3a5760405163088253c360e11b81526004810182905260248101869052604401610319565b60005b8181101561100a5760008b8b83818110610e5957610e59611b57565b9050602002810190610e6b9190611b8a565b90501115610ef857610eac898983818110610e8857610e88611b57565b9050602002016020810190610e9d9190611670565b6001600160a01b03163b151590565b610ef85760405162461bcd60e51b815260206004820152600f60248201527f4e4f5f434f44455f41545f4144445200000000000000000000000000000000006044820152606401610319565b610f22898983818110610f0d57610f0d611b57565b90506020020160208101906102429190611670565b6000898983818110610f3657610f36611b57565b9050602002016020810190610f4b9190611670565b6001600160a01b0316888884818110610f6657610f66611b57565b905060200201358d8d85818110610f7f57610f7f611b57565b9050602002810190610f919190611b8a565b604051610f9f9291906118c1565b60006040518083038185875af1925050503d8060008114610fdc576040519150601f19603f3d011682016040523d82523d6000602084013e610fe1565b606091505b5050905080610ff7576040513d806000833e8082fd5b508061100281611bef565b915050610e3d565b50506001600160a01b0383161561126557366000602061102b83601f6118e7565b6110359190611900565b9050610200611045600283611a06565b61104f9190611900565b61105a826006611a15565b61106491906118e7565b61106e90846118e7565b9250611078611312565b61108557600091506111b8565b6001600160a01b038416156111b857836001600160a01b031663e83a2d826040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156110f357506040513d6000823e601f3d908101601f191682016040526110f09190810190611a42565b60015b156111b8578051156111b6576000856001600160a01b0316631f6d6ef76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111639190611b00565b905048817f000000000000000000000000000000000000000000000000000000000000000084516111949190611a15565b61119e9190611a15565b6111a89190611900565b6111b290866118e7565b9450505b505b846001600160a01b031663e3db8a49335a6111d39087611b19565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604481018590526064016020604051808303816000875af115801561123d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112619190611b3a565b5050505b50505050505050505050565b61127f6000858585856102ad565b50505050565b61128d611327565b6001600160a01b0381166113095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610319565b610d0081611381565b600033321480156113225750333b155b905090565b6033546001600160a01b031633146109475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166114685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b610947600054610100900460ff166114e85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610319565b61094733611381565b6001600160a01b0381168114610d0057600080fd5b60008083601f84011261151857600080fd5b50813567ffffffffffffffff81111561153057600080fd5b60208301915083602082850101111561154857600080fd5b9250929050565b60008060008060006080868803121561156757600080fd5b8535611572816114f1565b9450602086013567ffffffffffffffff81111561158e57600080fd5b61159a88828901611506565b90955093505060408601356115ae816114f1565b949793965091946060013592915050565b60008083601f8401126115d157600080fd5b50813567ffffffffffffffff8111156115e957600080fd5b6020830191508360208260051b850101111561154857600080fd5b6000806000806040858703121561161a57600080fd5b843567ffffffffffffffff8082111561163257600080fd5b61163e888389016115bf565b9096509450602087013591508082111561165757600080fd5b50611664878288016115bf565b95989497509550505050565b60006020828403121561168257600080fd5b813561168d816114f1565b9392505050565b600080600080600080606087890312156116ad57600080fd5b863567ffffffffffffffff808211156116c557600080fd5b6116d18a838b016115bf565b909850965060208901359150808211156116ea57600080fd5b6116f68a838b016115bf565b9096509450604089013591508082111561170f57600080fd5b5061171c89828a016115bf565b979a9699509497509295939492505050565b6000806000806060858703121561174457600080fd5b843561174f816114f1565b9350602085013561175f816114f1565b9250604085013567ffffffffffffffff81111561177b57600080fd5b611664878288016115bf565b6000806040838503121561179a57600080fd5b8235915060208301356117ac816114f1565b809150509250929050565b60008060008060008060006080888a0312156117d257600080fd5b87356117dd816114f1565b9650602088013567ffffffffffffffff808211156117fa57600080fd5b6118068b838c016115bf565b909850965060408a013591508082111561181f57600080fd5b61182b8b838c016115bf565b909650945060608a013591508082111561184457600080fd5b506118518a828b016115bf565b989b979a50959850939692959293505050565b6000806000806060858703121561187a57600080fd5b843567ffffffffffffffff81111561189157600080fd5b61189d87828801611506565b90955093505060208501356118b1816114f1565b9396929550929360400135925050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156118fa576118fa6118d1565b92915050565b60008261191d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561195d578160001904821115611943576119436118d1565b8085161561195057918102915b93841c9390800290611927565b509250929050565b600082611974575060016118fa565b81611981575060006118fa565b816001811461199757600281146119a1576119bd565b60019150506118fa565b60ff8411156119b2576119b26118d1565b50506001821b6118fa565b5060208310610133831016604e8410600b84101617156119e0575081810a6118fa565b6119ea8383611922565b80600019048211156119fe576119fe6118d1565b029392505050565b600061168d60ff841683611965565b80820281158282048414176118fa576118fa6118d1565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611a5557600080fd5b825167ffffffffffffffff80821115611a6d57600080fd5b818501915085601f830112611a8157600080fd5b815181811115611a9357611a93611a2c565b8060051b604051601f19603f83011681018181108582111715611ab857611ab8611a2c565b604052918252848201925083810185019188831115611ad657600080fd5b938501935b82851015611af457845184529385019392850192611adb565b98975050505050505050565b600060208284031215611b1257600080fd5b5051919050565b818103818111156118fa576118fa6118d1565b8015158114610d0057600080fd5b600060208284031215611b4c57600080fd5b815161168d81611b2c565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b7f57600080fd5b813561168d81611b2c565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611bbf57600080fd5b83018035915067ffffffffffffffff821115611bda57600080fd5b60200191503681900382131561154857600080fd5b60006000198203611c0257611c026118d1565b506001019056fea2646970667358221220882051f6e829b418b3473ef41822df9cfc791203d7f7fbd235fe7bff670541f664736f6c63430008110033", } // ValidatorWalletCreatorABI is the input ABI used to generate the binding from. diff --git a/solgen/go/test_helpersgen/test_helpersgen.go b/solgen/go/test_helpersgen/test_helpersgen.go index a0e5980fa..fcfe445b4 100644 --- a/solgen/go/test_helpersgen/test_helpersgen.go +++ b/solgen/go/test_helpersgen/test_helpersgen.go @@ -32,7 +32,7 @@ var ( // BridgeTesterMetaData contains all meta data concerning the BridgeTester contract. var BridgeTesterMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NotContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotDelayedInbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"NotOutbox\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotRollupOrOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"BridgeCallTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"InboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"messageIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"beforeInboxAcc\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFeeL1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"}],\"name\":\"MessageDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"OutboxToggle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rollup\",\"type\":\"address\"}],\"name\":\"RollupUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newSequencerInbox\",\"type\":\"address\"}],\"name\":\"SequencerInboxUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptFundsFromOldBridge\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeOutbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedDelayedInboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"}],\"name\":\"allowedDelayedInboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allowedOutboxList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"}],\"name\":\"allowedOutboxes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"delayedInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delayedMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"messageDataHash\",\"type\":\"bytes32\"}],\"name\":\"enqueueDelayedMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"afterDelayedMessagesRead\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prevMessageCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newMessageCount\",\"type\":\"uint256\"}],\"name\":\"enqueueSequencerMessage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"seqMessageIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"beforeAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"delayedAcc\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"acc\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"rollup_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerInbox\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"sequencerInboxAccs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sequencerReportedSubMessageCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"inbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setDelayedInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"outbox\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setOutbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sequencerInbox\",\"type\":\"address\"}],\"name\":\"setSequencerInbox\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"batchPoster\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"dataHash\",\"type\":\"bytes32\"}],\"name\":\"submitBatchSpendingReport\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIOwnable\",\"name\":\"_rollup\",\"type\":\"address\"}],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b5060805161159561002d600039600050506115956000f3fe60806040526004361061018e5760003560e01c8063ab5d8943116100d6578063d5719dc21161007f578063e77145f411610059578063e77145f41461024a578063eca067ad14610508578063ee35f3271461051d57600080fd5b8063d5719dc2146104a8578063e1758bd8146104c8578063e76f5c8d146104e857600080fd5b8063c4d66de8116100b0578063c4d66de814610448578063cb23bcb514610468578063cee3d7281461048857600080fd5b8063ab5d8943146103b2578063ad48cb5e146103c7578063ae60bd131461040b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc70614610302578063945e11471461034c5780639e5d4c491461038457600080fd5b80637a88b1071461028257806386598a56146102a55780638db5993b146102ef57600080fd5b806347fb24c51161016957806347fb24c51461022a5780634f61f8501461024c5780635fca4a161461026c57600080fd5b806284120c1461019a57806316bf5579146101be578063413b35bd146101de57600080fd5b3661019557005b600080fd5b3480156101a657600080fd5b50600a545b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b506101ab6101d9366004611296565b61053d565b3480156101ea57600080fd5b5061021a6101f93660046112c7565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101b5565b34801561023657600080fd5b5061024a6102453660046112eb565b61055e565b005b34801561025857600080fd5b5061024a6102673660046112c7565b61087a565b34801561027857600080fd5b506101ab600b5481565b34801561028e57600080fd5b506101ab61029d366004611329565b600092915050565b3480156102b157600080fd5b506102cf6102c0366004611355565b50600093849350839250829150565b6040805194855260208501939093529183015260608201526080016101b5565b6101ab6102fd366004611387565b6109a5565b34801561030e57600080fd5b5061024a61031d3660046112c7565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561035857600080fd5b5061036c610367366004611296565b610a09565b6040516001600160a01b0390911681526020016101b5565b34801561039057600080fd5b506103a461039f3660046113ce565b610a33565b6040516101b5929190611457565b3480156103be57600080fd5b5061036c610be0565b3480156103d357600080fd5b506008546103f99074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101b5565b34801561041757600080fd5b5061021a6104263660046112c7565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b34801561045457600080fd5b5061024a6104633660046112c7565b610c2b565b34801561047457600080fd5b5060065461036c906001600160a01b031681565b34801561049457600080fd5b5061024a6104a33660046112eb565b610d97565b3480156104b457600080fd5b506101ab6104c3366004611296565b6110ae565b3480156104d457600080fd5b5060085461036c906001600160a01b031681565b3480156104f457600080fd5b5061036c610503366004611296565b6110be565b34801561051457600080fd5b506009546101ab565b34801561052957600080fd5b5060075461036c906001600160a01b031681565b600a818154811061054d57600080fd5b600091825260209091200154905081565b6006546001600160a01b0316331461062d5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de91906114af565b9050336001600160a01b0382161461062b57600654604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156106925750825b806106a45750801580156106a4575082155b156106af5750505050565b821561074a57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610873565b6003805461075a906001906114cc565b8154811061076a5761076a6114ed565b6000918252602090912001548254600380546001600160a01b03909316929091908110610799576107996114ed565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106107e7576107e76114ed565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061081d5761081d611503565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146109445760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa91906114af565b9050336001600160a01b0382161461094257600654604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610622565b505b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b3360009081526001602081905260408220015460ff166109f3576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610622565b610a018484434248876110ce565b949350505050565b60048181548110610a1957600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610a84576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610622565b8215801590610a9b57506001600160a01b0386163b155b15610add576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610622565b6005805473ffffffffffffffffffffffffffffffffffffffff19811633179091556040516001600160a01b03918216918816908790610b1f9088908890611519565b60006040518083038185875af1925050503d8060008114610b5c576040519150601f19603f3d011682016040523d82523d6000602084013e610b61565b606091505b506005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610bce908a908a908a90611529565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000101610c1b5750600090565b506005546001600160a01b031690565b600054610100900460ff1615808015610c4b5750600054600160ff909116105b80610c655750303b158015610c65575060005460ff166001145b610cf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610622565b6000805460ff191660011790558015610d14576000805461ff0019166101001790555b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff199182168117909255600680549091169184169190911790558015610876576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6006546001600160a01b03163314610e615760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906114af565b9050336001600160a01b03821614610e5f57600654604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610622565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610ec75750825b80610ed9575080158015610ed9575082155b15610ee45750505050565b8215610f8057604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610873565b60048054610f90906001906114cc565b81548110610fa057610fa06114ed565b6000918252602090912001548254600480546001600160a01b03909316929091908110610fcf57610fcf6114ed565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061101d5761101d6114ed565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061105357611053611503565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6009818154811061054d57600080fd5b60038181548110610a1957600080fd5b600954604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156111cb5760096111ad6001856114cc565b815481106111bd576111bd6114ed565b906000526020600020015490505b60096111d78284611267565b8154600181018355600092835260209283902001556040805133815260ff8d16928101929092526001600160a01b038b1682820152606082018790526080820188905267ffffffffffffffff891660a083015251829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe19181900360c00190a3509098975050505050505050565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b6000602082840312156112a857600080fd5b5035919050565b6001600160a01b03811681146112c457600080fd5b50565b6000602082840312156112d957600080fd5b81356112e4816112af565b9392505050565b600080604083850312156112fe57600080fd5b8235611309816112af565b91506020830135801515811461131e57600080fd5b809150509250929050565b6000806040838503121561133c57600080fd5b8235611347816112af565b946020939093013593505050565b6000806000806080858703121561136b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561139c57600080fd5b833560ff811681146113ad57600080fd5b925060208401356113bd816112af565b929592945050506040919091013590565b600080600080606085870312156113e457600080fd5b84356113ef816112af565b935060208501359250604085013567ffffffffffffffff8082111561141357600080fd5b818701915087601f83011261142757600080fd5b81358181111561143657600080fd5b88602082850101111561144857600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b8181101561148d57858101830151858201606001528201611471565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156114c157600080fd5b81516112e4816112af565b8181038181111561129057634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220221dbc6bb16ddac3282e3e9df8d934c61cd6993016f83266653b7a4672155a3964736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b5060805161159561002d600039600050506115956000f3fe60806040526004361061018e5760003560e01c8063ab5d8943116100d6578063d5719dc21161007f578063e77145f411610059578063e77145f41461024a578063eca067ad14610508578063ee35f3271461051d57600080fd5b8063d5719dc2146104a8578063e1758bd8146104c8578063e76f5c8d146104e857600080fd5b8063c4d66de8116100b0578063c4d66de814610448578063cb23bcb514610468578063cee3d7281461048857600080fd5b8063ab5d8943146103b2578063ad48cb5e146103c7578063ae60bd131461040b57600080fd5b80637a88b10711610138578063919cc70611610112578063919cc70614610302578063945e11471461034c5780639e5d4c491461038457600080fd5b80637a88b1071461028257806386598a56146102a55780638db5993b146102ef57600080fd5b806347fb24c51161016957806347fb24c51461022a5780634f61f8501461024c5780635fca4a161461026c57600080fd5b806284120c1461019a57806316bf5579146101be578063413b35bd146101de57600080fd5b3661019557005b600080fd5b3480156101a657600080fd5b50600a545b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b506101ab6101d9366004611296565b61053d565b3480156101ea57600080fd5b5061021a6101f93660046112c7565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016101b5565b34801561023657600080fd5b5061024a6102453660046112eb565b61055e565b005b34801561025857600080fd5b5061024a6102673660046112c7565b61087a565b34801561027857600080fd5b506101ab600b5481565b34801561028e57600080fd5b506101ab61029d366004611329565b600092915050565b3480156102b157600080fd5b506102cf6102c0366004611355565b50600093849350839250829150565b6040805194855260208501939093529183015260608201526080016101b5565b6101ab6102fd366004611387565b6109a5565b34801561030e57600080fd5b5061024a61031d3660046112c7565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561035857600080fd5b5061036c610367366004611296565b610a09565b6040516001600160a01b0390911681526020016101b5565b34801561039057600080fd5b506103a461039f3660046113ce565b610a33565b6040516101b5929190611457565b3480156103be57600080fd5b5061036c610be0565b3480156103d357600080fd5b506008546103f99074010000000000000000000000000000000000000000900460ff1681565b60405160ff90911681526020016101b5565b34801561041757600080fd5b5061021a6104263660046112c7565b6001600160a01b03166000908152600160208190526040909120015460ff1690565b34801561045457600080fd5b5061024a6104633660046112c7565b610c2b565b34801561047457600080fd5b5060065461036c906001600160a01b031681565b34801561049457600080fd5b5061024a6104a33660046112eb565b610d97565b3480156104b457600080fd5b506101ab6104c3366004611296565b6110ae565b3480156104d457600080fd5b5060085461036c906001600160a01b031681565b3480156104f457600080fd5b5061036c610503366004611296565b6110be565b34801561051457600080fd5b506009546101ab565b34801561052957600080fd5b5060075461036c906001600160a01b031681565b600a818154811061054d57600080fd5b600091825260209091200154905081565b6006546001600160a01b0316331461062d5760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de91906114af565b9050336001600160a01b0382161461062b57600654604051630739600760e01b81523360048201526001600160a01b03918216602482015290821660448201526064015b60405180910390fd5b505b6001600160a01b0382166000818152600160208181526040928390209182015492518515158152919360ff90931692917f6675ce8882cb71637de5903a193d218cc0544be9c0650cb83e0955f6aa2bf521910160405180910390a28080156106925750825b806106a45750801580156106a4575082155b156106af5750505050565b821561074a57604080518082018252600380548252600160208084018281526001600160a01b038a166000818152928490529582209451855551938201805460ff1916941515949094179093558154908101825591527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610873565b6003805461075a906001906114cc565b8154811061076a5761076a6114ed565b6000918252602090912001548254600380546001600160a01b03909316929091908110610799576107996114ed565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081600001546001600060038560000154815481106107e7576107e76114ed565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061081d5761081d611503565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526001908190526040822091825501805460ff191690555b50505b5050565b6006546001600160a01b031633146109445760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa91906114af565b9050336001600160a01b0382161461094257600654604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610622565b505b6007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f8c1e6003ed33ca6748d4ad3dd4ecc949065c89dceb31fdf546a5289202763c6a9060200160405180910390a150565b3360009081526001602081905260408220015460ff166109f3576040517fb6c60ea3000000000000000000000000000000000000000000000000000000008152336004820152602401610622565b610a018484434248876110ce565b949350505050565b60048181548110610a1957600080fd5b6000918252602090912001546001600160a01b0316905081565b3360009081526002602052604081206001015460609060ff16610a84576040517f32ea82ab000000000000000000000000000000000000000000000000000000008152336004820152602401610622565b8215801590610a9b57506001600160a01b0386163b155b15610add576040517fb5cf5b8f0000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610622565b6005805473ffffffffffffffffffffffffffffffffffffffff19811633179091556040516001600160a01b03918216918816908790610b1f9088908890611519565b60006040518083038185875af1925050503d8060008114610b5c576040519150601f19603f3d011682016040523d82523d6000602084013e610b61565b606091505b506005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038581169190911790915560405192955090935088169033907f2d9d115ef3e4a606d698913b1eae831a3cdfe20d9a83d48007b0526749c3d46690610bce908a908a908a90611529565b60405180910390a35094509492505050565b6005546000906001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000101610c1b5750600090565b506005546001600160a01b031690565b600054610100900460ff1615808015610c4b5750600054600160ff909116105b80610c655750303b158015610c65575060005460ff166001145b610cf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610622565b6000805460ff191660011790558015610d14576000805461ff0019166101001790555b600580546001600160a01b0373ffffffffffffffffffffffffffffffffffffffff199182168117909255600680549091169184169190911790558015610876576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6006546001600160a01b03163314610e615760065460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906114af565b9050336001600160a01b03821614610e5f57600654604051630739600760e01b81523360048201526001600160a01b0391821660248201529082166044820152606401610622565b505b6001600160a01b038216600081815260026020908152604091829020600181015492518515158152909360ff90931692917f49477e7356dbcb654ab85d7534b50126772d938130d1350e23e2540370c8dffa910160405180910390a2808015610ec75750825b80610ed9575080158015610ed9575082155b15610ee45750505050565b8215610f8057604080518082018252600480548252600160208084018281526001600160a01b038a16600081815260029093529582209451855551938201805460ff1916941515949094179093558154908101825591527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff19169091179055610873565b60048054610f90906001906114cc565b81548110610fa057610fa06114ed565b6000918252602090912001548254600480546001600160a01b03909316929091908110610fcf57610fcf6114ed565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816000015460026000600485600001548154811061101d5761101d6114ed565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600480548061105357611053611503565b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff191690559092019092556001600160a01b03861682526002905260408120908155600101805460ff1916905550505050565b6009818154811061054d57600080fd5b60038181548110610a1957600080fd5b600954604080517fff0000000000000000000000000000000000000000000000000000000000000060f88a901b166020808301919091527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608a901b1660218301527fffffffffffffffff00000000000000000000000000000000000000000000000060c089811b8216603585015288901b16603d830152604582018490526065820186905260858083018690528351808403909101815260a5909201909252805191012060009190600082156111cb5760096111ad6001856114cc565b815481106111bd576111bd6114ed565b906000526020600020015490505b60096111d78284611267565b8154600181018355600092835260209283902001556040805133815260ff8d16928101929092526001600160a01b038b1682820152606082018790526080820188905267ffffffffffffffff891660a083015251829185917f5e3c1311ea442664e8b1611bfabef659120ea7a0a2cfc0667700bebc69cbffe19181900360c00190a3509098975050505050505050565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b6000602082840312156112a857600080fd5b5035919050565b6001600160a01b03811681146112c457600080fd5b50565b6000602082840312156112d957600080fd5b81356112e4816112af565b9392505050565b600080604083850312156112fe57600080fd5b8235611309816112af565b91506020830135801515811461131e57600080fd5b809150509250929050565b6000806040838503121561133c57600080fd5b8235611347816112af565b946020939093013593505050565b6000806000806080858703121561136b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561139c57600080fd5b833560ff811681146113ad57600080fd5b925060208401356113bd816112af565b929592945050506040919091013590565b600080600080606085870312156113e457600080fd5b84356113ef816112af565b935060208501359250604085013567ffffffffffffffff8082111561141357600080fd5b818701915087601f83011261142757600080fd5b81358181111561143657600080fd5b88602082850101111561144857600080fd5b95989497505060200194505050565b821515815260006020604081840152835180604085015260005b8181101561148d57858101830151858201606001528201611471565b506000606082860101526060601f19601f830116850101925050509392505050565b6000602082840312156114c157600080fd5b81516112e4816112af565b8181038181111561129057634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212206c800f769f79d977a2d145fae8844908fb62f2b420e5c6fb3df38b03c57d3ce564736f6c63430008110033", } // BridgeTesterABI is the input ABI used to generate the binding from. @@ -2592,7 +2592,7 @@ func (_MessageTester *MessageTesterCallerSession) MessageHash(messageType uint8, // OutboxWithoutOptTesterMetaData contains all meta data concerning the OutboxWithoutOptTester contract. var OutboxWithoutOptTesterMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AlreadyInit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"AlreadySpent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeCallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actualLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxProofLength\",\"type\":\"uint256\"}],\"name\":\"MerkleProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxIndex\",\"type\":\"uint256\"}],\"name\":\"PathNotMinimal\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofLength\",\"type\":\"uint256\"}],\"name\":\"ProofTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"UnknownRoot\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"zero\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionIndex\",\"type\":\"uint256\"}],\"name\":\"OutBoxTransactionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"SendRootUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"OUTBOX_VERSION\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"calculateItemHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"path\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"item\",\"type\":\"bytes32\"}],\"name\":\"calculateMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"l2Sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"l2Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l1Block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2Timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"executeTransactionSimulation\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIBridge\",\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1BatchNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Block\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1EthBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1OutputId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ToL1Timestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"postUpgradeInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"roots\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"spent\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRollupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"l2BlockHash\",\"type\":\"bytes32\"}],\"name\":\"updateSendRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60a06040523060805234801561001457600080fd5b506080516114d7610030600039600061072e01526114d76000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea2646970667358221220da500c5df4e1e438458542434f45c27dbb915e10ca2bd9041eeecfbd4f778d3d64736f6c63430008110033", + Bin: "0x60a06040523060805234801561001457600080fd5b506080516114d7610030600039600061072e01526114d76000f3fe608060405234801561001057600080fd5b506004361061016b5760003560e01c806395fcea78116100cd578063c4d66de811610081578063cb23bcb511610066578063cb23bcb5146102ed578063d5b5cc2314610300578063e78cea921461031357600080fd5b8063c4d66de8146102ba578063c75184df146102cd57600080fd5b8063a04cee60116100b2578063a04cee6014610276578063ae6dead714610289578063b0f30537146102a957600080fd5b806395fcea78146101a95780639f0c04bf1461026357600080fd5b80635a129efe1161012457806372f2a8c71161010957806372f2a8c71461021157806380648b02146102195780638515bc6a1461023e57600080fd5b80635a129efe146101d65780636ae71f121461020957600080fd5b8063119852711161015557806311985271146101ab578063288e5b10146101b257806346547790146101c557600080fd5b80627436d31461017057806308635a9514610196575b600080fd5b61018361017e366004610e37565b610326565b6040519081526020015b60405180910390f35b6101a96101a4366004610f5e565b610363565b005b6000610183565b6101a96101c0366004611053565b6106d7565b6004546001600160801b0316610183565b6101f96101e43660046110ef565b60026020526000908152604090205460ff1681565b604051901515815260200161018d565b6101a9610724565b600654610183565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161018d565b60045470010000000000000000000000000000000090046001600160801b0316610183565b610183610271366004611108565b6108e0565b6101a9610284366004611197565b610925565b6101836102973660046110ef565b60036020526000908152604090205481565b6005546001600160801b0316610183565b6101a96102c83660046111b9565b610964565b6102d5600281565b6040516001600160801b03909116815260200161018d565b600054610226906001600160a01b031681565b61018361030e3660046110ef565b610a7a565b600154610226906001600160a01b031681565b600061035b84848460405160200161034091815260200190565b60405160208183030381529060405280519060200120610ac5565b949350505050565b6000806103768a8a8a8a8a8a8a8a6108e0565b90506103b88d8d808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508f9250859150610b809050565b915060008a6001600160a01b03168a6001600160a01b03167f20af7f3bbfe38132b8900ae295cd9c8d1914be7052d061a511f3f728dab189648e60405161040191815260200190565b60405180910390a450600060046040518060a00160405290816000820160009054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016000820160109054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020016001820160009054906101000a90046001600160801b03166001600160801b03166001600160801b03168152602001600282015481526020016003820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152505090506040518060a00160405280896001600160801b03168152602001886001600160801b03168152602001876001600160801b031681526020018381526020018b6001600160a01b0316815250600460008201518160000160006101000a8154816001600160801b0302191690836001600160801b0316021790555060208201518160000160106101000a8154816001600160801b0302191690836001600160801b0316021790555060408201518160010160006101000a8154816001600160801b0302191690836001600160801b031602179055506060820151816002015560808201518160030160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050610630898686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d0592505050565b805160208201516001600160801b0391821670010000000000000000000000000000000091831691909102176004556040820151600580547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016919092161790556060810151600655608001516007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055505050505050505050505050565b60405162461bcd60e51b815260206004820152600f60248201527f4e6f7420696d706c656d656e746564000000000000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107c25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c0000000000000000000000000000000000000000606482015260840161071b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038054336001600160a01b03821614610838576040517f23295f0e0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038216602482015260440161071b565b600160009054906101000a90046001600160a01b03166001600160a01b031663cb23bcb56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108af91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790555050565b600088888888888888886040516020016109019897969594939291906111fa565b60405160208183030381529060405280519060200120905098975050505050505050565b60008281526003602052604080822083905551829184917fb4df3847300f076a369cd76d2314b470a1194d9e8a6bb97f1860aee88a5f67489190a35050565b6001546001600160a01b0316156109a7576040517fef34ca5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fcb23bcb5000000000000000000000000000000000000000000000000000000008152905163cb23bcb5916004808201926020929091908290030181865afa158015610a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4a91906111dd565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b60405162461bcd60e51b815260206004820152600e60248201527f4e4f545f494d504c454d45544544000000000000000000000000000000000000604482015260009060640161071b565b8251600090610100811115610b11576040517ffdac331e00000000000000000000000000000000000000000000000000000000815260048101829052610100602482015260440161071b565b8260005b82811015610b76576000878281518110610b3157610b31611266565b60200260200101519050816001901b8716600003610b5d57826000528060205260406000209250610b6d565b8060005282602052604060002092505b50600101610b15565b5095945050505050565b6000610100845110610bc35783516040517fab6a068300000000000000000000000000000000000000000000000000000000815260040161071b91815260200190565b8351610bd0906002611378565b8310610c20578284516002610be59190611378565b6040517f0b8a724b0000000000000000000000000000000000000000000000000000000081526004810192909252602482015260440161071b565b6000610c2d858585610326565b600081815260036020526040902054909150610c78576040517f8730d7c80000000000000000000000000000000000000000000000000000000081526004810182905260240161071b565b60008481526002602052604090205460ff1615610cc4576040517f9715b8d30000000000000000000000000000000000000000000000000000000081526004810185905260240161071b565b5050600082815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055819392505050565b6001546040517f9e5d4c4900000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690639e5d4c4990610d57908890889088906004016113a8565b6000604051808303816000875af1158015610d76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9e91908101906113f2565b9150915081610de957805115610db75780518082602001fd5b6040517f376fb55a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610e2f57610e2f610df0565b604052919050565b600080600060608486031215610e4c57600080fd5b833567ffffffffffffffff80821115610e6457600080fd5b818601915086601f830112610e7857600080fd5b8135602082821115610e8c57610e8c610df0565b8160051b9250610e9d818401610e06565b828152928401810192818101908a851115610eb757600080fd5b948201945b84861015610ed557853582529482019490820190610ebc565b9a918901359950506040909701359695505050505050565b6001600160a01b0381168114610f0257600080fd5b50565b8035610f1081610eed565b919050565b60008083601f840112610f2757600080fd5b50813567ffffffffffffffff811115610f3f57600080fd5b602083019150836020828501011115610f5757600080fd5b9250929050565b60008060008060008060008060008060006101208c8e031215610f8057600080fd5b8b3567ffffffffffffffff80821115610f9857600080fd5b818e0191508e601f830112610fac57600080fd5b813581811115610fbb57600080fd5b8f60208260051b8501011115610fd057600080fd5b60208381019e50909c508e01359a50610feb60408f01610f05565b9950610ff960608f01610f05565b985060808e0135975060a08e0135965060c08e0135955060e08e013594506101008e013591508082111561102c57600080fd5b506110398e828f01610f15565b915080935050809150509295989b509295989b9093969950565b60008060008060008060008060006101008a8c03121561107257600080fd5b8935985060208a013561108481610eed565b975060408a013561109481610eed565b965060608a0135955060808a0135945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff8111156110cc57600080fd5b6110d88c828d01610f15565b915080935050809150509295985092959850929598565b60006020828403121561110157600080fd5b5035919050565b60008060008060008060008060e0898b03121561112457600080fd5b883561112f81610eed565b9750602089013561113f81610eed565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561117757600080fd5b6111838b828c01610f15565b999c989b5096995094979396929594505050565b600080604083850312156111aa57600080fd5b50508035926020909101359150565b6000602082840312156111cb57600080fd5b81356111d681610eed565b9392505050565b6000602082840312156111ef57600080fd5b81516111d681610eed565b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352808a60601b16601484015250876028830152866048830152856068830152846088830152828460a8840137506000910160a801908152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156112cd5781600019048211156112b3576112b361127c565b808516156112c057918102915b93841c9390800290611297565b509250929050565b6000826112e457506001611372565b816112f157506000611372565b816001811461130757600281146113115761132d565b6001915050611372565b60ff8411156113225761132261127c565b50506001821b611372565b5060208310610133831016604e8410600b8410161715611350575081810a611372565b61135a8383611292565b806000190482111561136e5761136e61127c565b0290505b92915050565b60006111d683836112d5565b60005b8381101561139f578181015183820152602001611387565b50506000910152565b6001600160a01b038416815282602082015260606040820152600082518060608401526113dc816080850160208701611384565b601f01601f191691909101608001949350505050565b6000806040838503121561140557600080fd5b8251801515811461141557600080fd5b602084015190925067ffffffffffffffff8082111561143357600080fd5b818501915085601f83011261144757600080fd5b81518181111561145957611459610df0565b61146c6020601f19601f84011601610e06565b915080825286602082850101111561148357600080fd5b611494816020840160208601611384565b508092505050925092905056fea26469706673582212209134c8539ccd56bd758346b91447d71c4cf7cfc5f897dbb879185467ebd0284964736f6c63430008110033", } // OutboxWithoutOptTesterABI is the input ABI used to generate the binding from. diff --git a/testing/rollup_config.go b/testing/rollup_config.go index bb136e81e..3688858c5 100644 --- a/testing/rollup_config.go +++ b/testing/rollup_config.go @@ -88,15 +88,17 @@ func GenerateRollupConfig( } cfg := rollupgen.Config{ - MiniStakeValues: miniStakeValues, - ConfirmPeriodBlocks: confirmPeriod, - StakeToken: stakeToken, - BaseStake: big.NewInt(1), - WasmModuleRoot: wasmModuleRoot, - Owner: rollupOwner, - LoserStakeEscrow: loserStakeEscrow, - ChainId: chainId, - ChainConfig: "{ 'config': 'Test config'}", + MiniStakeValues: miniStakeValues, + ConfirmPeriodBlocks: confirmPeriod, + StakeToken: stakeToken, + BaseStake: big.NewInt(1), + WasmModuleRoot: wasmModuleRoot, + Owner: rollupOwner, + LoserStakeEscrow: loserStakeEscrow, + ChainId: chainId, + ChainConfig: "{ 'config': 'Test config'}", + MinimumAssertionPeriod: big.NewInt(75), + ValidatorAfkBlocks: 201600, SequencerInboxMaxTimeVariation: rollupgen.ISequencerInboxMaxTimeVariation{ DelayBlocks: big.NewInt(60 * 60 * 24 / 15), FutureBlocks: big.NewInt(12),