diff --git a/contracts/generated/Address/Address.go b/contracts/generated/Address/Address.go index 05155acbd7..653c3d0194 100644 --- a/contracts/generated/Address/Address.go +++ b/contracts/generated/Address/Address.go @@ -32,7 +32,7 @@ var ( // AddressMetaData contains all meta data concerning the Address contract. var AddressMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e6433e77b77d7f243f1afe2a29c6dd689e492ac368400ed7ccecd0f7cdb49c0964736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220586f3c3251d31f5aa3a224c26fcdd3c1377786d0e1e519965a98b3465bfb579264736f6c634300081c0033", } // AddressABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go index 6c485d7798..2dde0718f3 100644 --- a/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go +++ b/contracts/generated/ConstantSupplyERC20/ConstantSupplyERC20.go @@ -32,7 +32,7 @@ var ( // ConstantSupplyERC20MetaData contains all meta data concerning the ConstantSupplyERC20 contract. var ConstantSupplyERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051610e35380380610e3583398101604081905261002f916102dd565b8282600361003d8382610442565b50600461004a8282610442565b50505061005d338261006560201b60201c565b505050610594565b6001600160a01b03821661009857600060405163ec442f0560e01b815260040161008f9190610521565b60405180910390fd5b6100a4600083836100a8565b5050565b6001600160a01b0383166100d35780600260008282546100c89190610545565b909155506101329050565b6001600160a01b038316600090815260208190526040902054818110156101135783818360405163391434e360e21b815260040161008f9392919061055e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661014e5760028054829003905561016d565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101b09190610586565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156101f8576101f86101bd565b6040525050565b600061020a60405190565b905061021682826101d3565b919050565b60006001600160401b03821115610234576102346101bd565b601f19601f83011660200192915050565b60005b83811015610260578181015183820152602001610248565b50506000910152565b600061027c6102778461021b565b6101ff565b905082815283838301111561029357610293600080fd5b6102a1836020830184610245565b9392505050565b600082601f8301126102bc576102bc600080fd5b81516102cc848260208601610269565b949350505050565b80515b92915050565b6000806000606084860312156102f5576102f5600080fd5b83516001600160401b0381111561030e5761030e600080fd5b61031a868287016102a8565b602086015190945090506001600160401b0381111561033b5761033b600080fd5b610347868287016102a8565b92505061035785604086016102d4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061038a57607f821691505b60208210810361039c5761039c610360565b50919050565b60006102d76103ae8381565b90565b6103ba836103a2565b815460001960089490940293841b1916921b91909117905550565b60006103e28184846103b1565b505050565b818110156100a4576103fa6000826103d5565b6001016103e7565b601f8211156103e2576000818152602090206020601f850104810160208510156104295750805b61043b6020601f8601048301826103e7565b5050505050565b81516001600160401b0381111561045b5761045b6101bd565b6104658254610376565b610470828285610402565b506020601f8211600181146104a5576000831561048d5750848201515b600019600885021c198116600285021785555061043b565b600084815260208120601f198516915b828110156104d557878501518255602094850194600190920191016104b5565b50848210156104f25783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166102d7565b61051b81610501565b82525050565b602081016102d78284610512565b634e487b7160e01b600052601160045260246000fd5b808201808211156102d7576102d761052f565b8061051b565b6060810161056c8286610512565b6105796020830185610558565b6102cc6040830184610558565b602081016102d78284610558565b610892806105a36000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d57600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b0610196565b6040516100bd919061063c565b60405180910390f35b6100d96100d4366004610698565b610228565b6040516100bd91906106da565b6002545b6040516100bd91906106ee565b6100d96101053660046106fc565b610242565b60126040516100bd919061074e565b6100ea61012736600461075c565b6001600160a01b031660009081526020819052604090205490565b6100b0610266565b6100d9610158366004610698565b610275565b6100ea61016b36600461077b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a5906107c0565b80601f01602080910402602001604051908101604052809291908181526020018280546101d1906107c0565b801561021e5780601f106101f35761010080835404028352916020019161021e565b820191906000526020600020905b81548152906001019060200180831161020157829003601f168201915b5050505050905090565b600033610236818585610283565b60019150505b92915050565b600033610250858285610295565b61025b858585610322565b506001949350505050565b6060600480546101a5906107c0565b600033610236818585610322565b61029083838360016103b3565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461031c578181101561030d578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610304939291906107f5565b60405180910390fd5b61031c848484840360006103b3565b50505050565b6001600160a01b0383166103655760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103049190610825565b6001600160a01b0382166103a85760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103049190610825565b6102908383836104b8565b6001600160a01b0384166103f65760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103049190610825565b6001600160a01b0383166104395760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103049190610825565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561031c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104aa91906106ee565b60405180910390a350505050565b6001600160a01b0383166104e35780600260008282546104d89190610849565b9091555061055b9050565b6001600160a01b0383166000908152602081905260409020548181101561053c578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610304939291906107f5565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661057757600280548290039055610596565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105d991906106ee565b60405180910390a3505050565b60005b838110156106015781810151838201526020016105e9565b50506000910152565b6000610614825190565b80845260208401935061062b8185602086016105e6565b601f01601f19169290920192915050565b6020808252810161064d818461060a565b9392505050565b60006001600160a01b03821661023c565b61066e81610654565b811461067957600080fd5b50565b803561023c81610665565b8061066e565b803561023c81610687565b600080604083850312156106ae576106ae600080fd5b6106b8848461067c565b91506106c7846020850161068d565b90509250929050565b8015155b82525050565b6020810161023c82846106d0565b806106d4565b6020810161023c82846106e8565b60008060006060848603121561071457610714600080fd5b61071e858561067c565b925061072d856020860161067c565b915061073c856040860161068d565b90509250925092565b60ff81166106d4565b6020810161023c8284610745565b60006020828403121561077157610771600080fd5b61064d838361067c565b6000806040838503121561079157610791600080fd5b61079b848461067c565b91506106c7846020850161067c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806107d457607f821691505b6020821081036107e6576107e66107aa565b50919050565b6106d481610654565b6060810161080382866107ec565b61081060208301856106e8565b61081d60408301846106e8565b949350505050565b6020810161023c82846107ec565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c61083356fea2646970667358221220fe5b081ab8295c13082e93f4d009a2615ec46fcb0f111b183ee53af0eaa9513f64736f6c634300081c0033", + Bin: "0x608060405234801561000f575f5ffd5b50604051610db7380380610db783398101604081905261002e916102b5565b8282600361003c838261040e565b506004610049828261040e565b50505061005c338261006460201b60201c565b505050610559565b6001600160a01b038216610096575f60405163ec442f0560e01b815260040161008d91906104e8565b60405180910390fd5b6100a15f83836100a5565b5050565b6001600160a01b0383166100cf578060025f8282546100c4919061050a565b9091555061012c9050565b6001600160a01b0383165f908152602081905260409020548181101561010e5783818360405163391434e360e21b815260040161008d93929190610523565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661014857600280548290039055610166565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101a9919061054b565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156101ef576101ef6101b6565b6040525050565b5f61020060405190565b905061020c82826101ca565b919050565b5f6001600160401b03821115610229576102296101b6565b601f19601f83011660200192915050565b8281835e505f910152565b5f61025761025284610211565b6101f6565b905082815283838301111561026d5761026d5f5ffd5b61027b83602083018461023a565b9392505050565b5f82601f830112610294576102945f5ffd5b81516102a4848260208601610245565b949350505050565b80515b92915050565b5f5f5f606084860312156102ca576102ca5f5ffd5b83516001600160401b038111156102e2576102e25f5ffd5b6102ee86828701610282565b602086015190945090506001600160401b0381111561030e5761030e5f5ffd5b61031a86828701610282565b92505061032a85604086016102ac565b90509250925092565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061035b57607f821691505b60208210810361036d5761036d610333565b50919050565b5f6102af61037e8381565b90565b61038a83610373565b81545f1960089490940293841b1916921b91909117905550565b5f6103b0818484610381565b505050565b818110156100a1576103c75f826103a4565b6001016103b5565b601f8211156103b0575f818152602090206020601f850104810160208510156103f55750805b6104076020601f8601048301826103b5565b5050505050565b81516001600160401b03811115610427576104276101b6565b6104318254610347565b61043c8282856103cf565b506020601f82116001811461046f575f83156104585750848201515b5f19600885021c1981166002850217855550610407565b5f84815260208120601f198516915b8281101561049e578785015182556020948501946001909201910161047e565b50848210156104ba57838701515f19601f87166008021c191681555b50505050600202600101905550565b5f6001600160a01b0382166102af565b6104e2816104c9565b82525050565b602081016102af82846104d9565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102af576102af6104f6565b806104e2565b6060810161053182866104d9565b61053e602083018561051d565b6102a4604083018461051d565b602081016102af828461051d565b610851806105665f395ff3fe608060405234801561000f575f5ffd5b506004361061009f575f3560e01c8063313ce5671161007257806395d89b411161005857806395d89b411461013c578063a9059cbb14610144578063dd62ed3e14610157575f5ffd5b8063313ce5671461010557806370a0823114610114575f5ffd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e157806323b872dd146100f2575b5f5ffd5b6100ab61018f565b6040516100b8919061060a565b60405180910390f35b6100d46100cf366004610664565b61021f565b6040516100b891906106a4565b6002545b6040516100b891906106b8565b6100d46101003660046106c6565b610238565b60126040516100b89190610715565b6100e5610122366004610723565b6001600160a01b03165f9081526020819052604090205490565b6100ab61025b565b6100d4610152366004610664565b61026a565b6100e5610165366004610740565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461019e90610781565b80601f01602080910402602001604051908101604052809291908181526020018280546101ca90610781565b80156102155780601f106101ec57610100808354040283529160200191610215565b820191905f5260205f20905b8154815290600101906020018083116101f857829003601f168201915b5050505050905090565b5f3361022c818585610277565b60019150505b92915050565b5f33610245858285610289565b610250858585610313565b506001949350505050565b60606004805461019e90610781565b5f3361022c818585610313565b61028483838360016103a2565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461030d57818110156102ff578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102f6939291906107b6565b60405180910390fd5b61030d84848484035f6103a2565b50505050565b6001600160a01b038316610355575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102f691906107e6565b6001600160a01b038216610397575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102f691906107e6565b6102848383836104a4565b6001600160a01b0384166103e4575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102f691906107e6565b6001600160a01b038316610426575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102f691906107e6565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561030d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161049691906106b8565b60405180910390a350505050565b6001600160a01b0383166104ce578060025f8282546104c39190610808565b909155506105449050565b6001600160a01b0383165f9081526020819052604090205481811015610526578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102f6939291906107b6565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166105605760028054829003905561057e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105c191906106b8565b60405180910390a3505050565b8281835e505f910152565b5f6105e2825190565b8084526020840193506105f98185602086016105ce565b601f01601f19169290920192915050565b6020808252810161061b81846105d9565b9392505050565b5f6001600160a01b038216610232565b61063b81610622565b8114610645575f5ffd5b50565b803561023281610632565b8061063b565b803561023281610653565b5f5f60408385031215610678576106785f5ffd5b6106828484610648565b91506106918460208501610659565b90509250929050565b8015155b82525050565b60208101610232828461069a565b8061069e565b6020810161023282846106b2565b5f5f5f606084860312156106db576106db5f5ffd5b6106e58585610648565b92506106f48560208601610648565b91506107038560408601610659565b90509250925092565b60ff811661069e565b60208101610232828461070c565b5f60208284031215610736576107365f5ffd5b61061b8383610648565b5f5f60408385031215610754576107545f5ffd5b61075e8484610648565b91506106918460208501610648565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061079557607f821691505b6020821081036107a7576107a761076d565b50919050565b61069e81610622565b606081016107c482866107ad565b6107d160208301856106b2565b6107de60408301846106b2565b949350505050565b6020810161023282846107ad565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610232576102326107f456fea26469706673582212202625812a0e573f7616e7b6dec452cbafd36cca84132156ab03c28e0e9e707efb64736f6c634300081c0033", } // ConstantSupplyERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go index ea851b901d..59273fcc6e 100644 --- a/contracts/generated/CrossChainMessenger/CrossChainMessenger.go +++ b/contracts/generated/CrossChainMessenger/CrossChainMessenger.go @@ -42,7 +42,7 @@ type StructsCrossChainMessage struct { // CrossChainMessengerMetaData contains all meta data concerning the CrossChainMessenger contract. var CrossChainMessengerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"error\",\"type\":\"bytes\"}],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"crossChainSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"encodeCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messageBusAddr\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"relayMessageWithProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b50610fe48061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b7cf1ee116100505780639b7cf1ee146100d5578063a1a227fa146100e8578063c4d66de8146100f957600080fd5b80630671b22e146100775780635b76f28b1461008c57806363012de5146100b5575b600080fd5b61008a61008536600461078c565b61010c565b005b61009f61009a366004610884565b610211565b6040516100ac9190610933565b60405180910390f35b6001546100c8906001600160a01b031681565b6040516100ac9190610953565b61008a6100e3366004610961565b610292565b6000546001600160a01b03166100c8565b61008a6101073660046109a4565b610388565b610118848484846104e8565b61012560208501856109a4565b600180546001600160a01b0319166001600160a01b0392909216919091179055600061015460808601866109c3565b8101906101619190610b96565b905060008082600001516001600160a01b03165a84602001516040516101879190610bf3565b60006040518083038160008787f1925050503d80600081146101c5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ca565b606091505b5091509150816101f8578060405163a5fa8d2b60e01b81526004016101ef9190610933565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602091820152604051610279929101610c4c565b60405160208183030381529060405290505b9392505050565b61029b816105e1565b6102a860208201826109a4565b600180546001600160a01b0319166001600160a01b039290921691909117905560006102d760808301836109c3565b8101906102e49190610b96565b905060008082600001516001600160a01b03165a846020015160405161030a9190610bf3565b60006040518083038160008787f1925050503d8060008114610348576040519150601f19603f3d011682016040523d82523d6000602084013e61034d565b606091505b509150915081610372578060405163a5fa8d2b60e01b81526004016101ef9190610933565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103d35750825b905060008267ffffffffffffffff1660011480156103f05750303b155b9050811580156103fe575080155b15610435576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561046957845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104e057845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104d790600190610c78565b60405180910390a15b505050505050565b6000546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d290610537908790879087908790600401610ea7565b60006040518083038186803b15801561054f57600080fd5b505afa158015610563573d6000803e3d6000fd5b5050505060008460405160200161057a9190610ee5565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156105c25760405162461bcd60e51b81526004016101ef90610f2a565b6000908152600260205260409020805460ff1916600117905550505050565b6000546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c729061062a908490600401610ee5565b602060405180830381865afa158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b9190610f4d565b6106875760405162461bcd60e51b81526004016101ef90610f9e565b60008160405160200161069a9190610ee5565b60408051601f1981840301815291815281516020928301206000818152600290935291205490915060ff16156106e25760405162461bcd60e51b81526004016101ef90610f2a565b6000908152600260205260409020805460ff1916600117905550565b600060c0828403121561071357610713600080fd5b50919050565b60008083601f84011261072e5761072e600080fd5b50813567ffffffffffffffff81111561074957610749600080fd5b60208301915083602082028301111561076457610764600080fd5b9250929050565b805b811461077857600080fd5b50565b80356107868161076b565b92915050565b600080600080606085870312156107a5576107a5600080fd5b843567ffffffffffffffff8111156107bf576107bf600080fd5b6107cb878288016106fe565b945050602085013567ffffffffffffffff8111156107eb576107eb600080fd5b6107f787828801610719565b9350935050610809866040870161077b565b905092959194509250565b60006001600160a01b038216610786565b61076d81610814565b803561078681610825565b60008083601f84011261084e5761084e600080fd5b50813567ffffffffffffffff81111561086957610869600080fd5b60208301915083600182028301111561076457610764600080fd5b60008060006040848603121561089c5761089c600080fd5b6108a6858561082e565b9250602084013567ffffffffffffffff8111156108c5576108c5600080fd5b6108d186828701610839565b92509250509250925092565b60005b838110156108f85781810151838201526020016108e0565b50506000910152565b600061090b825190565b8084526020840193506109228185602086016108dd565b601f01601f19169290920192915050565b6020808252810161028b8184610901565b61094d81610814565b82525050565b602081016107868284610944565b60006020828403121561097657610976600080fd5b813567ffffffffffffffff81111561099057610990600080fd5b61099c848285016106fe565b949350505050565b6000602082840312156109b9576109b9600080fd5b61028b838361082e565b6000808335601e19368590030181126109de576109de600080fd5b8301915050803567ffffffffffffffff8111156109fd576109fd600080fd5b60208201915060018102360382131561076457610764600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610a6d57610a6d610a18565b6040525050565b6000610a7f60405190565b9050610a8b8282610a47565b919050565b600067ffffffffffffffff821115610aaa57610aaa610a18565b601f19601f83011660200192915050565b82818337506000910152565b6000610ada610ad584610a90565b610a74565b9050828152838383011115610af157610af1600080fd5b61028b836020830184610abb565b600082601f830112610b1357610b13600080fd5b61028b83833560208501610ac7565b600060608284031215610b3757610b37600080fd5b610b416060610a74565b9050610b4d838361082e565b8152602082013567ffffffffffffffff811115610b6c57610b6c600080fd5b610b7884828501610aff565b602083015250610b8b836040840161077b565b604082015292915050565b600060208284031215610bab57610bab600080fd5b813567ffffffffffffffff811115610bc557610bc5600080fd5b61099c84828501610b22565b6000610bdb825190565b610be98185602086016108dd565b9290920192915050565b6107868183610bd1565b8061094d565b80516000906060840190610c178582610944565b5060208301518482036020860152610c2f8282610901565b9150506040830151610c446040860182610bfd565b509392505050565b6020808252810161028b8184610c03565b600067ffffffffffffffff8216610786565b61094d81610c5d565b602081016107868284610c6f565b506000610786602083018361082e565b67ffffffffffffffff811661076d565b803561078681610c96565b5060006107866020830183610ca6565b67ffffffffffffffff811661094d565b63ffffffff811661076d565b803561078681610cd1565b5060006107866020830183610cdd565b63ffffffff811661094d565b6000808335601e1936859003018112610d1f57610d1f600080fd5b830160208101925035905067ffffffffffffffff811115610d4257610d42600080fd5b3681900382131561076457610764600080fd5b818352602083019250610d69828483610abb565b50601f01601f19160190565b60ff811661076d565b803561078681610d75565b5060006107866020830183610d7e565b60ff811661094d565b600060c08301610db28380610c86565b610dbc8582610944565b50610dca6020840184610cb1565b610dd76020860182610cc1565b50610de56040840184610ce8565b610df26040860182610cf8565b50610e006060840184610ce8565b610e0d6060860182610cf8565b50610e1b6080840184610d04565b8583036080870152610e2e838284610d55565b92505050610e3f60a0840184610d89565b610c4460a0860182610d99565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610e9057610e90600080fd5b602083029250610ea1838584610e4c565b50500190565b60608082528101610eb88187610da2565b90508181036020830152610ecd818587610e55565b9050610edc6040830184610bfd565b95945050505050565b6020808252810161028b8184610da2565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161078681610ef6565b80151561076d565b805161078681610f3a565b600060208284031215610f6257610f62600080fd5b61028b8383610f42565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610f24565b6020808252810161078681610f6c56fea2646970667358221220bb78e5175ae1a8e6f7e3b36dad222ebb1b7350e8a522f67a17d968c2076f3fd564736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b50610f688061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061006f575f3560e01c80639b7cf1ee1161004d5780639b7cf1ee146100d1578063a1a227fa146100e4578063c4d66de8146100f4575f5ffd5b80630671b22e146100735780635b76f28b1461008857806363012de5146100b1575b5f5ffd5b610086610081366004610760565b610107565b005b61009b61009636600461084e565b610205565b6040516100a891906108df565b60405180910390f35b6001546100c4906001600160a01b031681565b6040516100a891906108ff565b6100866100df36600461090d565b610285565b5f546001600160a01b03166100c4565b61008661010236600461094d565b610374565b610113848484846104d1565b610120602085018561094d565b600180546001600160a01b0319166001600160a01b03929092169190911790555f61014e608086018661096a565b81019061015b9190610b2d565b90505f5f825f01516001600160a01b03165a846020015160405161017f9190610b86565b5f604051808303815f8787f1925050503d805f81146101b9576040519150601f19603f3d011682016040523d82523d5f602084013e6101be565b606091505b5091509150816101ec578060405163a5fa8d2b60e01b81526004016101e391906108df565b60405180910390fd5b5050600180546001600160a01b03191690555050505050565b60606040518060600160405280856001600160a01b0316815260200184848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093855250505060209182015260405161026c929101610bde565b60405160208183030381529060405290505b9392505050565b61028e816105c2565b61029b602082018261094d565b600180546001600160a01b0319166001600160a01b03929092169190911790555f6102c9608083018361096a565b8101906102d69190610b2d565b90505f5f825f01516001600160a01b03165a84602001516040516102fa9190610b86565b5f604051808303815f8787f1925050503d805f8114610334576040519150601f19603f3d011682016040523d82523d5f602084013e610339565b606091505b50915091508161035e578060405163a5fa8d2b60e01b81526004016101e391906108df565b5050600180546001600160a01b03191690555050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156103be5750825b90505f8267ffffffffffffffff1660011480156103da5750303b155b9050811580156103e8575080155b1561041f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561045357845468ff00000000000000001916680100000000000000001785555b5f80546001600160a01b0388166001600160a01b03199182161790915560018054909116905583156104c957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906104c090600190610c09565b60405180910390a15b505050505050565b5f546040517fe138a8d20000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063e138a8d29061051f908790879087908790600401610e2d565b5f6040518083038186803b158015610535575f5ffd5b505afa158015610547573d5f5f3e3d5ffd5b505050505f8460405160200161055d9190610e6b565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16156105a45760405162461bcd60e51b81526004016101e390610eb0565b5f908152600260205260409020805460ff1916600117905550505050565b5f546040517f33a88c720000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906333a88c729061060a908490600401610e6b565b602060405180830381865afa158015610625573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106499190610ed3565b6106655760405162461bcd60e51b81526004016101e390610f22565b5f816040516020016106779190610e6b565b60408051601f1981840301815291815281516020928301205f818152600290935291205490915060ff16156106be5760405162461bcd60e51b81526004016101e390610eb0565b5f908152600260205260409020805460ff1916600117905550565b5f60c082840312156106ec576106ec5f5ffd5b50919050565b5f5f83601f840112610705576107055f5ffd5b50813567ffffffffffffffff81111561071f5761071f5f5ffd5b602083019150836020820283011115610739576107395f5ffd5b9250929050565b805b811461074c575f5ffd5b50565b803561075a81610740565b92915050565b5f5f5f5f60608587031215610776576107765f5ffd5b843567ffffffffffffffff81111561078f5761078f5f5ffd5b61079b878288016106d9565b945050602085013567ffffffffffffffff8111156107ba576107ba5f5ffd5b6107c6878288016106f2565b93509350506107d8866040870161074f565b905092959194509250565b5f6001600160a01b03821661075a565b610742816107e3565b803561075a816107f3565b5f5f83601f84011261081a5761081a5f5ffd5b50813567ffffffffffffffff811115610834576108345f5ffd5b602083019150836001820283011115610739576107395f5ffd5b5f5f5f60408486031215610863576108635f5ffd5b61086d85856107fc565b9250602084013567ffffffffffffffff81111561088b5761088b5f5ffd5b61089786828701610807565b92509250509250925092565b8281835e505f910152565b5f6108b7825190565b8084526020840193506108ce8185602086016108a3565b601f01601f19169290920192915050565b6020808252810161027e81846108ae565b6108f9816107e3565b82525050565b6020810161075a82846108f0565b5f60208284031215610920576109205f5ffd5b813567ffffffffffffffff811115610939576109395f5ffd5b610945848285016106d9565b949350505050565b5f60208284031215610960576109605f5ffd5b61027e83836107fc565b5f808335601e1936859003018112610983576109835f5ffd5b8301915050803567ffffffffffffffff8111156109a1576109a15f5ffd5b602082019150600181023603821315610739576107395f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715610a0e57610a0e6109bb565b6040525050565b5f610a1f60405190565b9050610a2b82826109e8565b919050565b5f67ffffffffffffffff821115610a4957610a496109bb565b601f19601f83011660200192915050565b82818337505f910152565b5f610a77610a7284610a30565b610a15565b9050828152838383011115610a8d57610a8d5f5ffd5b61027e836020830184610a5a565b5f82601f830112610aad57610aad5f5ffd5b61027e83833560208501610a65565b5f60608284031215610acf57610acf5f5ffd5b610ad96060610a15565b9050610ae583836107fc565b8152602082013567ffffffffffffffff811115610b0357610b035f5ffd5b610b0f84828501610a9b565b602083015250610b22836040840161074f565b604082015292915050565b5f60208284031215610b4057610b405f5ffd5b813567ffffffffffffffff811115610b5957610b595f5ffd5b61094584828501610abc565b5f610b6e825190565b610b7c8185602086016108a3565b9290920192915050565b61075a8183610b65565b806108f9565b80515f906060840190610ba985826108f0565b5060208301518482036020860152610bc182826108ae565b9150506040830151610bd66040860182610b90565b509392505050565b6020808252810161027e8184610b96565b5f67ffffffffffffffff821661075a565b6108f981610bef565b6020810161075a8284610c00565b505f61075a60208301836107fc565b67ffffffffffffffff8116610742565b803561075a81610c26565b505f61075a6020830183610c36565b67ffffffffffffffff81166108f9565b63ffffffff8116610742565b803561075a81610c60565b505f61075a6020830183610c6c565b63ffffffff81166108f9565b5f808335601e1936859003018112610cab57610cab5f5ffd5b830160208101925035905067ffffffffffffffff811115610ccd57610ccd5f5ffd5b36819003821315610739576107395f5ffd5b818352602083019250610cf3828483610a5a565b50601f01601f19160190565b60ff8116610742565b803561075a81610cff565b505f61075a6020830183610d08565b60ff81166108f9565b5f60c08301610d3a8380610c17565b610d4485826108f0565b50610d526020840184610c41565b610d5f6020860182610c50565b50610d6d6040840184610c77565b610d7a6040860182610c86565b50610d886060840184610c77565b610d956060860182610c86565b50610da36080840184610c92565b8583036080870152610db6838284610cdf565b92505050610dc760a0840184610d13565b610bd660a0860182610d22565b82818337505050565b8183526020830192505f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610e1657610e165f5ffd5b602083029250610e27838584610dd4565b50500190565b60608082528101610e3e8187610d2b565b90508181036020830152610e53818587610ddd565b9050610e626040830184610b90565b95945050505050565b6020808252810161027e8184610d2b565b60198152602081017f4d65737361676520616c726561647920636f6e73756d65642e00000000000000815290505b60200190565b6020808252810161075a81610e7c565b801515610742565b805161075a81610ec0565b5f60208284031215610ee657610ee65f5ffd5b61027e8383610ec8565b601f8152602081017f4d657373616765206e6f7420666f756e64206f722066696e616c697a65642e0081529050610eaa565b6020808252810161075a81610ef056fea26469706673582212200ef313e498f1ccf9950e7937600660c957919b356919d078cc067380b4e1b4ef64736f6c634300081c0033", } // CrossChainMessengerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ECDSA/ECDSA.go b/contracts/generated/ECDSA/ECDSA.go index ff7d12469b..dc91c71a5e 100644 --- a/contracts/generated/ECDSA/ECDSA.go +++ b/contracts/generated/ECDSA/ECDSA.go @@ -32,7 +32,7 @@ var ( // ECDSAMetaData contains all meta data concerning the ECDSA contract. var ECDSAMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c608f31ab95dd3b5ce51dc7fda8d8594f29d5172a355d98cbccb0212cf5c103b64736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212201d3df944474da3cc0b7efd490d4638e75c4b0a5d318c49e30f6bc7d368c48bd064736f6c634300081c0033", } // ECDSAABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ERC1967Proxy/ERC1967Proxy.go b/contracts/generated/ERC1967Proxy/ERC1967Proxy.go index b30754ae96..eff93cacaa 100644 --- a/contracts/generated/ERC1967Proxy/ERC1967Proxy.go +++ b/contracts/generated/ERC1967Proxy/ERC1967Proxy.go @@ -32,7 +32,7 @@ var ( // ERC1967ProxyMetaData contains all meta data concerning the ERC1967Proxy contract. var ERC1967ProxyMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}]", - Bin: "0x60806040526040516104c83803806104c883398101604081905261002291610365565b61002c8282610033565b5050610403565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610086576100818282610109565b505050565b61008e610182565b5050565b806001600160a01b03163b6000036100c85780604051634c9c8ce360e01b81526004016100bf91906103c9565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012691906103f9565b600060405180830381855af49150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5090925090506101778583836101a3565b925050505b92915050565b34156101a15760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b8576101b3826101f9565b6101f2565b81511580156101cf57506001600160a01b0384163b155b156101ef5783604051639996b31560e01b81526004016100bf91906103c9565b50805b9392505050565b8051156102095780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60006001600160a01b03821661017c565b61023f81610225565b811461022257600080fd5b805161017c81610236565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561029057610290610255565b6040525050565b60006102a260405190565b90506102ae828261026b565b919050565b60006001600160401b038211156102cc576102cc610255565b601f19601f83011660200192915050565b60005b838110156102f85781810151838201526020016102e0565b50506000910152565b600061031461030f846102b3565b610297565b905082815283838301111561032b5761032b600080fd5b6101f28360208301846102dd565b600082601f83011261034d5761034d600080fd5b815161035d848260208601610301565b949350505050565b6000806040838503121561037b5761037b600080fd5b610385848461024a565b60208401519092506001600160401b038111156103a4576103a4600080fd5b6103b085828601610339565b9150509250929050565b6103c381610225565b82525050565b6020810161017c82846103ba565b60006103e1825190565b6103ef8185602086016102dd565b9290920192915050565b61017c81836103d7565b60b7806104116000396000f3fe6080604052600a600c565b005b60186014601a565b605e565b565b600060597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e808015607c573d6000f35b3d6000fdfea264697066735822122066d3d78a32860920cee3e1088ebb8679b983ca693d9bf0e5254c68f2d35e4d1364736f6c634300081c0033", + Bin: "0x60806040526040516104923803806104928339810160408190526100229161033c565b61002c8282610033565b50506103d6565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115610085576100808282610107565b505050565b61008d61017c565b5050565b806001600160a01b03163b5f036100c65780604051634c9c8ce360e01b81526004016100bd919061039d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161012391906103cc565b5f60405180830381855af49150503d805f811461015b576040519150601f19603f3d011682016040523d82523d5f602084013e610160565b606091505b50909250905061017185838361019d565b925050505b92915050565b341561019b5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b2576101ad826101f3565b6101ec565b81511580156101c957506001600160a01b0384163b155b156101e95783604051639996b31560e01b81526004016100bd919061039d565b50805b9392505050565b8051156102035780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b5f6001600160a01b038216610176565b6102388161021f565b811461021c575f5ffd5b80516101768161022f565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156102865761028661024d565b6040525050565b5f61029760405190565b90506102a38282610261565b919050565b5f6001600160401b038211156102c0576102c061024d565b601f19601f83011660200192915050565b8281835e505f910152565b5f6102ee6102e9846102a8565b61028d565b9050828152838383011115610304576103045f5ffd5b6101ec8360208301846102d1565b5f82601f830112610324576103245f5ffd5b81516103348482602086016102dc565b949350505050565b5f5f60408385031215610350576103505f5ffd5b61035a8484610242565b60208401519092506001600160401b03811115610378576103785f5ffd5b61038485828601610312565b9150509250929050565b6103978161021f565b82525050565b60208101610176828461038e565b5f6103b4825190565b6103c28185602086016102d1565b9290920192915050565b61017681836103ab565b60b0806103e25f395ff3fe6080604052600a600c565b005b60186014601a565b605d565b565b5f60587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156076573d5ff35b3d5ffdfea2646970667358221220009f1261a1ec8b4d87ff54c25d816495d207b04d42d2b605d3be8e6a2406578264736f6c634300081c0033", } // ERC1967ProxyABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ERC1967Utils/ERC1967Utils.go b/contracts/generated/ERC1967Utils/ERC1967Utils.go index 11fd9ddec3..a6ba104d81 100644 --- a/contracts/generated/ERC1967Utils/ERC1967Utils.go +++ b/contracts/generated/ERC1967Utils/ERC1967Utils.go @@ -32,7 +32,7 @@ var ( // ERC1967UtilsMetaData contains all meta data concerning the ERC1967Utils contract. var ERC1967UtilsMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"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\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220119e23d3037aca42a1fe273a94ec7561409ce1c2bff988010f652b59a5870b8864736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122056c321f301dd34a5ceea3c5df2284dafe4395bef5055d475f365961111be3e9f64736f6c634300081c0033", } // ERC1967UtilsABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/EthereumBridge/EthereumBridge.go b/contracts/generated/EthereumBridge/EthereumBridge.go index 4970dacda6..77b5c07584 100644 --- a/contracts/generated/EthereumBridge/EthereumBridge.go +++ b/contracts/generated/EthereumBridge/EthereumBridge.go @@ -32,7 +32,7 @@ var ( // EthereumBridgeMetaData contains all meta data concerning the EthereumBridge contract. var EthereumBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"remoteAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"localAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"CreatedWrappedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20Fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wrappedToken\",\"type\":\"address\"}],\"name\":\"hasTokenMapping\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"remoteBridge\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"localToRemoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"crossChainAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"onCreateTokenCommand\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"remoteToLocalToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"valueTransferFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"wrappedTokens\",\"outputs\":[{\"internalType\":\"contractWrappedERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60806040526001805463ffffffff60a01b19169055348015601f57600080fd5b50612b268061002f6000396000f3fe6080604052600436106100ca5760003560e01c806375cb2672116100745780639e405b711161004e5780639e405b7114610253578063a381c8e214610289578063d5c6b5041461029c576100f0565b806375cb2672146101cb57806383bece4d146101eb5780639813c7b21461020b576100f0565b8063458ffd63116100a5578063458ffd631461018b578063485cc955146101ab5780636a17539014610154576100f0565b80628d48e31461010857806307d7fb9a146101545780631888d71214610176576100f0565b366100f05760405162461bcd60e51b81526004016100e790610de6565b60405180910390fd5b60405162461bcd60e51b81526004016100e790610e30565b34801561011457600080fd5b5061013e610123366004610e73565b6004602052600090815260409020546001600160a01b031681565b60405161014b9190610ea8565b60405180910390f35b34801561016057600080fd5b506101696102df565b60405161014b9190610ebc565b610189610184366004610e73565b610358565b005b34801561019757600080fd5b506101896101a6366004610f1c565b610485565b3480156101b757600080fd5b506101896101c6366004610fa9565b6105df565b3480156101d757600080fd5b506101896101e6366004610e73565b61074a565b3480156101f757600080fd5b50610189610206366004610ff2565b610825565b34801561021757600080fd5b50610246610226366004610e73565b6001600160a01b0390811660009081526002602052604090205416151590565b60405161014b9190611043565b34801561025f57600080fd5b5061013e61026e366004610e73565b6003602052600090815260409020546001600160a01b031681565b610189610297366004610ff2565b61095a565b3480156102a857600080fd5b506102d26102b7366004610e73565b6002602052600090815260409020546001600160a01b031681565b60405161014b9190611070565b60006102f36001546001600160a01b031690565b6001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561032f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103539190611089565b905090565b600034116103785760405162461bcd60e51b81526004016100e7906110da565b6001546001600160a01b03166001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e49190611089565b3410156104035760405162461bcd60e51b81526004016100e790611142565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906104509085908390600401611152565b6000604051808303818588803b15801561046957600080fd5b505af115801561047d573d6000803e3d6000fd5b505050505050565b6005546000546001600160a01b03918216911633146104b65760405162461bcd60e51b81526004016100e7906111c5565b806001600160a01b03166104c8610b87565b6001600160a01b0316146104ee5760405162461bcd60e51b81526004016100e79061122d565b60008585858560405161050090610d7f565b61050d9493929190611269565b604051809103906000f080158015610529573d6000803e3d6000fd5b506001600160a01b038082166000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca906105cd908a9084908b908b908b908b9061129a565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561062a5750825b905060008267ffffffffffffffff1660011480156106475750303b155b905081158015610655575080155b1561068c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106c057845468ff00000000000000001916680100000000000000001785555b6106c98761074a565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561074157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061073890600190611304565b60405180910390a15b50505050505050565b610752610bff565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f5919061131d565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005546000546001600160a01b03918216911633146108565760405162461bcd60e51b81526004016100e7906111c5565b806001600160a01b0316610868610b87565b6001600160a01b03161461088e5760405162461bcd60e51b81526004016100e79061122d565b6001600160a01b038085166000908152600460209081526040808320548416808452600290925290912054909116806108d95760405162461bcd60e51b81526004016100e790611394565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad906109209087908990600401611152565b600060405180830381600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b03808416600090815260026020526040902054166109915760405162461bcd60e51b81526004016100e7906113d6565b6001600160a01b03808416600090815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb906109ed9033908790600401611152565b600060405180830381600087803b158015610a0757600080fd5b505af1158015610a1b573d6000803e3d6000fd5b5050506001600160a01b038086166000908152600360205260408082205490519193507f83bece4d0000000000000000000000000000000000000000000000000000000092610a7392911690879087906024016113e6565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050610ae66001546001600160a01b031690565b6001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190611089565b341015610b655760405162461bcd60e51b81526004016100e79061146e565b600554610b80906001600160a01b0316826000808034610c68565b5050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610353919061131d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610c66576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006040518060600160405280886001600160a01b0316815260200187815260200185815250604051602001610c9e919061151d565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa91859174010000000000000000000000000000000000000000900463ffffffff16906014610cf28361155d565b91906101000a81548163ffffffff021916908363ffffffff1602179055508885886040518663ffffffff1660e01b8152600401610d329493929190611595565b60206040518083038185885af1158015610d50573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7591906115f5565b5050505050505050565b6114dc8061161583390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610df681610d8c565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b60208082528101610df681610dfc565b60006001600160a01b038216610df6565b610e5a81610e40565b8114610e6557600080fd5b50565b8035610df681610e51565b600060208284031215610e8857610e88600080fd5b610e928383610e68565b9392505050565b610ea281610e40565b82525050565b60208101610df68284610e99565b80610ea2565b60208101610df68284610eb6565b60008083601f840112610edf57610edf600080fd5b50813567ffffffffffffffff811115610efa57610efa600080fd5b602083019150836001820283011115610f1557610f15600080fd5b9250929050565b600080600080600060608688031215610f3757610f37600080fd5b610f418787610e68565b9450602086013567ffffffffffffffff811115610f6057610f60600080fd5b610f6c88828901610eca565b9450945050604086013567ffffffffffffffff811115610f8e57610f8e600080fd5b610f9a88828901610eca565b92509250509295509295909350565b60008060408385031215610fbf57610fbf600080fd5b610fc98484610e68565b9150610fd88460208501610e68565b90509250929050565b80610e5a565b8035610df681610fe1565b60008060006060848603121561100a5761100a600080fd5b6110148585610e68565b92506110238560208601610fe7565b91506110328560408601610e68565b90509250925092565b801515610ea2565b60208101610df6828461103b565b6000610df682610e40565b6000610df682611051565b610ea28161105c565b60208101610df68284611067565b8051610df681610fe1565b60006020828403121561109e5761109e600080fd5b610e92838361107e565b600d8152602081017f4e6f7468696e672073656e742e0000000000000000000000000000000000000081529050610e2a565b60208082528101610df6816110a8565b602c8152602081017f496e73756666696369656e742066756e647320746f207075626c69736820766181527f6c7565207472616e73666572000000000000000000000000000000000000000060208201529050610de0565b60208082528101610df6816110ea565b604081016111608285610e99565b610e926020830184610eb6565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e676572210000000000000000000000000000000060208201529050610de0565b60208082528101610df68161116d565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e6465722100000000000000000000000000000060208201529050610de0565b60208082528101610df6816111d5565b82818337506000910152565b81835260208301925061125d82848361123d565b50601f01601f19160190565b6040808252810161127b818688611249565b90508181036020830152611290818486611249565b9695505050505050565b608081016112a88289610e99565b6112b56020830188610e99565b81810360408301526112c8818688611249565b905081810360608301526112dd818486611249565b98975050505050505050565b600067ffffffffffffffff8216610df6565b610ea2816112e9565b60208101610df682846112fb565b8051610df681610e51565b60006020828403121561133257611332600080fd5b610e928383611312565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e2100000000000000000000000000000000000000000060208201529050610de0565b60208082528101610df68161133c565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e000000000000000000000081529050610e2a565b60208082528101610df6816113a4565b606081016113f48286610e99565b6114016020830185610eb6565b61140e6040830184610e99565b949350505050565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050610de0565b60208082528101610df681611416565b60005b83811015611499578181015183820152602001611481565b50506000910152565b60006114ac825190565b8084526020840193506114c381856020860161147e565b601f01601f19169290920192915050565b805160009060608401906114e88582610e99565b506020830151848203602086015261150082826114a2565b91505060408301516115156040860182610eb6565b509392505050565b60208082528101610e9281846114d4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016115795761157961152e565b5060010190565b63ffffffff8116610ea2565b60ff8116610ea2565b608081016115a38287611580565b6115b06020830186611580565b81810360408301526115c281856114a2565b90506115d1606083018461158c565b95945050505050565b67ffffffffffffffff8116610e5a565b8051610df6816115da565b60006020828403121561160a5761160a600080fd5b610e9283836115ea56fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801561003657600080fd5b506040516114dc3803806114dc83398101604081905261005591610276565b81818181600361006583826103ce565b50600461007282826103ce565b50505050506100a77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336100af60201b60201c565b50505061048d565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166101555760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561010d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610159565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561019a5761019a61015f565b6040525050565b60006101ac60405190565b90506101b88282610175565b919050565b60006001600160401b038211156101d6576101d661015f565b601f19601f83011660200192915050565b60005b838110156102025781810151838201526020016101ea565b50506000910152565b600061021e610219846101bd565b6101a1565b905082815283838301111561023557610235600080fd5b6102438360208301846101e7565b9392505050565b600082601f83011261025e5761025e600080fd5b815161026e84826020860161020b565b949350505050565b6000806040838503121561028c5761028c600080fd5b82516001600160401b038111156102a5576102a5600080fd5b6102b18582860161024a565b602085015190935090506001600160401b038111156102d2576102d2600080fd5b6102de8582860161024a565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061031257607f821691505b602082108103610324576103246102e8565b50919050565b60006101596103368381565b90565b6103428361032a565b815460001960089490940293841b1916921b91909117905550565b600061036a818484610339565b505050565b8181101561038a5761038260008261035d565b60010161036f565b5050565b601f82111561036a576000818152602090206020601f850104810160208510156103b55750805b6103c76020601f86010483018261036f565b5050505050565b81516001600160401b038111156103e7576103e761015f565b6103f182546102fe565b6103fc82828561038e565b506020601f82116001811461043157600083156104195750848201515b600019600885021c19811660028502178555506103c7565b600084815260208120601f198516915b828110156104615787850151825560209485019460019092019101610441565b508482101561047e5783870151600019601f87166008021c191681555b50505050600202600101905550565b6110408061049c6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c72565b60405180910390f35b6101876103a0565b6040516101769190610cd6565b6101696101a2366004610d1d565b610432565b6002545b6040516101769190610d5b565b6101cb6101c6366004610d1d565b61044a565b005b6101696101db366004610d69565b6104b4565b6101ab6101ee366004610db2565b60009081526007602052604090206001015490565b6101cb610211366004610dd1565b6104da565b60126040516101769190610e09565b6101cb610233366004610dd1565b610505565b6101ab610246366004610e17565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610dd1565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d1d565b6105d6565b6101ab600081565b6101696102dc366004610d1d565b61060a565b6101cb6102ef366004610dd1565b610618565b6101ab610302366004610e36565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e6c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e6c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610ecc565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f0e565b6060600480546103af90610e6c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f1e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610f88565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610f96565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610f88565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610f88565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610f88565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610f88565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610f88565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d5b565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fc6565b6001600160a01b038316610b0c578060026000828254610b019190610ff7565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610f96565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d5b565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6104d38383610c3e565b8015155b82525050565b6020810161039a8284610c68565b60005b83811015610c9b578181015183820152602001610c83565b50506000910152565b6000610cae825190565b808452602084019350610cc5818560208601610c80565b601f01601f19169290920192915050565b602080825281016104d38184610ca4565b60006001600160a01b03821661039a565b610c3381610ce7565b803561039a81610cf8565b80610c33565b803561039a81610d0c565b60008060408385031215610d3357610d33600080fd5b610d3d8484610d01565b9150610d4c8460208501610d12565b90509250929050565b80610c6c565b6020810161039a8284610d55565b600080600060608486031215610d8157610d81600080fd5b610d8b8585610d01565b9250610d9a8560208601610d01565b9150610da98560408601610d12565b90509250925092565b600060208284031215610dc757610dc7600080fd5b6104d38383610d12565b60008060408385031215610de757610de7600080fd5b610df18484610d12565b9150610d4c8460208501610d01565b60ff8116610c6c565b6020810161039a8284610e00565b600060208284031215610e2c57610e2c600080fd5b6104d38383610d01565b60008060408385031215610e4c57610e4c600080fd5b610df18484610d01565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610e8057607f821691505b602082108103610e9257610e92610e56565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610e98565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ec6565b6020808252810161039a81610edc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c6c81610ce7565b6020810161039a8284610f7f565b60608101610fa48286610f7f565b610fb16020830185610d55565b610fbe6040830184610d55565b949350505050565b60408101610fd48285610f7f565b6104d36020830184610d55565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610fe156fea264697066735822122036fe937a11594b4347e4151962e0b8b942fa2a563051f8b1f3e8d8082e9a0f4064736f6c634300081c0033a2646970667358221220fb40e939fbcf7c241d7a1bc1a7da00c87204c1f7581547143af2cbac78c716c664736f6c634300081c0033", + Bin: "0x60806040526001805463ffffffff60a01b19169055348015601e575f5ffd5b50612a1a8061002c5f395ff3fe6080604052600436106100c9575f3560e01c806375cb2672116100735780639e405b711161004d5780639e405b7114610249578063a381c8e21461027d578063d5c6b50414610290576100ef565b806375cb2672146101c557806383bece4d146101e45780639813c7b214610203576100ef565b8063458ffd63116100a4578063458ffd6314610187578063485cc955146101a65780636a17539014610151576100ef565b80628d48e31461010757806307d7fb9a146101515780631888d71214610172576100ef565b366100ef5760405162461bcd60e51b81526004016100e690610daa565b60405180910390fd5b60405162461bcd60e51b81526004016100e690610df4565b348015610112575f5ffd5b5061013b610121366004610e35565b60046020525f90815260409020546001600160a01b031681565b6040516101489190610e68565b60405180910390f35b34801561015c575f5ffd5b506101656102d1565b6040516101489190610e7c565b610185610180366004610e35565b610347565b005b348015610192575f5ffd5b506101856101a1366004610ed8565b61046d565b3480156101b1575f5ffd5b506101856101c0366004610f5f565b6105c1565b3480156101d0575f5ffd5b506101856101df366004610e35565b61072a565b3480156101ef575f5ffd5b506101856101fe366004610fa6565b610802565b34801561020e575f5ffd5b5061023c61021d366004610e35565b6001600160a01b039081165f9081526002602052604090205416151590565b6040516101489190610ff4565b348015610254575f5ffd5b5061013b610263366004610e35565b60036020525f90815260409020546001600160a01b031681565b61018561028b366004610fa6565b610930565b34801561029b575f5ffd5b506102c46102aa366004610e35565b60026020525f90815260409020546001600160a01b031681565b604051610148919061101f565b5f6102e46001546001600160a01b031690565b6001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561031e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103429190611038565b905090565b5f34116103665760405162461bcd60e51b81526004016100e690611087565b6001546001600160a01b03166001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d09190611038565b3410156103ef5760405162461bcd60e51b81526004016100e6906110ef565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb90349061043c90859083906004016110ff565b5f604051808303818588803b158015610453575f5ffd5b505af1158015610465573d5f5f3e3d5ffd5b505050505050565b6005545f546001600160a01b039182169116331461049d5760405162461bcd60e51b81526004016100e690611172565b806001600160a01b03166104af610b52565b6001600160a01b0316146104d55760405162461bcd60e51b81526004016100e6906111da565b5f858585856040516104e690610d43565b6104f39493929190611215565b604051809103905ff08015801561050c573d5f5f3e3d5ffd5b506001600160a01b038082165f818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff199081168617909155600383528184208054968f169682168717905594835260049091529081902080549093169091179091555190915081907f30c05779f384e0ae9d43bbf7ec4417f28bdc53d02a35551b6eb270a9c4c71dca906105af908a9084908b908b908b908b90611246565b60405180910390a15050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f8115801561060b5750825b90505f8267ffffffffffffffff1660011480156106275750303b155b905081158015610635575080155b1561066c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106a057845468ff00000000000000001916680100000000000000001785555b6106a98761072a565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561072157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610718906001906112af565b60405180910390a15b50505050505050565b610732610bc6565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa1580156107ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d291906112c8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6005545f546001600160a01b03918216911633146108325760405162461bcd60e51b81526004016100e690611172565b806001600160a01b0316610844610b52565b6001600160a01b03161461086a5760405162461bcd60e51b81526004016100e6906111da565b6001600160a01b038085165f908152600460209081526040808320548416808452600290925290912054909116806108b45760405162461bcd60e51b81526004016100e69061133d565b6040517f979005ad0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063979005ad906108fb90879089906004016110ff565b5f604051808303815f87803b158015610912575f5ffd5b505af1158015610924573d5f5f3e3d5ffd5b50505050505050505050565b6001600160a01b038084165f90815260026020526040902054166109665760405162461bcd60e51b81526004016100e69061137f565b6001600160a01b038084165f90815260026020526040908190205490517f1dd319cb0000000000000000000000000000000000000000000000000000000081529116908190631dd319cb906109c190339087906004016110ff565b5f604051808303815f87803b1580156109d8575f5ffd5b505af11580156109ea573d5f5f3e3d5ffd5b5050506001600160a01b038086165f908152600360205260408082205490519193507f83bece4d0000000000000000000000000000000000000000000000000000000092610a41929116908790879060240161138f565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050610ab46001546001600160a01b031690565b6001600160a01b031662a1b8156040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b129190611038565b341015610b315760405162461bcd60e51b81526004016100e690611417565b600554610b4b906001600160a01b0316825f5f5f34610c2f565b5050505050565b5f5f5f9054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034291906112c8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610c2d576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6040518060600160405280886001600160a01b0316815260200187815260200185815250604051602001610c6491906114ab565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa91859174010000000000000000000000000000000000000000900463ffffffff16906014610cb8836114e9565b91906101000a81548163ffffffff021916908363ffffffff1602179055508885886040518663ffffffff1660e01b8152600401610cf89493929190611520565b60206040518083038185885af1158015610d14573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d399190611580565b5050505050505050565b6114478061159e83390190565b60238152602081017f436f6e747261637420646f6573206e6f7420737570706f72742072656365697681527f6528290000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610dba81610d50565b92915050565b601d8152602081017f66616c6c6261636b2829206d6574686f6420756e737570706f72746564000000815290505b60200190565b60208082528101610dba81610dc0565b5f6001600160a01b038216610dba565b610e1d81610e04565b8114610e27575f5ffd5b50565b8035610dba81610e14565b5f60208284031215610e4857610e485f5ffd5b610e528383610e2a565b9392505050565b610e6281610e04565b82525050565b60208101610dba8284610e59565b80610e62565b60208101610dba8284610e76565b5f5f83601f840112610e9d57610e9d5f5ffd5b50813567ffffffffffffffff811115610eb757610eb75f5ffd5b602083019150836001820283011115610ed157610ed15f5ffd5b9250929050565b5f5f5f5f5f60608688031215610eef57610eef5f5ffd5b610ef98787610e2a565b9450602086013567ffffffffffffffff811115610f1757610f175f5ffd5b610f2388828901610e8a565b9450945050604086013567ffffffffffffffff811115610f4457610f445f5ffd5b610f5088828901610e8a565b92509250509295509295909350565b5f5f60408385031215610f7357610f735f5ffd5b610f7d8484610e2a565b9150610f8c8460208501610e2a565b90509250929050565b80610e1d565b8035610dba81610f95565b5f5f5f60608486031215610fbb57610fbb5f5ffd5b610fc58585610e2a565b9250610fd48560208601610f9b565b9150610fe38560408601610e2a565b90509250925092565b801515610e62565b60208101610dba8284610fec565b5f610dba82610e04565b5f610dba82611002565b610e628161100c565b60208101610dba8284611016565b8051610dba81610f95565b5f6020828403121561104b5761104b5f5ffd5b610e52838361102d565b600d8152602081017f4e6f7468696e672073656e742e0000000000000000000000000000000000000081529050610dee565b60208082528101610dba81611055565b602c8152602081017f496e73756666696369656e742066756e647320746f207075626c69736820766181527f6c7565207472616e73666572000000000000000000000000000000000000000060208201529050610da4565b60208082528101610dba81611097565b6040810161110d8285610e59565b610e526020830184610e76565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e676572210000000000000000000000000000000060208201529050610da4565b60208082528101610dba8161111a565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e6465722100000000000000000000000000000060208201529050610da4565b60208082528101610dba81611182565b82818337505f910152565b8183526020830192506112098284836111ea565b50601f01601f19160190565b604080825281016112278186886111f5565b9050818103602083015261123c8184866111f5565b9695505050505050565b608081016112548289610e59565b6112616020830188610e59565b81810360408301526112748186886111f5565b905081810360608301526112898184866111f5565b98975050505050505050565b5f67ffffffffffffffff8216610dba565b610e6281611295565b60208101610dba82846112a6565b8051610dba81610e14565b5f602082840312156112db576112db5f5ffd5b610e5283836112bd565b602b8152602081017f526563656976696e672061737365747320666f7220756e6b6e6f776e2077726181527f7070656420746f6b656e2100000000000000000000000000000000000000000060208201529050610da4565b60208082528101610dba816112e5565b60158152602081017f4e6f206d617070696e6720666f7220746f6b656e2e000000000000000000000081529050610dee565b60208082528101610dba8161134d565b6060810161139d8286610e59565b6113aa6020830185610e76565b6113b76040830184610e59565b949350505050565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050610da4565b60208082528101610dba816113bf565b8281835e505f910152565b5f61143b825190565b808452602084019350611452818560208601611427565b601f01601f19169290920192915050565b80515f9060608401906114768582610e59565b506020830151848203602086015261148e8282611432565b91505060408301516114a36040860182610e76565b509392505050565b60208082528101610e528184611463565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b63ffffffff165f63fffffffe198201611504576115046114bc565b5060010190565b63ffffffff8116610e62565b60ff8116610e62565b6080810161152e828761150b565b61153b602083018661150b565b818103604083015261154d8185611432565b905061155c6060830184611517565b95945050505050565b67ffffffffffffffff8116610e1d565b8051610dba81611565565b5f60208284031215611593576115935f5ffd5b610e52838361157556fe6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f3179055348015610035575f5ffd5b5060405161144738038061144783398101604081905261005491610251565b818181816003610064838261039e565b506004610071828261039e565b50505050506100a67fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336100ae60201b60201c565b505050610459565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610152575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561010a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610155565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156101945761019461015b565b6040525050565b5f6101a560405190565b90506101b1828261016f565b919050565b5f6001600160401b038211156101ce576101ce61015b565b601f19601f83011660200192915050565b8281835e505f910152565b5f6101fc6101f7846101b6565b61019b565b9050828152838383011115610212576102125f5ffd5b6102208360208301846101df565b9392505050565b5f82601f830112610239576102395f5ffd5b81516102498482602086016101ea565b949350505050565b5f5f60408385031215610265576102655f5ffd5b82516001600160401b0381111561027d5761027d5f5ffd5b61028985828601610227565b602085015190935090506001600160401b038111156102a9576102a95f5ffd5b6102b585828601610227565b9150509250929050565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806102e757607f821691505b6020821081036102f9576102f96102bf565b50919050565b5f61015561030a8381565b90565b610316836102ff565b81545f1960089490940293841b1916921b91909117905550565b5f61033c81848461030d565b505050565b8181101561035b576103535f82610330565b600101610341565b5050565b601f82111561033c575f818152602090206020601f850104810160208510156103855750805b6103976020601f860104830182610341565b5050505050565b81516001600160401b038111156103b7576103b761015b565b6103c182546102d3565b6103cc82828561035f565b506020601f8211600181146103ff575f83156103e85750848201515b5f19600885021c1981166002850217855550610397565b5f84815260208120601f198516915b8281101561042e578785015182556020948501946001909201910161040e565b508482101561044a57838701515f19601f87166008021c191681555b50505050600202600101905550565b610fe1806104665f395ff3fe608060405234801561000f575f5ffd5b5060043610610149575f3560e01c806336568abe116100c7578063979005ad1161007d578063a9059cbb11610063578063a9059cbb146102c2578063d547741f146102d5578063dd62ed3e146102e8575f5ffd5b8063979005ad146102a8578063a217fddf146102bb575f5ffd5b806375b238fc116100ad57806375b238fc1461024157806391d148541461026857806395d89b41146102a0575f5ffd5b806336568abe1461021b57806370a082311461022e575f5ffd5b80631dd319cb1161011c578063248a9ca311610102578063248a9ca3146101d75780632f2ff15d146101f9578063313ce5671461020c575f5ffd5b80631dd319cb146101af57806323b872dd146101c4575f5ffd5b806301ffc9a71461014d57806306fdde0314610176578063095ea7b31461018b57806318160ddd1461019e575b5f5ffd5b61016061015b366004610c18565b6102fb565b60405161016d9190610c3f565b60405180910390f35b61017e610393565b60405161016d9190610c89565b610160610199366004610ccf565b610423565b6002545b60405161016d9190610d0b565b6101c26101bd366004610ccf565b61043a565b005b6101606101d2366004610d19565b6104a4565b6101a26101e5366004610d5f565b5f9081526007602052604090206001015490565b6101c2610207366004610d7c565b6104c9565b601260405161016d9190610db2565b6101c2610229366004610d7c565b6104f3565b6101a261023c366004610dc0565b61053f565b6101a27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610160610276366004610d7c565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61017e6105b2565b6101c26102b6366004610ccf565b6105c1565b6101a25f81565b6101606102d0366004610ccf565b6105f5565b6101c26102e3366004610d7c565b610602565b6101a26102f6366004610ddd565b610626565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061038d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103a290610e0f565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e0f565b80156104195780601f106103f057610100808354040283529160200191610419565b820191905f5260205f20905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b5f336104308185856106de565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610464816106eb565b8161046e8461053f565b10156104955760405162461bcd60e51b815260040161048c90610e6f565b60405180910390fd5b61049f83836106f8565b505050565b5f336104b1858285610730565b6104bc858585610793565b60019150505b9392505050565b5f828152600760205260409020600101546104e3816106eb565b6104ed83836107f0565b50505050565b6001600160a01b0381163314610535576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61049f828261089b565b5f6001600160a01b038216320361056d576001600160a01b0382165f9081526020819052604090205461038d565b6001600160a01b038216330361059a576001600160a01b0382165f9081526020819052604090205461038d565b60405162461bcd60e51b815260040161048c90610eb1565b6060600480546103a290610e0f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756105eb816106eb565b61049f8383610920565b5f33610430818585610793565b5f8281526007602052604090206001015461061c816106eb565b6104ed838361089b565b5f326001600160a01b03841614806106465750326001600160a01b038316145b15610678576001600160a01b038084165f908152600160209081526040808320938616835292905220545b905061038d565b336001600160a01b03841614806106975750336001600160a01b038316145b156106c6576001600160a01b038084165f90815260016020908152604080832093861683529290522054610671565b60405162461bcd60e51b815260040161048c90610ec1565b61049f8383836001610954565b6106f58133610a56565b50565b6001600160a01b038216610721575f604051634b637e8f60e11b815260040161048c9190610f2b565b61072c825f83610ab5565b5050565b5f61073b8484610626565b90505f1981146104ed5781811015610785578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161048c93929190610f39565b6104ed84848484035f610954565b6001600160a01b0383166107bc575f604051634b637e8f60e11b815260040161048c9190610f2b565b6001600160a01b0382166107e5575f60405163ec442f0560e01b815260040161048c9190610f2b565b61049f838383610ab5565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610894575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561084c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161038d565b505f61038d565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1615610894575f8381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161038d565b6001600160a01b038216610949575f60405163ec442f0560e01b815260040161048c9190610f2b565b61072c5f8383610ab5565b6001600160a01b038416610996575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161048c9190610f2b565b6001600160a01b0383166109d8575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161048c9190610f2b565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104ed57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a489190610d0b565b60405180910390a350505050565b5f8281526007602090815260408083206001600160a01b038516845290915290205460ff1661072c5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161048c929190610f69565b6001600160a01b038316610adf578060025f828254610ad49190610f98565b90915550610b559050565b6001600160a01b0383165f9081526020819052604090205481811015610b37578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161048c93929190610f39565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610b7157600280548290039055610b8f565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd29190610d0b565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106f5575f5ffd5b803561038d81610bdf565b5f60208284031215610c2b57610c2b5f5ffd5b6104c28383610c0d565b8015155b82525050565b6020810161038d8284610c35565b8281835e505f910152565b5f610c61825190565b808452602084019350610c78818560208601610c4d565b601f01601f19169290920192915050565b602080825281016104c28184610c58565b5f6001600160a01b03821661038d565b610c0381610c9a565b803561038d81610caa565b80610c03565b803561038d81610cbe565b5f5f60408385031215610ce357610ce35f5ffd5b610ced8484610cb3565b9150610cfc8460208501610cc4565b90509250929050565b80610c39565b6020810161038d8284610d05565b5f5f5f60608486031215610d2e57610d2e5f5ffd5b610d388585610cb3565b9250610d478560208601610cb3565b9150610d568560408601610cc4565b90509250925092565b5f60208284031215610d7257610d725f5ffd5b6104c28383610cc4565b5f5f60408385031215610d9057610d905f5ffd5b610d9a8484610cc4565b9150610cfc8460208501610cb3565b60ff8116610c39565b6020810161038d8284610da9565b5f60208284031215610dd357610dd35f5ffd5b6104c28383610cb3565b5f5f60408385031215610df157610df15f5ffd5b610d9a8484610cb3565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610e2357607f821691505b602082108103610e3557610e35610dfb565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161038d81610e3b565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610e69565b6020808252810161038d81610e7f565b6020808252810161038d81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c3981610c9a565b6020810161038d8284610f22565b60608101610f478286610f22565b610f546020830185610d05565b610f616040830184610d05565b949350505050565b60408101610f778285610f22565b6104c26020830184610d05565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561038d5761038d610f8456fea2646970667358221220ba6b4996116e560a54ab485db6a674eeef7255da269323f7a3bdf4b4aa8995c964736f6c634300081c0033a2646970667358221220a50eef4d7c37697b5da0a8a5a57fc72aa1999ba80341ff7e20ddd1d9b045cb5964736f6c634300081c0033", } // EthereumBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Fees/Fees.go b/contracts/generated/Fees/Fees.go index a2f57a233d..db5f3e0b71 100644 --- a/contracts/generated/Fees/Fees.go +++ b/contracts/generated/Fees/Fees.go @@ -32,7 +32,7 @@ var ( // FeesMetaData contains all meta data concerning the Fees contract. var FeesMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":[],\"name\":\"collectedFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"flatFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"eoaOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeForMessage\",\"type\":\"uint256\"}],\"name\":\"setMessageFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalCollectedFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610688806100d96000396000f3fe60806040526004361061007f5760003560e01c80639003adfe1161004e5780639003adfe1461012e578063afe997ea14610141578063da35a26f14610156578063f2fde38b1461017657600080fd5b80631a90a2191461008b57806323aa2a9d146100b2578063715018a6146100d45780638da5cb5b146100e957600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506000545b6040516100a99190610544565b60405180910390f35b3480156100be57600080fd5b506100d26100cd366004610570565b610196565b005b3480156100e057600080fd5b506100d26101a3565b3480156100f557600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516100a991906105b0565b34801561013a57600080fd5b504761009c565b34801561014d57600080fd5b506100d26101b7565b34801561016257600080fd5b506100d26101713660046105d2565b61021a565b34801561018257600080fd5b506100d261019136600461060a565b610362565b61019e6103bf565b600055565b6101ab6103bf565b6101b56000610433565b565b6101bf6103bf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610217573d6000803e3d6000fd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102655750825b905060008267ffffffffffffffff1660011480156102825750303b155b905081158015610290575080155b156102c7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102fb57845468ff00000000000000001916680100000000000000001785555b610304866104bc565b6000879055831561035957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061035090600190610644565b60405180910390a15b50505050505050565b61036a6103bf565b6001600160a01b0381166103b65760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103ad91906105b0565b60405180910390fd5b61021781610433565b336103f17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101b557336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103ad91906105b0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6104c46104cd565b61021781610534565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101b5576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036a6104cd565b805b82525050565b60208101610552828461053c565b92915050565b805b811461021757600080fd5b803561055281610558565b60006020828403121561058557610585600080fd5b61058f8383610565565b9392505050565b60006001600160a01b038216610552565b61053e81610596565b6020810161055282846105a7565b61055a81610596565b8035610552816105be565b600080604083850312156105e8576105e8600080fd5b6105f28484610565565b915061060184602085016105c7565b90509250929050565b60006020828403121561061f5761061f600080fd5b61058f83836105c7565b600067ffffffffffffffff8216610552565b61053e81610629565b60208101610552828461063b56fea264697066735822122080f0c01e34a6bfd9ed27e9c05c50a018ef9cc6e669f767856b4c30e98b70567764736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610668806100d65f395ff3fe60806040526004361061007c575f3560e01c80639003adfe1161004c5780639003adfe14610125578063afe997ea14610137578063da35a26f1461014b578063f2fde38b1461016a575f5ffd5b80631a90a2191461008757806323aa2a9d146100ac578063715018a6146100cd5780638da5cb5b146100e1575f5ffd5b3661008357005b5f5ffd5b348015610092575f5ffd5b505f545b6040516100a3919061052d565b60405180910390f35b3480156100b7575f5ffd5b506100cb6100c6366004610558565b610189565b005b3480156100d8575f5ffd5b506100cb610195565b3480156100ec575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516100a39190610595565b348015610130575f5ffd5b5047610096565b348015610142575f5ffd5b506100cb6101a8565b348015610156575f5ffd5b506100cb6101653660046105b7565b610208565b348015610175575f5ffd5b506100cb6101843660046105ed565b61034d565b6101916103a9565b5f55565b61019d6103a9565b6101a65f61041d565b565b6101b06103a9565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610205573d5f5f3e3d5ffd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156102525750825b90505f8267ffffffffffffffff16600114801561026e5750303b155b90508115801561027c575080155b156102b3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102e757845468ff00000000000000001916680100000000000000001785555b6102f0866104a5565b5f879055831561034457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061033b90600190610624565b60405180910390a15b50505050505050565b6103556103a9565b6001600160a01b0381166103a0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103979190610595565b60405180910390fd5b6102058161041d565b336103db7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101a657336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103979190610595565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6104ad6104b6565b6102058161051d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101a6576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103556104b6565b805b82525050565b6020810161053b8284610525565b92915050565b805b8114610205575f5ffd5b803561053b81610541565b5f6020828403121561056b5761056b5f5ffd5b610575838361054d565b9392505050565b5f6001600160a01b03821661053b565b6105278161057c565b6020810161053b828461058c565b6105438161057c565b803561053b816105a3565b5f5f604083850312156105cb576105cb5f5ffd5b6105d5848461054d565b91506105e484602085016105ac565b90509250929050565b5f60208284031215610600576106005f5ffd5b61057583836105ac565b5f67ffffffffffffffff821661053b565b6105278161060a565b6020810161053b828461061b56fea2646970667358221220967433f5f789e7ddf5c98d864dc08977bef9918a0090f27f767140698c95725564736f6c634300081c0033", } // FeesABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go index 9798bf4cb3..48c9285584 100644 --- a/contracts/generated/GasConsumerBalance/GasConsumerBalance.go +++ b/contracts/generated/GasConsumerBalance/GasConsumerBalance.go @@ -32,7 +32,7 @@ var ( // GasConsumerBalanceMetaData contains all meta data concerning the GasConsumerBalance contract. var GasConsumerBalanceMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"get_balance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"resetOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b50600080546001600160a01b03191633179055610239806100316000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806373cc802a1461005157806383197ef0146100a85780638da5cb5b146100b0578063c1cfb99a146100a6575b600080fd5b6100a661005f366004610185565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a66100e6565b6000546100d09073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100dd91906101ba565b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff163314610140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610137906101c8565b60405180910390fd5b30ff5b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61016c81610143565b811461017757600080fd5b50565b803561015d81610163565b60006020828403121561019a5761019a600080fd5b6101a4838361017a565b9392505050565b6101b481610143565b82525050565b6020810161015d82846101ab565b6020808252810161015d81601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea2646970667358221220eb83c2ccc2dee5bbd5dc37fdcbf0d1fe7c4fb313229649df273a57945213486564736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b505f80546001600160a01b0319163317905561022f8061002d5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806373cc802a1461004e57806383197ef0146100a45780638da5cb5b146100ac578063c1cfb99a146100a2575b5f5ffd5b6100a261005c36600461017d565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b6100a26100e1565b5f546100cb9073ffffffffffffffffffffffffffffffffffffffff1681565b6040516100d891906101b0565b60405180910390f35b5f5473ffffffffffffffffffffffffffffffffffffffff16331461013a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906101be565b60405180910390fd5b30ff5b5f73ffffffffffffffffffffffffffffffffffffffff82165b92915050565b6101658161013d565b811461016f575f5ffd5b50565b80356101568161015c565b5f60208284031215610190576101905f5ffd5b61019a8383610172565b9392505050565b6101aa8161013d565b82525050565b6020810161015682846101a1565b6020808252810161015681601581527f596f7520617265206e6f7420746865206f776e6572000000000000000000000060208201526040019056fea26469706673582212202a35857581c80dfb42043b9bc221c33e7afeeda7ce917e39c6f919b2b08c310964736f6c634300081c0033", } // GasConsumerBalanceABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Logger/Logger.go b/contracts/generated/Logger/Logger.go index a95363d0a3..f31c4517be 100644 --- a/contracts/generated/Logger/Logger.go +++ b/contracts/generated/Logger/Logger.go @@ -32,7 +32,7 @@ var ( // LoggerMetaData contains all meta data concerning the Logger contract. var LoggerMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"LogMessage\",\"type\":\"event\"}]", - Bin: "0x6101af610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80632e3c2a4d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046100eb565b61005c565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008d92919061015f565b60405180910390a15050565b60008083601f8401126100ae576100ae600080fd5b50813567ffffffffffffffff8111156100c9576100c9600080fd5b6020830191508360018202830111156100e4576100e4600080fd5b9250929050565b6000806020838503121561010157610101600080fd5b823567ffffffffffffffff81111561011b5761011b600080fd5b61012785828601610099565b92509250509250929050565b82818337506000910152565b818352602083019250610153828483610133565b50601f01601f19160190565b6020808252810161017181848661013f565b94935050505056fea264697066735822122074c816dc8a29f612e0f1c16fd3894703d303c4edadf0c07edb14dbda4a97219564736f6c634300081c0033", + Bin: "0x6101a4610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c80632e3c2a4d14610038575b5f5ffd5b818015610043575f5ffd5b506100576100523660046100e4565b610059565b005b7f96561394bac381230de4649200e8831afcab1f451881bbade9ef209f6dd30480828260405161008a929190610154565b60405180910390a15050565b5f5f83601f8401126100a9576100a95f5ffd5b50813567ffffffffffffffff8111156100c3576100c35f5ffd5b6020830191508360018202830111156100dd576100dd5f5ffd5b9250929050565b5f5f602083850312156100f8576100f85f5ffd5b823567ffffffffffffffff811115610111576101115f5ffd5b61011d85828601610096565b92509250509250929050565b82818337505f910152565b818352602083019250610148828483610129565b50601f01601f19160190565b60208082528101610166818486610134565b94935050505056fea26469706673582212205f973cec408ad42ff1341dc5b265c7cdb5671e6ec7ff1bb19a697b15b32ef42f64736f6c634300081c0033", } // LoggerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ManagementContract/ManagementContract.go b/contracts/generated/ManagementContract/ManagementContract.go index 2d7004b1f9..42bdd4f480 100644 --- a/contracts/generated/ManagementContract/ManagementContract.go +++ b/contracts/generated/ManagementContract/ManagementContract.go @@ -34,6 +34,10 @@ type StructsMetaRollup struct { Hash [32]byte Signature []byte LastSequenceNumber *big.Int + BlockHash [32]byte + MessageRoot [32]byte + BlockNumber *big.Int + BlobHash [32]byte } // StructsValueTransferMessage is an auto generated low-level Go binding around an user-defined struct. @@ -46,8 +50,8 @@ type StructsValueTransferMessage struct { // ManagementContractMetaData contains all meta data concerning the ManagementContract contract. var ManagementContractMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ImportantContractAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"messageBusAddress\",\"type\":\"address\"}],\"name\":\"LogManagementContractCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"NetworkSecretRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"NetworkSecretResponded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"RollupAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveRevoked\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"r\",\"type\":\"tuple\"}],\"name\":\"AddRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Attested\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"_msg\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"ExtractNativeValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetChallengePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetImportantContractKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"GetRollupByHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetRollupByNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetUniqueForkID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"GrantSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_enclaveID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initSecret\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_genesisAttestation\",\"type\":\"string\"}],\"name\":\"InitializeNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"IsSequencerEnclave\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IsWithdrawalAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"RequestNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"attesterID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"attesterSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseSecret\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"verifyAttester\",\"type\":\"bool\"}],\"name\":\"RespondNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RetrieveAllBridgeFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"RevokeSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_delay\",\"type\":\"uint256\"}],\"name\":\"SetChallengePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SetImportantContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_lastBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"blockNum\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"rollupNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"forkID\",\"type\":\"bytes32\"}],\"name\":\"addCrossChainMessagesRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"importantContractAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"importantContractKeys\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"}],\"name\":\"isBundleAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isBundleSaved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isWithdrawalSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchSeqNo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleMessageBus\",\"outputs\":[{\"internalType\":\"contractIMerkleTreeMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"contractIMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b50601733601b565b608c565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61551c8061009b6000396000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063728109961161010f578063a1a227fa116100a2578063db5d91b111610071578063db5d91b1146104a6578063e34fbfc8146104d2578063e874eb20146104e5578063f2fde38b146104f857600080fd5b8063a1a227fa14610450578063a4ab2faa14610470578063a52f433c14610483578063d4fab8871461049357600080fd5b806384154826116100de57806384154826146103ca57806387059edb146103ed5780638da5cb5b1461040057806398077e861461043057600080fd5b806372810996146103865780638129fc1c1461038e57806381be5385146103965780638236a7ba146103a957600080fd5b8063476657381161018757806368e103831161015657806368e10383146103435780636a30d26c146103565780636b9707d61461036b578063715018a61461037e57600080fd5b806347665738146102e95780635024621f146102fc5780635371a2161461030f578063568699c81461032257600080fd5b80632f0cb9e3116101c35780632f0cb9e3146102435780633e60a22f1461027357806343348b2f146102b4578063440c953b146102e057600080fd5b80620ddd27146101f457806303e72e4814610213578063073b6ef3146102285780631aca00ab1461023b575b600080fd5b6101fd600e5481565b60405161020a9190611b1e565b60405180910390f35b610226610221366004611c54565b61050b565b005b610226610236366004611dc9565b610613565b600f546101fd565b610266610251366004611e97565b600c6020526000908152604090205460ff1681565b60405161020a9190611ebe565b6102a7610281366004611ecc565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b60405161020a9190611f18565b6102666102c2366004611f26565b6001600160a01b031660009081526020819052604090205460ff1690565b6101fd60055481565b6102266102f7366004611f26565b6108a1565b61022661030a366004611e97565b610941565b61022661031d366004611fab565b61094e565b610335610330366004611e97565b610af3565b60405161020a9291906120ad565b6102266103513660046120cd565b610b49565b61035e610bed565b60405161020a91906121d0565b610226610379366004611f26565b610cc6565b610226610d56565b610226610d6a565b610226610def565b6102266103a43660046121f6565b610fca565b6103bc6103b7366004611e97565b6110c5565b60405161020a929190612231565b6102666103d8366004611e97565b600d6020526000908152604090205460ff1681565b6103bc6103fb366004611e97565b6111ad565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166102a7565b61044361043e366004611e97565b611224565b60405161020a919061223f565b600a54610463906001600160a01b031681565b60405161020a9190612292565b61026661047e3660046122a0565b6112d0565b600454610100900460ff16610266565b6102266104a13660046122ee565b61134e565b6102666104b4366004611f26565b6001600160a01b031660009081526001602052604090205460ff1690565b6102266104e0366004612395565b611456565b600b54610463906001600160a01b031681565b610226610506366004611f26565b61149d565b6105136114f4565b60006001600160a01b031660038360405161052e91906123ff565b908152604051908190036020019020546001600160a01b03160361058a57600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0161058883826124db565b505b8060038360405161059b91906123ff565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb590610607908490849061259b565b60405180910390a15050565b61061e8660ff6125d1565b43106106455760405162461bcd60e51b815260040161063c90612616565b60405180910390fd5b8543036106645760405162461bcd60e51b815260040161063c90612680565b854060008190036106875760405162461bcd60e51b815260040161063c906126c2565b8781146106a65760405162461bcd60e51b815260040161063c90612704565b60008381526008602052604090205482146106d35760405162461bcd60e51b815260040161063c90612746565b60006107418a8a8a8a6040516020016106ef94939291906127ae565b6040516020818303038152906040528051906020012087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156892505050565b6001600160a01b03811660009081526001602052604090205490915060ff1661077c5760405162461bcd60e51b815260040161063c90612824565b600e8a90556000805b885181101561087b57600b5489516001600160a01b039091169063b6aed0cb908b90849081106107b7576107b7612834565b60200260200101516107c890612854565b600f546107d590426125d1565b6040518363ffffffff1660e01b81526004016107f292919061288a565b600060405180830381600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050508189828151811061083757610837612834565b602002602001015161084890612854565b60405160200161085992919061288a565b60408051601f1981840301815291905280516020909101209150600101610785565b506000908152600d60205260409020805460ff1916600117905550505050505050505050565b6108a96114f4565b6001600160a01b03811660009081526020819052604090205460ff166108e15760405162461bcd60e51b815260040161063c906128d7565b6001600160a01b038116600090815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e76093690610936908390611f18565b60405180910390a150565b6109496114f4565b600f55565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f9061099d908790879087908790600401612a02565b60006040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506000846040516020016109e09190612a3b565b60408051601f1981840301815291815281516020928301206000818152600c90935291205490915060ff1615610a285760405162461bcd60e51b815260040161063c90612a7b565b6001600c600087604051602001610a3f9190612a3b565b60408051808303601f190181529181528151602092830120835282820193909352908201600020805460ff191693151593909317909255600a546001600160a01b0316916399a3ad2191610a9891908901908901611f26565b87604001356040518363ffffffff1660e01b8152600401610aba929190612a8b565b600060405180830381600087803b158015610ad457600080fd5b505af1158015610ae8573d6000803e3d6000fd5b505050505050505050565b604080516060808201835260008083526020830191909152918101829052600080610b1d856111ad565b9150915081610b325760009590945092505050565b600094855260086020526040909420549492505050565b60045460ff1615610b6c5760405162461bcd60e51b815260040161063c90612af1565b60048054600160ff1991821681179092556001600160a01b0387166000908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e76093690610bde908790611f18565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015610cbd578382906000526020600020018054610c309061241f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5c9061241f565b8015610ca95780601f10610c7e57610100808354040283529160200191610ca9565b820191906000526020600020905b815481529060010190602001808311610c8c57829003601f168201915b505050505081526020019060010190610c11565b50505050905090565b610cce6114f4565b6001600160a01b03811660009081526001602052604090205460ff16610d065760405162461bcd60e51b815260040161063c90612b33565b6001600160a01b03811660009081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b4790610936908390611f18565b610d5e6114f4565b610d686000611594565b565b610d726114f4565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da9090610dbb903390600401611f18565b600060405180830381600087803b158015610dd557600080fd5b505af1158015610de9573d6000803e3d6000fd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610e3a5750825b905060008267ffffffffffffffff166001148015610e575750303b155b905081158015610e65575080155b15610e9c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ed057845468ff00000000000000001916680100000000000000001785555b610ed933611612565b60006005556001600955604051610eef90611b09565b604051809103906000f080158015610f0b573d6000803e3d6000fd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf91610f7491611f18565b60405180910390a18315610fc357845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610bde90600190612b5e565b5050505050565b60006110188235610fde6020850185612b6c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061156892505050565b6001600160a01b03811660009081526020819052604090205490915060ff166110535760405162461bcd60e51b815260040161063c906128d7565b6001600160a01b03811660009081526001602052604090205460ff1661108b5760405162461bcd60e51b815260040161063c90612b33565b61109482611623565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a589061060790843590611b1e565b6040805160608082018352600080835260208084018390528385018290528582526006815284822085519384019095528454835260018501805492958694939092840191906111139061241f565b80601f016020809104026020016040519081016040528092919081815260200182805461113f9061241f565b801561118c5780601f106111615761010080835404028352916020019161118c565b820191906000526020600020905b81548152906001019060200180831161116f57829003601f168201915b50505091835250506002919091015460209091015280519094149492505050565b6040805160608082018352600080835260208301919091529181018290526000838152600760205260408120549081900361121157505060408051606081018252600080825282516020818101855282825283015291810182905290939092509050565b61121a816110c5565b9250925050915091565b6002818154811061123457600080fd5b90600052602060002001600091509050805461124f9061241f565b80601f016020809104026020016040519081016040528092919081815260200182805461127b9061241f565b80156112c85780601f1061129d576101008083540402835291602001916112c8565b820191906000526020600020905b8154815290600101906020018083116112ab57829003601f168201915b505050505081565b600080805b835181101561133557818482815181106112f1576112f1612834565b602002602001015161130290612854565b60405160200161131392919061288a565b60408051601f19818403018152919052805160209091012091506001016112d5565b506000908152600d602052604090205460ff1692915050565b6001600160a01b03851660009081526020819052604090205460ff16806113875760405162461bcd60e51b815260040161063c90612c19565b81156113ff5760006113bb8787866040516020016113a793929190612c51565b6040516020818303038152906040526116c7565b905060006113c98287611568565b9050876001600160a01b0316816001600160a01b0316146113fc5760405162461bcd60e51b815260040161063c90612ccd565b50505b6001600160a01b03808616600081815260208190526040808220805460ff191660011790555191928916917fb869e23ebc7c717d76e345eee8ec282612603e45c44f7ae5494b197c8d9d1be19190a3505050505050565b336001600160a01b03167f0b0ecdedd12079aa2d6c5e0186026c711cb0c8d04f1b724ba5880fb6328d43018383604051611491929190612cfd565b60405180910390a25050565b6114a56114f4565b6001600160a01b0381166114e85760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161063c9190611f18565b6114f181611594565b50565b336115267f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610d6857336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161063c9190611f18565b6000806000806115788686611702565b925092509250611588828261174f565b50909150505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61161a611855565b6114f1816118bc565b80356000908152600660205260409020819061163f8282612e72565b50506009546000908152600760205260409020813590819055611663600143612e7c565b4060405160200161167592919061288a565b60408051601f1981840301815291815281516020928301206009805460009081526008909452918320558054916116ab83612e8f565b9190505550600554816040013511156114f15760400135600555565b60006116d382516118c4565b826040516020016116e5929190612ea8565b604051602081830303815290604052805190602001209050919050565b6000806000835160410361173c5760208401516040850151606086015160001a61172e88828585611965565b955095509550505050611748565b50508151600091506002905b9250925092565b600082600381111561176357611763612ee4565b0361176c575050565b600182600381111561178057611780612ee4565b036117b7576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156117cb576117cb612ee4565b03611804576040517ffce698f700000000000000000000000000000000000000000000000000000000815261063c908290600401611b1e565b600382600381111561181857611818612ee4565b0361185157806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161063c9190611b1e565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610d68576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114a5611855565b606060006118d183611a27565b600101905060008167ffffffffffffffff8111156118f1576118f1611b2c565b6040519080825280601f01601f19166020018201604052801561191b576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611925575b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156119a05750600091506003905082611a1d565b6000600188888888604051600081526020016040526040516119c59493929190612f03565b6020604051602081039080840390855afa1580156119e7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611a1357506000925060019150829050611a1d565b9250600091508190505b9450945094915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611a70577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611a9c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611aba57662386f26fc10000830492506010015b6305f5e1008310611ad2576305f5e100830492506008015b6127108310611ae657612710830492506004015b60648310611af8576064830492506002015b600a831061158e5760010192915050565b6125ae80612f3983390190565b805b82525050565b6020810161158e8284611b16565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611b6857611b68611b2c565b6040525050565b6000611b7a60405190565b9050611b868282611b42565b919050565b600067ffffffffffffffff821115611ba557611ba5611b2c565b601f19601f83011660200192915050565b82818337506000910152565b6000611bd5611bd084611b8b565b611b6f565b9050828152838383011115611bec57611bec600080fd5b611bfa836020830184611bb6565b9392505050565b600082601f830112611c1557611c15600080fd5b611bfa83833560208501611bc2565b60006001600160a01b03821661158e565b611c3e81611c24565b81146114f157600080fd5b803561158e81611c35565b60008060408385031215611c6a57611c6a600080fd5b823567ffffffffffffffff811115611c8457611c84600080fd5b611c9085828601611c01565b925050611ca08460208501611c49565b90509250929050565b80611c3e565b803561158e81611ca9565b600067ffffffffffffffff821115611cd457611cd4611b2c565b5060209081020190565b6000611cec611bd084611cba565b83815290506020808201908402830185811115611d0b57611d0b600080fd5b835b81811015611d4a57803567ffffffffffffffff811115611d2f57611d2f600080fd5b611d3b88828801611c01565b84525060209283019201611d0d565b5050509392505050565b600082601f830112611d6857611d68600080fd5b611bfa83833560208501611cde565b60008083601f840112611d8c57611d8c600080fd5b50813567ffffffffffffffff811115611da757611da7600080fd5b602083019150836001820283011115611dc257611dc2600080fd5b9250929050565b60008060008060008060008060e0898b031215611de857611de8600080fd5b611df28a8a611caf565b9750611e018a60208b01611caf565b9650611e108a60408b01611caf565b9550606089013567ffffffffffffffff811115611e2f57611e2f600080fd5b611e3b8b828c01611d54565b955050608089013567ffffffffffffffff811115611e5b57611e5b600080fd5b611e678b828c01611d77565b9450945050611e798a60a08b01611caf565b9150611e888a60c08b01611caf565b90509295985092959890939650565b600060208284031215611eac57611eac600080fd5b611bfa8383611caf565b801515611b18565b6020810161158e8284611eb6565b600060208284031215611ee157611ee1600080fd5b813567ffffffffffffffff811115611efb57611efb600080fd5b611f0784828501611c01565b949350505050565b611b1881611c24565b6020810161158e8284611f0f565b600060208284031215611f3b57611f3b600080fd5b611bfa8383611c49565b600060808284031215611f5a57611f5a600080fd5b50919050565b60008083601f840112611f7557611f75600080fd5b50813567ffffffffffffffff811115611f9057611f90600080fd5b602083019150836020820283011115611dc257611dc2600080fd5b60008060008060c08587031215611fc457611fc4600080fd5b611fce8686611f45565b9350608085013567ffffffffffffffff811115611fed57611fed600080fd5b611ff987828801611f60565b935093505061200b8660a08701611caf565b905092959194509250565b60005b83811015612031578181015183820152602001612019565b50506000910152565b6000612044825190565b80845260208401935061205b818560208601612016565b601f01601f19169290920192915050565b805160009060608401906120808582611b16565b5060208301518482036020860152612098828261203a565b915050604083015161195d6040860182611b16565b604081016120bb8285611b16565b8181036020830152611f07818461206c565b6000806000806000606086880312156120e8576120e8600080fd5b6120f28787611c49565b9450602086013567ffffffffffffffff81111561211157612111600080fd5b61211d88828901611d77565b9450945050604086013567ffffffffffffffff81111561213f5761213f600080fd5b61214b88828901611d77565b92509250509295509295909350565b6000611bfa838361203a565b60200190565b6000612176825190565b808452602084019350836020820285016121908560200190565b60005b848110156121c457838303885281516121ac848261215a565b93505060208201602098909801979150600101612193565b50909695505050505050565b60208082528101611bfa818461216c565b600060608284031215611f5a57611f5a600080fd5b60006020828403121561220b5761220b600080fd5b813567ffffffffffffffff81111561222557612225600080fd5b611f07848285016121e1565b604081016120bb8285611eb6565b60208082528101611bfa818461203a565b600061158e6001600160a01b038316612267565b90565b6001600160a01b031690565b600061158e82612250565b600061158e82612273565b611b188161227e565b6020810161158e8284612289565b6000602082840312156122b5576122b5600080fd5b813567ffffffffffffffff8111156122cf576122cf600080fd5b611f0784828501611d54565b801515611c3e565b803561158e816122db565b600080600080600060a0868803121561230957612309600080fd5b6123138787611c49565b94506123228760208801611c49565b9350604086013567ffffffffffffffff81111561234157612341600080fd5b61234d88828901611c01565b935050606086013567ffffffffffffffff81111561236d5761236d600080fd5b61237988828901611c01565b92505061238987608088016122e3565b90509295509295909350565b600080602083850312156123ab576123ab600080fd5b823567ffffffffffffffff8111156123c5576123c5600080fd5b6123d185828601611d77565b92509250509250929050565b60006123e7825190565b6123f5818560208601612016565b9290920192915050565b61158e81836123dd565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061243357607f821691505b602082108103611f5a57611f5a612409565b600061158e6122648381565b61245a83612445565b815460001960089490940293841b1916921b91909117905550565b6000612482818484612451565b505050565b818110156118515761249a600082612475565b600101612487565b601f821115612482576000818152602090206020601f850104810160208510156124c95750805b610fc36020601f860104830182612487565b815167ffffffffffffffff8111156124f5576124f5611b2c565b6124ff825461241f565b61250a8282856124a2565b506020601f82116001811461253f57600083156125275750848201515b600019600885021c1981166002850217855550610fc3565b600084815260208120601f198516915b8281101561256f578785015182556020948501946001909201910161254f565b508482101561258c5783870151600019601f87166008021c191681555b50505050600202600101905550565b604080825281016125ac818561203a565b9050611bfa6020830184611f0f565b634e487b7160e01b600052601160045260246000fd5b8082018082111561158e5761158e6125bb565b60158152602081017f426c6f636b2062696e64696e6720746f6f206f6c64000000000000000000000081529050612166565b6020808252810161158e816125e4565b60368152602081017f43616e6e6f742062696e6420746f2074686520626c6f636b207468617420697381527f206265696e672063757272656e746c79206d696e656400000000000000000000602082015290505b60400190565b6020808252810161158e81612626565b60128152602081017f556e6b6e6f776e20626c6f636b2068617368000000000000000000000000000081529050612166565b6020808252810161158e81612690565b60168152602081017f426c6f636b2062696e64696e67206d69736d617463680000000000000000000081529050612166565b6020808252810161158e816126d2565b600e8152602081017f496e76616c696420666f726b494400000000000000000000000000000000000081529050612166565b6020808252810161158e81612714565b6000612760825190565b8084526020840193508360208202850161277a8560200190565b60005b848110156121c45783830388528151612796848261215a565b9350506020820160209890980197915060010161277d565b608081016127bc8287611b16565b6127c96020830186611b16565b6127d66040830185611b16565b81810360608301526127e88184612756565b9695505050505050565b60178152602081017f61646472657373206e6f7420612073657175656e63657200000000000000000081529050612166565b6020808252810161158e816127f2565b634e487b7160e01b600052603260045260246000fd5b600061158e825190565b600061285e825190565b6020830161286b8161284a565b9250506020811015611f5a576000196020919091036008021b16919050565b604081016128988285611b16565b611bfa6020830184611b16565b60168152602081017f656e636c6176654944206e6f742061747465737465640000000000000000000081529050612166565b6020808252810161158e816128a5565b50600061158e6020830183611c49565b50600061158e6020830183611caf565b67ffffffffffffffff8116611c3e565b803561158e81612907565b50600061158e6020830183612917565b67ffffffffffffffff8116611b18565b61294c81806128e7565b6129568382611f0f565b5061296460208201826128e7565b6129716020840182611f0f565b5061297f60408201826128f7565b61298c6040840182611b16565b5061299a6060820182612922565b6124826060840182612932565b82818337505050565b81835260208301925060007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156129eb576129eb600080fd5b6020830292506129fc8385846129a7565b50500190565b60c08101612a108287612942565b8181036080830152612a238185876129b0565b9050612a3260a0830184611b16565b95945050505050565b6080810161158e8284612942565b60188152602081017f7769746864726177616c20616c7265616479207370656e74000000000000000081529050612166565b6020808252810161158e81612a49565b604081016128988285611f0f565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f65640000000000000000000000000000000000000000000000000000000000006020820152905061267a565b6020808252810161158e81612a99565b60198152602081017f656e636c6176654944206e6f7420612073657175656e6365720000000000000081529050612166565b6020808252810161158e81612b01565b600067ffffffffffffffff821661158e565b611b1881612b43565b6020810161158e8284612b55565b6000808335601e1936859003018112612b8757612b87600080fd5b8301915050803567ffffffffffffffff811115612ba657612ba6600080fd5b602082019150600181023603821315611dc257611dc2600080fd5b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f74656400000000000000000000000000000000000000000000000000000000006020820152905061267a565b6020808252810161158e81612bc1565b600061158e8260601b90565b600061158e82612c29565b611b18612c4c82611c24565b612c35565b612c5b8185612c40565b601401612c688184612c40565b601401611f0781836123dd565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d6174636800000000000000000000000000000000000000006020820152905061267a565b6020808252810161158e81612c75565b818352602083019250612cf1828483611bb6565b50601f01601f19160190565b60208082528101611f07818486612cdd565b6000813561158e81611ca9565b60008161158e565b612d2d82612d1c565b612d3961226482612d1c565b8255505050565b8267ffffffffffffffff811115612d5957612d59611b2c565b612d63825461241f565b612d6e8282856124a2565b506000601f821160018114612da35760008315612d8b5750848201355b600019600885021c1981166002850217855550612dfd565b600084815260209020601f19841690835b82811015612dd45787850135825560209485019460019092019101612db4565b5084821015612df1576000196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b612482838383612d40565b612e1982612445565b80612d39565b8180612e2a81612d0f565b9050612e368184612d24565b5050612e456020830183612b6c565b612e53818360018601612e05565b50506040820180612e6382612d0f565b9050610de98160028501612e10565b6118518282612e1f565b8181038181111561158e5761158e6125bb565b600060018201612ea157612ea16125bb565b5060010190565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a01612ed881846123dd565b9050611bfa81836123dd565b634e487b7160e01b600052602160045260246000fd5b60ff8116611b18565b60808101612f118287611b16565b612f1e6020830186612efa565b612f2b6040830185611b16565b612a326060830184611b1656fe608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612455806101596000396000f3fe6080604052600436106101115760003560e01c80638da5cb5b116100a5578063b1454caa11610074578063b6aed0cb11610059578063b6aed0cb1461038b578063e138a8d2146103ab578063f2fde38b146103cb57610185565b8063b1454caa1461034b578063b201246f1461036b57610185565b80638da5cb5b146102a65780639730886d146102eb57806399a3ad211461030b578063ab53bddc1461032b57610185565b8063346633fb116100e1578063346633fb1461023e57806336d2da9014610251578063485cc95514610271578063715018a61461029157610185565b8062a1b815146101a65780630fcfbd11146101d15780630fe9188e146101f157806333a88c721461021157610185565b36610185576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb90349061015690339083906004016111ea565b6000604051808303818588803b15801561016f57600080fd5b505af1158015610183573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161019d90611239565b60405180910390fd5b3480156101b257600080fd5b506101bb6103eb565b6040516101c89190611249565b60405180910390f35b3480156101dd57600080fd5b506101bb6101ec366004611272565b610477565b3480156101fd57600080fd5b5061018361020c3660046112c5565b6104d6565b34801561021d57600080fd5b5061023161022c366004611272565b61051c565b6040516101c891906112ec565b61018361024c36600461130e565b61056e565b34801561025d57600080fd5b5061018361026c366004611346565b6106bd565b34801561027d57600080fd5b5061018361028c366004611365565b61073c565b34801561029d57600080fd5b506101836108a7565b3480156102b257600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101c89190611394565b3480156102f757600080fd5b506101836103063660046113a2565b6108bb565b34801561031757600080fd5b5061018361032636600461130e565b610a27565b34801561033757600080fd5b5061018361034636600461130e565b610aa7565b61035e61035936600461146b565b610b70565b6040516101c891906114f8565b34801561037757600080fd5b50610183610386366004611566565b610c7d565b34801561039757600080fd5b506101836103a63660046115d1565b610d7e565b3480156103b757600080fd5b506101836103c63660046115f1565b610dc4565b3480156103d757600080fd5b506101836103e6366004611346565b610f0f565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691631a90a2199160048083019260209291908290030181865afa15801561044e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104729190611679565b905090565b6000808260405160200161048b9190611837565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806104cf5760405162461bcd60e51b815260040161019d90611886565b9392505050565b6104de610f66565b600081815260046020526040812054900361050b5760405162461bcd60e51b815260040161019d906118c8565b600090815260046020526040812055565b600080826040516020016105309190611837565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906105665750428111155b949350505050565b60003411801561057d57508034145b6105995760405162461bcd60e51b815260040161019d90611930565b60035434906001600160a01b03161561065d5760006105b66103eb565b9050803410156105d85760405162461bcd60e51b815260040161019d90611970565b6105e28134611996565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610634576040519150601f19603f3d011682016040523d82523d6000602084013e610639565b606091505b505090508061065a5760405162461bcd60e51b815260040161019d90611a01565b50505b600061066833610fda565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516106af929190611a11565b60405180910390a350505050565b6106c5610f66565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610712576040519150601f19603f3d011682016040523d82523d6000602084013e610717565b606091505b50509050806107385760405162461bcd60e51b815260040161019d90611a5e565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107875750825b905060008267ffffffffffffffff1660011480156107a45750303b155b9050811580156107b2575080155b156107e9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561081d57845468ff00000000000000001916680100000000000000001785555b61082687611038565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561089e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061089590600190611a92565b60405180910390a15b50505050505050565b6108af610f66565b6108b96000611049565b565b60006108c8600130611aa0565b90506108fb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109225750336001600160a01b038216145b61093e5760405162461bcd60e51b815260040161019d90611af5565b600061094a8342611b05565b905060008460405160200161095f9190611837565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109a35760405162461bcd60e51b815260040161019d90611b70565b6000818152602081815260408220849055600191906109c490880188611346565b6001600160a01b0316815260208101919091526040016000908120906109f06080880160608901611b80565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161089e8282611fbe565b610a2f610f66565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a7c576040519150601f19603f3d011682016040523d82523d6000602084013e610a81565b606091505b5050905080610aa25760405162461bcd60e51b815260040161019d90611a5e565b505050565b6000610ab4600130611aa0565b9050610ae77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610b0e5750336001600160a01b038216145b610b2a5760405162461bcd60e51b815260040161019d90611af5565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610b639190611249565b60405180910390a2505050565b6003546000906001600160a01b031615610c26576000610b8e6103eb565b905080341015610bb05760405162461bcd60e51b815260040161019d90612020565b6003546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610bfd576040519150601f19603f3d011682016040523d82523d6000602084013e610c02565b606091505b5050905080610c235760405162461bcd60e51b815260040161019d90611a01565b50505b610c2f33610fda565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610c6c9796959493929190612030565b60405180910390a195945050505050565b6000818152600460205260408120549003610caa5760405162461bcd60e51b815260040161019d906120eb565b600081815260046020526040902054421015610cd85760405162461bcd60e51b815260040161019d90612137565b600084604051602001610ceb91906121bc565b60405160208183030381529060405280519060200120604051602001610d1191906121fc565b604051602081830303815290604052805190602001209050610d5b84848484604051602001610d40919061221b565b604051602081830303815290604052805190602001206110c7565b610d775760405162461bcd60e51b815260040161019d90612285565b5050505050565b610d86610f66565b60008281526004602052604090205415610db25760405162461bcd60e51b815260040161019d906122ed565b60009182526004602052604090912055565b6000818152600460205260408120549003610df15760405162461bcd60e51b815260040161019d906120eb565b600081815260046020526040902054421015610e1f5760405162461bcd60e51b815260040161019d90612137565b6000610e2e6020860186611346565b610e3e60408701602088016122fd565b610e4e6060880160408901611b80565b610e5e6080890160608a01611b80565b610e6b60808a018a611cd7565b610e7b60c08c0160a08d0161231c565b604051602001610e919796959493929190612030565b604051602081830303815290604052805190602001209050600081604051602001610ebc919061236d565b604051602081830303815290604052805190602001209050610eeb85858584604051602001610d40919061221b565b610f075760405162461bcd60e51b815260040161019d906123d5565b505050505050565b610f17610f66565b6001600160a01b038116610f5a5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161019d9190611394565b610f6381611049565b50565b33610f987f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108b957336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161019d9190611394565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff16916001919061100d83856123e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b6110406110df565b610f6381611146565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000826110d586868561114e565b1495945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166108b9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f176110df565b600081815b848110156111875761117d8287878481811061117157611171612409565b90506020020135611190565b9150600101611153565b50949350505050565b60008183106111ac5760008281526020849052604090206111bb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b0382166111be565b6111de816111c4565b82525050565b806111de565b604081016111f882856111d5565b6104cf60208301846111e4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b602080825281016111be81611205565b602081016111be82846111e4565b600060c0828403121561126c5761126c600080fd5b50919050565b60006020828403121561128757611287600080fd5b813567ffffffffffffffff8111156112a1576112a1600080fd5b61056684828501611257565b805b8114610f6357600080fd5b80356111be816112ad565b6000602082840312156112da576112da600080fd5b6111bb83836112ba565b8015156111de565b602081016111be82846112e4565b6112af816111c4565b80356111be816112fa565b6000806040838503121561132457611324600080fd5b61132e8484611303565b915061133d84602085016112ba565b90509250929050565b60006020828403121561135b5761135b600080fd5b6111bb8383611303565b6000806040838503121561137b5761137b600080fd5b6113858484611303565b915061133d8460208501611303565b602081016111be82846111d5565b600080604083850312156113b8576113b8600080fd5b823567ffffffffffffffff8111156113d2576113d2600080fd5b6113de85828601611257565b92505061133d84602085016112ba565b63ffffffff81166112af565b80356111be816113ee565b60008083601f84011261141a5761141a600080fd5b50813567ffffffffffffffff81111561143557611435600080fd5b60208301915083600182028301111561145057611450600080fd5b9250929050565b60ff81166112af565b80356111be81611457565b60008060008060006080868803121561148657611486600080fd5b61149087876113fa565b945061149f87602088016113fa565b9350604086013567ffffffffffffffff8111156114be576114be600080fd5b6114ca88828901611405565b93509350506114dc8760608801611460565b90509295509295909350565b67ffffffffffffffff81166111de565b602081016111be82846114e8565b60006080828403121561126c5761126c600080fd5b60008083601f84011261153057611530600080fd5b50813567ffffffffffffffff81111561154b5761154b600080fd5b60208301915083602082028301111561145057611450600080fd5b60008060008060c0858703121561157f5761157f600080fd5b6115898686611506565b9350608085013567ffffffffffffffff8111156115a8576115a8600080fd5b6115b48782880161151b565b93509350506115c68660a087016112ba565b905092959194509250565b600080604083850312156115e7576115e7600080fd5b61132e84846112ba565b6000806000806060858703121561160a5761160a600080fd5b843567ffffffffffffffff81111561162457611624600080fd5b61163087828801611257565b945050602085013567ffffffffffffffff81111561165057611650600080fd5b61165c8782880161151b565b93509350506115c686604087016112ba565b80516111be816112ad565b60006020828403121561168e5761168e600080fd5b6111bb838361166e565b5060006111be6020830183611303565b67ffffffffffffffff81166112af565b80356111be816116a8565b5060006111be60208301836116b8565b5060006111be60208301836113fa565b63ffffffff81166111de565b6000808335601e193685900301811261170a5761170a600080fd5b830160208101925035905067ffffffffffffffff81111561172d5761172d600080fd5b3681900382131561145057611450600080fd5b82818337506000910152565b818352602083019250611760828483611740565b50601f01601f19160190565b5060006111be6020830183611460565b60ff81166111de565b600060c083016117958380611698565b61179f85826111d5565b506117ad60208401846116c3565b6117ba60208601826114e8565b506117c860408401846116d3565b6117d560408601826116e3565b506117e360608401846116d3565b6117f060608601826116e3565b506117fe60808401846116ef565b858303608087015261181183828461174c565b9250505061182260a084018461176c565b61182f60a086018261177c565b509392505050565b602080825281016111bb8184611785565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b602080825281016111be81611848565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050611233565b602080825281016111be81611896565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611880565b602080825281016111be816118d8565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152611233565b602080825281016111be81611940565b634e487b7160e01b600052601160045260246000fd5b818103818111156111be576111be611980565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f726163740000000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be816119a9565b60408101611a1f82856111e4565b6104cf60208301846114e8565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050611233565b602080825281016111be81611a2c565b60006111be82611a7c565b90565b67ffffffffffffffff1690565b6111de81611a6e565b602081016111be8284611a89565b6001600160a01b039182169190811690828203908111156111be576111be611980565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050611233565b602080825281016111be81611ac3565b808201808211156111be576111be611980565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81611b18565b600060208284031215611b9557611b95600080fd5b6111bb83836113fa565b600081356111be816112fa565b60006001600160a01b03835b81169019929092169190911792915050565b60006111be826111c4565b60006111be82611bca565b611be982611bd5565b611bf4818354611bac565b8255505050565b600081356111be816116a8565b60007bffffffffffffffff0000000000000000000000000000000000000000611bb88460a01b90565b60006111be67ffffffffffffffff8316611a7c565b611c4f82611c31565b611bf4818354611c08565b600081356111be816113ee565b60007fffffffff00000000000000000000000000000000000000000000000000000000611bb88460e01b90565b600063ffffffff82166111be565b611cab82611c94565b611bf4818354611c67565b600063ffffffff83611bb8565b611ccc82611c94565b611bf4818354611cb6565b6000808335601e1936859003018112611cf257611cf2600080fd5b8301915050803567ffffffffffffffff811115611d1157611d11600080fd5b60208201915060018102360382131561145057611450600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b600281046001821680611d6c57607f821691505b60208210810361126c5761126c611d42565b60006111be611a798381565b611d9383611d7e565b815460001960089490940293841b1916921b91909117905550565b6000610aa2818484611d8a565b8181101561073857611dce600082611dae565b600101611dbb565b601f821115610aa2576000818152602090206020601f85010481016020851015611dfd5750805b610d776020601f860104830182611dbb565b8267ffffffffffffffff811115611e2857611e28611d2c565b611e328254611d58565b611e3d828285611dd6565b506000601f821160018114611e725760008315611e5a5750848201355b600019600885021c1981166002850217855550610f07565b600084815260209020601f19841690835b82811015611ea35787850135825560209485019460019092019101611e83565b5084821015611ec0576000196008601f8716021c19878501351681555b5050505060020260010190555050565b610aa2838383611e0f565b600081356111be81611457565b600060ff82166111be565b611efc82611ee8565b815460ff191660ff821617611bf4565b808280611f1881611b9f565b9050611f248184611be0565b50506020830180611f3482611bfb565b9050611f408184611c46565b50506040830180611f5082611c5a565b9050611f5c8184611ca2565b5050506060820180611f6d82611c5a565b9050611f7c8160018501611cc3565b5050611f8b6080830183611cd7565b611f99818360028601611ed0565b505060a0820180611fa982611edb565b9050611fb88160038501611ef3565b50505050565b6107388282611f0c565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81611fc8565b60c0810161203e828a6111d5565b61204b60208301896114e8565b61205860408301886116e3565b61206560608301876116e3565b818103608083015261207881858761174c565b905061208760a083018461177c565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81612093565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611880565b602080825281016111be816120fb565b5060006111be60208301836112ba565b6121618180611698565b61216b83826111d5565b506121796020820182611698565b61218660208401826111d5565b506121946040820182612147565b6121a160408401826111e4565b506121af60608201826116c3565b610aa260608401826114e8565b608081016111be8284612157565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050611233565b6040808252810161220c816121ca565b90506111be60208301846111e4565b61222581836111e4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611880565b602080825281016111be8161222d565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81612295565b60006020828403121561231257612312600080fd5b6111bb83836116b8565b60006020828403121561233157612331600080fd5b6111bb8383611460565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050611233565b6040808252810161220c8161233b565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611880565b602080825281016111be8161237d565b67ffffffffffffffff9182169190811690828201908111156111be576111be611980565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209046d260e6ecf02a9b545045265133ebd2a8a091d8cfe42d8fe9829451348f2664736f6c634300081c0033a2646970667358221220101b62990bb77813fedaf26fccfbe1484c6f6ffffdafd582c8320a8b7f985f8464736f6c634300081c0033", + ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"ImportantContractAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"messageBusAddress\",\"type\":\"address\"}],\"name\":\"LogManagementContractCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"NetworkSecretRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"attester\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"NetworkSecretResponded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"RollupAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"enclaveID\",\"type\":\"address\"}],\"name\":\"SequencerEnclaveRevoked\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"MessageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"BlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlobHash\",\"type\":\"bytes32\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"r\",\"type\":\"tuple\"}],\"name\":\"AddRollup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"Attested\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"_msg\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"ExtractNativeValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GetImportantContractKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"rollupHash\",\"type\":\"bytes32\"}],\"name\":\"GetRollupByHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"MessageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"BlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlobHash\",\"type\":\"bytes32\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetRollupByNumber\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"MessageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"BlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlobHash\",\"type\":\"bytes32\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"GetUniqueForkID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"Signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"LastSequenceNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"MessageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"BlockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"BlobHash\",\"type\":\"bytes32\"}],\"internalType\":\"structStructs.MetaRollup\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"GrantSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_enclaveID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initSecret\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_genesisAttestation\",\"type\":\"string\"}],\"name\":\"InitializeNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"IsSequencerEnclave\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IsWithdrawalAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestReport\",\"type\":\"string\"}],\"name\":\"RequestNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"attesterID\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterID\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"attesterSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"responseSecret\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"verifyAttester\",\"type\":\"bool\"}],\"name\":\"RespondNetworkSecret\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RetrieveAllBridgeFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"RevokeSequencerEnclave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SetImportantContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_lastBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"blockNum\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"rollupNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"forkID\",\"type\":\"bytes32\"}],\"name\":\"addCrossChainMessagesRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChallengePeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"importantContractAddresses\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"importantContractKeys\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"crossChainHashes\",\"type\":\"bytes[]\"}],\"name\":\"isBundleAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isBundleSaved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"isWithdrawalSpent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBatchSeqNo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"merkleMessageBus\",\"outputs\":[{\"internalType\":\"contractIMerkleTreeMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageBus\",\"outputs\":[{\"internalType\":\"contractIMessageBus\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_delay\",\"type\":\"uint256\"}],\"name\":\"setChallengePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052348015600e575f5ffd5b50601633601a565b608a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6154bf806100975f395ff3fe608060405234801561000f575f5ffd5b50600436106101e6575f3560e01c80637281099611610109578063a1a227fa1161009e578063db5d91b11161006e578063db5d91b114610499578063e34fbfc8146104c4578063e874eb20146104d7578063f2fde38b146104ea575f5ffd5b8063a1a227fa14610443578063a4ab2faa14610463578063a52f433c14610476578063d4fab88714610486575f5ffd5b806384154826116100d957806384154826146103be57806387059edb146103e05780638da5cb5b146103f357806398077e8614610423575f5ffd5b806372810996146103855780637864b77d1461038d5780638129fc1c146103955780638236a7ba1461039d575f5ffd5b8063476657381161017f57806368e103831161014f57806368e10383146103425780636a30d26c146103555780636b9707d61461036a578063715018a61461037d575f5ffd5b806347665738146102e85780635371a216146102fb578063568699c81461030e5780635d475fdd1461032f575f5ffd5b80632f0cb9e3116101ba5780632f0cb9e3146102445780633e60a22f1461027357806343348b2f146102b4578063440c953b146102df575f5ffd5b80620ddd27146101ea57806303e72e4814610209578063073b6ef31461021e5780632643c85014610231575b5f5ffd5b6101f3600e5481565b6040516102009190611b41565b60405180910390f35b61021c610217366004611c6c565b6104fd565b005b61021c61022c366004611dd4565b610603565b61021c61023f366004611eb4565b610879565b610266610252366004611ef4565b600c6020525f908152604090205460ff1681565b6040516102009190611f19565b6102a7610281366004611f27565b80516020818301810180516003825292820191909301209152546001600160a01b031681565b6040516102009190611f68565b6102666102c2366004611f76565b6001600160a01b03165f9081526020819052604090205460ff1690565b6101f360055481565b61021c6102f6366004611f76565b610970565b61021c610309366004611fed565b610a0e565b61032161031c366004611ef4565b610ba6565b60405161020092919061211c565b61021c61033d366004611ef4565b610c16565b61021c61035036600461213c565b610c23565b61035d610cc6565b6040516102009190612236565b61021c610378366004611f76565b610d9a565b61021c610e28565b61021c610e3b565b600f546101f3565b61021c610ebb565b6103b06103ab366004611ef4565b611090565b604051610200929190612247565b6102666103cc366004611ef4565b600d6020525f908152604090205460ff1681565b6103b06103ee366004611ef4565b6111be565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166102a7565b610436610431366004611ef4565b61126c565b6040516102009190612255565b600a54610456906001600160a01b031681565b60405161020091906122a5565b6102666104713660046122b3565b611312565b600454610100900460ff16610266565b61021c6104943660046122fe565b61138e565b6102666104a7366004611f76565b6001600160a01b03165f9081526001602052604090205460ff1690565b61021c6104d236600461239f565b611492565b600b54610456906001600160a01b031681565b61021c6104f8366004611f76565b6114d9565b61050561152f565b5f6001600160a01b031660038360405161051f9190612405565b908152604051908190036020019020546001600160a01b03160361057a57600280546001810182555f919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0161057883826124da565b505b8060038360405161058b9190612405565b90815260405190819003602001812080546001600160a01b039390931673ffffffffffffffffffffffffffffffffffffffff19909316929092179091557f17b2f9f5748931099ffee882b5b64f4a560b5c55da9b4f4e396dae3bb9f98cb5906105f79084908490612596565b60405180910390a15050565b61060e8660ff6125ca565b43106106355760405162461bcd60e51b815260040161062c9061260f565b60405180910390fd5b8543036106545760405162461bcd60e51b815260040161062c90612679565b85405f8190036106765760405162461bcd60e51b815260040161062c906126bb565b8781146106955760405162461bcd60e51b815260040161062c906126fd565b5f8381526008602052604090205482146106c15760405162461bcd60e51b815260040161062c9061273f565b5f61072d8a8a8a8a6040516020016106dc94939291906127a5565b6040516020818303038152906040528051906020012087878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506115a392505050565b6001600160a01b0381165f9081526001602052604090205490915060ff166107675760405162461bcd60e51b815260040161062c9061281b565b600e8a90555f805b885181101561085457600b5489516001600160a01b039091169063b6aed0cb908b90849081106107a1576107a161282b565b60200260200101516107b290612848565b426040518363ffffffff1660e01b81526004016107d092919061287c565b5f604051808303815f87803b1580156107e7575f5ffd5b505af11580156107f9573d5f5f3e3d5ffd5b50505050818982815181106108105761081061282b565b602002602001015161082190612848565b60405160200161083292919061287c565b60408051601f198184030181529190528051602090910120915060010161076f565b505f908152600d60205260409020805460ff1916600117905550505050505050505050565b5f6108c5823561088c6020850185612897565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506115a392505050565b6001600160a01b0381165f9081526020819052604090205490915060ff166108ff5760405162461bcd60e51b815260040161062c9061291a565b6001600160a01b0381165f9081526001602052604090205460ff166109365760405162461bcd60e51b815260040161062c9061295c565b61093f826115cd565b6040517fd6555bff8670bd3008dc064c30bb56d6ac7cb14ae801e36146fe4e7c6a504a58906105f790843590611b41565b61097861152f565b6001600160a01b0381165f9081526020819052604090205460ff166109af5760405162461bcd60e51b815260040161062c9061291a565b6001600160a01b0381165f90815260016020819052604091829020805460ff19169091179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e76093690610a03908390611f68565b60405180910390a150565b600b546040517fb201246f0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b201246f90610a5d908790879087908790600401612a82565b5f6040518083038186803b158015610a73575f5ffd5b505afa158015610a85573d5f5f3e3d5ffd5b505050505f84604051602001610a9b9190612abb565b60408051601f1981840301815291815281516020928301205f818152600c90935291205490915060ff1615610ae25760405162461bcd60e51b815260040161062c90612afb565b6001600c5f87604051602001610af89190612abb565b60408051808303601f1901815291815281516020928301208352828201939093529082015f20805460ff191693151593909317909255600a546001600160a01b0316916399a3ad2191610b5091908901908901611f76565b87604001356040518363ffffffff1660e01b8152600401610b72929190612b0b565b5f604051808303815f87803b158015610b89575f5ffd5b505af1158015610b9b573d5f5f3e3d5ffd5b505050505050505050565b5f610be16040518060e001604052805f8152602001606081526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f610bec856111be565b9150915081610c00575f9590945092505050565b5f94855260086020526040909420549492505050565b610c1e61152f565b600f55565b60045460ff1615610c465760405162461bcd60e51b815260040161062c90612b71565b60048054600160ff1991821681179092556001600160a01b0387165f908152602081815260408083208054851686179055908490529081902080549092169092179055517ffe64c7181f0fc60e300dc02cca368cdfa94d7ca45902de3b9a9d80070e76093690610cb7908790611f68565b60405180910390a15050505050565b60606002805480602002602001604051908101604052809291908181526020015f905b82821015610d91578382905f5260205f20018054610d0690612423565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3290612423565b8015610d7d5780601f10610d5457610100808354040283529160200191610d7d565b820191905f5260205f20905b815481529060010190602001808311610d6057829003601f168201915b505050505081526020019060010190610ce9565b50505050905090565b610da261152f565b6001600160a01b0381165f9081526001602052604090205460ff16610dd95760405162461bcd60e51b815260040161062c9061295c565b6001600160a01b0381165f9081526001602052604090819020805460ff19169055517f0f279980343c7ca542fde9fa5396555068efb5cd560d9cf9c191aa2911079b4790610a03908390611f68565b610e3061152f565b610e395f61166e565b565b610e4361152f565b600a546040517f36d2da900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906336d2da9090610e8c903390600401611f68565b5f604051808303815f87803b158015610ea3575f5ffd5b505af1158015610eb5573d5f5f3e3d5ffd5b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610f055750825b90505f8267ffffffffffffffff166001148015610f215750303b155b905081158015610f2f575080155b15610f66576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f9a57845468ff00000000000000001916680100000000000000001785555b610fa3336116eb565b5f6005556001600955604051610fb890611b2c565b604051809103905ff080158015610fd1573d5f5f3e3d5ffd5b50600b80546001600160a01b039290921673ffffffffffffffffffffffffffffffffffffffff199283168117909155600a805490921681179091556040517fbd726cf82ac9c3260b1495107182e336e0654b25c10915648c0cc15b2bb72cbf9161103a91611f68565b60405180910390a1831561108957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610cb790600190612b9b565b5050505050565b5f6110cb6040518060e001604052805f8152602001606081526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f838152600660209081526040808320815160e081019092528054825260018101805492939192918401916110ff90612423565b80601f016020809104026020016040519081016040528092919081815260200182805461112b90612423565b80156111765780601f1061114d57610100808354040283529160200191611176565b820191905f5260205f20905b81548152906001019060200180831161115957829003601f168201915b50505091835250506002820154602082015260038201546040820152600482015460608201526005820154608082015260069091015460a09091015280519094149492505050565b5f6111f96040518060e001604052805f8152602001606081526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f83815260076020526040812054908190036112595750506040805160e0810182525f808252825160208181018552828252830152918101829052606081018290526080810182905260a0810182905260c0810182905290939092509050565b61126281611090565b9250925050915091565b6002818154811061127b575f80fd5b905f5260205f20015f91509050805461129390612423565b80601f01602080910402602001604051908101604052809291908181526020018280546112bf90612423565b801561130a5780601f106112e15761010080835404028352916020019161130a565b820191905f5260205f20905b8154815290600101906020018083116112ed57829003601f168201915b505050505081565b5f80805b835181101561137657818482815181106113325761133261282b565b602002602001015161134390612848565b60405160200161135492919061287c565b60408051601f1981840301815291905280516020909101209150600101611316565b505f908152600d602052604090205460ff1692915050565b6001600160a01b0385165f9081526020819052604090205460ff16806113c65760405162461bcd60e51b815260040161062c90612c01565b811561143c575f6113f98787866040516020016113e593929190612c37565b6040516020818303038152906040526116fc565b90505f61140682876115a3565b9050876001600160a01b0316816001600160a01b0316146114395760405162461bcd60e51b815260040161062c90612cb3565b50505b6001600160a01b038086165f81815260208190526040808220805460ff191660011790555191928916917fb869e23ebc7c717d76e345eee8ec282612603e45c44f7ae5494b197c8d9d1be19190a3505050505050565b336001600160a01b03167f0b0ecdedd12079aa2d6c5e0186026c711cb0c8d04f1b724ba5880fb6328d430183836040516114cd929190612ce3565b60405180910390a25050565b6114e161152f565b6001600160a01b038116611523575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062c9190611f68565b61152c8161166e565b50565b336115617f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610e3957336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161062c9190611f68565b5f5f5f5f6115b18686611736565b9250925092506115c1828261177f565b50909150505b92915050565b80355f90815260066020526040902081906115e88282612ecc565b50506009545f90815260076020526040902081359081905561160b600143612ed6565b4060405160200161161d92919061287c565b60408051601f198184030181529181528151602092830120600980545f90815260089094529183205580549161165283612ee9565b91905055506005548160400135111561152c5760400135600555565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6116f3611884565b61152c816118eb565b5f61170782516118f3565b82604051602001611719929190612f01565b604051602081830303815290604052805190602001209050919050565b5f5f5f835160410361176d576020840151604085015160608601515f1a61175f88828585611991565b955095509550505050611778565b505081515f91506002905b9250925092565b5f82600381111561179257611792612f3d565b0361179b575050565b60018260038111156117af576117af612f3d565b036117e6576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156117fa576117fa612f3d565b03611833576040517ffce698f700000000000000000000000000000000000000000000000000000000815261062c908290600401611b41565b600382600381111561184757611847612f3d565b0361188057806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161062c9190611b41565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610e39576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114e1611884565b60605f6118ff83611a4b565b60010190505f8167ffffffffffffffff81111561191e5761191e611b4f565b6040519080825280601f01601f191660200182016040528015611948576020820181803683370190505b5090508181016020015b5f19017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611952575b509392505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156119ca57505f91506003905082611a41565b5f6001888888886040515f81526020016040526040516119ed9493929190612f5a565b6020604051602081039080840390855afa158015611a0d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116611a3857505f925060019150829050611a41565b92505f91508190505b9450945094915050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611a93577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611abf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611add57662386f26fc10000830492506010015b6305f5e1008310611af5576305f5e100830492506008015b6127108310611b0957612710830492506004015b60648310611b1b576064830492506002015b600a83106115c75760010192915050565b6124fa80612f9083390190565b805b82525050565b602081016115c78284611b39565b634e487b7160e01b5f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff82111715611b8957611b89611b4f565b6040525050565b5f611b9a60405190565b9050611ba68282611b63565b919050565b5f67ffffffffffffffff821115611bc457611bc4611b4f565b601f19601f83011660200192915050565b82818337505f910152565b5f611bf2611bed84611bab565b611b90565b9050828152838383011115611c0857611c085f5ffd5b611c16836020830184611bd5565b9392505050565b5f82601f830112611c2f57611c2f5f5ffd5b611c1683833560208501611be0565b5f6001600160a01b0382166115c7565b611c5781611c3e565b811461152c575f5ffd5b80356115c781611c4e565b5f5f60408385031215611c8057611c805f5ffd5b823567ffffffffffffffff811115611c9957611c995f5ffd5b611ca585828601611c1d565b925050611cb58460208501611c61565b90509250929050565b80611c57565b80356115c781611cbe565b5f67ffffffffffffffff821115611ce857611ce8611b4f565b5060209081020190565b5f611cff611bed84611ccf565b83815290506020808201908402830185811115611d1d57611d1d5f5ffd5b835b81811015611d5b57803567ffffffffffffffff811115611d4057611d405f5ffd5b611d4c88828801611c1d565b84525060209283019201611d1f565b5050509392505050565b5f82601f830112611d7757611d775f5ffd5b611c1683833560208501611cf2565b5f5f83601f840112611d9957611d995f5ffd5b50813567ffffffffffffffff811115611db357611db35f5ffd5b602083019150836001820283011115611dcd57611dcd5f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60e0898b031215611dee57611dee5f5ffd5b611df88a8a611cc4565b9750611e078a60208b01611cc4565b9650611e168a60408b01611cc4565b9550606089013567ffffffffffffffff811115611e3457611e345f5ffd5b611e408b828c01611d65565b955050608089013567ffffffffffffffff811115611e5f57611e5f5f5ffd5b611e6b8b828c01611d86565b9450945050611e7d8a60a08b01611cc4565b9150611e8c8a60c08b01611cc4565b90509295985092959890939650565b5f60e08284031215611eae57611eae5f5ffd5b50919050565b5f60208284031215611ec757611ec75f5ffd5b813567ffffffffffffffff811115611ee057611ee05f5ffd5b611eec84828501611e9b565b949350505050565b5f60208284031215611f0757611f075f5ffd5b611c168383611cc4565b801515611b3b565b602081016115c78284611f11565b5f60208284031215611f3a57611f3a5f5ffd5b813567ffffffffffffffff811115611f5357611f535f5ffd5b611eec84828501611c1d565b611b3b81611c3e565b602081016115c78284611f5f565b5f60208284031215611f8957611f895f5ffd5b611c168383611c61565b5f60808284031215611eae57611eae5f5ffd5b5f5f83601f840112611fb957611fb95f5ffd5b50813567ffffffffffffffff811115611fd357611fd35f5ffd5b602083019150836020820283011115611dcd57611dcd5f5ffd5b5f5f5f5f60c08587031215612003576120035f5ffd5b61200d8686611f93565b9350608085013567ffffffffffffffff81111561202b5761202b5f5ffd5b61203787828801611fa6565b93509350506120498660a08701611cc4565b905092959194509250565b8281835e505f910152565b5f612068825190565b80845260208401935061207f818560208601612054565b601f01601f19169290920192915050565b80515f9060e08401906120a38582611b39565b50602083015184820360208601526120bb828261205f565b91505060408301516120d06040860182611b39565b5060608301516120e36060860182611b39565b5060808301516120f66080860182611b39565b5060a083015161210960a0860182611b39565b5060c083015161198960c0860182611b39565b6040810161212a8285611b39565b8181036020830152611eec8184612090565b5f5f5f5f5f60608688031215612153576121535f5ffd5b61215d8787611c61565b9450602086013567ffffffffffffffff81111561217b5761217b5f5ffd5b61218788828901611d86565b9450945050604086013567ffffffffffffffff8111156121a8576121a85f5ffd5b6121b488828901611d86565b92509250509295509295909350565b5f611c16838361205f565b60200190565b5f6121dd825190565b808452602084019350836020820285016121f78560200190565b5f5b8481101561222a578383038852815161221284826121c3565b935050602082016020989098019791506001016121f9565b50909695505050505050565b60208082528101611c1681846121d4565b6040810161212a8285611f11565b60208082528101611c16818461205f565b5f6115c76001600160a01b03831661227c565b90565b6001600160a01b031690565b5f6115c782612266565b5f6115c782612288565b611b3b81612292565b602081016115c7828461229c565b5f602082840312156122c6576122c65f5ffd5b813567ffffffffffffffff8111156122df576122df5f5ffd5b611eec84828501611d65565b801515611c57565b80356115c7816122eb565b5f5f5f5f5f60a08688031215612315576123155f5ffd5b61231f8787611c61565b945061232e8760208801611c61565b9350604086013567ffffffffffffffff81111561234c5761234c5f5ffd5b61235888828901611c1d565b935050606086013567ffffffffffffffff811115612377576123775f5ffd5b61238388828901611c1d565b92505061239387608088016122f3565b90509295509295909350565b5f5f602083850312156123b3576123b35f5ffd5b823567ffffffffffffffff8111156123cc576123cc5f5ffd5b6123d885828601611d86565b92509250509250929050565b5f6123ed825190565b6123fb818560208601612054565b9290920192915050565b6115c781836123e4565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061243757607f821691505b602082108103611eae57611eae61240f565b5f6115c76122798381565b61245d83612449565b81545f1960089490940293841b1916921b91909117905550565b5f612483818484612454565b505050565b818110156118805761249a5f82612477565b600101612488565b601f821115612483575f818152602090206020601f850104810160208510156124c85750805b6110896020601f860104830182612488565b815167ffffffffffffffff8111156124f4576124f4611b4f565b6124fe8254612423565b6125098282856124a2565b506020601f82116001811461253c575f83156125255750848201515b5f19600885021c1981166002850217855550611089565b5f84815260208120601f198516915b8281101561256b578785015182556020948501946001909201910161254b565b508482101561258757838701515f19601f87166008021c191681555b50505050600202600101905550565b604080825281016125a7818561205f565b9050611c166020830184611f5f565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115c7576115c76125b6565b60158152602081017f426c6f636b2062696e64696e6720746f6f206f6c640000000000000000000000815290506121ce565b602080825281016115c7816125dd565b60368152602081017f43616e6e6f742062696e6420746f2074686520626c6f636b207468617420697381527f206265696e672063757272656e746c79206d696e656400000000000000000000602082015290505b60400190565b602080825281016115c78161261f565b60128152602081017f556e6b6e6f776e20626c6f636b20686173680000000000000000000000000000815290506121ce565b602080825281016115c781612689565b60168152602081017f426c6f636b2062696e64696e67206d69736d6174636800000000000000000000815290506121ce565b602080825281016115c7816126cb565b600e8152602081017f496e76616c696420666f726b4944000000000000000000000000000000000000815290506121ce565b602080825281016115c78161270d565b5f612758825190565b808452602084019350836020820285016127728560200190565b5f5b8481101561222a578383038852815161278d84826121c3565b93505060208201602098909801979150600101612774565b608081016127b38287611b39565b6127c06020830186611b39565b6127cd6040830185611b39565b81810360608301526127df818461274f565b9695505050505050565b60178152602081017f61646472657373206e6f7420612073657175656e636572000000000000000000815290506121ce565b602080825281016115c7816127e9565b634e487b7160e01b5f52603260045260245ffd5b5f6115c7825190565b5f612851825190565b6020830161285e8161283f565b9250506020811015611eae575f196020919091036008021b16919050565b6040810161288a8285611b39565b611c166020830184611b39565b5f808335601e19368590030181126128b0576128b05f5ffd5b8301915050803567ffffffffffffffff8111156128ce576128ce5f5ffd5b602082019150600181023603821315611dcd57611dcd5f5ffd5b60168152602081017f656e636c6176654944206e6f7420617474657374656400000000000000000000815290506121ce565b602080825281016115c7816128e8565b60198152602081017f656e636c6176654944206e6f7420612073657175656e63657200000000000000815290506121ce565b602080825281016115c78161292a565b505f6115c76020830183611c61565b505f6115c76020830183611cc4565b67ffffffffffffffff8116611c57565b80356115c78161298a565b505f6115c7602083018361299a565b67ffffffffffffffff8116611b3b565b6129ce818061296c565b6129d88382611f5f565b506129e6602082018261296c565b6129f36020840182611f5f565b50612a01604082018261297b565b612a0e6040840182611b39565b50612a1c60608201826129a5565b61248360608401826129b4565b82818337505050565b8183526020830192505f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612a6b57612a6b5f5ffd5b602083029250612a7c838584612a29565b50500190565b60c08101612a9082876129c4565b8181036080830152612aa3818587612a32565b9050612ab260a0830184611b39565b95945050505050565b608081016115c782846129c4565b60188152602081017f7769746864726177616c20616c7265616479207370656e740000000000000000815290506121ce565b602080825281016115c781612ac9565b6040810161288a8285611f5f565b60228152602081017f6e6574776f726b2073656372657420616c726561647920696e697469616c697a81527f656400000000000000000000000000000000000000000000000000000000000060208201529050612673565b602080825281016115c781612b19565b5f67ffffffffffffffff82166115c7565b611b3b81612b81565b602081016115c78284612b92565b60238152602081017f726573706f6e64696e67206174746573746572206973206e6f7420617474657381527f746564000000000000000000000000000000000000000000000000000000000060208201529050612673565b602080825281016115c781612ba9565b5f6115c78260601b90565b5f6115c782612c11565b611b3b612c3282611c3e565b612c1c565b612c418185612c26565b601401612c4e8184612c26565b601401611eec81836123e4565b602c8152602081017f63616c63756c61746564206164647265737320616e642061747465737465724981527f4420646f6e74206d61746368000000000000000000000000000000000000000060208201529050612673565b602080825281016115c781612c5b565b818352602083019250612cd7828483611bd5565b50601f01601f19160190565b60208082528101611eec818486612cc3565b5f81356115c781611cbe565b5f816115c7565b612d1182612d01565b612d1d61227982612d01565b8255505050565b8267ffffffffffffffff811115612d3d57612d3d611b4f565b612d478254612423565b612d528282856124a2565b505f601f821160018114612d84575f8315612d6d5750848201355b5f19600885021c1981166002850217855550612ddb565b5f84815260208120601f198516915b82811015612db35787850135825560209485019460019092019101612d93565b5084821015612dcf575f196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b612483838383612d24565b612df782612449565b80612d1d565b8180612e0881612cf5565b9050612e148184612d08565b5050612e236020830183612897565b612e31818360018601612de3565b50506040820180612e4182612cf5565b9050612e508160028501612dee565b50506060820180612e6082612cf5565b9050612e6f8160038501612d08565b50506080820180612e7f82612cf5565b9050612e8e8160048501612d08565b505060a0820180612e9e82612cf5565b9050612ead8160058501612dee565b505060c0820180612ebd82612cf5565b9050610eb58160068501612d08565b6118808282612dfd565b818103818111156115c7576115c76125b6565b5f60018201612efa57612efa6125b6565b5060010190565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152601a01612f3181846123e4565b9050611c1681836123e4565b634e487b7160e01b5f52602160045260245ffd5b60ff8116611b3b565b60808101612f688287611b39565b612f756020830186612f51565b612f826040830185611b39565b612ab26060830184611b3956fe608060405234801561000f575f5ffd5b5061001933610026565b610021610096565b610148565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e65760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101455780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6123a5806101555f395ff3fe608060405260043610610110575f3560e01c80638da5cb5b116100a4578063b1454caa11610073578063b6aed0cb11610058578063b6aed0cb1461037a578063e138a8d214610399578063f2fde38b146103b857610180565b8063b1454caa1461033b578063b201246f1461035b57610180565b80638da5cb5b1461029a5780639730886d146102de57806399a3ad21146102fd578063ab53bddc1461031c57610180565b8063346633fb116100e0578063346633fb1461023557806336d2da9014610248578063485cc95514610267578063715018a61461028657610180565b8062a1b815146101a15780630fcfbd11146101cb5780630fe9188e146101ea57806333a88c721461020957610180565b36610180576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb903490610155903390839060040161119d565b5f604051808303818588803b15801561016c575f5ffd5b505af115801561017e573d5f5f3e3d5ffd5b005b60405162461bcd60e51b8152600401610198906111ec565b60405180910390fd5b3480156101ac575f5ffd5b506101b56103d7565b6040516101c291906111fc565b60405180910390f35b3480156101d6575f5ffd5b506101b56101e5366004611223565b610460565b3480156101f5575f5ffd5b5061017e610204366004611272565b6104bd565b348015610214575f5ffd5b50610228610223366004611223565b610501565b6040516101c29190611297565b61017e6102433660046112b9565b610551565b348015610253575f5ffd5b5061017e6102623660046112ef565b61069a565b348015610272575f5ffd5b5061017e61028136600461130c565b610715565b348015610291575f5ffd5b5061017e61087e565b3480156102a5575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101c29190611339565b3480156102e9575f5ffd5b5061017e6102f8366004611347565b610891565b348015610308575f5ffd5b5061017e6103173660046112b9565b6109f6565b348015610327575f5ffd5b5061017e6103363660046112b9565b610a72565b61034e610349366004611409565b610b3a565b6040516101c29190611491565b348015610366575f5ffd5b5061017e6103753660046114f9565b610c42565b348015610385575f5ffd5b5061017e610394366004611560565b610d40565b3480156103a4575f5ffd5b5061017e6103b336600461157e565b610d84565b3480156103c3575f5ffd5b5061017e6103d23660046112ef565b610ecb565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290515f926001600160a01b031691631a90a2199160048083019260209291908290030181865afa158015610437573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045b9190611601565b905090565b5f5f8260405160200161047391906117b3565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150806104b65760405162461bcd60e51b815260040161019890611802565b9392505050565b6104c5610f21565b5f8181526004602052604081205490036104f15760405162461bcd60e51b815260040161019890611844565b5f90815260046020526040812055565b5f5f8260405160200161051491906117b3565b60408051601f1981840301815291815281516020928301205f8181529283905291205490915080158015906105495750428111155b949350505050565b5f3411801561055f57508034145b61057b5760405162461bcd60e51b8152600401610198906118ac565b60035434906001600160a01b03161561063b575f6105976103d7565b9050803410156105b95760405162461bcd60e51b8152600401610198906118ec565b6105c38134611910565b6003546040519193505f916001600160a01b039091169083908381818185875af1925050503d805f8114610612576040519150601f19603f3d011682016040523d82523d5f602084013e610617565b606091505b50509050806106385760405162461bcd60e51b81526004016101989061197b565b50505b5f61064533610f95565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b6848460405161068c92919061198b565b60405180910390a350505050565b6106a2610f21565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146106eb576040519150601f19603f3d011682016040523d82523d5f602084013e6106f0565b606091505b50509050806107115760405162461bcd60e51b8152600401610198906119d8565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f8115801561075f5750825b90505f8267ffffffffffffffff16600114801561077b5750303b155b905081158015610789575080155b156107c0576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107f457845468ff00000000000000001916680100000000000000001785555b6107fd87610ff2565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561087557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061086c90600190611a0b565b60405180910390a15b50505050505050565b610886610f21565b61088f5f611003565b565b5f61089d600130611a19565b90506108d07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806108f75750336001600160a01b038216145b6109135760405162461bcd60e51b815260040161019890611a6e565b5f61091e8342611a7e565b90505f8460405160200161093291906117b3565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150156109755760405162461bcd60e51b815260040161019890611ae9565b5f81815260208181526040822084905560019190610995908801886112ef565b6001600160a01b0316815260208101919091526040015f908120906109c06080880160608901611af9565b63ffffffff1681526020808201929092526040015f90812080546001810182559082529190208691600402016108758282611f15565b6109fe610f21565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610a47576040519150601f19603f3d011682016040523d82523d5f602084013e610a4c565b606091505b5050905080610a6d5760405162461bcd60e51b8152600401610198906119d8565b505050565b5f610a7e600130611a19565b9050610ab17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610ad85750336001600160a01b038216145b610af45760405162461bcd60e51b815260040161019890611a6e565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610b2d91906111fc565b60405180910390a2505050565b6003545f906001600160a01b031615610beb575f610b566103d7565b905080341015610b785760405162461bcd60e51b815260040161019890611f77565b6003546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610bc2576040519150601f19603f3d011682016040523d82523d5f602084013e610bc7565b606091505b5050905080610be85760405162461bcd60e51b81526004016101989061197b565b50505b610bf433610f95565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610c319796959493929190611f87565b60405180910390a195945050505050565b5f818152600460205260408120549003610c6e5760405162461bcd60e51b815260040161019890612042565b5f81815260046020526040902054421015610c9b5760405162461bcd60e51b81526004016101989061208e565b5f84604051602001610cad9190612112565b60405160208183030381529060405280519060200120604051602001610cd39190612152565b604051602081830303815290604052805190602001209050610d1d84848484604051602001610d029190612171565b60405160208183030381529060405280519060200120611080565b610d395760405162461bcd60e51b8152600401610198906121db565b5050505050565b610d48610f21565b5f8281526004602052604090205415610d735760405162461bcd60e51b815260040161019890612243565b5f9182526004602052604090912055565b5f818152600460205260408120549003610db05760405162461bcd60e51b815260040161019890612042565b5f81815260046020526040902054421015610ddd5760405162461bcd60e51b81526004016101989061208e565b5f610deb60208601866112ef565b610dfb6040870160208801612253565b610e0b6060880160408901611af9565b610e1b6080890160608a01611af9565b610e2860808a018a611c43565b610e3860c08c0160a08d01612270565b604051602001610e4e9796959493929190611f87565b6040516020818303038152906040528051906020012090505f81604051602001610e7891906122bf565b604051602081830303815290604052805190602001209050610ea785858584604051602001610d029190612171565b610ec35760405162461bcd60e51b815260040161019890612327565b505050505050565b610ed3610f21565b6001600160a01b038116610f15575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101989190611339565b610f1e81611003565b50565b33610f537f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461088f57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101989190611339565b6001600160a01b0381165f908152600260205260408120805467ffffffffffffffff169160019190610fc78385612337565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b610ffa611097565b610f1e816110fe565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8261108d868685611106565b1495945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661088f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ed3611097565b5f81815b8481101561113e57611134828787848181106111285761112861235b565b90506020020135611147565b915060010161110a565b50949350505050565b5f818310611161575f82815260208490526040902061116f565b5f8381526020839052604090205b90505b92915050565b5f6001600160a01b038216611172565b61119181611178565b82525050565b80611191565b604081016111ab8285611188565b6104b66020830184611197565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101611172816111b8565b602081016111728284611197565b5f60c0828403121561121d5761121d5f5ffd5b50919050565b5f60208284031215611236576112365f5ffd5b813567ffffffffffffffff81111561124f5761124f5f5ffd5b6105498482850161120a565b805b8114610f1e575f5ffd5b80356111728161125b565b5f60208284031215611285576112855f5ffd5b61116f8383611267565b801515611191565b60208101611172828461128f565b61125d81611178565b8035611172816112a5565b5f5f604083850312156112cd576112cd5f5ffd5b6112d784846112ae565b91506112e68460208501611267565b90509250929050565b5f60208284031215611302576113025f5ffd5b61116f83836112ae565b5f5f60408385031215611320576113205f5ffd5b61132a84846112ae565b91506112e684602085016112ae565b602081016111728284611188565b5f5f6040838503121561135b5761135b5f5ffd5b823567ffffffffffffffff811115611374576113745f5ffd5b6113808582860161120a565b9250506112e68460208501611267565b63ffffffff811661125d565b803561117281611390565b5f5f83601f8401126113ba576113ba5f5ffd5b50813567ffffffffffffffff8111156113d4576113d45f5ffd5b6020830191508360018202830111156113ee576113ee5f5ffd5b9250929050565b60ff811661125d565b8035611172816113f5565b5f5f5f5f5f60808688031215611420576114205f5ffd5b61142a878761139c565b9450611439876020880161139c565b9350604086013567ffffffffffffffff811115611457576114575f5ffd5b611463888289016113a7565b935093505061147587606088016113fe565b90509295509295909350565b67ffffffffffffffff8116611191565b602081016111728284611481565b5f6080828403121561121d5761121d5f5ffd5b5f5f83601f8401126114c5576114c55f5ffd5b50813567ffffffffffffffff8111156114df576114df5f5ffd5b6020830191508360208202830111156113ee576113ee5f5ffd5b5f5f5f5f60c0858703121561150f5761150f5f5ffd5b611519868661149f565b9350608085013567ffffffffffffffff811115611537576115375f5ffd5b611543878288016114b2565b93509350506115558660a08701611267565b905092959194509250565b5f5f60408385031215611574576115745f5ffd5b6112d78484611267565b5f5f5f5f60608587031215611594576115945f5ffd5b843567ffffffffffffffff8111156115ad576115ad5f5ffd5b6115b98782880161120a565b945050602085013567ffffffffffffffff8111156115d8576115d85f5ffd5b6115e4878288016114b2565b93509350506115558660408701611267565b80516111728161125b565b5f60208284031215611614576116145f5ffd5b61116f83836115f6565b505f61117260208301836112ae565b67ffffffffffffffff811661125d565b80356111728161162d565b505f611172602083018361163d565b505f611172602083018361139c565b63ffffffff8116611191565b5f808335601e193685900301811261168b5761168b5f5ffd5b830160208101925035905067ffffffffffffffff8111156116ad576116ad5f5ffd5b368190038213156113ee576113ee5f5ffd5b82818337505f910152565b8183526020830192506116de8284836116bf565b50601f01601f19160190565b505f61117260208301836113fe565b60ff8116611191565b5f60c08301611711838061161e565b61171b8582611188565b506117296020840184611648565b6117366020860182611481565b506117446040840184611657565b6117516040860182611666565b5061175f6060840184611657565b61176c6060860182611666565b5061177a6080840184611672565b858303608087015261178d8382846116ca565b9250505061179e60a08401846116ea565b6117ab60a08601826116f9565b509392505050565b6020808252810161116f8184611702565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101611172816117c4565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e000000000000815290506111e6565b6020808252810161117281611812565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e6720457468657200000000000000000000000000000000602082015290506117fc565b6020808252810161117281611854565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c756591019081526111e6565b60208082528101611172816118bc565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611172576111726118fc565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f7261637400000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611923565b604081016119998285611197565b6104b66020830184611481565b60148152602081017f6661696c65642073656e64696e672076616c7565000000000000000000000000815290506111e6565b60208082528101611172816119a6565b5f611172826119f5565b90565b67ffffffffffffffff1690565b611191816119e8565b602081016111728284611a02565b6001600160a01b03918216919081169082820390811115611172576111726118fc565b60118152602081017f4e6f74206f776e6572206f722073656c66000000000000000000000000000000815290506111e6565b6020808252810161117281611a3c565b80820180821115611172576111726118fc565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f2100000000000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611a91565b5f60208284031215611b0c57611b0c5f5ffd5b61116f838361139c565b5f8135611172816112a5565b5f6001600160a01b03835b81169019929092169190911792915050565b5f61117282611178565b5f61117282611b3f565b611b5c82611b49565b611b67818354611b22565b8255505050565b5f81356111728161162d565b5f7bffffffffffffffff0000000000000000000000000000000000000000611b2d8460a01b90565b5f61117267ffffffffffffffff83166119f5565b611bbf82611ba2565b611b67818354611b7a565b5f813561117281611390565b5f7fffffffff00000000000000000000000000000000000000000000000000000000611b2d8460e01b90565b5f63ffffffff8216611172565b611c1882611c02565b611b67818354611bd6565b5f63ffffffff83611b2d565b611c3882611c02565b611b67818354611c23565b5f808335601e1936859003018112611c5c57611c5c5f5ffd5b8301915050803567ffffffffffffffff811115611c7a57611c7a5f5ffd5b6020820191506001810236038213156113ee576113ee5f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b600281046001821680611cd057607f821691505b60208210810361121d5761121d611ca8565b5f6111726119f28381565b611cf683611ce2565b81545f1960089490940293841b1916921b91909117905550565b5f610a6d818484611ced565b8181101561071157611d2e5f82611d10565b600101611d1c565b601f821115610a6d575f818152602090206020601f85010481016020851015611d5c5750805b610d396020601f860104830182611d1c565b8267ffffffffffffffff811115611d8757611d87611c94565b611d918254611cbc565b611d9c828285611d36565b505f601f821160018114611dce575f8315611db75750848201355b5f19600885021c1981166002850217855550610ec3565b5f84815260208120601f198516915b82811015611dfd5787850135825560209485019460019092019101611ddd565b5084821015611e19575f196008601f8716021c19878501351681555b5050505060020260010190555050565b610a6d838383611d6e565b5f8135611172816113f5565b5f60ff8216611172565b611e5382611e40565b815460ff191660ff821617611b67565b808280611e6f81611b16565b9050611e7b8184611b53565b50506020830180611e8b82611b6e565b9050611e978184611bb6565b50506040830180611ea782611bca565b9050611eb38184611c0f565b5050506060820180611ec482611bca565b9050611ed38160018501611c2f565b5050611ee26080830183611c43565b611ef0818360028601611e29565b505060a0820180611f0082611e34565b9050611f0f8160038501611e4a565b50505050565b6107118282611e63565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f7373616765000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611f1f565b60c08101611f95828a611188565b611fa26020830189611481565b611faf6040830188611666565b611fbc6060830187611666565b8181036080830152611fcf8185876116ca565b9050611fde60a08301846116f9565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e00000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611fea565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b602082015290506117fc565b6020808252810161117281612052565b505f6111726020830183611267565b6120b7818061161e565b6120c18382611188565b506120cf602082018261161e565b6120dc6020840182611188565b506120ea604082018261209e565b6120f76040840182611197565b506121056060820182611648565b610a6d6060840182611481565b6080810161117282846120ad565b60018152602081017f7600000000000000000000000000000000000000000000000000000000000000815290506111e6565b6040808252810161216281612120565b90506111726020830184611197565b61217b8183611197565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e00000000000000000000000000602082015290506117fc565b6020808252810161117281612183565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f6520627573000000000000000000000000000000000000000000000000000000602082015290506117fc565b60208082528101611172816121eb565b5f60208284031215612266576122665f5ffd5b61116f838361163d565b5f60208284031215612283576122835f5ffd5b61116f83836113fe565b60018152602081017f6d00000000000000000000000000000000000000000000000000000000000000815290506111e6565b604080825281016121628161228d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e00000000000000000000000000000000602082015290506117fc565b60208082528101611172816122cf565b67ffffffffffffffff918216919081169082820190811115611172576111726118fc565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220e0a8fdb4af120eef76f2b07a02e0d752f0824bbf72969c3e3b3866ef702ca1d464736f6c634300081c0033a2646970667358221220fee956ac645a5edc9688fb3131f7efa0c776346c3f59f241bb5382c40a1b5e0064736f6c634300081c0033", } // ManagementContractABI is the input ABI used to generate the binding from. @@ -248,37 +252,6 @@ func (_ManagementContract *ManagementContractCallerSession) Attested(_addr commo return _ManagementContract.Contract.Attested(&_ManagementContract.CallOpts, _addr) } -// GetChallengePeriod is a free data retrieval call binding the contract method 0x1aca00ab. -// -// Solidity: function GetChallengePeriod() view returns(uint256) -func (_ManagementContract *ManagementContractCaller) GetChallengePeriod(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _ManagementContract.contract.Call(opts, &out, "GetChallengePeriod") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetChallengePeriod is a free data retrieval call binding the contract method 0x1aca00ab. -// -// Solidity: function GetChallengePeriod() view returns(uint256) -func (_ManagementContract *ManagementContractSession) GetChallengePeriod() (*big.Int, error) { - return _ManagementContract.Contract.GetChallengePeriod(&_ManagementContract.CallOpts) -} - -// GetChallengePeriod is a free data retrieval call binding the contract method 0x1aca00ab. -// -// Solidity: function GetChallengePeriod() view returns(uint256) -func (_ManagementContract *ManagementContractCallerSession) GetChallengePeriod() (*big.Int, error) { - return _ManagementContract.Contract.GetChallengePeriod(&_ManagementContract.CallOpts) -} - // GetImportantContractKeys is a free data retrieval call binding the contract method 0x6a30d26c. // // Solidity: function GetImportantContractKeys() view returns(string[]) @@ -312,7 +285,7 @@ func (_ManagementContract *ManagementContractCallerSession) GetImportantContract // GetRollupByHash is a free data retrieval call binding the contract method 0x8236a7ba. // -// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCaller) GetRollupByHash(opts *bind.CallOpts, rollupHash [32]byte) (bool, StructsMetaRollup, error) { var out []interface{} err := _ManagementContract.contract.Call(opts, &out, "GetRollupByHash", rollupHash) @@ -330,21 +303,21 @@ func (_ManagementContract *ManagementContractCaller) GetRollupByHash(opts *bind. // GetRollupByHash is a free data retrieval call binding the contract method 0x8236a7ba. // -// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractSession) GetRollupByHash(rollupHash [32]byte) (bool, StructsMetaRollup, error) { return _ManagementContract.Contract.GetRollupByHash(&_ManagementContract.CallOpts, rollupHash) } // GetRollupByHash is a free data retrieval call binding the contract method 0x8236a7ba. // -// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByHash(bytes32 rollupHash) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCallerSession) GetRollupByHash(rollupHash [32]byte) (bool, StructsMetaRollup, error) { return _ManagementContract.Contract.GetRollupByHash(&_ManagementContract.CallOpts, rollupHash) } // GetRollupByNumber is a free data retrieval call binding the contract method 0x87059edb. // -// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCaller) GetRollupByNumber(opts *bind.CallOpts, number *big.Int) (bool, StructsMetaRollup, error) { var out []interface{} err := _ManagementContract.contract.Call(opts, &out, "GetRollupByNumber", number) @@ -362,21 +335,21 @@ func (_ManagementContract *ManagementContractCaller) GetRollupByNumber(opts *bin // GetRollupByNumber is a free data retrieval call binding the contract method 0x87059edb. // -// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractSession) GetRollupByNumber(number *big.Int) (bool, StructsMetaRollup, error) { return _ManagementContract.Contract.GetRollupByNumber(&_ManagementContract.CallOpts, number) } // GetRollupByNumber is a free data retrieval call binding the contract method 0x87059edb. // -// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256)) +// Solidity: function GetRollupByNumber(uint256 number) view returns(bool, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCallerSession) GetRollupByNumber(number *big.Int) (bool, StructsMetaRollup, error) { return _ManagementContract.Contract.GetRollupByNumber(&_ManagementContract.CallOpts, number) } // GetUniqueForkID is a free data retrieval call binding the contract method 0x568699c8. // -// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256)) +// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCaller) GetUniqueForkID(opts *bind.CallOpts, number *big.Int) ([32]byte, StructsMetaRollup, error) { var out []interface{} err := _ManagementContract.contract.Call(opts, &out, "GetUniqueForkID", number) @@ -394,14 +367,14 @@ func (_ManagementContract *ManagementContractCaller) GetUniqueForkID(opts *bind. // GetUniqueForkID is a free data retrieval call binding the contract method 0x568699c8. // -// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256)) +// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractSession) GetUniqueForkID(number *big.Int) ([32]byte, StructsMetaRollup, error) { return _ManagementContract.Contract.GetUniqueForkID(&_ManagementContract.CallOpts, number) } // GetUniqueForkID is a free data retrieval call binding the contract method 0x568699c8. // -// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256)) +// Solidity: function GetUniqueForkID(uint256 number) view returns(bytes32, (bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32)) func (_ManagementContract *ManagementContractCallerSession) GetUniqueForkID(number *big.Int) ([32]byte, StructsMetaRollup, error) { return _ManagementContract.Contract.GetUniqueForkID(&_ManagementContract.CallOpts, number) } @@ -468,6 +441,37 @@ func (_ManagementContract *ManagementContractCallerSession) IsWithdrawalAvailabl return _ManagementContract.Contract.IsWithdrawalAvailable(&_ManagementContract.CallOpts) } +// GetChallengePeriod is a free data retrieval call binding the contract method 0x7864b77d. +// +// Solidity: function getChallengePeriod() view returns(uint256) +func (_ManagementContract *ManagementContractCaller) GetChallengePeriod(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ManagementContract.contract.Call(opts, &out, "getChallengePeriod") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetChallengePeriod is a free data retrieval call binding the contract method 0x7864b77d. +// +// Solidity: function getChallengePeriod() view returns(uint256) +func (_ManagementContract *ManagementContractSession) GetChallengePeriod() (*big.Int, error) { + return _ManagementContract.Contract.GetChallengePeriod(&_ManagementContract.CallOpts) +} + +// GetChallengePeriod is a free data retrieval call binding the contract method 0x7864b77d. +// +// Solidity: function getChallengePeriod() view returns(uint256) +func (_ManagementContract *ManagementContractCallerSession) GetChallengePeriod() (*big.Int, error) { + return _ManagementContract.Contract.GetChallengePeriod(&_ManagementContract.CallOpts) +} + // ImportantContractAddresses is a free data retrieval call binding the contract method 0x3e60a22f. // // Solidity: function importantContractAddresses(string ) view returns(address) @@ -778,23 +782,23 @@ func (_ManagementContract *ManagementContractCallerSession) Owner() (common.Addr return _ManagementContract.Contract.Owner(&_ManagementContract.CallOpts) } -// AddRollup is a paid mutator transaction binding the contract method 0x81be5385. +// AddRollup is a paid mutator transaction binding the contract method 0x2643c850. // -// Solidity: function AddRollup((bytes32,bytes,uint256) r) returns() +// Solidity: function AddRollup((bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32) r) returns() func (_ManagementContract *ManagementContractTransactor) AddRollup(opts *bind.TransactOpts, r StructsMetaRollup) (*types.Transaction, error) { return _ManagementContract.contract.Transact(opts, "AddRollup", r) } -// AddRollup is a paid mutator transaction binding the contract method 0x81be5385. +// AddRollup is a paid mutator transaction binding the contract method 0x2643c850. // -// Solidity: function AddRollup((bytes32,bytes,uint256) r) returns() +// Solidity: function AddRollup((bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32) r) returns() func (_ManagementContract *ManagementContractSession) AddRollup(r StructsMetaRollup) (*types.Transaction, error) { return _ManagementContract.Contract.AddRollup(&_ManagementContract.TransactOpts, r) } -// AddRollup is a paid mutator transaction binding the contract method 0x81be5385. +// AddRollup is a paid mutator transaction binding the contract method 0x2643c850. // -// Solidity: function AddRollup((bytes32,bytes,uint256) r) returns() +// Solidity: function AddRollup((bytes32,bytes,uint256,bytes32,bytes32,uint256,bytes32) r) returns() func (_ManagementContract *ManagementContractTransactorSession) AddRollup(r StructsMetaRollup) (*types.Transaction, error) { return _ManagementContract.Contract.AddRollup(&_ManagementContract.TransactOpts, r) } @@ -946,27 +950,6 @@ func (_ManagementContract *ManagementContractTransactorSession) RevokeSequencerE return _ManagementContract.Contract.RevokeSequencerEnclave(&_ManagementContract.TransactOpts, _addr) } -// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5024621f. -// -// Solidity: function SetChallengePeriod(uint256 _delay) returns() -func (_ManagementContract *ManagementContractTransactor) SetChallengePeriod(opts *bind.TransactOpts, _delay *big.Int) (*types.Transaction, error) { - return _ManagementContract.contract.Transact(opts, "SetChallengePeriod", _delay) -} - -// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5024621f. -// -// Solidity: function SetChallengePeriod(uint256 _delay) returns() -func (_ManagementContract *ManagementContractSession) SetChallengePeriod(_delay *big.Int) (*types.Transaction, error) { - return _ManagementContract.Contract.SetChallengePeriod(&_ManagementContract.TransactOpts, _delay) -} - -// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5024621f. -// -// Solidity: function SetChallengePeriod(uint256 _delay) returns() -func (_ManagementContract *ManagementContractTransactorSession) SetChallengePeriod(_delay *big.Int) (*types.Transaction, error) { - return _ManagementContract.Contract.SetChallengePeriod(&_ManagementContract.TransactOpts, _delay) -} - // SetImportantContractAddress is a paid mutator transaction binding the contract method 0x03e72e48. // // Solidity: function SetImportantContractAddress(string key, address newAddress) returns() @@ -1051,6 +1034,27 @@ func (_ManagementContract *ManagementContractTransactorSession) RenounceOwnershi return _ManagementContract.Contract.RenounceOwnership(&_ManagementContract.TransactOpts) } +// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5d475fdd. +// +// Solidity: function setChallengePeriod(uint256 _delay) returns() +func (_ManagementContract *ManagementContractTransactor) SetChallengePeriod(opts *bind.TransactOpts, _delay *big.Int) (*types.Transaction, error) { + return _ManagementContract.contract.Transact(opts, "setChallengePeriod", _delay) +} + +// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5d475fdd. +// +// Solidity: function setChallengePeriod(uint256 _delay) returns() +func (_ManagementContract *ManagementContractSession) SetChallengePeriod(_delay *big.Int) (*types.Transaction, error) { + return _ManagementContract.Contract.SetChallengePeriod(&_ManagementContract.TransactOpts, _delay) +} + +// SetChallengePeriod is a paid mutator transaction binding the contract method 0x5d475fdd. +// +// Solidity: function setChallengePeriod(uint256 _delay) returns() +func (_ManagementContract *ManagementContractTransactorSession) SetChallengePeriod(_delay *big.Int) (*types.Transaction, error) { + return _ManagementContract.Contract.SetChallengePeriod(&_ManagementContract.TransactOpts, _delay) +} + // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. // // Solidity: function transferOwnership(address newOwner) returns() diff --git a/contracts/generated/Math/Math.go b/contracts/generated/Math/Math.go index 246eb29668..42b6144b64 100644 --- a/contracts/generated/Math/Math.go +++ b/contracts/generated/Math/Math.go @@ -32,7 +32,7 @@ var ( // MathMetaData contains all meta data concerning the Math contract. var MathMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220414fb1f0abf0470c4bfc889731211af53a844ce081ed2010bb259382b2d110fd64736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212203bbb0a5b14e7ff7e97bab6cbc191c28510681160e80558971db2cac5c537d29d64736f6c634300081c0033", } // MathABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MerkleProof/MerkleProof.go b/contracts/generated/MerkleProof/MerkleProof.go index 6a66c1fbc3..dae91b48e3 100644 --- a/contracts/generated/MerkleProof/MerkleProof.go +++ b/contracts/generated/MerkleProof/MerkleProof.go @@ -32,7 +32,7 @@ var ( // MerkleProofMetaData contains all meta data concerning the MerkleProof contract. var MerkleProofMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"MerkleProofInvalidMultiproof\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201932f27795b64645664d78ae025beac1daff12570a84e07cd61f85cdc5a46ce864736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220e4da4b39bdb4b5d9f2e7e177bc141a49cdb18d15214c684183f674d3d29d04f564736f6c634300081c0033", } // MerkleProofABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go b/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go index 28b2b8a847..67d409bc2b 100644 --- a/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go +++ b/contracts/generated/MerkleTreeMessageBus/MerkleTreeMessageBus.go @@ -50,7 +50,7 @@ type StructsValueTransferMessage struct { // MerkleTreeMessageBusMetaData contains all meta data concerning the MerkleTreeMessageBus contract. var MerkleTreeMessageBusMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"activationTime\",\"type\":\"uint256\"}],\"name\":\"addStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"name\":\"disableStateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPublishFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feesAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyMessageInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.ValueTransferMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"verifyValueTransferInclusion\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612455806101596000396000f3fe6080604052600436106101115760003560e01c80638da5cb5b116100a5578063b1454caa11610074578063b6aed0cb11610059578063b6aed0cb1461038b578063e138a8d2146103ab578063f2fde38b146103cb57610185565b8063b1454caa1461034b578063b201246f1461036b57610185565b80638da5cb5b146102a65780639730886d146102eb57806399a3ad211461030b578063ab53bddc1461032b57610185565b8063346633fb116100e1578063346633fb1461023e57806336d2da9014610251578063485cc95514610271578063715018a61461029157610185565b8062a1b815146101a65780630fcfbd11146101d15780630fe9188e146101f157806333a88c721461021157610185565b36610185576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb90349061015690339083906004016111ea565b6000604051808303818588803b15801561016f57600080fd5b505af1158015610183573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161019d90611239565b60405180910390fd5b3480156101b257600080fd5b506101bb6103eb565b6040516101c89190611249565b60405180910390f35b3480156101dd57600080fd5b506101bb6101ec366004611272565b610477565b3480156101fd57600080fd5b5061018361020c3660046112c5565b6104d6565b34801561021d57600080fd5b5061023161022c366004611272565b61051c565b6040516101c891906112ec565b61018361024c36600461130e565b61056e565b34801561025d57600080fd5b5061018361026c366004611346565b6106bd565b34801561027d57600080fd5b5061018361028c366004611365565b61073c565b34801561029d57600080fd5b506101836108a7565b3480156102b257600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101c89190611394565b3480156102f757600080fd5b506101836103063660046113a2565b6108bb565b34801561031757600080fd5b5061018361032636600461130e565b610a27565b34801561033757600080fd5b5061018361034636600461130e565b610aa7565b61035e61035936600461146b565b610b70565b6040516101c891906114f8565b34801561037757600080fd5b50610183610386366004611566565b610c7d565b34801561039757600080fd5b506101836103a63660046115d1565b610d7e565b3480156103b757600080fd5b506101836103c63660046115f1565b610dc4565b3480156103d757600080fd5b506101836103e6366004611346565b610f0f565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691631a90a2199160048083019260209291908290030181865afa15801561044e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104729190611679565b905090565b6000808260405160200161048b9190611837565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806104cf5760405162461bcd60e51b815260040161019d90611886565b9392505050565b6104de610f66565b600081815260046020526040812054900361050b5760405162461bcd60e51b815260040161019d906118c8565b600090815260046020526040812055565b600080826040516020016105309190611837565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906105665750428111155b949350505050565b60003411801561057d57508034145b6105995760405162461bcd60e51b815260040161019d90611930565b60035434906001600160a01b03161561065d5760006105b66103eb565b9050803410156105d85760405162461bcd60e51b815260040161019d90611970565b6105e28134611996565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610634576040519150601f19603f3d011682016040523d82523d6000602084013e610639565b606091505b505090508061065a5760405162461bcd60e51b815260040161019d90611a01565b50505b600061066833610fda565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516106af929190611a11565b60405180910390a350505050565b6106c5610f66565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610712576040519150601f19603f3d011682016040523d82523d6000602084013e610717565b606091505b50509050806107385760405162461bcd60e51b815260040161019d90611a5e565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107875750825b905060008267ffffffffffffffff1660011480156107a45750303b155b9050811580156107b2575080155b156107e9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561081d57845468ff00000000000000001916680100000000000000001785555b61082687611038565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561089e57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061089590600190611a92565b60405180910390a15b50505050505050565b6108af610f66565b6108b96000611049565b565b60006108c8600130611aa0565b90506108fb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109225750336001600160a01b038216145b61093e5760405162461bcd60e51b815260040161019d90611af5565b600061094a8342611b05565b905060008460405160200161095f9190611837565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109a35760405162461bcd60e51b815260040161019d90611b70565b6000818152602081815260408220849055600191906109c490880188611346565b6001600160a01b0316815260208101919091526040016000908120906109f06080880160608901611b80565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161089e8282611fbe565b610a2f610f66565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a7c576040519150601f19603f3d011682016040523d82523d6000602084013e610a81565b606091505b5050905080610aa25760405162461bcd60e51b815260040161019d90611a5e565b505050565b6000610ab4600130611aa0565b9050610ae77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610b0e5750336001600160a01b038216145b610b2a5760405162461bcd60e51b815260040161019d90611af5565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610b639190611249565b60405180910390a2505050565b6003546000906001600160a01b031615610c26576000610b8e6103eb565b905080341015610bb05760405162461bcd60e51b815260040161019d90612020565b6003546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610bfd576040519150601f19603f3d011682016040523d82523d6000602084013e610c02565b606091505b5050905080610c235760405162461bcd60e51b815260040161019d90611a01565b50505b610c2f33610fda565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610c6c9796959493929190612030565b60405180910390a195945050505050565b6000818152600460205260408120549003610caa5760405162461bcd60e51b815260040161019d906120eb565b600081815260046020526040902054421015610cd85760405162461bcd60e51b815260040161019d90612137565b600084604051602001610ceb91906121bc565b60405160208183030381529060405280519060200120604051602001610d1191906121fc565b604051602081830303815290604052805190602001209050610d5b84848484604051602001610d40919061221b565b604051602081830303815290604052805190602001206110c7565b610d775760405162461bcd60e51b815260040161019d90612285565b5050505050565b610d86610f66565b60008281526004602052604090205415610db25760405162461bcd60e51b815260040161019d906122ed565b60009182526004602052604090912055565b6000818152600460205260408120549003610df15760405162461bcd60e51b815260040161019d906120eb565b600081815260046020526040902054421015610e1f5760405162461bcd60e51b815260040161019d90612137565b6000610e2e6020860186611346565b610e3e60408701602088016122fd565b610e4e6060880160408901611b80565b610e5e6080890160608a01611b80565b610e6b60808a018a611cd7565b610e7b60c08c0160a08d0161231c565b604051602001610e919796959493929190612030565b604051602081830303815290604052805190602001209050600081604051602001610ebc919061236d565b604051602081830303815290604052805190602001209050610eeb85858584604051602001610d40919061221b565b610f075760405162461bcd60e51b815260040161019d906123d5565b505050505050565b610f17610f66565b6001600160a01b038116610f5a5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161019d9190611394565b610f6381611049565b50565b33610f987f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108b957336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161019d9190611394565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff16916001919061100d83856123e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b6110406110df565b610f6381611146565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000826110d586868561114e565b1495945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166108b9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f176110df565b600081815b848110156111875761117d8287878481811061117157611171612409565b90506020020135611190565b9150600101611153565b50949350505050565b60008183106111ac5760008281526020849052604090206111bb565b60008381526020839052604090205b90505b92915050565b60006001600160a01b0382166111be565b6111de816111c4565b82525050565b806111de565b604081016111f882856111d5565b6104cf60208301846111e4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b602080825281016111be81611205565b602081016111be82846111e4565b600060c0828403121561126c5761126c600080fd5b50919050565b60006020828403121561128757611287600080fd5b813567ffffffffffffffff8111156112a1576112a1600080fd5b61056684828501611257565b805b8114610f6357600080fd5b80356111be816112ad565b6000602082840312156112da576112da600080fd5b6111bb83836112ba565b8015156111de565b602081016111be82846112e4565b6112af816111c4565b80356111be816112fa565b6000806040838503121561132457611324600080fd5b61132e8484611303565b915061133d84602085016112ba565b90509250929050565b60006020828403121561135b5761135b600080fd5b6111bb8383611303565b6000806040838503121561137b5761137b600080fd5b6113858484611303565b915061133d8460208501611303565b602081016111be82846111d5565b600080604083850312156113b8576113b8600080fd5b823567ffffffffffffffff8111156113d2576113d2600080fd5b6113de85828601611257565b92505061133d84602085016112ba565b63ffffffff81166112af565b80356111be816113ee565b60008083601f84011261141a5761141a600080fd5b50813567ffffffffffffffff81111561143557611435600080fd5b60208301915083600182028301111561145057611450600080fd5b9250929050565b60ff81166112af565b80356111be81611457565b60008060008060006080868803121561148657611486600080fd5b61149087876113fa565b945061149f87602088016113fa565b9350604086013567ffffffffffffffff8111156114be576114be600080fd5b6114ca88828901611405565b93509350506114dc8760608801611460565b90509295509295909350565b67ffffffffffffffff81166111de565b602081016111be82846114e8565b60006080828403121561126c5761126c600080fd5b60008083601f84011261153057611530600080fd5b50813567ffffffffffffffff81111561154b5761154b600080fd5b60208301915083602082028301111561145057611450600080fd5b60008060008060c0858703121561157f5761157f600080fd5b6115898686611506565b9350608085013567ffffffffffffffff8111156115a8576115a8600080fd5b6115b48782880161151b565b93509350506115c68660a087016112ba565b905092959194509250565b600080604083850312156115e7576115e7600080fd5b61132e84846112ba565b6000806000806060858703121561160a5761160a600080fd5b843567ffffffffffffffff81111561162457611624600080fd5b61163087828801611257565b945050602085013567ffffffffffffffff81111561165057611650600080fd5b61165c8782880161151b565b93509350506115c686604087016112ba565b80516111be816112ad565b60006020828403121561168e5761168e600080fd5b6111bb838361166e565b5060006111be6020830183611303565b67ffffffffffffffff81166112af565b80356111be816116a8565b5060006111be60208301836116b8565b5060006111be60208301836113fa565b63ffffffff81166111de565b6000808335601e193685900301811261170a5761170a600080fd5b830160208101925035905067ffffffffffffffff81111561172d5761172d600080fd5b3681900382131561145057611450600080fd5b82818337506000910152565b818352602083019250611760828483611740565b50601f01601f19160190565b5060006111be6020830183611460565b60ff81166111de565b600060c083016117958380611698565b61179f85826111d5565b506117ad60208401846116c3565b6117ba60208601826114e8565b506117c860408401846116d3565b6117d560408601826116e3565b506117e360608401846116d3565b6117f060608601826116e3565b506117fe60808401846116ef565b858303608087015261181183828461174c565b9250505061182260a084018461176c565b61182f60a086018261177c565b509392505050565b602080825281016111bb8184611785565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b602080825281016111be81611848565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e00000000000081529050611233565b602080825281016111be81611896565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611880565b602080825281016111be816118d8565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152611233565b602080825281016111be81611940565b634e487b7160e01b600052601160045260246000fd5b818103818111156111be576111be611980565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f726163740000000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be816119a9565b60408101611a1f82856111e4565b6104cf60208301846114e8565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050611233565b602080825281016111be81611a2c565b60006111be82611a7c565b90565b67ffffffffffffffff1690565b6111de81611a6e565b602081016111be8284611a89565b6001600160a01b039182169190811690828203908111156111be576111be611980565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050611233565b602080825281016111be81611ac3565b808201808211156111be576111be611980565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81611b18565b600060208284031215611b9557611b95600080fd5b6111bb83836113fa565b600081356111be816112fa565b60006001600160a01b03835b81169019929092169190911792915050565b60006111be826111c4565b60006111be82611bca565b611be982611bd5565b611bf4818354611bac565b8255505050565b600081356111be816116a8565b60007bffffffffffffffff0000000000000000000000000000000000000000611bb88460a01b90565b60006111be67ffffffffffffffff8316611a7c565b611c4f82611c31565b611bf4818354611c08565b600081356111be816113ee565b60007fffffffff00000000000000000000000000000000000000000000000000000000611bb88460e01b90565b600063ffffffff82166111be565b611cab82611c94565b611bf4818354611c67565b600063ffffffff83611bb8565b611ccc82611c94565b611bf4818354611cb6565b6000808335601e1936859003018112611cf257611cf2600080fd5b8301915050803567ffffffffffffffff811115611d1157611d11600080fd5b60208201915060018102360382131561145057611450600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b600281046001821680611d6c57607f821691505b60208210810361126c5761126c611d42565b60006111be611a798381565b611d9383611d7e565b815460001960089490940293841b1916921b91909117905550565b6000610aa2818484611d8a565b8181101561073857611dce600082611dae565b600101611dbb565b601f821115610aa2576000818152602090206020601f85010481016020851015611dfd5750805b610d776020601f860104830182611dbb565b8267ffffffffffffffff811115611e2857611e28611d2c565b611e328254611d58565b611e3d828285611dd6565b506000601f821160018114611e725760008315611e5a5750848201355b600019600885021c1981166002850217855550610f07565b600084815260209020601f19841690835b82811015611ea35787850135825560209485019460019092019101611e83565b5084821015611ec0576000196008601f8716021c19878501351681555b5050505060020260010190555050565b610aa2838383611e0f565b600081356111be81611457565b600060ff82166111be565b611efc82611ee8565b815460ff191660ff821617611bf4565b808280611f1881611b9f565b9050611f248184611be0565b50506020830180611f3482611bfb565b9050611f408184611c46565b50506040830180611f5082611c5a565b9050611f5c8184611ca2565b5050506060820180611f6d82611c5a565b9050611f7c8160018501611cc3565b5050611f8b6080830183611cd7565b611f99818360028601611ed0565b505060a0820180611fa982611edb565b9050611fb88160038501611ef3565b50505050565b6107388282611f0c565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81611fc8565b60c0810161203e828a6111d5565b61204b60208301896114e8565b61205860408301886116e3565b61206560608301876116e3565b818103608083015261207881858761174c565b905061208760a083018461177c565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e0000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81612093565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b60208201529050611880565b602080825281016111be816120fb565b5060006111be60208301836112ba565b6121618180611698565b61216b83826111d5565b506121796020820182611698565b61218660208401826111d5565b506121946040820182612147565b6121a160408401826111e4565b506121af60608201826116c3565b610aa260608401826114e8565b608081016111be8284612157565b60018152602081017f760000000000000000000000000000000000000000000000000000000000000081529050611233565b6040808252810161220c816121ca565b90506111be60208301846111e4565b61222581836111e4565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e0000000000000000000000000060208201529050611880565b602080825281016111be8161222d565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f652062757300000000000000000000000000000000000000000000000000000060208201529050611880565b602080825281016111be81612295565b60006020828403121561231257612312600080fd5b6111bb83836116b8565b60006020828403121561233157612331600080fd5b6111bb8383611460565b60018152602081017f6d0000000000000000000000000000000000000000000000000000000000000081529050611233565b6040808252810161220c8161233b565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e0000000000000000000000000000000060208201529050611880565b602080825281016111be8161237d565b67ffffffffffffffff9182169190811690828201908111156111be576111be611980565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209046d260e6ecf02a9b545045265133ebd2a8a091d8cfe42d8fe9829451348f2664736f6c634300081c0033", + Bin: "0x608060405234801561000f575f5ffd5b5061001933610026565b610021610096565b610148565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e65760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101455780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6123a5806101555f395ff3fe608060405260043610610110575f3560e01c80638da5cb5b116100a4578063b1454caa11610073578063b6aed0cb11610058578063b6aed0cb1461037a578063e138a8d214610399578063f2fde38b146103b857610180565b8063b1454caa1461033b578063b201246f1461035b57610180565b80638da5cb5b1461029a5780639730886d146102de57806399a3ad21146102fd578063ab53bddc1461031c57610180565b8063346633fb116100e0578063346633fb1461023557806336d2da9014610248578063485cc95514610267578063715018a61461028657610180565b8062a1b815146101a15780630fcfbd11146101cb5780630fe9188e146101ea57806333a88c721461020957610180565b36610180576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb903490610155903390839060040161119d565b5f604051808303818588803b15801561016c575f5ffd5b505af115801561017e573d5f5f3e3d5ffd5b005b60405162461bcd60e51b8152600401610198906111ec565b60405180910390fd5b3480156101ac575f5ffd5b506101b56103d7565b6040516101c291906111fc565b60405180910390f35b3480156101d6575f5ffd5b506101b56101e5366004611223565b610460565b3480156101f5575f5ffd5b5061017e610204366004611272565b6104bd565b348015610214575f5ffd5b50610228610223366004611223565b610501565b6040516101c29190611297565b61017e6102433660046112b9565b610551565b348015610253575f5ffd5b5061017e6102623660046112ef565b61069a565b348015610272575f5ffd5b5061017e61028136600461130c565b610715565b348015610291575f5ffd5b5061017e61087e565b3480156102a5575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101c29190611339565b3480156102e9575f5ffd5b5061017e6102f8366004611347565b610891565b348015610308575f5ffd5b5061017e6103173660046112b9565b6109f6565b348015610327575f5ffd5b5061017e6103363660046112b9565b610a72565b61034e610349366004611409565b610b3a565b6040516101c29190611491565b348015610366575f5ffd5b5061017e6103753660046114f9565b610c42565b348015610385575f5ffd5b5061017e610394366004611560565b610d40565b3480156103a4575f5ffd5b5061017e6103b336600461157e565b610d84565b3480156103c3575f5ffd5b5061017e6103d23660046112ef565b610ecb565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290515f926001600160a01b031691631a90a2199160048083019260209291908290030181865afa158015610437573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045b9190611601565b905090565b5f5f8260405160200161047391906117b3565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150806104b65760405162461bcd60e51b815260040161019890611802565b9392505050565b6104c5610f21565b5f8181526004602052604081205490036104f15760405162461bcd60e51b815260040161019890611844565b5f90815260046020526040812055565b5f5f8260405160200161051491906117b3565b60408051601f1981840301815291815281516020928301205f8181529283905291205490915080158015906105495750428111155b949350505050565b5f3411801561055f57508034145b61057b5760405162461bcd60e51b8152600401610198906118ac565b60035434906001600160a01b03161561063b575f6105976103d7565b9050803410156105b95760405162461bcd60e51b8152600401610198906118ec565b6105c38134611910565b6003546040519193505f916001600160a01b039091169083908381818185875af1925050503d805f8114610612576040519150601f19603f3d011682016040523d82523d5f602084013e610617565b606091505b50509050806106385760405162461bcd60e51b81526004016101989061197b565b50505b5f61064533610f95565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b6848460405161068c92919061198b565b60405180910390a350505050565b6106a2610f21565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146106eb576040519150601f19603f3d011682016040523d82523d5f602084013e6106f0565b606091505b50509050806107115760405162461bcd60e51b8152600401610198906119d8565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f8115801561075f5750825b90505f8267ffffffffffffffff16600114801561077b5750303b155b905081158015610789575080155b156107c0576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107f457845468ff00000000000000001916680100000000000000001785555b6107fd87610ff2565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561087557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061086c90600190611a0b565b60405180910390a15b50505050505050565b610886610f21565b61088f5f611003565b565b5f61089d600130611a19565b90506108d07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806108f75750336001600160a01b038216145b6109135760405162461bcd60e51b815260040161019890611a6e565b5f61091e8342611a7e565b90505f8460405160200161093291906117b3565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150156109755760405162461bcd60e51b815260040161019890611ae9565b5f81815260208181526040822084905560019190610995908801886112ef565b6001600160a01b0316815260208101919091526040015f908120906109c06080880160608901611af9565b63ffffffff1681526020808201929092526040015f90812080546001810182559082529190208691600402016108758282611f15565b6109fe610f21565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610a47576040519150601f19603f3d011682016040523d82523d5f602084013e610a4c565b606091505b5050905080610a6d5760405162461bcd60e51b8152600401610198906119d8565b505050565b5f610a7e600130611a19565b9050610ab17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610ad85750336001600160a01b038216145b610af45760405162461bcd60e51b815260040161019890611a6e565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610b2d91906111fc565b60405180910390a2505050565b6003545f906001600160a01b031615610beb575f610b566103d7565b905080341015610b785760405162461bcd60e51b815260040161019890611f77565b6003546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610bc2576040519150601f19603f3d011682016040523d82523d5f602084013e610bc7565b606091505b5050905080610be85760405162461bcd60e51b81526004016101989061197b565b50505b610bf433610f95565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610c319796959493929190611f87565b60405180910390a195945050505050565b5f818152600460205260408120549003610c6e5760405162461bcd60e51b815260040161019890612042565b5f81815260046020526040902054421015610c9b5760405162461bcd60e51b81526004016101989061208e565b5f84604051602001610cad9190612112565b60405160208183030381529060405280519060200120604051602001610cd39190612152565b604051602081830303815290604052805190602001209050610d1d84848484604051602001610d029190612171565b60405160208183030381529060405280519060200120611080565b610d395760405162461bcd60e51b8152600401610198906121db565b5050505050565b610d48610f21565b5f8281526004602052604090205415610d735760405162461bcd60e51b815260040161019890612243565b5f9182526004602052604090912055565b5f818152600460205260408120549003610db05760405162461bcd60e51b815260040161019890612042565b5f81815260046020526040902054421015610ddd5760405162461bcd60e51b81526004016101989061208e565b5f610deb60208601866112ef565b610dfb6040870160208801612253565b610e0b6060880160408901611af9565b610e1b6080890160608a01611af9565b610e2860808a018a611c43565b610e3860c08c0160a08d01612270565b604051602001610e4e9796959493929190611f87565b6040516020818303038152906040528051906020012090505f81604051602001610e7891906122bf565b604051602081830303815290604052805190602001209050610ea785858584604051602001610d029190612171565b610ec35760405162461bcd60e51b815260040161019890612327565b505050505050565b610ed3610f21565b6001600160a01b038116610f15575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101989190611339565b610f1e81611003565b50565b33610f537f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461088f57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101989190611339565b6001600160a01b0381165f908152600260205260408120805467ffffffffffffffff169160019190610fc78385612337565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b610ffa611097565b610f1e816110fe565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8261108d868685611106565b1495945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661088f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ed3611097565b5f81815b8481101561113e57611134828787848181106111285761112861235b565b90506020020135611147565b915060010161110a565b50949350505050565b5f818310611161575f82815260208490526040902061116f565b5f8381526020839052604090205b90505b92915050565b5f6001600160a01b038216611172565b61119181611178565b82525050565b80611191565b604081016111ab8285611188565b6104b66020830184611197565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101611172816111b8565b602081016111728284611197565b5f60c0828403121561121d5761121d5f5ffd5b50919050565b5f60208284031215611236576112365f5ffd5b813567ffffffffffffffff81111561124f5761124f5f5ffd5b6105498482850161120a565b805b8114610f1e575f5ffd5b80356111728161125b565b5f60208284031215611285576112855f5ffd5b61116f8383611267565b801515611191565b60208101611172828461128f565b61125d81611178565b8035611172816112a5565b5f5f604083850312156112cd576112cd5f5ffd5b6112d784846112ae565b91506112e68460208501611267565b90509250929050565b5f60208284031215611302576113025f5ffd5b61116f83836112ae565b5f5f60408385031215611320576113205f5ffd5b61132a84846112ae565b91506112e684602085016112ae565b602081016111728284611188565b5f5f6040838503121561135b5761135b5f5ffd5b823567ffffffffffffffff811115611374576113745f5ffd5b6113808582860161120a565b9250506112e68460208501611267565b63ffffffff811661125d565b803561117281611390565b5f5f83601f8401126113ba576113ba5f5ffd5b50813567ffffffffffffffff8111156113d4576113d45f5ffd5b6020830191508360018202830111156113ee576113ee5f5ffd5b9250929050565b60ff811661125d565b8035611172816113f5565b5f5f5f5f5f60808688031215611420576114205f5ffd5b61142a878761139c565b9450611439876020880161139c565b9350604086013567ffffffffffffffff811115611457576114575f5ffd5b611463888289016113a7565b935093505061147587606088016113fe565b90509295509295909350565b67ffffffffffffffff8116611191565b602081016111728284611481565b5f6080828403121561121d5761121d5f5ffd5b5f5f83601f8401126114c5576114c55f5ffd5b50813567ffffffffffffffff8111156114df576114df5f5ffd5b6020830191508360208202830111156113ee576113ee5f5ffd5b5f5f5f5f60c0858703121561150f5761150f5f5ffd5b611519868661149f565b9350608085013567ffffffffffffffff811115611537576115375f5ffd5b611543878288016114b2565b93509350506115558660a08701611267565b905092959194509250565b5f5f60408385031215611574576115745f5ffd5b6112d78484611267565b5f5f5f5f60608587031215611594576115945f5ffd5b843567ffffffffffffffff8111156115ad576115ad5f5ffd5b6115b98782880161120a565b945050602085013567ffffffffffffffff8111156115d8576115d85f5ffd5b6115e4878288016114b2565b93509350506115558660408701611267565b80516111728161125b565b5f60208284031215611614576116145f5ffd5b61116f83836115f6565b505f61117260208301836112ae565b67ffffffffffffffff811661125d565b80356111728161162d565b505f611172602083018361163d565b505f611172602083018361139c565b63ffffffff8116611191565b5f808335601e193685900301811261168b5761168b5f5ffd5b830160208101925035905067ffffffffffffffff8111156116ad576116ad5f5ffd5b368190038213156113ee576113ee5f5ffd5b82818337505f910152565b8183526020830192506116de8284836116bf565b50601f01601f19160190565b505f61117260208301836113fe565b60ff8116611191565b5f60c08301611711838061161e565b61171b8582611188565b506117296020840184611648565b6117366020860182611481565b506117446040840184611657565b6117516040860182611666565b5061175f6060840184611657565b61176c6060860182611666565b5061177a6080840184611672565b858303608087015261178d8382846116ca565b9250505061179e60a08401846116ea565b6117ab60a08601826116f9565b509392505050565b6020808252810161116f8184611702565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d69747465648152601760f91b602082015290505b60400190565b60208082528101611172816117c4565b601a8152602081017f537461746520726f6f7420646f6573206e6f742065786973742e000000000000815290506111e6565b6020808252810161117281611812565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e6720457468657200000000000000000000000000000000602082015290506117fc565b6020808252810161117281611854565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c756591019081526111e6565b60208082528101611172816118bc565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611172576111726118fc565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f7261637400000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611923565b604081016119998285611197565b6104b66020830184611481565b60148152602081017f6661696c65642073656e64696e672076616c7565000000000000000000000000815290506111e6565b60208082528101611172816119a6565b5f611172826119f5565b90565b67ffffffffffffffff1690565b611191816119e8565b602081016111728284611a02565b6001600160a01b03918216919081169082820390811115611172576111726118fc565b60118152602081017f4e6f74206f776e6572206f722073656c66000000000000000000000000000000815290506111e6565b6020808252810161117281611a3c565b80820180821115611172576111726118fc565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f2100000000000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611a91565b5f60208284031215611b0c57611b0c5f5ffd5b61116f838361139c565b5f8135611172816112a5565b5f6001600160a01b03835b81169019929092169190911792915050565b5f61117282611178565b5f61117282611b3f565b611b5c82611b49565b611b67818354611b22565b8255505050565b5f81356111728161162d565b5f7bffffffffffffffff0000000000000000000000000000000000000000611b2d8460a01b90565b5f61117267ffffffffffffffff83166119f5565b611bbf82611ba2565b611b67818354611b7a565b5f813561117281611390565b5f7fffffffff00000000000000000000000000000000000000000000000000000000611b2d8460e01b90565b5f63ffffffff8216611172565b611c1882611c02565b611b67818354611bd6565b5f63ffffffff83611b2d565b611c3882611c02565b611b67818354611c23565b5f808335601e1936859003018112611c5c57611c5c5f5ffd5b8301915050803567ffffffffffffffff811115611c7a57611c7a5f5ffd5b6020820191506001810236038213156113ee576113ee5f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b600281046001821680611cd057607f821691505b60208210810361121d5761121d611ca8565b5f6111726119f28381565b611cf683611ce2565b81545f1960089490940293841b1916921b91909117905550565b5f610a6d818484611ced565b8181101561071157611d2e5f82611d10565b600101611d1c565b601f821115610a6d575f818152602090206020601f85010481016020851015611d5c5750805b610d396020601f860104830182611d1c565b8267ffffffffffffffff811115611d8757611d87611c94565b611d918254611cbc565b611d9c828285611d36565b505f601f821160018114611dce575f8315611db75750848201355b5f19600885021c1981166002850217855550610ec3565b5f84815260208120601f198516915b82811015611dfd5787850135825560209485019460019092019101611ddd565b5084821015611e19575f196008601f8716021c19878501351681555b5050505060020260010190555050565b610a6d838383611d6e565b5f8135611172816113f5565b5f60ff8216611172565b611e5382611e40565b815460ff191660ff821617611b67565b808280611e6f81611b16565b9050611e7b8184611b53565b50506020830180611e8b82611b6e565b9050611e978184611bb6565b50506040830180611ea782611bca565b9050611eb38184611c0f565b5050506060820180611ec482611bca565b9050611ed38160018501611c2f565b5050611ee26080830183611c43565b611ef0818360028601611e29565b505060a0820180611f0082611e34565b9050611f0f8160038501611e4a565b50505050565b6107118282611e63565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f7373616765000000000000000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611f1f565b60c08101611f95828a611188565b611fa26020830189611481565b611faf6040830188611666565b611fbc6060830187611666565b8181036080830152611fcf8185876116ca565b9050611fde60a08301846116f9565b98975050505050505050565b602a8152602081017f526f6f74206973206e6f74207075626c6973686564206f6e2074686973206d6581527f7373616765206275732e00000000000000000000000000000000000000000000602082015290506117fc565b6020808252810161117281611fea565b60218152602081017f526f6f74206973206e6f7420636f6e736964657265642066696e616c207965748152601760f91b602082015290506117fc565b6020808252810161117281612052565b505f6111726020830183611267565b6120b7818061161e565b6120c18382611188565b506120cf602082018261161e565b6120dc6020840182611188565b506120ea604082018261209e565b6120f76040840182611197565b506121056060820182611648565b610a6d6060840182611481565b6080810161117282846120ad565b60018152602081017f7600000000000000000000000000000000000000000000000000000000000000815290506111e6565b6040808252810161216281612120565b90506111726020830184611197565b61217b8183611197565b602001919050565b60338152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722076616c7581527f65207472616e73666572206d6573736167652e00000000000000000000000000602082015290506117fc565b6020808252810161117281612183565b60258152602081017f526f6f7420616c726561647920616464656420746f20746865206d657373616781527f6520627573000000000000000000000000000000000000000000000000000000602082015290506117fc565b60208082528101611172816121eb565b5f60208284031215612266576122665f5ffd5b61116f838361163d565b5f60208284031215612283576122835f5ffd5b61116f83836113fe565b60018152602081017f6d00000000000000000000000000000000000000000000000000000000000000815290506111e6565b604080825281016121628161228d565b60308152602081017f496e76616c696420696e636c7573696f6e2070726f6f6620666f722063726f7381527f7320636861696e206d6573736167652e00000000000000000000000000000000602082015290506117fc565b60208082528101611172816122cf565b67ffffffffffffffff918216919081169082820190811115611172576111726118fc565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220e0a8fdb4af120eef76f2b07a02e0d752f0824bbf72969c3e3b3866ef702ca1d464736f6c634300081c0033", } // MerkleTreeMessageBusABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/MessageBus/MessageBus.go b/contracts/generated/MessageBus/MessageBus.go index d4d9d55264..82eb7a6af1 100644 --- a/contracts/generated/MessageBus/MessageBus.go +++ b/contracts/generated/MessageBus/MessageBus.go @@ -42,7 +42,7 @@ type StructsCrossChainMessage struct { // MessageBusMetaData contains all meta data concerning the MessageBus contract. var MessageBusMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"LogMessagePublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NativeDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"name\":\"ValueTransfer\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"getMessageTimeOfFinality\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPublishFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feesAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notifyDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"name\":\"publishMessage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveValueFromL2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"retrieveAllFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendValueToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"finalAfterTimestamp\",\"type\":\"uint256\"}],\"name\":\"storeCrossChainMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequence\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"topic\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"consistencyLevel\",\"type\":\"uint8\"}],\"internalType\":\"structStructs.CrossChainMessage\",\"name\":\"crossChainMessage\",\"type\":\"tuple\"}],\"name\":\"verifyMessageFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b40806101596000396000f3fe6080604052600436106100d55760003560e01c8063715018a61161007f57806399a3ad211161005957806399a3ad21146102af578063ab53bddc146102cf578063b1454caa146102ef578063f2fde38b1461030f57610149565b8063715018a6146102355780638da5cb5b1461024a5780639730886d1461028f57610149565b8063346633fb116100b0578063346633fb146101e257806336d2da90146101f5578063485cc9551461021557610149565b8062a1b8151461016a5780630fcfbd111461019557806333a88c72146101b557610149565b36610149576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb90349061011a9033908390600401610dca565b6000604051808303818588803b15801561013357600080fd5b505af1158015610147573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016190610e19565b60405180910390fd5b34801561017657600080fd5b5061017f61032f565b60405161018c9190610e29565b60405180910390f35b3480156101a157600080fd5b5061017f6101b0366004610e52565b6103bb565b3480156101c157600080fd5b506101d56101d0366004610e52565b61041a565b60405161018c9190610e95565b6101476101f0366004610ed3565b61046c565b34801561020157600080fd5b50610147610210366004610f0b565b6105bb565b34801561022157600080fd5b50610147610230366004610f2a565b61063a565b34801561024157600080fd5b506101476107a5565b34801561025657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161018c9190610f59565b34801561029b57600080fd5b506101476102aa366004610f67565b6107b9565b3480156102bb57600080fd5b506101476102ca366004610ed3565b610925565b3480156102db57600080fd5b506101476102ea366004610ed3565b6109a5565b6103026102fd366004611030565b610a6e565b60405161018c91906110bd565b34801561031b57600080fd5b5061014761032a366004610f0b565b610b7b565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691631a90a2199160048083019260209291908290030181865afa158015610392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b691906110d6565b905090565b600080826040516020016103cf9190611294565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806104135760405162461bcd60e51b8152600401610161906112ff565b9392505050565b6000808260405160200161042e9190611294565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906104645750428111155b949350505050565b60003411801561047b57508034145b6104975760405162461bcd60e51b815260040161016190611367565b60035434906001600160a01b03161561055b5760006104b461032f565b9050803410156104d65760405162461bcd60e51b8152600401610161906113a7565b6104e081346113cd565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610532576040519150601f19603f3d011682016040523d82523d6000602084013e610537565b606091505b50509050806105585760405162461bcd60e51b815260040161016190611438565b50505b600061056633610bd2565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516105ad929190611448565b60405180910390a350505050565b6105c3610c30565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610610576040519150601f19603f3d011682016040523d82523d6000602084013e610615565b606091505b50509050806106365760405162461bcd60e51b815260040161016190611495565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156106855750825b905060008267ffffffffffffffff1660011480156106a25750303b155b9050811580156106b0575080155b156106e7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561071b57845468ff00000000000000001916680100000000000000001785555b61072487610ca4565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561079c57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610793906001906114c9565b60405180910390a15b50505050505050565b6107ad610c30565b6107b76000610cb5565b565b60006107c66001306114d7565b90506107f97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806108205750336001600160a01b038216145b61083c5760405162461bcd60e51b81526004016101619061152c565b6000610848834261153c565b905060008460405160200161085d9190611294565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156108a15760405162461bcd60e51b8152600401610161906115a7565b6000818152602081815260408220849055600191906108c290880188610f0b565b6001600160a01b0316815260208101919091526040016000908120906108ee60808801606089016115b7565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161079c8282611a11565b61092d610c30565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461097a576040519150601f19603f3d011682016040523d82523d6000602084013e61097f565b606091505b50509050806109a05760405162461bcd60e51b815260040161016190611495565b505050565b60006109b26001306114d7565b90506109e57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610a0c5750336001600160a01b038216145b610a285760405162461bcd60e51b81526004016101619061152c565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610a619190610e29565b60405180910390a2505050565b6003546000906001600160a01b031615610b24576000610a8c61032f565b905080341015610aae5760405162461bcd60e51b815260040161016190611a73565b6003546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610afb576040519150601f19603f3d011682016040523d82523d6000602084013e610b00565b606091505b5050905080610b215760405162461bcd60e51b815260040161016190611438565b50505b610b2d33610bd2565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610b6a9796959493929190611a83565b60405180910390a195945050505050565b610b83610c30565b6001600160a01b038116610bc65760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101619190610f59565b610bcf81610cb5565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610c058385611ae6565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c627f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107b757336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101619190610f59565b610cac610d33565b610bcf81610d9a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166107b7576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b83610d33565b60006001600160a01b0382165b92915050565b610dbe81610da2565b82525050565b80610dbe565b60408101610dd88285610db5565b6104136020830184610dc4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610daf81610de5565b60208101610daf8284610dc4565b600060c08284031215610e4c57610e4c600080fd5b50919050565b600060208284031215610e6757610e67600080fd5b813567ffffffffffffffff811115610e8157610e81600080fd5b61046484828501610e37565b801515610dbe565b60208101610daf8284610e8d565b610eac81610da2565b8114610bcf57600080fd5b8035610daf81610ea3565b80610eac565b8035610daf81610ec2565b60008060408385031215610ee957610ee9600080fd5b610ef38484610eb7565b9150610f028460208501610ec8565b90509250929050565b600060208284031215610f2057610f20600080fd5b6104138383610eb7565b60008060408385031215610f4057610f40600080fd5b610f4a8484610eb7565b9150610f028460208501610eb7565b60208101610daf8284610db5565b60008060408385031215610f7d57610f7d600080fd5b823567ffffffffffffffff811115610f9757610f97600080fd5b610fa385828601610e37565b925050610f028460208501610ec8565b63ffffffff8116610eac565b8035610daf81610fb3565b60008083601f840112610fdf57610fdf600080fd5b50813567ffffffffffffffff811115610ffa57610ffa600080fd5b60208301915083600182028301111561101557611015600080fd5b9250929050565b60ff8116610eac565b8035610daf8161101c565b60008060008060006080868803121561104b5761104b600080fd5b6110558787610fbf565b94506110648760208801610fbf565b9350604086013567ffffffffffffffff81111561108357611083600080fd5b61108f88828901610fca565b93509350506110a18760608801611025565b90509295509295909350565b67ffffffffffffffff8116610dbe565b60208101610daf82846110ad565b8051610daf81610ec2565b6000602082840312156110eb576110eb600080fd5b61041383836110cb565b506000610daf6020830183610eb7565b67ffffffffffffffff8116610eac565b8035610daf81611105565b506000610daf6020830183611115565b506000610daf6020830183610fbf565b63ffffffff8116610dbe565b6000808335601e193685900301811261116757611167600080fd5b830160208101925035905067ffffffffffffffff81111561118a5761118a600080fd5b3681900382131561101557611015600080fd5b82818337506000910152565b8183526020830192506111bd82848361119d565b50601f01601f19160190565b506000610daf6020830183611025565b60ff8116610dbe565b600060c083016111f283806110f5565b6111fc8582610db5565b5061120a6020840184611120565b61121760208601826110ad565b506112256040840184611130565b6112326040860182611140565b506112406060840184611130565b61124d6060860182611140565b5061125b608084018461114c565b858303608087015261126e8382846111a9565b9250505061127f60a08401846111c9565b61128c60a08601826111d9565b509392505050565b6020808252810161041381846111e2565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610daf816112a5565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e6720457468657200000000000000000000000000000000602082015290506112f9565b60208082528101610daf8161130f565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610e13565b60208082528101610daf81611377565b634e487b7160e01b600052601160045260246000fd5b81810381811115610daf57610daf6113b7565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f7261637400000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf816113e0565b604081016114568285610dc4565b61041360208301846110ad565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610e13565b60208082528101610daf81611463565b6000610daf826114b3565b90565b67ffffffffffffffff1690565b610dbe816114a5565b60208101610daf82846114c0565b6001600160a01b03918216919081169082820390811115610daf57610daf6113b7565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610e13565b60208082528101610daf816114fa565b80820180821115610daf57610daf6113b7565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f2100000000000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf8161154f565b6000602082840312156115cc576115cc600080fd5b6104138383610fbf565b60008135610daf81610ea3565b60006001600160a01b03835b81169019929092169190911792915050565b60006001600160a01b038216610daf565b6000610daf82611601565b6000610daf82611612565b6116318261161d565b61163c8183546115e3565b8255505050565b60008135610daf81611105565b60007bffffffffffffffff00000000000000000000000000000000000000006115ef8460a01b90565b6000610daf67ffffffffffffffff83166114b3565b61169782611679565b61163c818354611650565b60008135610daf81610fb3565b60007fffffffff000000000000000000000000000000000000000000000000000000006115ef8460e01b90565b600063ffffffff8216610daf565b6116f3826116dc565b61163c8183546116af565b600063ffffffff836115ef565b611714826116dc565b61163c8183546116fe565b6000808335601e193685900301811261173a5761173a600080fd5b8301915050803567ffffffffffffffff81111561175957611759600080fd5b60208201915060018102360382131561101557611015600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806117b457607f821691505b602082108103610e4c57610e4c61178a565b6000610daf6114b08381565b6117db836117c6565b815460001960089490940293841b1916921b91909117905550565b60006109a08184846117d2565b81811015610636576118166000826117f6565b600101611803565b601f8211156109a0576000818152602090206020601f850104810160208510156118455750805b6118576020601f860104830182611803565b5050505050565b8267ffffffffffffffff81111561187757611877611774565b61188182546117a0565b61188c82828561181e565b506000601f8211600181146118c157600083156118a95750848201355b600019600885021c198116600285021785555061191b565b600084815260209020601f19841690835b828110156118f257878501358255602094850194600190920191016118d2565b508482101561190f576000196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6109a083838361185e565b60008135610daf8161101c565b600060ff8216610daf565b61194f8261193b565b815460ff191660ff82161761163c565b80828061196b816115d6565b90506119778184611628565b5050602083018061198782611643565b9050611993818461168e565b505060408301806119a3826116a2565b90506119af81846116ea565b50505060608201806119c0826116a2565b90506119cf816001850161170b565b50506119de608083018361171f565b6119ec818360028601611923565b505060a08201806119fc8261192e565b9050611a0b8160038501611946565b50505050565b610636828261195f565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f7373616765000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf81611a1b565b60c08101611a91828a610db5565b611a9e60208301896110ad565b611aab6040830188611140565b611ab86060830187611140565b8181036080830152611acb8185876111a9565b9050611ada60a08301846111d9565b98975050505050505050565b67ffffffffffffffff918216919081169082820190811115610daf57610daf6113b756fea2646970667358221220bead2f08222fa8050ef654f93b3b55289786509febf6aadea92d722d33fb188964736f6c634300081c0033", + Bin: "0x608060405234801561000f575f5ffd5b5061001933610026565b610021610096565b610148565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e65760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101455780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611abd806101555f395ff3fe6080604052600436106100d4575f3560e01c8063715018a61161007e57806399a3ad211161005857806399a3ad21146102a2578063ab53bddc146102c1578063b1454caa146102e0578063f2fde38b1461030057610144565b8063715018a61461022b5780638da5cb5b1461023f5780639730886d1461028357610144565b8063346633fb116100af578063346633fb146101da57806336d2da90146101ed578063485cc9551461020c57610144565b8062a1b815146101655780630fcfbd111461018f57806333a88c72146101ae57610144565b36610144576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101199033908390600401610d91565b5f604051808303818588803b158015610130575f5ffd5b505af1158015610142573d5f5f3e3d5ffd5b005b60405162461bcd60e51b815260040161015c90610de0565b60405180910390fd5b348015610170575f5ffd5b5061017961031f565b6040516101869190610df0565b60405180910390f35b34801561019a575f5ffd5b506101796101a9366004610e17565b6103a8565b3480156101b9575f5ffd5b506101cd6101c8366004610e17565b610405565b6040516101869190610e57565b6101426101e8366004610e94565b610455565b3480156101f8575f5ffd5b50610142610207366004610eca565b61059e565b348015610217575f5ffd5b50610142610226366004610ee7565b610619565b348015610236575f5ffd5b50610142610782565b34801561024a575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101869190610f14565b34801561028e575f5ffd5b5061014261029d366004610f22565b610795565b3480156102ad575f5ffd5b506101426102bc366004610e94565b6108fa565b3480156102cc575f5ffd5b506101426102db366004610e94565b610976565b6102f36102ee366004610fe4565b610a3e565b604051610186919061106c565b34801561030b575f5ffd5b5061014261031a366004610eca565b610b46565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290515f926001600160a01b031691631a90a2199160048083019260209291908290030181865afa15801561037f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a39190611085565b905090565b5f5f826040516020016103bb9190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150806103fe5760405162461bcd60e51b815260040161015c906112a2565b9392505050565b5f5f826040516020016104189190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150801580159061044d5750428111155b949350505050565b5f3411801561046357508034145b61047f5760405162461bcd60e51b815260040161015c9061130a565b60035434906001600160a01b03161561053f575f61049b61031f565b9050803410156104bd5760405162461bcd60e51b815260040161015c9061134a565b6104c7813461136e565b6003546040519193505f916001600160a01b039091169083908381818185875af1925050503d805f8114610516576040519150601f19603f3d011682016040523d82523d5f602084013e61051b565b606091505b505090508061053c5760405162461bcd60e51b815260040161015c906113d9565b50505b5f61054933610b9c565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516105909291906113e9565b60405180910390a350505050565b6105a6610bf9565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b50509050806106155760405162461bcd60e51b815260040161015c90611436565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156106635750825b90505f8267ffffffffffffffff16600114801561067f5750303b155b90508115801561068d575080155b156106c4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106f857845468ff00000000000000001916680100000000000000001785555b61070187610c6d565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561077957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061077090600190611469565b60405180910390a15b50505050505050565b61078a610bf9565b6107935f610c7e565b565b5f6107a1600130611477565b90506107d47f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806107fb5750336001600160a01b038216145b6108175760405162461bcd60e51b815260040161015c906114cc565b5f61082283426114dc565b90505f846040516020016108369190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150156108795760405162461bcd60e51b815260040161015c90611547565b5f8181526020818152604082208490556001919061089990880188610eca565b6001600160a01b0316815260208101919091526040015f908120906108c46080880160608901611557565b63ffffffff1681526020808201929092526040015f9081208054600181018255908252919020869160040201610779828261198e565b610902610bf9565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461094b576040519150601f19603f3d011682016040523d82523d5f602084013e610950565b606091505b50509050806109715760405162461bcd60e51b815260040161015c90611436565b505050565b5f610982600130611477565b90506109b57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109dc5750336001600160a01b038216145b6109f85760405162461bcd60e51b815260040161015c906114cc565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610a319190610df0565b60405180910390a2505050565b6003545f906001600160a01b031615610aef575f610a5a61031f565b905080341015610a7c5760405162461bcd60e51b815260040161015c906119f0565b6003546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610ac6576040519150601f19603f3d011682016040523d82523d5f602084013e610acb565b606091505b5050905080610aec5760405162461bcd60e51b815260040161015c906113d9565b50505b610af833610b9c565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610b359796959493929190611a00565b60405180910390a195945050505050565b610b4e610bf9565b6001600160a01b038116610b90575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161015c9190610f14565b610b9981610c7e565b50565b6001600160a01b0381165f908152600260205260408120805467ffffffffffffffff169160019190610bce8385611a63565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c2b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461079357336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161015c9190610f14565b610c75610cfb565b610b9981610d62565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610793576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4e610cfb565b5f6001600160a01b0382165b92915050565b610d8581610d6a565b82525050565b80610d85565b60408101610d9f8285610d7c565b6103fe6020830184610d8b565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610d7681610dac565b60208101610d768284610d8b565b5f60c08284031215610e1157610e115f5ffd5b50919050565b5f60208284031215610e2a57610e2a5f5ffd5b813567ffffffffffffffff811115610e4357610e435f5ffd5b61044d84828501610dfe565b801515610d85565b60208101610d768284610e4f565b610e6e81610d6a565b8114610b99575f5ffd5b8035610d7681610e65565b80610e6e565b8035610d7681610e83565b5f5f60408385031215610ea857610ea85f5ffd5b610eb28484610e78565b9150610ec18460208501610e89565b90509250929050565b5f60208284031215610edd57610edd5f5ffd5b6103fe8383610e78565b5f5f60408385031215610efb57610efb5f5ffd5b610f058484610e78565b9150610ec18460208501610e78565b60208101610d768284610d7c565b5f5f60408385031215610f3657610f365f5ffd5b823567ffffffffffffffff811115610f4f57610f4f5f5ffd5b610f5b85828601610dfe565b925050610ec18460208501610e89565b63ffffffff8116610e6e565b8035610d7681610f6b565b5f5f83601f840112610f9557610f955f5ffd5b50813567ffffffffffffffff811115610faf57610faf5f5ffd5b602083019150836001820283011115610fc957610fc95f5ffd5b9250929050565b60ff8116610e6e565b8035610d7681610fd0565b5f5f5f5f5f60808688031215610ffb57610ffb5f5ffd5b6110058787610f77565b94506110148760208801610f77565b9350604086013567ffffffffffffffff811115611032576110325f5ffd5b61103e88828901610f82565b93509350506110508760608801610fd9565b90509295509295909350565b67ffffffffffffffff8116610d85565b60208101610d76828461105c565b8051610d7681610e83565b5f60208284031215611098576110985f5ffd5b6103fe838361107a565b505f610d766020830183610e78565b67ffffffffffffffff8116610e6e565b8035610d76816110b1565b505f610d7660208301836110c1565b505f610d766020830183610f77565b63ffffffff8116610d85565b5f808335601e193685900301811261110f5761110f5f5ffd5b830160208101925035905067ffffffffffffffff811115611131576111315f5ffd5b36819003821315610fc957610fc95f5ffd5b82818337505f910152565b818352602083019250611162828483611143565b50601f01601f19160190565b505f610d766020830183610fd9565b60ff8116610d85565b5f60c0830161119583806110a2565b61119f8582610d7c565b506111ad60208401846110cc565b6111ba602086018261105c565b506111c860408401846110db565b6111d560408601826110ea565b506111e360608401846110db565b6111f060608601826110ea565b506111fe60808401846110f6565b858303608087015261121183828461114e565b9250505061122260a084018461116e565b61122f60a086018261117d565b509392505050565b602080825281016103fe8184611186565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610d7681611248565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061129c565b60208082528101610d76816112b2565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610dda565b60208082528101610d768161131a565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610d7657610d7661135a565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f72616374000000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d7681611381565b604081016113f78285610d8b565b6103fe602083018461105c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610dda565b60208082528101610d7681611404565b5f610d7682611453565b90565b67ffffffffffffffff1690565b610d8581611446565b60208101610d768284611460565b6001600160a01b03918216919081169082820390811115610d7657610d7661135a565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610dda565b60208082528101610d768161149a565b80820180821115610d7657610d7661135a565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d76816114ef565b5f6020828403121561156a5761156a5f5ffd5b6103fe8383610f77565b5f8135610d7681610e65565b5f6001600160a01b03835b81169019929092169190911792915050565b5f6001600160a01b038216610d76565b5f610d768261159d565b5f610d76826115ad565b6115ca826115b7565b6115d5818354611580565b8255505050565b5f8135610d76816110b1565b5f7bffffffffffffffff000000000000000000000000000000000000000061158b8460a01b90565b5f610d7667ffffffffffffffff8316611453565b61162d82611610565b6115d58183546115e8565b5f8135610d7681610f6b565b5f7fffffffff0000000000000000000000000000000000000000000000000000000061158b8460e01b90565b5f63ffffffff8216610d76565b61168682611670565b6115d5818354611644565b5f63ffffffff8361158b565b6116a682611670565b6115d5818354611691565b5f808335601e19368590030181126116ca576116ca5f5ffd5b8301915050803567ffffffffffffffff8111156116e8576116e85f5ffd5b602082019150600181023603821315610fc957610fc95f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061173e57607f821691505b602082108103610e1157610e11611716565b5f610d766114508381565b61176483611750565b81545f1960089490940293841b1916921b91909117905550565b5f61097181848461175b565b818110156106155761179c5f8261177e565b60010161178a565b601f821115610971575f818152602090206020601f850104810160208510156117ca5750805b6117dc6020601f86010483018261178a565b5050505050565b8267ffffffffffffffff8111156117fc576117fc611702565b611806825461172a565b6118118282856117a4565b505f601f821160018114611843575f831561182c5750848201355b5f19600885021c198116600285021785555061189a565b5f84815260208120601f198516915b828110156118725787850135825560209485019460019092019101611852565b508482101561188e575f196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6109718383836117e3565b5f8135610d7681610fd0565b5f60ff8216610d76565b6118cc826118b9565b815460ff191660ff8216176115d5565b8082806118e881611574565b90506118f481846115c1565b50506020830180611904826115dc565b90506119108184611624565b5050604083018061192082611638565b905061192c818461167d565b505050606082018061193d82611638565b905061194c816001850161169d565b505061195b60808301836116b1565b6119698183600286016118a2565b505060a0820180611979826118ad565b905061198881600385016118c3565b50505050565b61061582826118dc565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f73736167650000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d7681611998565b60c08101611a0e828a610d7c565b611a1b602083018961105c565b611a2860408301886110ea565b611a3560608301876110ea565b8181036080830152611a4881858761114e565b9050611a5760a083018461117d565b98975050505050505050565b67ffffffffffffffff918216919081169082820190811115610d7657610d7661135a56fea2646970667358221220d9002ea5198c905dfa01b817919f299ed5dfbcaf8a8498f2076f741340d6b9e764736f6c634300081c0033", } // MessageBusABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ObsERC20/ObsERC20.go b/contracts/generated/ObsERC20/ObsERC20.go index af979d7c7c..cf9f6cd0af 100644 --- a/contracts/generated/ObsERC20/ObsERC20.go +++ b/contracts/generated/ObsERC20/ObsERC20.go @@ -32,7 +32,7 @@ var ( // ObsERC20MetaData contains all meta data concerning the ObsERC20 contract. var ObsERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801561003657600080fd5b50604051610dc8380380610dc883398101604081905261005591610191565b8181600361006383826102ef565b50600461007082826102ef565b50505050506103ae565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156100b5576100b561007a565b6040525050565b60006100c760405190565b90506100d38282610090565b919050565b60006001600160401b038211156100f1576100f161007a565b601f19601f83011660200192915050565b60005b8381101561011d578181015183820152602001610105565b50506000910152565b6000610139610134846100d8565b6100bc565b905082815283838301111561015057610150600080fd5b61015e836020830184610102565b9392505050565b600082601f83011261017957610179600080fd5b8151610189848260208601610126565b949350505050565b600080604083850312156101a7576101a7600080fd5b82516001600160401b038111156101c0576101c0600080fd5b6101cc85828601610165565b602085015190935090506001600160401b038111156101ed576101ed600080fd5b6101f985828601610165565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061022d57607f821691505b60208210810361023f5761023f610203565b50919050565b60006102546102518381565b90565b92915050565b61026383610245565b815460001960089490940293841b1916921b91909117905550565b600061028b81848461025a565b505050565b818110156102ab576102a360008261027e565b600101610290565b5050565b601f82111561028b576000818152602090206020601f850104810160208510156102d65750805b6102e86020601f860104830182610290565b5050505050565b81516001600160401b038111156103085761030861007a565b6103128254610219565b61031d8282856102af565b506020601f821160018114610352576000831561033a5750848201515b600019600885021c19811660028502178555506102e8565b600084815260208120601f198516915b828110156103825787850151825560209485019460019092019101610362565b508482101561039f5783870151600019601f87166008021c191681555b50505050600202600101905550565b610a0b806103bd6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b411461012c578063a9059cbb14610134578063dd62ed3e1461014757600080fd5b8063313ce5671461010a57806370a082311461011957600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e657806323b872dd146100f7575b600080fd5b6100b061015a565b6040516100bd9190610719565b60405180910390f35b6100d96100d4366004610775565b6101ec565b6040516100bd91906107b7565b6002545b6040516100bd91906107cb565b6100d96101053660046107d9565b610206565b60126040516100bd919061082b565b6100ea610127366004610839565b61022a565b6100b06102a9565b6100d9610142366004610775565b6102b8565b6100ea610155366004610858565b6102c6565b6060600380546101699061089d565b80601f01602080910402602001604051908101604052809291908181526020018280546101959061089d565b80156101e25780601f106101b7576101008083540402835291602001916101e2565b820191906000526020600020905b8154815290600101906020018083116101c557829003601f168201915b5050505050905090565b6000336101fa818585610381565b60019150505b92915050565b600033610214858285610393565b61021f8585856103ff565b506001949350505050565b60006001600160a01b038216320361025a576001600160a01b038216600090815260208190526040902054610200565b6001600160a01b0382163303610288576001600160a01b038216600090815260208190526040902054610200565b60405162461bcd60e51b81526004016102a0906108c9565b60405180910390fd5b6060600480546101699061089d565b6000336101fa8185856103ff565b6000326001600160a01b03841614806102e75750326001600160a01b038316145b1561031a576001600160a01b038084166000908152600160209081526040808320938616835292905220545b9050610200565b336001600160a01b03841614806103395750336001600160a01b038316145b15610369576001600160a01b03808416600090815260016020908152604080832093861683529290522054610313565b60405162461bcd60e51b81526004016102a090610904565b61038e8383836001610490565b505050565b600061039f84846102c6565b905060001981146103f957818110156103ea578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102a09392919061096e565b6103f984848484036000610490565b50505050565b6001600160a01b0383166104425760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016102a0919061099e565b6001600160a01b0382166104855760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102a0919061099e565b61038e838383610595565b6001600160a01b0384166104d35760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016102a0919061099e565b6001600160a01b0383166105165760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016102a0919061099e565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103f957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058791906107cb565b60405180910390a350505050565b6001600160a01b0383166105c05780600260008282546105b591906109c2565b909155506106389050565b6001600160a01b03831660009081526020819052604090205481811015610619578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102a09392919061096e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661065457600280548290039055610673565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516106b691906107cb565b60405180910390a3505050565b60005b838110156106de5781810151838201526020016106c6565b50506000910152565b60006106f1825190565b8084526020840193506107088185602086016106c3565b601f01601f19169290920192915050565b6020808252810161072a81846106e7565b9392505050565b60006001600160a01b038216610200565b61074b81610731565b811461075657600080fd5b50565b803561020081610742565b8061074b565b803561020081610764565b6000806040838503121561078b5761078b600080fd5b6107958484610759565b91506107a4846020850161076a565b90509250929050565b8015155b82525050565b6020810161020082846107ad565b806107b1565b6020810161020082846107c5565b6000806000606084860312156107f1576107f1600080fd5b6107fb8585610759565b925061080a8560208601610759565b9150610819856040860161076a565b90509250925092565b60ff81166107b1565b602081016102008284610822565b60006020828403121561084e5761084e600080fd5b61072a8383610759565b6000806040838503121561086e5761086e600080fd5b6108788484610759565b91506107a48460208501610759565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806108b157607f821691505b6020821081036108c3576108c3610887565b50919050565b6020808252810161020081601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b6020808252810161020081602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b6107b181610731565b6060810161097c8286610965565b61098960208301856107c5565b61099660408301846107c5565b949350505050565b602081016102008284610965565b634e487b7160e01b600052601160045260246000fd5b80820180821115610200576102006109ac56fea2646970667358221220efbd35279902d1c0deb8a1f7c8ac933937a5efe6c2a0e36865e0499e3e8a65bb64736f6c634300081c0033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f3179055348015610035575f5ffd5b50604051610d50380380610d508339810160408190526100549161016f565b8181600361006283826102c2565b50600461006f82826102c2565b505050505061037d565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156100b2576100b2610079565b6040525050565b5f6100c360405190565b90506100cf828261008d565b919050565b5f6001600160401b038211156100ec576100ec610079565b601f19601f83011660200192915050565b8281835e505f910152565b5f61011a610115846100d4565b6100b9565b9050828152838383011115610130576101305f5ffd5b61013e8360208301846100fd565b9392505050565b5f82601f830112610157576101575f5ffd5b8151610167848260208601610108565b949350505050565b5f5f60408385031215610183576101835f5ffd5b82516001600160401b0381111561019b5761019b5f5ffd5b6101a785828601610145565b602085015190935090506001600160401b038111156101c7576101c75f5ffd5b6101d385828601610145565b9150509250929050565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061020557607f821691505b602082108103610217576102176101dd565b50919050565b5f61022b6102288381565b90565b92915050565b61023a8361021d565b81545f1960089490940293841b1916921b91909117905550565b5f610260818484610231565b505050565b8181101561027f576102775f82610254565b600101610265565b5050565b601f821115610260575f818152602090206020601f850104810160208510156102a95750805b6102bb6020601f860104830182610265565b5050505050565b81516001600160401b038111156102db576102db610079565b6102e582546101f1565b6102f0828285610283565b506020601f821160018114610323575f831561030c5750848201515b5f19600885021c19811660028502178555506102bb565b5f84815260208120601f198516915b828110156103525787850151825560209485019460019092019101610332565b508482101561036e57838701515f19601f87166008021c191681555b50505050600202600101905550565b6109c68061038a5f395ff3fe608060405234801561000f575f5ffd5b506004361061009f575f3560e01c8063313ce5671161007257806395d89b411161005857806395d89b4114610127578063a9059cbb1461012f578063dd62ed3e14610142575f5ffd5b8063313ce5671461010557806370a0823114610114575f5ffd5b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100e157806323b872dd146100f2575b5f5ffd5b6100ab610155565b6040516100b891906106e3565b60405180910390f35b6100d46100cf36600461073d565b6101e5565b6040516100b8919061077d565b6002545b6040516100b89190610791565b6100d461010036600461079f565b6101fe565b60126040516100b891906107ee565b6100e56101223660046107fc565b610221565b6100ab61029d565b6100d461013d36600461073d565b6102ac565b6100e5610150366004610819565b6102b9565b6060600380546101649061085a565b80601f01602080910402602001604051908101604052809291908181526020018280546101909061085a565b80156101db5780601f106101b2576101008083540402835291602001916101db565b820191905f5260205f20905b8154815290600101906020018083116101be57829003601f168201915b5050505050905090565b5f336101f2818585610371565b60019150505b92915050565b5f3361020b858285610383565b6102168585856103ec565b506001949350505050565b5f6001600160a01b038216320361024f576001600160a01b0382165f908152602081905260409020546101f8565b6001600160a01b038216330361027c576001600160a01b0382165f908152602081905260409020546101f8565b60405162461bcd60e51b815260040161029490610886565b60405180910390fd5b6060600480546101649061085a565b5f336101f28185856103ec565b5f326001600160a01b03841614806102d95750326001600160a01b038316145b1561030b576001600160a01b038084165f908152600160209081526040808320938616835292905220545b90506101f8565b336001600160a01b038416148061032a5750336001600160a01b038316145b15610359576001600160a01b038084165f90815260016020908152604080832093861683529290522054610304565b60405162461bcd60e51b8152600401610294906108c1565b61037e838383600161047b565b505050565b5f61038e84846102b9565b90505f1981146103e657818110156103d8578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016102949392919061092b565b6103e684848484035f61047b565b50505050565b6001600160a01b03831661042e575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610294919061095b565b6001600160a01b038216610470575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610294919061095b565b61037e83838361057d565b6001600160a01b0384166104bd575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610294919061095b565b6001600160a01b0383166104ff575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610294919061095b565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103e657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161056f9190610791565b60405180910390a350505050565b6001600160a01b0383166105a7578060025f82825461059c919061097d565b9091555061061d9050565b6001600160a01b0383165f90815260208190526040902054818110156105ff578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102949392919061092b565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661063957600280548290039055610657565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161069a9190610791565b60405180910390a3505050565b8281835e505f910152565b5f6106bb825190565b8084526020840193506106d28185602086016106a7565b601f01601f19169290920192915050565b602080825281016106f481846106b2565b9392505050565b5f6001600160a01b0382166101f8565b610714816106fb565b811461071e575f5ffd5b50565b80356101f88161070b565b80610714565b80356101f88161072c565b5f5f60408385031215610751576107515f5ffd5b61075b8484610721565b915061076a8460208501610732565b90509250929050565b8015155b82525050565b602081016101f88284610773565b80610777565b602081016101f8828461078b565b5f5f5f606084860312156107b4576107b45f5ffd5b6107be8585610721565b92506107cd8560208601610721565b91506107dc8560408601610732565b90509250925092565b60ff8116610777565b602081016101f882846107e5565b5f6020828403121561080f5761080f5f5ffd5b6106f48383610721565b5f5f6040838503121561082d5761082d5f5ffd5b6108378484610721565b915061076a8460208501610721565b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061086e57607f821691505b60208210810361088057610880610846565b50919050565b602080825281016101f881601f81527f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e636500602082015260400190565b602080825281016101f881602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610777816106fb565b606081016109398286610922565b610946602083018561078b565b610953604083018461078b565b949350505050565b602081016101f88284610922565b634e487b7160e01b5f52601160045260245ffd5b808201808211156101f8576101f861096956fea26469706673582212209cb004f2db3e3bd73f50264dd798bb7bde90ad18f192389228db6c64c3fea4ae64736f6c634300081c0033", } // ObsERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ProxyAdmin/ProxyAdmin.go b/contracts/generated/ProxyAdmin/ProxyAdmin.go index 88f831a7c5..196e714c35 100644 --- a/contracts/generated/ProxyAdmin/ProxyAdmin.go +++ b/contracts/generated/ProxyAdmin/ProxyAdmin.go @@ -32,7 +32,7 @@ var ( // ProxyAdminMetaData contains all meta data concerning the ProxyAdmin contract. var ProxyAdminMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":[{\"internalType\":\"contractITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506040516106eb3803806106eb83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a919061012d565b60405180910390fd5b61006c81610073565b505061013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b61011783836100ed565b9392505050565b610127816100c3565b82525050565b602081016100d0828461011e565b6105a18061014a6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610457565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610513565b34801561011a57600080fd5b50610074610129366004610524565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906101939086908690600401610543565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b905082815283838301111561041f5761041f600080fd5b61042d8360208301846103e9565b9392505050565b600082601f83011261044857610448600080fd5b61042d838335602085016103f5565b60008060006060848603121561046f5761046f600080fd5b6104798585610327565b9250610488856020860161033b565b9150604084013567ffffffffffffffff8111156104a7576104a7600080fd5b6104b386828701610434565b9150509250925092565b60005b838110156104d85781810151838201526020016104c0565b50506000910152565b60006104eb825190565b8084526020840193506105028185602086016104bd565b601f01601f19169290920192915050565b6020808252810161042d81846104e1565b60006020828403121561053957610539600080fd5b61042d838361033b565b6040810161055182856102eb565b818103602083015261056381846104e1565b94935050505056fea264697066735822122096c3a562b6861bd964d97d99d95931f7343ac03c64bc04aeab6287f6e42e45eb64736f6c634300081c0033", + Bin: "0x608060405234801561000f575f5ffd5b506040516106a63803806106a683398101604081905261002e916100f3565b806001600160a01b038116610061575f604051631e4fbdf760e01b81526004016100589190610126565b60405180910390fd5b61006a81610071565b5050610134565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6100db816100c0565b81146100e5575f5ffd5b50565b80516100cc816100d2565b5f60208284031215610106576101065f5ffd5b61011083836100e8565b9392505050565b610120816100c0565b82525050565b602081016100cc8284610117565b610565806101415f395ff3fe608060405260043610610058575f3560e01c80639623609d116100415780639623609d1461009f578063ad3cb1cc146100b2578063f2fde38b14610107575f5ffd5b8063715018a61461005c5780638da5cb5b14610072575b5f5ffd5b348015610067575f5ffd5b50610070610126565b005b34801561007d575f5ffd5b505f546001600160a01b031660405161009691906102e9565b60405180910390f35b6100706100ad36600461043b565b610139565b3480156100bd575f5ffd5b506100fa6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009691906104d9565b348015610112575f5ffd5b506100706101213660046104ea565b6101bd565b61012e61021c565b6101375f610261565b565b61014161021c565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061018a9086908690600401610507565b5f604051808303818588803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b5050505050505050565b6101c561021c565b6001600160a01b038116610210575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b60405180910390fd5b61021981610261565b50565b5f546001600160a01b0316331461013757336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6102e3816102c8565b82525050565b602081016102d482846102da565b5f6102d4826102c8565b61030a816102f7565b8114610219575f5ffd5b80356102d481610301565b61030a816102c8565b80356102d48161031f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561038657610386610333565b6040525050565b5f61039760405190565b90506103a38282610360565b919050565b5f67ffffffffffffffff8211156103c1576103c1610333565b601f19601f83011660200192915050565b82818337505f910152565b5f6103ef6103ea846103a8565b61038d565b9050828152838383011115610405576104055f5ffd5b6104138360208301846103d2565b9392505050565b5f82601f83011261042c5761042c5f5ffd5b610413838335602085016103dd565b5f5f5f60608486031215610450576104505f5ffd5b61045a8585610314565b92506104698560208601610328565b9150604084013567ffffffffffffffff811115610487576104875f5ffd5b6104938682870161041a565b9150509250925092565b8281835e505f910152565b5f6104b1825190565b8084526020840193506104c881856020860161049d565b601f01601f19169290920192915050565b6020808252810161041381846104a8565b5f602082840312156104fd576104fd5f5ffd5b6104138383610328565b6040810161051582856102da565b818103602083015261052781846104a8565b94935050505056fea2646970667358221220825046736e9ba7da84b283bda1535f423544d9a64889ef23b00a31fa58c37ed964736f6c634300081c0033", } // ProxyAdminABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/PublicCallbacks/PublicCallbacks.go b/contracts/generated/PublicCallbacks/PublicCallbacks.go index adf6c648e1..e0ce14e8ac 100644 --- a/contracts/generated/PublicCallbacks/PublicCallbacks.go +++ b/contracts/generated/PublicCallbacks/PublicCallbacks.go @@ -32,7 +32,7 @@ var ( // PublicCallbacksMetaData contains all meta data concerning the PublicCallbacks contract. var PublicCallbacksMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"callbackId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasAfter\",\"type\":\"uint256\"}],\"name\":\"CallbackExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"callbacks\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executeNextCallbacks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"callbackId\",\"type\":\"uint256\"}],\"name\":\"reattemptCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"callback\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611022806100d96000396000f3fe6080604052600436106100595760003560e01c806382fbdc9c1161004357806382fbdc9c146100ae578063929d34e9146100ce578063a67e1760146100ee57600080fd5b8062e0d3b51461005e5780638129fc1c14610097575b600080fd5b34801561006a57600080fd5b5061007e610079366004610a85565b610103565b60405161008e9493929190610b20565b60405180910390f35b3480156100a357600080fd5b506100ac6101be565b005b6100c16100bc366004610bb7565b610300565b60405161008e9190610bff565b3480156100da57600080fd5b506100ac6100e9366004610a85565b610368565b3480156100fa57600080fd5b506100ac61050d565b600060208190529081526040902080546001820180546001600160a01b03909216929161012f90610c23565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610c23565b80156101a85780601f1061017d576101008083540402835291602001916101a8565b820191906000526020600020905b81548152906001019060200180831161018b57829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102095750825b905060008267ffffffffffffffff1660011480156102265750303b155b905081158015610234575080155b1561026b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029f57845468ff00000000000000001916680100000000000000001785555b6000600181905560025583156102f957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102f090600190610c73565b60405180910390a15b5050505050565b600080341161032a5760405162461bcd60e51b815260040161032190610cb5565b60405180910390fd5b6152086103363461055f565b116103535760405162461bcd60e51b815260040161032190610cc5565b61035f3384843461056b565b90505b92915050565b60008181526020818152604080832081516080810190925280546001600160a01b0316825260018101805492939192918401916103a490610c23565b80601f01602080910402602001604051908101604052809291908181526020018280546103d090610c23565b801561041d5780601f106103f25761010080835404028352916020019161041d565b820191906000526020600020905b81548152906001019060200180831161040057829003601f168201915b50505050508152602001600282015481526020016003820154815250509050600081600001516001600160a01b0316826020015160405161045e9190610d48565b6000604051808303816000865af19150503d806000811461049b576040519150601f19603f3d011682016040523d82523d6000602084013e6104a0565b606091505b50509050806104c15760405162461bcd60e51b815260040161032190610d84565b6000838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104f86001830182610a30565b50600060028201819055600390910155505050565b600061051a600130610daa565b9050336001600160a01b038216146105445760405162461bcd60e51b815260040161032190610dff565b6002546001541461055c57610557610655565b610544565b50565b60006103624883610e25565b600060015490506040518060800160405280866001600160a01b0316815260200185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820185905248604090920191909152600180548291826105e583610e39565b9091555081526020808201929092526040016000208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106369082610f02565b5060408201516002820155606090910151600390910155949350505050565b6002546001540361066257565b60008061066d610780565b91509150600082606001519050600081846040015161068c9190610e25565b905060005a9050600085600001516001600160a01b03168387602001516040516106b69190610d48565b60006040518083038160008787f1925050503d80600081146106f4576040519150601f19603f3d011682016040523d82523d6000602084013e6106f9565b606091505b5050905060005a9050600061070e8285610fc2565b905060008186111561073257866107258388610fc2565b61072f9190610fd5565b90505b6000818a604001516107449190610fc2565b8a51909150851561075757610757610898565b61075f6108e4565b61076a83828c6108fb565b610773826109da565b5050505050505050505050565b6107b4604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b60025460008181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107f890610c23565b80601f016020809104026020016040519081016040528092919081815260200182805461082490610c23565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002546000908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906108d26001830182610a30565b50600060028201819055600390910155565b600280549060006108f483610e39565b9190505550565b60008160405160240161090e9190610bff565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea3955800000000000000000000000000000000000000000000000000000000179052519091506000906001600160a01b0385169061afc8908790610989908690610d48565b600060405180830381858888f193505050503d80600081146109c7576040519150601f19603f3d011682016040523d82523d6000602084013e6109cc565b606091505b50509050806102f9576102f9855b806000036109e55750565b60405141908290600081818185875af1925050503d8060008114610a25576040519150601f19603f3d011682016040523d82523d6000602084013e610a2a565b606091505b50505050565b508054610a3c90610c23565b6000825580601f10610a4c575050565b601f01602090049060005260206000209081019061055c91905b80821115610a7a5760008155600101610a66565b5090565b8035610362565b600060208284031215610a9a57610a9a600080fd5b61035f8383610a7e565b60006001600160a01b038216610362565b610abe81610aa4565b82525050565b60005b83811015610adf578181015183820152602001610ac7565b50506000910152565b6000610af2825190565b808452602084019350610b09818560208601610ac4565b601f01601f19169290920192915050565b80610abe565b60808101610b2e8287610ab5565b8181036020830152610b408186610ae8565b9050610b4f6040830185610b1a565b610b5c6060830184610b1a565b95945050505050565b60008083601f840112610b7a57610b7a600080fd5b50813567ffffffffffffffff811115610b9557610b95600080fd5b602083019150836001820283011115610bb057610bb0600080fd5b9250929050565b60008060208385031215610bcd57610bcd600080fd5b823567ffffffffffffffff811115610be757610be7600080fd5b610bf385828601610b65565b92509250509250929050565b602081016103628284610b1a565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610c3757607f821691505b602082108103610c4957610c49610c0d565b50919050565b600061036282610c5d565b90565b67ffffffffffffffff1690565b610abe81610c4f565b602081016103628284610c6a565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161036281610c81565b6020808252810161036281602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b6000610d30825190565b610d3e818560208601610ac4565b9290920192915050565b6103628183610d26565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610caf565b6020808252810161036281610d52565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0391821691908116908282039081111561036257610362610d94565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610caf565b6020808252810161036281610dcd565b634e487b7160e01b600052601260045260246000fd5b600082610e3457610e34610e0f565b500490565b600060018201610e4b57610e4b610d94565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000610362610c5a8381565b610e7d83610e68565b815460001960089490940293841b1916921b91909117905550565b6000610ea5818484610e74565b505050565b81811015610ec557610ebd600082610e98565b600101610eaa565b5050565b601f821115610ea5576000818152602090206020601f85010481016020851015610ef05750805b6102f96020601f860104830182610eaa565b815167ffffffffffffffff811115610f1c57610f1c610e52565b610f268254610c23565b610f31828285610ec9565b506020601f821160018114610f665760008315610f4e5750848201515b600019600885021c19811660028502178555506102f9565b600084815260208120601f198516915b82811015610f965787850151825560209485019460019092019101610f76565b5084821015610fb35783870151600019601f87166008021c191681555b50505050600202600101905550565b8181038181111561036257610362610d94565b818102811582820484141761036257610362610d9456fea2646970667358221220a7b27c0c1863d6c0b2486c73ffa2a4592563ec57aeb866a59c97b817f532293064736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610fa7806100d65f395ff3fe608060405260043610610057575f3560e01c806382fbdc9c1161004157806382fbdc9c146100a9578063929d34e9146100c9578063a67e1760146100e8575f5ffd5b8062e0d3b51461005b5780638129fc1c14610093575b5f5ffd5b348015610066575f5ffd5b5061007a610075366004610a43565b6100fc565b60405161008a9493929190610ac1565b60405180910390f35b34801561009e575f5ffd5b506100a76101b4565b005b6100bc6100b7366004610b54565b6102f3565b60405161008a9190610b99565b3480156100d4575f5ffd5b506100a76100e3366004610a43565b61035a565b3480156100f3575f5ffd5b506100a76104f4565b5f60208190529081526040902080546001820180546001600160a01b03909216929161012790610bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461015390610bbb565b801561019e5780601f106101755761010080835404028352916020019161019e565b820191905f5260205f20905b81548152906001019060200180831161018157829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156101fe5750825b90505f8267ffffffffffffffff16600114801561021a5750303b155b905081158015610228575080155b1561025f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029357845468ff00000000000000001916680100000000000000001785555b5f600181905560025583156102ec57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102e390600190610c0a565b60405180910390a15b5050505050565b5f5f341161031c5760405162461bcd60e51b815260040161031390610c4c565b60405180910390fd5b61520861032834610545565b116103455760405162461bcd60e51b815260040161031390610c5c565b61035133848434610550565b90505b92915050565b5f8181526020818152604080832081516080810190925280546001600160a01b03168252600181018054929391929184019161039590610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190610bbb565b801561040c5780601f106103e35761010080835404028352916020019161040c565b820191905f5260205f20905b8154815290600101906020018083116103ef57829003601f168201915b505050505081526020016002820154815260200160038201548152505090505f815f01516001600160a01b0316826020015160405161044b9190610cde565b5f604051808303815f865af19150503d805f8114610484576040519150601f19603f3d011682016040523d82523d5f602084013e610489565b606091505b50509050806104aa5760405162461bcd60e51b815260040161031390610d1a565b5f838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104e060018301826109f2565b505f60028201819055600390910155505050565b5f610500600130610d3e565b9050336001600160a01b0382161461052a5760405162461bcd60e51b815260040161031390610d93565b600254600154146105425761053d610637565b61052a565b50565b5f6103544883610db7565b5f60015490506040518060800160405280866001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050506020820185905248604090920191909152600180548291826105c883610dca565b9091555081526020808201929092526040015f208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106189082610e8b565b5060408201516002820155606090910151600390910155949350505050565b6002546001540361064457565b5f5f61064e610754565b915091505f826060015190505f81846040015161066b9190610db7565b90505f5a90505f855f01516001600160a01b03168387602001516040516106929190610cde565b5f604051808303815f8787f1925050503d805f81146106cc576040519150601f19603f3d011682016040523d82523d5f602084013e6106d1565b606091505b505090505f5a90505f6106e48285610f47565b90505f8186111561070757866106fa8388610f47565b6107049190610f5a565b90505b5f818a604001516107189190610f47565b8a51909150851561072b5761072b610866565b6107336108b0565b61073e83828c6108c6565b610747826109a0565b5050505050505050505050565b61078560405180608001604052805f6001600160a01b03168152602001606081526020015f81526020015f81525090565b6002545f8181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107c890610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546107f490610bbb565b801561083f5780601f106108165761010080835404028352916020019161083f565b820191905f5260205f20905b81548152906001019060200180831161082257829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002545f908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff191681559061089f60018301826109f2565b505f60028201819055600390910155565b60028054905f6108bf83610dca565b9190505550565b5f816040516024016108d89190610b99565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea3955800000000000000000000000000000000000000000000000000000000179052519091505f906001600160a01b0385169061afc8908790610952908690610cde565b5f60405180830381858888f193505050503d805f811461098d576040519150601f19603f3d011682016040523d82523d5f602084013e610992565b606091505b50509050806102ec576102ec855b805f036109aa5750565b604051419082905f81818185875af1925050503d805f81146109e7576040519150601f19603f3d011682016040523d82523d5f602084013e6109ec565b606091505b50505050565b5080546109fe90610bbb565b5f825580601f10610a0d575050565b601f0160209004905f5260205f209081019061054291905b80821115610a38575f8155600101610a25565b5090565b8035610354565b5f60208284031215610a5657610a565f5ffd5b6103518383610a3c565b5f6001600160a01b038216610354565b610a7981610a60565b82525050565b8281835e505f910152565b5f610a93825190565b808452602084019350610aaa818560208601610a7f565b601f01601f19169290920192915050565b80610a79565b60808101610acf8287610a70565b8181036020830152610ae18186610a8a565b9050610af06040830185610abb565b610afd6060830184610abb565b95945050505050565b5f5f83601f840112610b1957610b195f5ffd5b50813567ffffffffffffffff811115610b3357610b335f5ffd5b602083019150836001820283011115610b4d57610b4d5f5ffd5b9250929050565b5f5f60208385031215610b6857610b685f5ffd5b823567ffffffffffffffff811115610b8157610b815f5ffd5b610b8d85828601610b06565b92509250509250929050565b602081016103548284610abb565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610bcf57607f821691505b602082108103610be157610be1610ba7565b50919050565b5f61035482610bf4565b90565b67ffffffffffffffff1690565b610a7981610be7565b602081016103548284610c01565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161035481610c18565b6020808252810161035481602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b5f610cc6825190565b610cd4818560208601610a7f565b9290920192915050565b6103548183610cbd565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610c46565b6020808252810161035481610ce8565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b0391821691908116908282039081111561035457610354610d2a565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610c46565b6020808252810161035481610d61565b634e487b7160e01b5f52601260045260245ffd5b5f82610dc557610dc5610da3565b500490565b5f60018201610ddb57610ddb610d2a565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b5f610354610bf18381565b610e0a83610df6565b81545f1960089490940293841b1916921b91909117905550565b5f610e30818484610e01565b505050565b81811015610e4f57610e475f82610e24565b600101610e35565b5050565b601f821115610e30575f818152602090206020601f85010481016020851015610e795750805b6102ec6020601f860104830182610e35565b815167ffffffffffffffff811115610ea557610ea5610de2565b610eaf8254610bbb565b610eba828285610e53565b506020601f821160018114610eed575f8315610ed65750848201515b5f19600885021c19811660028502178555506102ec565b5f84815260208120601f198516915b82811015610f1c5787850151825560209485019460019092019101610efc565b5084821015610f3857838701515f19601f87166008021c191681555b50505050600202600101905550565b8181038181111561035457610354610d2a565b818102811582820484141761035457610354610d2a56fea2646970667358221220d077d37ad6740210bd32dc45c1bb1fda2c3418880ff1ee5e28a8f5f61443e06964736f6c634300081c0033", } // PublicCallbacksABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/PublicCallbacksTest/PublicCallbacksTest.go b/contracts/generated/PublicCallbacksTest/PublicCallbacksTest.go index 12c6233046..65fd6a7917 100644 --- a/contracts/generated/PublicCallbacksTest/PublicCallbacksTest.go +++ b/contracts/generated/PublicCallbacksTest/PublicCallbacksTest.go @@ -32,7 +32,7 @@ var ( // PublicCallbacksTestMetaData contains all meta data concerning the PublicCallbacksTest contract. var PublicCallbacksTestMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_callbacks\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"callbackRefundees\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"callbacks\",\"outputs\":[{\"internalType\":\"contractIPublicCallbacks\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"handleAllCallbacksRan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expectedGas\",\"type\":\"uint256\"}],\"name\":\"handleCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"handleCallbackFail\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"callbackId\",\"type\":\"uint256\"}],\"name\":\"handleRefund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isLastCallSuccess\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"pendingRefunds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060408190526000805461ffff60a01b191681556003556108ce3881900390819083398101604081905261003391610314565b600080546001600160b01b0319166001600160a01b03831617905561005661005c565b50610407565b60004861006a600334610350565b6100749190610350565b9050600063a072d7b060e01b826040516024016100919190610364565b60408051601f19818403018152918152602080830180516001600160e01b039081166001600160e01b031990961695909517905281516004808252602480830185528284018051881663a4c016fb60e01b179052845191825281019093529082018051909416629e79db60e81b179093526000805492945090916001600160a01b03166382fbdc9c610124600334610350565b866040518363ffffffff1660e01b815260040161014191906103c6565b60206040518083038185885af115801561015f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061018491906103e8565b600081815260016020526040812080546001600160a01b03191633179055549091506001600160a01b03166382fbdc9c6101bf600334610350565b856040518363ffffffff1660e01b81526004016101dc91906103c6565b60206040518083038185885af11580156101fa573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061021f91906103e8565b600081815260016020526040812080546001600160a01b03191633179055549091506001600160a01b03166382fbdc9c61025a600334610350565b846040518363ffffffff1660e01b815260040161027791906103c6565b60206040518083038185885af1158015610295573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906102ba91906103e8565b600090815260016020526040902080546001600160a01b031916331790555050505050565b60006001600160a01b0382165b92915050565b6102fb816102df565b811461030657600080fd5b50565b80516102ec816102f2565b60006020828403121561032957610329600080fd5b6103338383610309565b9392505050565b634e487b7160e01b600052601260045260246000fd5b60008261035f5761035f61033a565b500490565b818152602081016102ec565b60005b8381101561038b578181015183820152602001610373565b50506000910152565b600061039e825190565b8084526020840193506103b5818560208601610370565b601f01601f19169290920192915050565b602080825281016103338184610394565b806102fb565b80516102ec816103d7565b6000602082840312156103fd576103fd600080fd5b61033383836103dd565b6104b8806104166000396000f3fe60806040526004361061007a5760003560e01c8063a072d7b01161004e578063a072d7b01461014d578063a4c016fb1461016d578063b613b11414610182578063ee1d5872146101bc57600080fd5b8062b127831461007f5780635ea39558146100b55780638103ab13146100ca5780639e79db001461010d575b600080fd5b34801561008b57600080fd5b5060005461009f906001600160a01b031681565b6040516100ac9190610305565b60405180910390f35b6100c86100c336600461032e565b6101de565b005b3480156100d657600080fd5b506101006100e536600461032e565b6001602052600090815260409020546001600160a01b031681565b6040516100ac919061036e565b34801561011957600080fd5b506100c8600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16600160a81b179055565b34801561015957600080fd5b506100c861016836600461032e565b61022f565b34801561017957600080fd5b506100c861025e565b34801561018e57600080fd5b506101af61019d366004610390565b60026020526000908152604090205481565b6040516100ac91906103b5565b3480156101c857600080fd5b506101d16102ac565b6040516100ac91906103cb565b6000818152600160209081526040808320546001600160a01b03168352600290915281208054349290610212908490610408565b9091555050600380549060006102278361041b565b919050555050565b60005a905061024061083483610434565b811061025a576000805460ff60a01b1916600160a01b1790555b5050565b6000805460ff60a01b1916600160a01b1790556040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a390610447565b60405180910390fd5b60008054600160a81b900460ff1680156102c857506003546003145b905090565b60006001600160a01b0382165b92915050565b60006102da826102cd565b60006102da826102e0565b6102ff816102eb565b82525050565b602081016102da82846102f6565b805b811461032057600080fd5b50565b80356102da81610313565b60006020828403121561034357610343600080fd5b61034d8383610323565b9392505050565b60006001600160a01b0382166102da565b6102ff81610354565b602081016102da8284610365565b61031581610354565b80356102da8161037c565b6000602082840312156103a5576103a5600080fd5b61034d8383610385565b806102ff565b602081016102da82846103af565b8015156102ff565b602081016102da82846103c3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102da576102da6103d9565b60006001820161042d5761042d6103d9565b5060010190565b818103818111156102da576102da6103d9565b602080825281016102da81601681527f5468697320697320612074657374206661696c7572650000000000000000000060208201526040019056fea2646970667358221220f55f3f7b0fc8f2d66c4451326911f3d5e38e5c8d12da6b0c7c057d5ef8844b5164736f6c634300081c0033", + Bin: "0x608060408190525f805461ffff60a01b1916815560035561087b3881900390819083398101604081905261003291610304565b5f80546001600160b01b0319166001600160a01b03831617905561005461005a565b506103d6565b5f4861006760033461033c565b610071919061033c565b90505f63a072d7b060e01b8260405160240161008d919061034f565b60408051601f19818403018152918152602080830180516001600160e01b039081166001600160e01b031990961695909517905281516004808252602480830185528284018051881663a4c016fb60e01b179052845191825281019093529082018051909416629e79db60e81b179093525f805492945090916001600160a01b03166382fbdc9c61011f60033461033c565b866040518363ffffffff1660e01b815260040161013c9190610397565b60206040518083038185885af1158015610158573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061017d91906103b9565b5f81815260016020526040812080546001600160a01b03191633179055549091506001600160a01b03166382fbdc9c6101b760033461033c565b856040518363ffffffff1660e01b81526004016101d49190610397565b60206040518083038185885af11580156101f0573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061021591906103b9565b5f81815260016020526040812080546001600160a01b03191633179055549091506001600160a01b03166382fbdc9c61024f60033461033c565b846040518363ffffffff1660e01b815260040161026c9190610397565b60206040518083038185885af1158015610288573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906102ad91906103b9565b5f90815260016020526040902080546001600160a01b031916331790555050505050565b5f6001600160a01b0382165b92915050565b6102ec816102d1565b81146102f6575f5ffd5b50565b80516102dd816102e3565b5f60208284031215610317576103175f5ffd5b61032183836102f9565b9392505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261034a5761034a610328565b500490565b818152602081016102dd565b8281835e505f910152565b5f61036f825190565b80845260208401935061038681856020860161035b565b601f01601f19169290920192915050565b602080825281016103218184610366565b806102ec565b80516102dd816103a8565b5f602082840312156103cc576103cc5f5ffd5b61032183836103ae565b610498806103e35f395ff3fe608060405260043610610078575f3560e01c8063a072d7b01161004c578063a072d7b014610144578063a4c016fb14610163578063b613b11414610177578063ee1d5872146101af575f5ffd5b8062b127831461007c5780635ea39558146100b05780638103ab13146100c55780639e79db0014610106575b5f5ffd5b348015610087575f5ffd5b505f5461009a906001600160a01b031681565b6040516100a791906102ee565b60405180910390f35b6100c36100be366004610316565b6101d0565b005b3480156100d0575f5ffd5b506100f96100df366004610316565b60016020525f90815260409020546001600160a01b031681565b6040516100a79190610353565b348015610111575f5ffd5b506100c35f80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16600160a81b179055565b34801561014f575f5ffd5b506100c361015e366004610316565b61021f565b34801561016e575f5ffd5b506100c361024c565b348015610182575f5ffd5b506101a2610191366004610375565b60026020525f908152604090205481565b6040516100a79190610398565b3480156101ba575f5ffd5b506101c3610299565b6040516100a791906103ae565b5f818152600160209081526040808320546001600160a01b031683526002909152812080543492906102039084906103e9565b909155505060038054905f610217836103fc565b919050555050565b5f5a905061022f61083483610414565b8110610248575f805460ff60a01b1916600160a01b1790555b5050565b5f805460ff60a01b1916600160a01b1790556040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029090610427565b60405180910390fd5b5f8054600160a81b900460ff1680156102b457506003546003145b905090565b5f6001600160a01b0382165b92915050565b5f6102c5826102b9565b5f6102c5826102cb565b6102e8816102d5565b82525050565b602081016102c582846102df565b805b8114610308575f5ffd5b50565b80356102c5816102fc565b5f60208284031215610329576103295f5ffd5b610333838361030b565b9392505050565b5f6001600160a01b0382166102c5565b6102e88161033a565b602081016102c5828461034a565b6102fe8161033a565b80356102c581610361565b5f60208284031215610388576103885f5ffd5b610333838361036a565b806102e8565b602081016102c58284610392565b8015156102e8565b602081016102c582846103a6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156102c5576102c56103bc565b5f6001820161040d5761040d6103bc565b5060010190565b818103818111156102c5576102c56103bc565b602080825281016102c581601681527f5468697320697320612074657374206661696c7572650000000000000000000060208201526040019056fea264697066735822122014fd76ae51330580df6594926ee6d8a78b07172786d1f84457d5fb9570ce540564736f6c634300081c0033", } // PublicCallbacksTestABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/SafeERC20/SafeERC20.go b/contracts/generated/SafeERC20/SafeERC20.go index ca50377277..9f00e22f86 100644 --- a/contracts/generated/SafeERC20/SafeERC20.go +++ b/contracts/generated/SafeERC20/SafeERC20.go @@ -32,7 +32,7 @@ var ( // SafeERC20MetaData contains all meta data concerning the SafeERC20 contract. var SafeERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220229877c421e9e3124252435a5c43b85b16e5641b8a9e7f324538707dc167719d64736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212203831707766b47bd9ebb422dfb3328c452a5f8cc1ed3939ae8ae83e2e651ac1ee64736f6c634300081c0033", } // SafeERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/Strings/Strings.go b/contracts/generated/Strings/Strings.go index 1a828a8c4f..8506ffd6c8 100644 --- a/contracts/generated/Strings/Strings.go +++ b/contracts/generated/Strings/Strings.go @@ -32,7 +32,7 @@ var ( // StringsMetaData contains all meta data concerning the Strings contract. var StringsMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}]", - Bin: "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c57deb36e4cf781caeca4659dcadf25b73810da016ae9d262073c51b249373d464736f6c634300081c0033", + Bin: "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220d7e7113d344f675a1ace5cb5e017962deaa49b3f841804e648a48b63b389f70864736f6c634300081c0033", } // StringsABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/SystemDeployer/SystemDeployer.go b/contracts/generated/SystemDeployer/SystemDeployer.go index 1276aed35c..1df700fdab 100644 --- a/contracts/generated/SystemDeployer/SystemDeployer.go +++ b/contracts/generated/SystemDeployer/SystemDeployer.go @@ -32,7 +32,7 @@ var ( // SystemDeployerMetaData contains all meta data concerning the SystemDeployer contract. var SystemDeployerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"SystemContractDeployed\",\"type\":\"event\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051615bae380380615bae83398101604081905261002f916103e7565b61003881610060565b6000610044828261011d565b905061005082826101e2565b610059826102a2565b50506105c4565b600060405161006e90610373565b604051809103906000f08015801561008a573d6000803e3d6000fd5b509050600063c4d66de860e01b836040516024016100a8919061041c565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006100f083858461032f60201b60201c565b9050600080516020615b8e8339815191528160405161010f919061045e565b60405180910390a150505050565b60008060405161012c90610380565b604051809103906000f080158015610148573d6000803e3d6000fd5b509050600063da35a26f60e01b8486604051602401610168929190610483565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006101b083878461032f60201b60201c565b9050600080516020615b8e833981519152816040516101cf91906104b7565b60405180910390a1925050505b92915050565b60006040516101f09061038d565b604051809103906000f08015801561020c573d6000803e3d6000fd5b509050600063485cc95560e01b848460405160240161022c9291906104c7565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600061027483868461032f60201b60201c565b9050600080516020615b8e8339815191528160405161029391906104f4565b60405180910390a15050505050565b60006040516102b09061039a565b604051809103906000f0801580156102cc573d6000803e3d6000fd5b506040805160048152602481019091526020810180516001600160e01b0390811663204a7f0760e21b17909152919250906000906103109084908690859061032f16565b9050600080516020615b8e8339815191528160405161010f9190610528565b600080848484604051610341906103a7565b61034d9392919061058e565b604051809103906000f080158015610369573d6000803e3d6000fd5b5095945050505050565b610dfe8061061183390190565b6107618061140f83390190565b611c9980611b7083390190565b6110fb8061380983390190565b61128a8061490483390190565b60006001600160a01b0382166101dc565b6103ce816103b4565b81146103d957600080fd5b50565b80516101dc816103c5565b6000602082840312156103fc576103fc600080fd5b61040683836103dc565b9392505050565b610416816103b4565b82525050565b602081016101dc828461040d565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b6040808252810161046e8161042a565b90506101dc602083018461040d565b80610416565b60408101610491828561047d565b610406602083018461040d565b6004815260208101634665657360e01b81529050610458565b6040808252810161046e8161049e565b60408101610491828561040d565b600a815260208101694d65737361676542757360b01b81529050610458565b6040808252810161046e816104d5565b600f8152602081016e5075626c696343616c6c6261636b7360881b81529050610458565b6040808252810161046e81610504565b60005b8381101561055357818101518382015260200161053b565b50506000910152565b6000610566825190565b80845260208401935061057d818560208601610538565b601f01601f19169290920192915050565b6060810161059c828661040d565b6105a9602083018561040d565b81810360408301526105bb818461055c565b95945050505050565b603f806105d26000396000f3fe6080604052600080fdfea2646970667358221220e87774699bbfcaacb84c6fad7bba9168322ab7a17971e0a94ab90760c5a483f864736f6c634300081c00336080604052348015600f57600080fd5b50610ddf8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc3660046107fd565b610265565b6040516100ee919061082d565b60405180910390f35b61011a61010536600461084c565b60009081526020819052604090206001015490565b6040516100ee9190610871565b61013a6101353660046108a4565b6102fe565b005b61013a61014a3660046108a4565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a61018436600461092e565b61037a565b6100e16101973660046108a4565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d6366004610976565b610492565b61013a6101e93660046108a4565b610602565b61013a6101fc366004610976565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610627565b6103238383610634565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037582826106de565b505050565b60006103876001306109ab565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a02565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a44565b60005b600154811015610323576000600182815481106103fd576103fd610a54565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104549088908890600401610d4b565b600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b50505050508060010190506103de565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104dd5750825b905060008267ffffffffffffffff1660011480156104fa5750303b155b905081158015610508575080155b1561053f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057357845468ff00000000000000001916680100000000000000001785555b61057e600087610634565b506105a97ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610634565b5083156105fa57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105f190600190610d80565b60405180910390a15b505050505050565b60008281526020819052604090206001015461061d81610627565b61032383836106de565b6106318133610761565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166106d6576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561068e3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16156106d6576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107bf5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610d8e565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461063157600080fd5b80356102f8816107c3565b60006020828403121561081257610812600080fd5b61081c83836107f2565b9392505050565b8015155b82525050565b602081016102f88284610823565b806107e7565b80356102f88161083b565b60006020828403121561086157610861600080fd5b61081c8383610841565b80610827565b602081016102f8828461086b565b60006001600160a01b0382166102f8565b6107e78161087f565b80356102f881610890565b600080604083850312156108ba576108ba600080fd5b6108c48484610841565b91506108d38460208501610899565b90509250929050565b60008083601f8401126108f1576108f1600080fd5b50813567ffffffffffffffff81111561090c5761090c600080fd5b60208301915083602082028301111561092757610927600080fd5b9250929050565b6000806020838503121561094457610944600080fd5b823567ffffffffffffffff81111561095e5761095e600080fd5b61096a858286016108dc565b92509250509250929050565b60006020828403121561098b5761098b600080fd5b61081c8383610899565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f8610995565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f8816109ce565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109fc565b602080825281016102f881610a12565b634e487b7160e01b600052603260045260246000fd5b60ff81166107e7565b80356102f881610a6a565b5060006102f86020830183610a73565b60ff8116610827565b5060006102f86020830183610841565b5060006102f86020830183610899565b6108278161087f565b6000808335601e1936859003018112610adb57610adb600080fd5b830160208101925035905067ffffffffffffffff811115610afe57610afe600080fd5b3681900382131561092757610927600080fd5b82818337506000910152565b818352602083019250610b31828483610b11565b50601f01601f19160190565b8015156107e7565b80356102f881610b3d565b5060006102f86020830183610b45565b67ffffffffffffffff81166107e7565b80356102f881610b60565b5060006102f86020830183610b70565b67ffffffffffffffff8116610827565b60006101408301610bac8380610a7e565b610bb68582610a8e565b50610bc46020840184610a97565b610bd1602086018261086b565b50610bdf6040840184610a97565b610bec604086018261086b565b50610bfa6060840184610a97565b610c07606086018261086b565b50610c156080840184610aa7565b610c226080860182610ab7565b50610c3060a0840184610a97565b610c3d60a086018261086b565b50610c4b60c0840184610ac0565b85830360c0870152610c5e838284610b1d565b92505050610c6f60e0840184610aa7565b610c7c60e0860182610ab7565b50610c8b610100840184610b50565b610c99610100860182610823565b50610ca8610120840184610b7b565b610cb6610120860182610b8b565b509392505050565b600061081c8383610b9b565b6000823561013e1936849003018112610ce557610ce5600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d3e578484038952610d1c8284610cca565b610d268582610cbe565b94505060208201602099909901989150600101610d05565b5091979650505050505050565b60208082528101610d5d818486610cee565b949350505050565b600067ffffffffffffffff82166102f8565b61082781610d65565b602081016102f88284610d77565b60408101610d9c8285610ab7565b61081c602083018461086b56fea2646970667358221220000c7add8ef77f2ce3e54738e1a6216052e3c7d3dfd30f31adc394e073238b4d64736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610688806100d96000396000f3fe60806040526004361061007f5760003560e01c80639003adfe1161004e5780639003adfe1461012e578063afe997ea14610141578063da35a26f14610156578063f2fde38b1461017657600080fd5b80631a90a2191461008b57806323aa2a9d146100b2578063715018a6146100d45780638da5cb5b146100e957600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506000545b6040516100a99190610544565b60405180910390f35b3480156100be57600080fd5b506100d26100cd366004610570565b610196565b005b3480156100e057600080fd5b506100d26101a3565b3480156100f557600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516100a991906105b0565b34801561013a57600080fd5b504761009c565b34801561014d57600080fd5b506100d26101b7565b34801561016257600080fd5b506100d26101713660046105d2565b61021a565b34801561018257600080fd5b506100d261019136600461060a565b610362565b61019e6103bf565b600055565b6101ab6103bf565b6101b56000610433565b565b6101bf6103bf565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610217573d6000803e3d6000fd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102655750825b905060008267ffffffffffffffff1660011480156102825750303b155b905081158015610290575080155b156102c7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102fb57845468ff00000000000000001916680100000000000000001785555b610304866104bc565b6000879055831561035957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061035090600190610644565b60405180910390a15b50505050505050565b61036a6103bf565b6001600160a01b0381166103b65760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103ad91906105b0565b60405180910390fd5b61021781610433565b336103f17f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101b557336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103ad91906105b0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6104c46104cd565b61021781610534565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101b5576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036a6104cd565b805b82525050565b60208101610552828461053c565b92915050565b805b811461021757600080fd5b803561055281610558565b60006020828403121561058557610585600080fd5b61058f8383610565565b9392505050565b60006001600160a01b038216610552565b61053e81610596565b6020810161055282846105a7565b61055a81610596565b8035610552816105be565b600080604083850312156105e8576105e8600080fd5b6105f28484610565565b915061060184602085016105c7565b90509250929050565b60006020828403121561061f5761061f600080fd5b61058f83836105c7565b600067ffffffffffffffff8216610552565b61053e81610629565b60208101610552828461063b56fea264697066735822122080f0c01e34a6bfd9ed27e9c05c50a018ef9cc6e669f767856b4c30e98b70567764736f6c634300081c0033608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b40806101596000396000f3fe6080604052600436106100d55760003560e01c8063715018a61161007f57806399a3ad211161005957806399a3ad21146102af578063ab53bddc146102cf578063b1454caa146102ef578063f2fde38b1461030f57610149565b8063715018a6146102355780638da5cb5b1461024a5780639730886d1461028f57610149565b8063346633fb116100b0578063346633fb146101e257806336d2da90146101f5578063485cc9551461021557610149565b8062a1b8151461016a5780630fcfbd111461019557806333a88c72146101b557610149565b36610149576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb90349061011a9033908390600401610dca565b6000604051808303818588803b15801561013357600080fd5b505af1158015610147573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161016190610e19565b60405180910390fd5b34801561017657600080fd5b5061017f61032f565b60405161018c9190610e29565b60405180910390f35b3480156101a157600080fd5b5061017f6101b0366004610e52565b6103bb565b3480156101c157600080fd5b506101d56101d0366004610e52565b61041a565b60405161018c9190610e95565b6101476101f0366004610ed3565b61046c565b34801561020157600080fd5b50610147610210366004610f0b565b6105bb565b34801561022157600080fd5b50610147610230366004610f2a565b61063a565b34801561024157600080fd5b506101476107a5565b34801561025657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161018c9190610f59565b34801561029b57600080fd5b506101476102aa366004610f67565b6107b9565b3480156102bb57600080fd5b506101476102ca366004610ed3565b610925565b3480156102db57600080fd5b506101476102ea366004610ed3565b6109a5565b6103026102fd366004611030565b610a6e565b60405161018c91906110bd565b34801561031b57600080fd5b5061014761032a366004610f0b565b610b7b565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691631a90a2199160048083019260209291908290030181865afa158015610392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b691906110d6565b905090565b600080826040516020016103cf9190611294565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806104135760405162461bcd60e51b8152600401610161906112ff565b9392505050565b6000808260405160200161042e9190611294565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906104645750428111155b949350505050565b60003411801561047b57508034145b6104975760405162461bcd60e51b815260040161016190611367565b60035434906001600160a01b03161561055b5760006104b461032f565b9050803410156104d65760405162461bcd60e51b8152600401610161906113a7565b6104e081346113cd565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610532576040519150601f19603f3d011682016040523d82523d6000602084013e610537565b606091505b50509050806105585760405162461bcd60e51b815260040161016190611438565b50505b600061056633610bd2565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516105ad929190611448565b60405180910390a350505050565b6105c3610c30565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610610576040519150601f19603f3d011682016040523d82523d6000602084013e610615565b606091505b50509050806106365760405162461bcd60e51b815260040161016190611495565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156106855750825b905060008267ffffffffffffffff1660011480156106a25750303b155b9050811580156106b0575080155b156106e7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561071b57845468ff00000000000000001916680100000000000000001785555b61072487610ca4565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561079c57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610793906001906114c9565b60405180910390a15b50505050505050565b6107ad610c30565b6107b76000610cb5565b565b60006107c66001306114d7565b90506107f97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806108205750336001600160a01b038216145b61083c5760405162461bcd60e51b81526004016101619061152c565b6000610848834261153c565b905060008460405160200161085d9190611294565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156108a15760405162461bcd60e51b8152600401610161906115a7565b6000818152602081815260408220849055600191906108c290880188610f0b565b6001600160a01b0316815260208101919091526040016000908120906108ee60808801606089016115b7565b63ffffffff1681526020808201929092526040016000908120805460018101825590825291902086916004020161079c8282611a11565b61092d610c30565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461097a576040519150601f19603f3d011682016040523d82523d6000602084013e61097f565b606091505b50509050806109a05760405162461bcd60e51b815260040161016190611495565b505050565b60006109b26001306114d7565b90506109e57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480610a0c5750336001600160a01b038216145b610a285760405162461bcd60e51b81526004016101619061152c565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610a619190610e29565b60405180910390a2505050565b6003546000906001600160a01b031615610b24576000610a8c61032f565b905080341015610aae5760405162461bcd60e51b815260040161016190611a73565b6003546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610afb576040519150601f19603f3d011682016040523d82523d6000602084013e610b00565b606091505b5050905080610b215760405162461bcd60e51b815260040161016190611438565b50505b610b2d33610bd2565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610b6a9796959493929190611a83565b60405180910390a195945050505050565b610b83610c30565b6001600160a01b038116610bc65760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101619190610f59565b610bcf81610cb5565b50565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610c058385611ae6565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c627f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107b757336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101619190610f59565b610cac610d33565b610bcf81610d9a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166107b7576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b83610d33565b60006001600160a01b0382165b92915050565b610dbe81610da2565b82525050565b80610dbe565b60408101610dd88285610db5565b6104136020830184610dc4565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610daf81610de5565b60208101610daf8284610dc4565b600060c08284031215610e4c57610e4c600080fd5b50919050565b600060208284031215610e6757610e67600080fd5b813567ffffffffffffffff811115610e8157610e81600080fd5b61046484828501610e37565b801515610dbe565b60208101610daf8284610e8d565b610eac81610da2565b8114610bcf57600080fd5b8035610daf81610ea3565b80610eac565b8035610daf81610ec2565b60008060408385031215610ee957610ee9600080fd5b610ef38484610eb7565b9150610f028460208501610ec8565b90509250929050565b600060208284031215610f2057610f20600080fd5b6104138383610eb7565b60008060408385031215610f4057610f40600080fd5b610f4a8484610eb7565b9150610f028460208501610eb7565b60208101610daf8284610db5565b60008060408385031215610f7d57610f7d600080fd5b823567ffffffffffffffff811115610f9757610f97600080fd5b610fa385828601610e37565b925050610f028460208501610ec8565b63ffffffff8116610eac565b8035610daf81610fb3565b60008083601f840112610fdf57610fdf600080fd5b50813567ffffffffffffffff811115610ffa57610ffa600080fd5b60208301915083600182028301111561101557611015600080fd5b9250929050565b60ff8116610eac565b8035610daf8161101c565b60008060008060006080868803121561104b5761104b600080fd5b6110558787610fbf565b94506110648760208801610fbf565b9350604086013567ffffffffffffffff81111561108357611083600080fd5b61108f88828901610fca565b93509350506110a18760608801611025565b90509295509295909350565b67ffffffffffffffff8116610dbe565b60208101610daf82846110ad565b8051610daf81610ec2565b6000602082840312156110eb576110eb600080fd5b61041383836110cb565b506000610daf6020830183610eb7565b67ffffffffffffffff8116610eac565b8035610daf81611105565b506000610daf6020830183611115565b506000610daf6020830183610fbf565b63ffffffff8116610dbe565b6000808335601e193685900301811261116757611167600080fd5b830160208101925035905067ffffffffffffffff81111561118a5761118a600080fd5b3681900382131561101557611015600080fd5b82818337506000910152565b8183526020830192506111bd82848361119d565b50601f01601f19160190565b506000610daf6020830183611025565b60ff8116610dbe565b600060c083016111f283806110f5565b6111fc8582610db5565b5061120a6020840184611120565b61121760208601826110ad565b506112256040840184611130565b6112326040860182611140565b506112406060840184611130565b61124d6060860182611140565b5061125b608084018461114c565b858303608087015261126e8382846111a9565b9250505061127f60a08401846111c9565b61128c60a08601826111d9565b509392505050565b6020808252810161041381846111e2565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610daf816112a5565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e6720457468657200000000000000000000000000000000602082015290506112f9565b60208082528101610daf8161130f565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610e13565b60208082528101610daf81611377565b634e487b7160e01b600052601160045260246000fd5b81810381811115610daf57610daf6113b7565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f7261637400000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf816113e0565b604081016114568285610dc4565b61041360208301846110ad565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610e13565b60208082528101610daf81611463565b6000610daf826114b3565b90565b67ffffffffffffffff1690565b610dbe816114a5565b60208101610daf82846114c0565b6001600160a01b03918216919081169082820390811115610daf57610daf6113b7565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610e13565b60208082528101610daf816114fa565b80820180821115610daf57610daf6113b7565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f2100000000000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf8161154f565b6000602082840312156115cc576115cc600080fd5b6104138383610fbf565b60008135610daf81610ea3565b60006001600160a01b03835b81169019929092169190911792915050565b60006001600160a01b038216610daf565b6000610daf82611601565b6000610daf82611612565b6116318261161d565b61163c8183546115e3565b8255505050565b60008135610daf81611105565b60007bffffffffffffffff00000000000000000000000000000000000000006115ef8460a01b90565b6000610daf67ffffffffffffffff83166114b3565b61169782611679565b61163c818354611650565b60008135610daf81610fb3565b60007fffffffff000000000000000000000000000000000000000000000000000000006115ef8460e01b90565b600063ffffffff8216610daf565b6116f3826116dc565b61163c8183546116af565b600063ffffffff836115ef565b611714826116dc565b61163c8183546116fe565b6000808335601e193685900301811261173a5761173a600080fd5b8301915050803567ffffffffffffffff81111561175957611759600080fd5b60208201915060018102360382131561101557611015600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806117b457607f821691505b602082108103610e4c57610e4c61178a565b6000610daf6114b08381565b6117db836117c6565b815460001960089490940293841b1916921b91909117905550565b60006109a08184846117d2565b81811015610636576118166000826117f6565b600101611803565b601f8211156109a0576000818152602090206020601f850104810160208510156118455750805b6118576020601f860104830182611803565b5050505050565b8267ffffffffffffffff81111561187757611877611774565b61188182546117a0565b61188c82828561181e565b506000601f8211600181146118c157600083156118a95750848201355b600019600885021c198116600285021785555061191b565b600084815260209020601f19841690835b828110156118f257878501358255602094850194600190920191016118d2565b508482101561190f576000196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6109a083838361185e565b60008135610daf8161101c565b600060ff8216610daf565b61194f8261193b565b815460ff191660ff82161761163c565b80828061196b816115d6565b90506119778184611628565b5050602083018061198782611643565b9050611993818461168e565b505060408301806119a3826116a2565b90506119af81846116ea565b50505060608201806119c0826116a2565b90506119cf816001850161170b565b50506119de608083018361171f565b6119ec818360028601611923565b505060a08201806119fc8261192e565b9050611a0b8160038501611946565b50505050565b610636828261195f565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f7373616765000000000000000000000000000000000000000000000000000000602082015290506112f9565b60208082528101610daf81611a1b565b60c08101611a91828a610db5565b611a9e60208301896110ad565b611aab6040830188611140565b611ab86060830187611140565b8181036080830152611acb8185876111a9565b9050611ada60a08301846111d9565b98975050505050505050565b67ffffffffffffffff918216919081169082820190811115610daf57610daf6113b756fea2646970667358221220bead2f08222fa8050ef654f93b3b55289786509febf6aadea92d722d33fb188964736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611022806100d96000396000f3fe6080604052600436106100595760003560e01c806382fbdc9c1161004357806382fbdc9c146100ae578063929d34e9146100ce578063a67e1760146100ee57600080fd5b8062e0d3b51461005e5780638129fc1c14610097575b600080fd5b34801561006a57600080fd5b5061007e610079366004610a85565b610103565b60405161008e9493929190610b20565b60405180910390f35b3480156100a357600080fd5b506100ac6101be565b005b6100c16100bc366004610bb7565b610300565b60405161008e9190610bff565b3480156100da57600080fd5b506100ac6100e9366004610a85565b610368565b3480156100fa57600080fd5b506100ac61050d565b600060208190529081526040902080546001820180546001600160a01b03909216929161012f90610c23565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610c23565b80156101a85780601f1061017d576101008083540402835291602001916101a8565b820191906000526020600020905b81548152906001019060200180831161018b57829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102095750825b905060008267ffffffffffffffff1660011480156102265750303b155b905081158015610234575080155b1561026b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029f57845468ff00000000000000001916680100000000000000001785555b6000600181905560025583156102f957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102f090600190610c73565b60405180910390a15b5050505050565b600080341161032a5760405162461bcd60e51b815260040161032190610cb5565b60405180910390fd5b6152086103363461055f565b116103535760405162461bcd60e51b815260040161032190610cc5565b61035f3384843461056b565b90505b92915050565b60008181526020818152604080832081516080810190925280546001600160a01b0316825260018101805492939192918401916103a490610c23565b80601f01602080910402602001604051908101604052809291908181526020018280546103d090610c23565b801561041d5780601f106103f25761010080835404028352916020019161041d565b820191906000526020600020905b81548152906001019060200180831161040057829003601f168201915b50505050508152602001600282015481526020016003820154815250509050600081600001516001600160a01b0316826020015160405161045e9190610d48565b6000604051808303816000865af19150503d806000811461049b576040519150601f19603f3d011682016040523d82523d6000602084013e6104a0565b606091505b50509050806104c15760405162461bcd60e51b815260040161032190610d84565b6000838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104f86001830182610a30565b50600060028201819055600390910155505050565b600061051a600130610daa565b9050336001600160a01b038216146105445760405162461bcd60e51b815260040161032190610dff565b6002546001541461055c57610557610655565b610544565b50565b60006103624883610e25565b600060015490506040518060800160405280866001600160a01b0316815260200185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820185905248604090920191909152600180548291826105e583610e39565b9091555081526020808201929092526040016000208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106369082610f02565b5060408201516002820155606090910151600390910155949350505050565b6002546001540361066257565b60008061066d610780565b91509150600082606001519050600081846040015161068c9190610e25565b905060005a9050600085600001516001600160a01b03168387602001516040516106b69190610d48565b60006040518083038160008787f1925050503d80600081146106f4576040519150601f19603f3d011682016040523d82523d6000602084013e6106f9565b606091505b5050905060005a9050600061070e8285610fc2565b905060008186111561073257866107258388610fc2565b61072f9190610fd5565b90505b6000818a604001516107449190610fc2565b8a51909150851561075757610757610898565b61075f6108e4565b61076a83828c6108fb565b610773826109da565b5050505050505050505050565b6107b4604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b60025460008181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107f890610c23565b80601f016020809104026020016040519081016040528092919081815260200182805461082490610c23565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002546000908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906108d26001830182610a30565b50600060028201819055600390910155565b600280549060006108f483610e39565b9190505550565b60008160405160240161090e9190610bff565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea3955800000000000000000000000000000000000000000000000000000000179052519091506000906001600160a01b0385169061afc8908790610989908690610d48565b600060405180830381858888f193505050503d80600081146109c7576040519150601f19603f3d011682016040523d82523d6000602084013e6109cc565b606091505b50509050806102f9576102f9855b806000036109e55750565b60405141908290600081818185875af1925050503d8060008114610a25576040519150601f19603f3d011682016040523d82523d6000602084013e610a2a565b606091505b50505050565b508054610a3c90610c23565b6000825580601f10610a4c575050565b601f01602090049060005260206000209081019061055c91905b80821115610a7a5760008155600101610a66565b5090565b8035610362565b600060208284031215610a9a57610a9a600080fd5b61035f8383610a7e565b60006001600160a01b038216610362565b610abe81610aa4565b82525050565b60005b83811015610adf578181015183820152602001610ac7565b50506000910152565b6000610af2825190565b808452602084019350610b09818560208601610ac4565b601f01601f19169290920192915050565b80610abe565b60808101610b2e8287610ab5565b8181036020830152610b408186610ae8565b9050610b4f6040830185610b1a565b610b5c6060830184610b1a565b95945050505050565b60008083601f840112610b7a57610b7a600080fd5b50813567ffffffffffffffff811115610b9557610b95600080fd5b602083019150836001820283011115610bb057610bb0600080fd5b9250929050565b60008060208385031215610bcd57610bcd600080fd5b823567ffffffffffffffff811115610be757610be7600080fd5b610bf385828601610b65565b92509250509250929050565b602081016103628284610b1a565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610c3757607f821691505b602082108103610c4957610c49610c0d565b50919050565b600061036282610c5d565b90565b67ffffffffffffffff1690565b610abe81610c4f565b602081016103628284610c6a565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161036281610c81565b6020808252810161036281602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b6000610d30825190565b610d3e818560208601610ac4565b9290920192915050565b6103628183610d26565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610caf565b6020808252810161036281610d52565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0391821691908116908282039081111561036257610362610d94565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610caf565b6020808252810161036281610dcd565b634e487b7160e01b600052601260045260246000fd5b600082610e3457610e34610e0f565b500490565b600060018201610e4b57610e4b610d94565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000610362610c5a8381565b610e7d83610e68565b815460001960089490940293841b1916921b91909117905550565b6000610ea5818484610e74565b505050565b81811015610ec557610ebd600082610e98565b600101610eaa565b5050565b601f821115610ea5576000818152602090206020601f85010481016020851015610ef05750805b6102f96020601f860104830182610eaa565b815167ffffffffffffffff811115610f1c57610f1c610e52565b610f268254610c23565b610f31828285610ec9565b506020601f821160018114610f665760008315610f4e5750848201515b600019600885021c19811660028502178555506102f9565b600084815260208120601f198516915b82811015610f965787850151825560209485019460019092019101610f76565b5084821015610fb35783870151600019601f87166008021c191681555b50505050600202600101905550565b8181038181111561036257610362610d94565b818102811582820484141761036257610362610d9456fea2646970667358221220a7b27c0c1863d6c0b2486c73ffa2a4592563ec57aeb866a59c97b817f532293064736f6c634300081c003360a060405260405161128a38038061128a8339810160408190526100229161046a565b828161002e8282610089565b50508160405161003d9061031d565b61004791906104df565b604051809103906000f080158015610063573d6000803e3d6000fd5b506001600160a01b031660805261008161007c60805190565b6100e8565b505050610534565b6100928261014b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100dc576100d782826101c5565b505050565b6100e461023e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012860008051602061126a833981519152546001600160a01b031690565b826040516101379291906104ed565b60405180910390a16101488161025f565b50565b806001600160a01b03163b6000036101815780604051634c9c8ce360e01b815260040161017891906104df565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101e2919061052a565b600060405180830381855af49150503d806000811461021d576040519150601f19603f3d011682016040523d82523d6000602084013e610222565b606091505b50909250905061023385838361029e565b925050505b92915050565b341561025d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116610289576000604051633173bdd160e11b815260040161017891906104df565b8060008051602061126a8339815191526101a4565b6060826102b3576102ae826102f4565b6102ed565b81511580156102ca57506001600160a01b0384163b155b156102ea5783604051639996b31560e01b815260040161017891906104df565b50805b9392505050565b8051156103045780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106eb80610b7f83390190565b60006001600160a01b038216610238565b6103448161032a565b811461014857600080fd5b80516102388161033b565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156103955761039561035a565b6040525050565b60006103a760405190565b90506103b38282610370565b919050565b60006001600160401b038211156103d1576103d161035a565b601f19601f83011660200192915050565b60005b838110156103fd5781810151838201526020016103e5565b50506000910152565b6000610419610414846103b8565b61039c565b905082815283838301111561043057610430600080fd5b6102ed8360208301846103e2565b600082601f83011261045257610452600080fd5b8151610462848260208601610406565b949350505050565b60008060006060848603121561048257610482600080fd5b61048c858561034f565b925061049b856020860161034f565b60408501519092506001600160401b038111156104ba576104ba600080fd5b6104c68682870161043e565b9150509250925092565b6104d98161032a565b82525050565b6020810161023882846104d0565b604081016104fb82856104d0565b6102ed60208301846104d0565b6000610512825190565b6105208185602086016103e2565b9290920192915050565b6102388183610508565b60805161063161054e6000396000601001526106316000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea9190610539565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161028891906105f1565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b905082815283838301111561050857610508600080fd5b6103838360208301846104d2565b600082601f83011261052a5761052a600080fd5b610383838335602085016104de565b6000806040838503121561054f5761054f600080fd5b6105598484610424565b9150602083013567ffffffffffffffff81111561057857610578600080fd5b61058485828601610516565b9150509250929050565b610597816103ff565b82525050565b602081016102dd828461058e565b60005b838110156105c65781810151838201526020016105ae565b50506000910152565b60006105d9825190565b6105e78185602086016105ab565b9290920192915050565b6102dd81836105cf56fea264697066735822122010d1880687d5a44f0a558c272f84fabbd9bf65d697170ee3f6681c2467feb26164736f6c634300081c0033608060405234801561001057600080fd5b506040516106eb3803806106eb83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a919061012d565b60405180910390fd5b61006c81610073565b505061013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b61011783836100ed565b9392505050565b610127816100c3565b82525050565b602081016100d0828461011e565b6105a18061014a6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610457565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610513565b34801561011a57600080fd5b50610074610129366004610524565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906101939086908690600401610543565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b905082815283838301111561041f5761041f600080fd5b61042d8360208301846103e9565b9392505050565b600082601f83011261044857610448600080fd5b61042d838335602085016103f5565b60008060006060848603121561046f5761046f600080fd5b6104798585610327565b9250610488856020860161033b565b9150604084013567ffffffffffffffff8111156104a7576104a7600080fd5b6104b386828701610434565b9150509250925092565b60005b838110156104d85781810151838201526020016104c0565b50506000910152565b60006104eb825190565b8084526020840193506105028185602086016104bd565b601f01601f19169290920192915050565b6020808252810161042d81846104e1565b60006020828403121561053957610539600080fd5b61042d838361033b565b6040810161055182856102eb565b818103602083015261056381846104e1565b94935050505056fea264697066735822122096c3a562b6861bd964d97d99d95931f7343ac03c64bc04aeab6287f6e42e45eb64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69", + Bin: "0x608060405234801561000f575f5ffd5b5060405161594538038061594583398101604081905261002e916103c4565b6100378161005e565b5f6100428282610114565b905061004e82826101d2565b6100578261028b565b5050610585565b5f60405161006b90610352565b604051809103905ff080158015610084573d5f5f3e3d5ffd5b5090505f63c4d66de860e01b836040516024016100a191906103f7565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090505f6100e883858461031260201b60201c565b90505f5160206159255f395f51905f52816040516101069190610439565b60405180910390a150505050565b5f5f6040516101229061035f565b604051809103905ff08015801561013b573d5f5f3e3d5ffd5b5090505f63da35a26f60e01b848660405160240161015a92919061045e565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090505f6101a183878461031260201b60201c565b90505f5160206159255f395f51905f52816040516101bf9190610492565b60405180910390a1925050505b92915050565b5f6040516101df9061036c565b604051809103905ff0801580156101f8573d5f5f3e3d5ffd5b5090505f63485cc95560e01b84846040516024016102179291906104a2565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505090505f61025e83868461031260201b60201c565b90505f5160206159255f395f51905f528160405161027c91906104cf565b60405180910390a15050505050565b5f60405161029890610379565b604051809103905ff0801580156102b1573d5f5f3e3d5ffd5b506040805160048152602481019091526020810180516001600160e01b0390811663204a7f0760e21b17909152919250905f906102f49084908690859061031216565b90505f5160206159255f395f51905f52816040516101069190610503565b5f5f84848460405161032390610386565b61032f9392919061054f565b604051809103905ff080158015610348573d5f5f3e3d5ffd5b5095945050505050565b610db5806105cf83390190565b61073e8061138483390190565b611c1280611ac283390190565b61107d806136d483390190565b6111d48061475183390190565b5f6001600160a01b0382166101cc565b6103ac81610393565b81146103b6575f5ffd5b50565b80516101cc816103a3565b5f602082840312156103d7576103d75f5ffd5b6103e183836103b9565b9392505050565b6103f181610393565b82525050565b602081016101cc82846103e8565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b6040808252810161044981610405565b90506101cc60208301846103e8565b806103f1565b6040810161046c8285610458565b6103e160208301846103e8565b6004815260208101634665657360e01b81529050610433565b6040808252810161044981610479565b6040810161046c82856103e8565b600a815260208101694d65737361676542757360b01b81529050610433565b60408082528101610449816104b0565b600f8152602081016e5075626c696343616c6c6261636b7360881b81529050610433565b60408082528101610449816104df565b8281835e505f910152565b5f610527825190565b80845260208401935061053e818560208601610513565b601f01601f19169290920192915050565b6060810161055d82866103e8565b61056a60208301856103e8565b818103604083015261057c818461051e565b95945050505050565b603e806105915f395ff3fe60806040525f5ffdfea26469706673582212200124ad7b949cb3e10eafc1341fdfde8c7606222bc9e9ce2e17bcf433c569c6bb64736f6c634300081c00336080604052348015600e575f5ffd5b50610d998061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100c4575f3560e01c806364c55a9d1161007d578063c4d66de811610058578063c4d66de8146101bf578063d547741f146101d2578063ee546fd8146101e5575f5ffd5b806364c55a9d1461016f57806391d1485414610182578063a217fddf146101b8575f5ffd5b80632f2ff15d116100ad5780632f2ff15d1461012057806336568abe14610135578063508a50f414610148575f5ffd5b806301ffc9a7146100c8578063248a9ca3146100f1575b5f5ffd5b6100db6100d63660046107dc565b61025b565b6040516100e8919061080a565b60405180910390f35b6101136100ff366004610829565b5f9081526020819052604090206001015490565b6040516100e8919061084c565b61013361012e36600461087e565b6102f3565b005b61013361014336600461087e565b61031d565b6101137ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013361017d366004610902565b61036e565b6100db61019036600461087e565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101135f81565b6101336101cd366004610947565b61047c565b6101336101e036600461087e565b6105e9565b6101336101f3366004610947565b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102ed57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f8281526020819052604090206001015461030d8161060d565b610317838361061a565b50505050565b6001600160a01b038116331461035f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036982826106c1565b505050565b5f61037a600130610978565b9050336001600160a01b038216146103ad5760405162461bcd60e51b81526004016103a4906109cf565b60405180910390fd5b5f8290036103cd5760405162461bcd60e51b81526004016103a490610a11565b5f5b600154811015610317575f600182815481106103ed576103ed610a21565b5f918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104439088908890600401610d06565b5f604051808303815f87803b15801561045a575f5ffd5b505af115801561046c573d5f5f3e3d5ffd5b50505050508060010190506103cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156104c65750825b90505f8267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b15610527576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561055b57845468ff00000000000000001916680100000000000000001785555b6105655f8761061a565b506105907ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a5988761061a565b5083156105e157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105d890600190610d3a565b60405180910390a15b505050505050565b5f828152602081905260409020600101546106038161060d565b61031783836106c1565b6106178133610742565b50565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166106ba575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106723390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102ed565b505f6102ed565b5f828152602081815260408083206001600160a01b038516845290915281205460ff16156106ba575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102ed565b5f828152602081815260408083206001600160a01b038516845290915290205460ff1661079f5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103a4929190610d48565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b8114610617575f5ffd5b80356102ed816107a3565b5f602082840312156107ef576107ef5f5ffd5b6107f983836107d1565b9392505050565b8015155b82525050565b602081016102ed8284610800565b806107c7565b80356102ed81610818565b5f6020828403121561083c5761083c5f5ffd5b6107f9838361081e565b80610804565b602081016102ed8284610846565b5f6001600160a01b0382166102ed565b6107c78161085a565b80356102ed8161086a565b5f5f60408385031215610892576108925f5ffd5b61089c848461081e565b91506108ab8460208501610873565b90509250929050565b5f5f83601f8401126108c7576108c75f5ffd5b50813567ffffffffffffffff8111156108e1576108e15f5ffd5b6020830191508360208202830111156108fb576108fb5f5ffd5b9250929050565b5f5f60208385031215610916576109165f5ffd5b823567ffffffffffffffff81111561092f5761092f5f5ffd5b61093b858286016108b4565b92509250509250929050565b5f6020828403121561095a5761095a5f5ffd5b6107f98383610873565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b039182169190811690828203908111156102ed576102ed610964565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102ed8161099b565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109c9565b602080825281016102ed816109df565b634e487b7160e01b5f52603260045260245ffd5b60ff81166107c7565b80356102ed81610a35565b505f6102ed6020830183610a3e565b60ff8116610804565b505f6102ed602083018361081e565b505f6102ed6020830183610873565b6108048161085a565b5f808335601e1936859003018112610aa157610aa15f5ffd5b830160208101925035905067ffffffffffffffff811115610ac357610ac35f5ffd5b368190038213156108fb576108fb5f5ffd5b82818337505f910152565b818352602083019250610af4828483610ad5565b50601f01601f19160190565b8015156107c7565b80356102ed81610b00565b505f6102ed6020830183610b08565b67ffffffffffffffff81166107c7565b80356102ed81610b22565b505f6102ed6020830183610b32565b67ffffffffffffffff8116610804565b5f6101408301610b6c8380610a49565b610b768582610a58565b50610b846020840184610a61565b610b916020860182610846565b50610b9f6040840184610a61565b610bac6040860182610846565b50610bba6060840184610a61565b610bc76060860182610846565b50610bd56080840184610a70565b610be26080860182610a7f565b50610bf060a0840184610a61565b610bfd60a0860182610846565b50610c0b60c0840184610a88565b85830360c0870152610c1e838284610ae0565b92505050610c2f60e0840184610a70565b610c3c60e0860182610a7f565b50610c4b610100840184610b13565b610c59610100860182610800565b50610c68610120840184610b3d565b610c76610120860182610b4c565b509392505050565b5f6107f98383610b5c565b5f823561013e1936849003018112610ca257610ca25f5ffd5b90910192915050565b8183526020830192505f8360208402810183805f5b87811015610cf9578484038952610cd78284610c89565b610ce18582610c7e565b94505060208201602099909901989150600101610cc0565b5091979650505050505050565b60208082528101610d18818486610cab565b949350505050565b5f67ffffffffffffffff82166102ed565b61080481610d20565b602081016102ed8284610d31565b60408101610d568285610a7f565b6107f9602083018461084656fea2646970667358221220f7bdeecf19cd5b895f8dad75ad8a081d984f3bdaf8fc06a702cfb9540b26586164736f6c634300081c00336080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610668806100d65f395ff3fe60806040526004361061007c575f3560e01c80639003adfe1161004c5780639003adfe14610125578063afe997ea14610137578063da35a26f1461014b578063f2fde38b1461016a575f5ffd5b80631a90a2191461008757806323aa2a9d146100ac578063715018a6146100cd5780638da5cb5b146100e1575f5ffd5b3661008357005b5f5ffd5b348015610092575f5ffd5b505f545b6040516100a3919061052d565b60405180910390f35b3480156100b7575f5ffd5b506100cb6100c6366004610558565b610189565b005b3480156100d8575f5ffd5b506100cb610195565b3480156100ec575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516100a39190610595565b348015610130575f5ffd5b5047610096565b348015610142575f5ffd5b506100cb6101a8565b348015610156575f5ffd5b506100cb6101653660046105b7565b610208565b348015610175575f5ffd5b506100cb6101843660046105ed565b61034d565b6101916103a9565b5f55565b61019d6103a9565b6101a65f61041d565b565b6101b06103a9565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610205573d5f5f3e3d5ffd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156102525750825b90505f8267ffffffffffffffff16600114801561026e5750303b155b90508115801561027c575080155b156102b3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102e757845468ff00000000000000001916680100000000000000001785555b6102f0866104a5565b5f879055831561034457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061033b90600190610624565b60405180910390a15b50505050505050565b6103556103a9565b6001600160a01b0381166103a0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103979190610595565b60405180910390fd5b6102058161041d565b336103db7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101a657336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103979190610595565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6104ad6104b6565b6102058161051d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101a6576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103556104b6565b805b82525050565b6020810161053b8284610525565b92915050565b805b8114610205575f5ffd5b803561053b81610541565b5f6020828403121561056b5761056b5f5ffd5b610575838361054d565b9392505050565b5f6001600160a01b03821661053b565b6105278161057c565b6020810161053b828461058c565b6105438161057c565b803561053b816105a3565b5f5f604083850312156105cb576105cb5f5ffd5b6105d5848461054d565b91506105e484602085016105ac565b90509250929050565b5f60208284031215610600576106005f5ffd5b61057583836105ac565b5f67ffffffffffffffff821661053b565b6105278161060a565b6020810161053b828461061b56fea2646970667358221220967433f5f789e7ddf5c98d864dc08977bef9918a0090f27f767140698c95725564736f6c634300081c0033608060405234801561000f575f5ffd5b5061001933610026565b610021610096565b610148565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e65760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101455780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611abd806101555f395ff3fe6080604052600436106100d4575f3560e01c8063715018a61161007e57806399a3ad211161005857806399a3ad21146102a2578063ab53bddc146102c1578063b1454caa146102e0578063f2fde38b1461030057610144565b8063715018a61461022b5780638da5cb5b1461023f5780639730886d1461028357610144565b8063346633fb116100af578063346633fb146101da57806336d2da90146101ed578063485cc9551461020c57610144565b8062a1b815146101655780630fcfbd111461018f57806333a88c72146101ae57610144565b36610144576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101199033908390600401610d91565b5f604051808303818588803b158015610130575f5ffd5b505af1158015610142573d5f5f3e3d5ffd5b005b60405162461bcd60e51b815260040161015c90610de0565b60405180910390fd5b348015610170575f5ffd5b5061017961031f565b6040516101869190610df0565b60405180910390f35b34801561019a575f5ffd5b506101796101a9366004610e17565b6103a8565b3480156101b9575f5ffd5b506101cd6101c8366004610e17565b610405565b6040516101869190610e57565b6101426101e8366004610e94565b610455565b3480156101f8575f5ffd5b50610142610207366004610eca565b61059e565b348015610217575f5ffd5b50610142610226366004610ee7565b610619565b348015610236575f5ffd5b50610142610782565b34801561024a575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101869190610f14565b34801561028e575f5ffd5b5061014261029d366004610f22565b610795565b3480156102ad575f5ffd5b506101426102bc366004610e94565b6108fa565b3480156102cc575f5ffd5b506101426102db366004610e94565b610976565b6102f36102ee366004610fe4565b610a3e565b604051610186919061106c565b34801561030b575f5ffd5b5061014261031a366004610eca565b610b46565b600354604080517f1a90a21900000000000000000000000000000000000000000000000000000000815290515f926001600160a01b031691631a90a2199160048083019260209291908290030181865afa15801561037f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a39190611085565b905090565b5f5f826040516020016103bb9190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150806103fe5760405162461bcd60e51b815260040161015c906112a2565b9392505050565b5f5f826040516020016104189190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150801580159061044d5750428111155b949350505050565b5f3411801561046357508034145b61047f5760405162461bcd60e51b815260040161015c9061130a565b60035434906001600160a01b03161561053f575f61049b61031f565b9050803410156104bd5760405162461bcd60e51b815260040161015c9061134a565b6104c7813461136e565b6003546040519193505f916001600160a01b039091169083908381818185875af1925050503d805f8114610516576040519150601f19603f3d011682016040523d82523d5f602084013e61051b565b606091505b505090508061053c5760405162461bcd60e51b815260040161015c906113d9565b50505b5f61054933610b9c565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b684846040516105909291906113e9565b60405180910390a350505050565b6105a6610bf9565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146105ef576040519150601f19603f3d011682016040523d82523d5f602084013e6105f4565b606091505b50509050806106155760405162461bcd60e51b815260040161015c90611436565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156106635750825b90505f8267ffffffffffffffff16600114801561067f5750303b155b90508115801561068d575080155b156106c4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156106f857845468ff00000000000000001916680100000000000000001785555b61070187610c6d565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038816179055831561077957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061077090600190611469565b60405180910390a15b50505050505050565b61078a610bf9565b6107935f610c7e565b565b5f6107a1600130611477565b90506107d47f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806107fb5750336001600160a01b038216145b6108175760405162461bcd60e51b815260040161015c906114cc565b5f61082283426114dc565b90505f846040516020016108369190611237565b60408051601f1981840301815291815281516020928301205f81815292839052912054909150156108795760405162461bcd60e51b815260040161015c90611547565b5f8181526020818152604082208490556001919061089990880188610eca565b6001600160a01b0316815260208101919091526040015f908120906108c46080880160608901611557565b63ffffffff1681526020808201929092526040015f9081208054600181018255908252919020869160040201610779828261198e565b610902610bf9565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461094b576040519150601f19603f3d011682016040523d82523d5f602084013e610950565b606091505b50509050806109715760405162461bcd60e51b815260040161015c90611436565b505050565b5f610982600130611477565b90506109b57f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109dc5750336001600160a01b038216145b6109f85760405162461bcd60e51b815260040161015c906114cc565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d383604051610a319190610df0565b60405180910390a2505050565b6003545f906001600160a01b031615610aef575f610a5a61031f565b905080341015610a7c5760405162461bcd60e51b815260040161015c906119f0565b6003546040515f916001600160a01b03169083908381818185875af1925050503d805f8114610ac6576040519150601f19603f3d011682016040523d82523d5f602084013e610acb565b606091505b5050905080610aec5760405162461bcd60e51b815260040161015c906113d9565b50505b610af833610b9c565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610b359796959493929190611a00565b60405180910390a195945050505050565b610b4e610bf9565b6001600160a01b038116610b90575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161015c9190610f14565b610b9981610c7e565b50565b6001600160a01b0381165f908152600260205260408120805467ffffffffffffffff169160019190610bce8385611a63565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c2b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461079357336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161015c9190610f14565b610c75610cfb565b610b9981610d62565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610793576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4e610cfb565b5f6001600160a01b0382165b92915050565b610d8581610d6a565b82525050565b80610d85565b60408101610d9f8285610d7c565b6103fe6020830184610d8b565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610d7681610dac565b60208101610d768284610d8b565b5f60c08284031215610e1157610e115f5ffd5b50919050565b5f60208284031215610e2a57610e2a5f5ffd5b813567ffffffffffffffff811115610e4357610e435f5ffd5b61044d84828501610dfe565b801515610d85565b60208101610d768284610e4f565b610e6e81610d6a565b8114610b99575f5ffd5b8035610d7681610e65565b80610e6e565b8035610d7681610e83565b5f5f60408385031215610ea857610ea85f5ffd5b610eb28484610e78565b9150610ec18460208501610e89565b90509250929050565b5f60208284031215610edd57610edd5f5ffd5b6103fe8383610e78565b5f5f60408385031215610efb57610efb5f5ffd5b610f058484610e78565b9150610ec18460208501610e78565b60208101610d768284610d7c565b5f5f60408385031215610f3657610f365f5ffd5b823567ffffffffffffffff811115610f4f57610f4f5f5ffd5b610f5b85828601610dfe565b925050610ec18460208501610e89565b63ffffffff8116610e6e565b8035610d7681610f6b565b5f5f83601f840112610f9557610f955f5ffd5b50813567ffffffffffffffff811115610faf57610faf5f5ffd5b602083019150836001820283011115610fc957610fc95f5ffd5b9250929050565b60ff8116610e6e565b8035610d7681610fd0565b5f5f5f5f5f60808688031215610ffb57610ffb5f5ffd5b6110058787610f77565b94506110148760208801610f77565b9350604086013567ffffffffffffffff811115611032576110325f5ffd5b61103e88828901610f82565b93509350506110508760608801610fd9565b90509295509295909350565b67ffffffffffffffff8116610d85565b60208101610d76828461105c565b8051610d7681610e83565b5f60208284031215611098576110985f5ffd5b6103fe838361107a565b505f610d766020830183610e78565b67ffffffffffffffff8116610e6e565b8035610d76816110b1565b505f610d7660208301836110c1565b505f610d766020830183610f77565b63ffffffff8116610d85565b5f808335601e193685900301811261110f5761110f5f5ffd5b830160208101925035905067ffffffffffffffff811115611131576111315f5ffd5b36819003821315610fc957610fc95f5ffd5b82818337505f910152565b818352602083019250611162828483611143565b50601f01601f19160190565b505f610d766020830183610fd9565b60ff8116610d85565b5f60c0830161119583806110a2565b61119f8582610d7c565b506111ad60208401846110cc565b6111ba602086018261105c565b506111c860408401846110db565b6111d560408601826110ea565b506111e360608401846110db565b6111f060608601826110ea565b506111fe60808401846110f6565b858303608087015261121183828461114e565b9250505061122260a084018461116e565b61122f60a086018261117d565b509392505050565b602080825281016103fe8184611186565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610d7681611248565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e67204574686572000000000000000000000000000000006020820152905061129c565b60208082528101610d76816112b2565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610dda565b60208082528101610d768161131a565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610d7657610d7661135a565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f72616374000000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d7681611381565b604081016113f78285610d8b565b6103fe602083018461105c565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610dda565b60208082528101610d7681611404565b5f610d7682611453565b90565b67ffffffffffffffff1690565b610d8581611446565b60208101610d768284611460565b6001600160a01b03918216919081169082820390811115610d7657610d7661135a565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610dda565b60208082528101610d768161149a565b80820180821115610d7657610d7661135a565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f21000000000000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d76816114ef565b5f6020828403121561156a5761156a5f5ffd5b6103fe8383610f77565b5f8135610d7681610e65565b5f6001600160a01b03835b81169019929092169190911792915050565b5f6001600160a01b038216610d76565b5f610d768261159d565b5f610d76826115ad565b6115ca826115b7565b6115d5818354611580565b8255505050565b5f8135610d76816110b1565b5f7bffffffffffffffff000000000000000000000000000000000000000061158b8460a01b90565b5f610d7667ffffffffffffffff8316611453565b61162d82611610565b6115d58183546115e8565b5f8135610d7681610f6b565b5f7fffffffff0000000000000000000000000000000000000000000000000000000061158b8460e01b90565b5f63ffffffff8216610d76565b61168682611670565b6115d5818354611644565b5f63ffffffff8361158b565b6116a682611670565b6115d5818354611691565b5f808335601e19368590030181126116ca576116ca5f5ffd5b8301915050803567ffffffffffffffff8111156116e8576116e85f5ffd5b602082019150600181023603821315610fc957610fc95f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b60028104600182168061173e57607f821691505b602082108103610e1157610e11611716565b5f610d766114508381565b61176483611750565b81545f1960089490940293841b1916921b91909117905550565b5f61097181848461175b565b818110156106155761179c5f8261177e565b60010161178a565b601f821115610971575f818152602090206020601f850104810160208510156117ca5750805b6117dc6020601f86010483018261178a565b5050505050565b8267ffffffffffffffff8111156117fc576117fc611702565b611806825461172a565b6118118282856117a4565b505f601f821160018114611843575f831561182c5750848201355b5f19600885021c198116600285021785555061189a565b5f84815260208120601f198516915b828110156118725787850135825560209485019460019092019101611852565b508482101561188e575f196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6109718383836117e3565b5f8135610d7681610fd0565b5f60ff8216610d76565b6118cc826118b9565b815460ff191660ff8216176115d5565b8082806118e881611574565b90506118f481846115c1565b50506020830180611904826115dc565b90506119108184611624565b5050604083018061192082611638565b905061192c818461167d565b505050606082018061193d82611638565b905061194c816001850161169d565b505061195b60808301836116b1565b6119698183600286016118a2565b505060a0820180611979826118ad565b905061198881600385016118c3565b50505050565b61061582826118dc565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f73736167650000000000000000000000000000000000000000000000000000006020820152905061129c565b60208082528101610d7681611998565b60c08101611a0e828a610d7c565b611a1b602083018961105c565b611a2860408301886110ea565b611a3560608301876110ea565b8181036080830152611a4881858761114e565b9050611a5760a083018461117d565b98975050505050505050565b67ffffffffffffffff918216919081169082820190811115610d7657610d7661135a56fea2646970667358221220d9002ea5198c905dfa01b817919f299ed5dfbcaf8a8498f2076f741340d6b9e764736f6c634300081c00336080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610fa7806100d65f395ff3fe608060405260043610610057575f3560e01c806382fbdc9c1161004157806382fbdc9c146100a9578063929d34e9146100c9578063a67e1760146100e8575f5ffd5b8062e0d3b51461005b5780638129fc1c14610093575b5f5ffd5b348015610066575f5ffd5b5061007a610075366004610a43565b6100fc565b60405161008a9493929190610ac1565b60405180910390f35b34801561009e575f5ffd5b506100a76101b4565b005b6100bc6100b7366004610b54565b6102f3565b60405161008a9190610b99565b3480156100d4575f5ffd5b506100a76100e3366004610a43565b61035a565b3480156100f3575f5ffd5b506100a76104f4565b5f60208190529081526040902080546001820180546001600160a01b03909216929161012790610bbb565b80601f016020809104026020016040519081016040528092919081815260200182805461015390610bbb565b801561019e5780601f106101755761010080835404028352916020019161019e565b820191905f5260205f20905b81548152906001019060200180831161018157829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156101fe5750825b90505f8267ffffffffffffffff16600114801561021a5750303b155b905081158015610228575080155b1561025f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029357845468ff00000000000000001916680100000000000000001785555b5f600181905560025583156102ec57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102e390600190610c0a565b60405180910390a15b5050505050565b5f5f341161031c5760405162461bcd60e51b815260040161031390610c4c565b60405180910390fd5b61520861032834610545565b116103455760405162461bcd60e51b815260040161031390610c5c565b61035133848434610550565b90505b92915050565b5f8181526020818152604080832081516080810190925280546001600160a01b03168252600181018054929391929184019161039590610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190610bbb565b801561040c5780601f106103e35761010080835404028352916020019161040c565b820191905f5260205f20905b8154815290600101906020018083116103ef57829003601f168201915b505050505081526020016002820154815260200160038201548152505090505f815f01516001600160a01b0316826020015160405161044b9190610cde565b5f604051808303815f865af19150503d805f8114610484576040519150601f19603f3d011682016040523d82523d5f602084013e610489565b606091505b50509050806104aa5760405162461bcd60e51b815260040161031390610d1a565b5f838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104e060018301826109f2565b505f60028201819055600390910155505050565b5f610500600130610d3e565b9050336001600160a01b0382161461052a5760405162461bcd60e51b815260040161031390610d93565b600254600154146105425761053d610637565b61052a565b50565b5f6103544883610db7565b5f60015490506040518060800160405280866001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050506020820185905248604090920191909152600180548291826105c883610dca565b9091555081526020808201929092526040015f208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106189082610e8b565b5060408201516002820155606090910151600390910155949350505050565b6002546001540361064457565b5f5f61064e610754565b915091505f826060015190505f81846040015161066b9190610db7565b90505f5a90505f855f01516001600160a01b03168387602001516040516106929190610cde565b5f604051808303815f8787f1925050503d805f81146106cc576040519150601f19603f3d011682016040523d82523d5f602084013e6106d1565b606091505b505090505f5a90505f6106e48285610f47565b90505f8186111561070757866106fa8388610f47565b6107049190610f5a565b90505b5f818a604001516107189190610f47565b8a51909150851561072b5761072b610866565b6107336108b0565b61073e83828c6108c6565b610747826109a0565b5050505050505050505050565b61078560405180608001604052805f6001600160a01b03168152602001606081526020015f81526020015f81525090565b6002545f8181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107c890610bbb565b80601f01602080910402602001604051908101604052809291908181526020018280546107f490610bbb565b801561083f5780601f106108165761010080835404028352916020019161083f565b820191905f5260205f20905b81548152906001019060200180831161082257829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002545f908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff191681559061089f60018301826109f2565b505f60028201819055600390910155565b60028054905f6108bf83610dca565b9190505550565b5f816040516024016108d89190610b99565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea3955800000000000000000000000000000000000000000000000000000000179052519091505f906001600160a01b0385169061afc8908790610952908690610cde565b5f60405180830381858888f193505050503d805f811461098d576040519150601f19603f3d011682016040523d82523d5f602084013e610992565b606091505b50509050806102ec576102ec855b805f036109aa5750565b604051419082905f81818185875af1925050503d805f81146109e7576040519150601f19603f3d011682016040523d82523d5f602084013e6109ec565b606091505b50505050565b5080546109fe90610bbb565b5f825580601f10610a0d575050565b601f0160209004905f5260205f209081019061054291905b80821115610a38575f8155600101610a25565b5090565b8035610354565b5f60208284031215610a5657610a565f5ffd5b6103518383610a3c565b5f6001600160a01b038216610354565b610a7981610a60565b82525050565b8281835e505f910152565b5f610a93825190565b808452602084019350610aaa818560208601610a7f565b601f01601f19169290920192915050565b80610a79565b60808101610acf8287610a70565b8181036020830152610ae18186610a8a565b9050610af06040830185610abb565b610afd6060830184610abb565b95945050505050565b5f5f83601f840112610b1957610b195f5ffd5b50813567ffffffffffffffff811115610b3357610b335f5ffd5b602083019150836001820283011115610b4d57610b4d5f5ffd5b9250929050565b5f5f60208385031215610b6857610b685f5ffd5b823567ffffffffffffffff811115610b8157610b815f5ffd5b610b8d85828601610b06565b92509250509250929050565b602081016103548284610abb565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610bcf57607f821691505b602082108103610be157610be1610ba7565b50919050565b5f61035482610bf4565b90565b67ffffffffffffffff1690565b610a7981610be7565b602081016103548284610c01565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161035481610c18565b6020808252810161035481602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b5f610cc6825190565b610cd4818560208601610a7f565b9290920192915050565b6103548183610cbd565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610c46565b6020808252810161035481610ce8565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b0391821691908116908282039081111561035457610354610d2a565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610c46565b6020808252810161035481610d61565b634e487b7160e01b5f52601260045260245ffd5b5f82610dc557610dc5610da3565b500490565b5f60018201610ddb57610ddb610d2a565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b5f610354610bf18381565b610e0a83610df6565b81545f1960089490940293841b1916921b91909117905550565b5f610e30818484610e01565b505050565b81811015610e4f57610e475f82610e24565b600101610e35565b5050565b601f821115610e30575f818152602090206020601f85010481016020851015610e795750805b6102ec6020601f860104830182610e35565b815167ffffffffffffffff811115610ea557610ea5610de2565b610eaf8254610bbb565b610eba828285610e53565b506020601f821160018114610eed575f8315610ed65750848201515b5f19600885021c19811660028502178555506102ec565b5f84815260208120601f198516915b82811015610f1c5787850151825560209485019460019092019101610efc565b5084821015610f3857838701515f19601f87166008021c191681555b50505050600202600101905550565b8181038181111561035457610354610d2a565b818102811582820484141761035457610354610d2a56fea2646970667358221220d077d37ad6740210bd32dc45c1bb1fda2c3418880ff1ee5e28a8f5f61443e06964736f6c634300081c003360a06040526040516111d43803806111d48339810160408190526100229161043b565b828161002e8282610086565b50508160405161003d90610311565b61004791906104ac565b604051809103905ff080158015610060573d5f5f3e3d5ffd5b506001600160a01b031660805261007e61007960805190565b6100e4565b505050610500565b61008f82610146565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100d8576100d382826101bf565b505050565b6100e0610234565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6101235f5160206111b45f395f51905f52546001600160a01b031690565b826040516101329291906104ba565b60405180910390a161014381610255565b50565b806001600160a01b03163b5f0361017b5780604051634c9c8ce360e01b815260040161017291906104ac565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101db91906104f6565b5f60405180830381855af49150503d805f8114610213576040519150601f19603f3d011682016040523d82523d5f602084013e610218565b606091505b509092509050610229858383610292565b925050505b92915050565b34156102535760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661027e575f604051633173bdd160e11b815260040161017291906104ac565b805f5160206111b45f395f51905f5261019e565b6060826102a7576102a2826102e8565b6102e1565b81511580156102be57506001600160a01b0384163b155b156102de5783604051639996b31560e01b815260040161017291906104ac565b50805b9392505050565b8051156102f85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106a680610b0e83390190565b5f6001600160a01b03821661022e565b6103378161031e565b8114610143575f5ffd5b805161022e8161032e565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156103855761038561034c565b6040525050565b5f61039660405190565b90506103a28282610360565b919050565b5f6001600160401b038211156103bf576103bf61034c565b601f19601f83011660200192915050565b8281835e505f910152565b5f6103ed6103e8846103a7565b61038c565b9050828152838383011115610403576104035f5ffd5b6102e18360208301846103d0565b5f82601f830112610423576104235f5ffd5b81516104338482602086016103db565b949350505050565b5f5f5f60608486031215610450576104505f5ffd5b61045a8585610341565b92506104698560208601610341565b60408501519092506001600160401b03811115610487576104875f5ffd5b61049386828701610411565b9150509250925092565b6104a68161031e565b82525050565b6020810161022e828461049d565b604081016104c8828561049d565b6102e1602083018461049d565b5f6104de825190565b6104ec8185602086016103d0565b9290920192915050565b61022e81836104d5565b6080516105f76105175f395f601001526105f75ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c4575f357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100ba576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c26100cc565b565b6100c26100fa565b5f806100db36600481846103c0565b8101906100e8919061051c565b915091506100f6828261010a565b5050565b6100c2610105610164565b61019b565b610113826101b9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561015c576101578282610260565b505050565b6100f66102d4565b5f6101967f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156101b5573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe919061057d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161027c91906105b7565b5f60405180830381855af49150503d805f81146102b4576040519150601f19603f3d011682016040523d82523d5f602084013e6102b9565b606091505b50915091506102c985838361030c565b925050505b92915050565b34156100c2576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103215761031c8261037b565b610374565b815115801561033857506001600160a01b0384163b155b1561037157836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016101fe919061057d565b50805b9392505050565b80511561038b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f5f858511156103d1576103d15f5ffd5b838611156103e0576103e05f5ffd5b5050820193919092039150565b5f6001600160a01b0382166102ce565b610406816103ed565b81146103bd575f5ffd5b80356102ce816103fd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561046e5761046e61041b565b6040525050565b5f61047f60405190565b905061048b8282610448565b919050565b5f67ffffffffffffffff8211156104a9576104a961041b565b601f19601f83011660200192915050565b82818337505f910152565b5f6104d76104d284610490565b610475565b90508281528383830111156104ed576104ed5f5ffd5b6103748360208301846104ba565b5f82601f83011261050d5761050d5f5ffd5b610374838335602085016104c5565b5f5f60408385031215610530576105305f5ffd5b61053a8484610410565b9150602083013567ffffffffffffffff811115610558576105585f5ffd5b610564858286016104fb565b9150509250929050565b610577816103ed565b82525050565b602081016102ce828461056e565b8281835e505f910152565b5f61059f825190565b6105ad81856020860161058b565b9290920192915050565b6102ce818361059656fea2646970667358221220ef8defc17bb0b61d9786ae4bf6a8bae264cd148835fbd62548b5d583020e977364736f6c634300081c0033608060405234801561000f575f5ffd5b506040516106a63803806106a683398101604081905261002e916100f3565b806001600160a01b038116610061575f604051631e4fbdf760e01b81526004016100589190610126565b60405180910390fd5b61006a81610071565b5050610134565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6100db816100c0565b81146100e5575f5ffd5b50565b80516100cc816100d2565b5f60208284031215610106576101065f5ffd5b61011083836100e8565b9392505050565b610120816100c0565b82525050565b602081016100cc8284610117565b610565806101415f395ff3fe608060405260043610610058575f3560e01c80639623609d116100415780639623609d1461009f578063ad3cb1cc146100b2578063f2fde38b14610107575f5ffd5b8063715018a61461005c5780638da5cb5b14610072575b5f5ffd5b348015610067575f5ffd5b50610070610126565b005b34801561007d575f5ffd5b505f546001600160a01b031660405161009691906102e9565b60405180910390f35b6100706100ad36600461043b565b610139565b3480156100bd575f5ffd5b506100fa6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009691906104d9565b348015610112575f5ffd5b506100706101213660046104ea565b6101bd565b61012e61021c565b6101375f610261565b565b61014161021c565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061018a9086908690600401610507565b5f604051808303818588803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b5050505050505050565b6101c561021c565b6001600160a01b038116610210575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b60405180910390fd5b61021981610261565b50565b5f546001600160a01b0316331461013757336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6102e3816102c8565b82525050565b602081016102d482846102da565b5f6102d4826102c8565b61030a816102f7565b8114610219575f5ffd5b80356102d481610301565b61030a816102c8565b80356102d48161031f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561038657610386610333565b6040525050565b5f61039760405190565b90506103a38282610360565b919050565b5f67ffffffffffffffff8211156103c1576103c1610333565b601f19601f83011660200192915050565b82818337505f910152565b5f6103ef6103ea846103a8565b61038d565b9050828152838383011115610405576104055f5ffd5b6104138360208301846103d2565b9392505050565b5f82601f83011261042c5761042c5f5ffd5b610413838335602085016103dd565b5f5f5f60608486031215610450576104505f5ffd5b61045a8585610314565b92506104698560208601610328565b9150604084013567ffffffffffffffff811115610487576104875f5ffd5b6104938682870161041a565b9150509250925092565b8281835e505f910152565b5f6104b1825190565b8084526020840193506104c881856020860161049d565b601f01601f19169290920192915050565b6020808252810161041381846104a8565b5f602082840312156104fd576104fd5f5ffd5b6104138383610328565b6040810161051582856102da565b818103602083015261052781846104a8565b94935050505056fea2646970667358221220825046736e9ba7da84b283bda1535f423544d9a64889ef23b00a31fa58c37ed964736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69", } // SystemDeployerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/TenBridge/TenBridge.go b/contracts/generated/TenBridge/TenBridge.go index 14fb56b1d2..f07c78834e 100644 --- a/contracts/generated/TenBridge/TenBridge.go +++ b/contracts/generated/TenBridge/TenBridge.go @@ -32,7 +32,7 @@ var ( // TenBridgeMetaData contains all meta data concerning the TenBridge contract. var TenBridgeMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\"},{\"inputs\":[],\"name\":\"ADMIN_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\":\"ERC20_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_TOKEN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messengerAddress\",\"type\":\"address\"}],\"name\":\"configure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"messenger\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"promoteToAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"receiveAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"removeToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendERC20\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"sendNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridge\",\"type\":\"address\"}],\"name\":\"setRemoteBridge\",\"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\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"whitelistToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040526001805463ffffffff60a01b19169055348015601f57600080fd5b50611b698061002f6000396000f3fe6080604052600436106101445760003560e01c806375b238fc116100c0578063a217fddf11610074578063c4d66de811610059578063c4d66de8146103a7578063d547741f146103c7578063e4c3ebc7146103e757600080fd5b8063a217fddf1461037f578063a381c8e21461039457600080fd5b806383bece4d116100a557806383bece4d146102f957806391d148541461031957806393b374421461035f57600080fd5b806375b238fc146102a557806375cb2672146102d957600080fd5b80632f2ff15d11610117578063498d82ab116100fc578063498d82ab146102315780635d872970146102515780635fa7b5841461028557600080fd5b80632f2ff15d146101f157806336568abe1461021157600080fd5b806301ffc9a71461014957806316ce81491461017f5780631888d712146101a1578063248a9ca3146101b4575b600080fd5b34801561015557600080fd5b50610169610164366004611320565b61041b565b6040516101769190611349565b60405180910390f35b34801561018b57600080fd5b5061019f61019a36600461137c565b610484565b005b61019f6101af36600461137c565b6104de565b3480156101c057600080fd5b506101e46101cf3660046113ac565b60009081526002602052604090206001015490565b60405161017691906113d1565b3480156101fd57600080fd5b5061019f61020c3660046113df565b6105eb565b34801561021d57600080fd5b5061019f61022c3660046113df565b610616565b34801561023d57600080fd5b5061019f61024c366004611469565b610667565b34801561025d57600080fd5b506101e47f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b34801561029157600080fd5b5061019f6102a036600461137c565b61072c565b3480156102b157600080fd5b506101e47fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102e557600080fd5b5061019f6102f436600461137c565b610780565b34801561030557600080fd5b5061019f6103143660046114f6565b61085b565b34801561032557600080fd5b506101696103343660046113df565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561036b57600080fd5b5061019f61037a36600461137c565b610975565b34801561038b57600080fd5b506101e4600081565b61019f6103a23660046114f6565b6109c9565b3480156103b357600080fd5b5061019f6103c236600461137c565b610ab8565b3480156103d357600080fd5b5061019f6103e23660046113df565b610c51565b3480156103f357600080fd5b506101e47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061047e57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756104ae81610c76565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600034116105075760405162461bcd60e51b81526004016104fe90611573565b60405180910390fd5b60006040518060400160405280348152602001836001600160a01b031681525060405160200161053791906115ab565b60408051601f19818403018152919052600354909150610568906001600160a01b03168260025b6000806000610c83565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105b590869083906004016115b9565b6000604051808303818588803b1580156105ce57600080fd5b505af11580156105e2573d6000803e3d6000fd5b50505050505050565b60008281526002602052604090206001015461060681610c76565b6106108383610d9a565b50505050565b6001600160a01b0381163314610658576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106628282610e48565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561069181610c76565b6106bb7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d9a565b50600063458ffd6360e01b87878787876040516024016106df959493929190611600565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105e2906001600160a01b031682600161055e565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561075681610c76565b6106627f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e48565b610788610ecf565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b919061164c565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003546000546001600160a01b039182169116331461088c5760405162461bcd60e51b81526004016104fe906116c5565b806001600160a01b031661089e610f38565b6001600160a01b0316146108c45760405162461bcd60e51b81526004016104fe9061172d565b6001600160a01b03841660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16156109145761090f848484610fb5565b610610565b6001600160a01b03841660009081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff161561095d5761090f82610fc0565b60405162461bcd60e51b81526004016104fe90611795565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561099f81610c76565b6106627fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d9a565b600082116109e95760405162461bcd60e51b81526004016104fe906117d7565b6001600160a01b03831660009081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a405760405162461bcd60e51b81526004016104fe906117e7565b610a4c83333085611032565b60006383bece4d60e01b848484604051602401610a6b9392919061186e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152600354909150610610906001600160a01b031682600061055e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610b035750825b905060008267ffffffffffffffff166001148015610b205750303b155b905081158015610b2e575080155b15610b65576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b9957845468ff00000000000000001916680100000000000000001785555b610ba286610780565b610bcc7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d9a565b50610bf87fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105786000610d9a565b508315610c4957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c40906001906118b9565b60405180910390a15b505050505050565b600082815260026020526040902060010154610c6c81610c76565b6106108383610e48565b610c80813361108c565b50565b60006040518060600160405280886001600160a01b0316815260200187815260200185815250604051602001610cb99190611966565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa91859174010000000000000000000000000000000000000000900463ffffffff16906014610d0d836119a6565b91906101000a81548163ffffffff021916908363ffffffff1602179055508885886040518663ffffffff1660e01b8152600401610d4d94939291906119de565b60206040518083038185885af1158015610d6b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d909190611a3e565b5050505050505050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff16610e405760008381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610df83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161047e565b50600061047e565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e405760008381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161047e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610f36576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008060009054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb0919061164c565b905090565b6106628382846110ec565b6040516000906001600160a01b038316908281818181865af19150503d8060008114611008576040519150601f19603f3d011682016040523d82523d6000602084013e61100d565b606091505b505090508061102e5760405162461bcd60e51b81526004016104fe90611a8f565b5050565b61061084856001600160a01b03166323b872dd86868660405160240161105a93929190611a9f565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611112565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1661102e5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016104fe9291906115b9565b61066283846001600160a01b031663a9059cbb858560405160240161105a9291906115b9565b60006111276001600160a01b03841683611185565b9050805160001415801561114c57508080602001905181019061114a9190611ada565b155b1561066257826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016104fe9190611af9565b60606111938383600061119a565b9392505050565b6060814710156111d857306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016104fe9190611af9565b600080856001600160a01b031684866040516111f49190611b29565b60006040518083038185875af1925050503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b5091509150611246868383611250565b9695505050505050565b60608261126557611260826112bc565b611193565b815115801561127c57506001600160a01b0384163b155b156112b557836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104fe9190611af9565b5080611193565b8051156112cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c8057600080fd5b803561047e816112fe565b60006020828403121561133557611335600080fd5b6111938383611315565b8015155b82525050565b6020810161047e828461133f565b60006001600160a01b03821661047e565b61130a81611357565b803561047e81611368565b60006020828403121561139157611391600080fd5b6111938383611371565b8061130a565b803561047e8161139b565b6000602082840312156113c1576113c1600080fd5b61119383836113a1565b80611343565b6020810161047e82846113cb565b600080604083850312156113f5576113f5600080fd5b6113ff84846113a1565b915061140e8460208501611371565b90509250929050565b60008083601f84011261142c5761142c600080fd5b50813567ffffffffffffffff81111561144757611447600080fd5b60208301915083600182028301111561146257611462600080fd5b9250929050565b60008060008060006060868803121561148457611484600080fd5b61148e8787611371565b9450602086013567ffffffffffffffff8111156114ad576114ad600080fd5b6114b988828901611417565b9450945050604086013567ffffffffffffffff8111156114db576114db600080fd5b6114e788828901611417565b92509250509295509295909350565b60008060006060848603121561150e5761150e600080fd5b6115188585611371565b925061152785602086016113a1565b91506115368560408601611371565b90509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b6020808252810161047e8161153f565b61134381611357565b805161159883826113cb565b5060208101516106626020840182611583565b6040810161047e828461158c565b604081016115c78285611583565b61119360208301846113cb565b82818337506000910152565b8183526020830192506115f48284836115d4565b50601f01601f19160190565b6060810161160e8288611583565b81810360208301526116218186886115e0565b905081810360408301526116368184866115e0565b979650505050505050565b805161047e81611368565b60006020828403121561166157611661600080fd5b6111938383611641565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161047e8161166b565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e64657221000000000000000000000000000000602082015290506116bf565b6020808252810161047e816116d5565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e000000000000000000000000000000000000000000000000000000602082015290506116bf565b6020808252810161047e8161173d565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061156d565b6020808252810161047e816117a5565b6020808252810161047e81604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b6060810161187c8286611583565b61188960208301856113cb565b6118966040830184611583565b949350505050565b600067ffffffffffffffff821661047e565b6113438161189e565b6020810161047e82846118b0565b60005b838110156118e25781810151838201526020016118ca565b50506000910152565b60006118f5825190565b80845260208401935061190c8185602086016118c7565b601f01601f19169290920192915050565b805160009060608401906119318582611583565b506020830151848203602086015261194982826118eb565b915050604083015161195e60408601826113cb565b509392505050565b60208082528101611193818461191d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff16600063fffffffe1982016119c2576119c2611977565b5060010190565b63ffffffff8116611343565b60ff8116611343565b608081016119ec82876119c9565b6119f960208301866119c9565b8181036040830152611a0b81856118eb565b9050611a1a60608301846119d5565b95945050505050565b67ffffffffffffffff811661130a565b805161047e81611a23565b600060208284031215611a5357611a53600080fd5b6111938383611a33565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061156d565b6020808252810161047e81611a5d565b60608101611aad8286611583565b611aba6020830185611583565b61189660408301846113cb565b80151561130a565b805161047e81611ac7565b600060208284031215611aef57611aef600080fd5b6111938383611acf565b6020810161047e8284611583565b6000611b11825190565b611b1f8185602086016118c7565b9290920192915050565b61047e8183611b0756fea264697066735822122077fe354a2cc25f060dea219ef565c090fee7fb5bfbc39cbabe447af25f33f21664736f6c634300081c0033", + Bin: "0x60806040526001805463ffffffff60a01b19169055348015601e575f5ffd5b50611adf8061002c5f395ff3fe60806040526004361061013d575f3560e01c806375b238fc116100bb578063a217fddf11610071578063c4d66de811610057578063c4d66de81461038e578063d547741f146103ad578063e4c3ebc7146103cc575f5ffd5b8063a217fddf14610368578063a381c8e21461037b575f5ffd5b806383bece4d116100a157806383bece4d146102e657806391d148541461030557806393b3744214610349575f5ffd5b806375b238fc1461029457806375cb2672146102c7575f5ffd5b80632f2ff15d11610110578063498d82ab116100f6578063498d82ab146102235780635d872970146102425780635fa7b58414610275575f5ffd5b80632f2ff15d146101e557806336568abe14610204575f5ffd5b806301ffc9a71461014157806316ce8149146101765780631888d71214610197578063248a9ca3146101aa575b5f5ffd5b34801561014c575f5ffd5b5061016061015b3660046112d3565b6103ff565b60405161016d91906112fa565b60405180910390f35b348015610181575f5ffd5b5061019561019036600461132c565b610467565b005b6101956101a536600461132c565b6104c1565b3480156101b5575f5ffd5b506101d86101c436600461135a565b5f9081526002602052604090206001015490565b60405161016d919061137d565b3480156101f0575f5ffd5b506101956101ff36600461138b565b6105c6565b34801561020f575f5ffd5b5061019561021e36600461138b565b6105f0565b34801561022e575f5ffd5b5061019561023d36600461140f565b610641565b34801561024d575f5ffd5b506101d87f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a81565b348015610280575f5ffd5b5061019561028f36600461132c565b610705565b34801561029f575f5ffd5b506101d87fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b3480156102d2575f5ffd5b506101956102e136600461132c565b610759565b3480156102f1575f5ffd5b50610195610300366004611496565b610831565b348015610310575f5ffd5b5061016061031f36600461138b565b5f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610354575f5ffd5b5061019561036336600461132c565b610948565b348015610373575f5ffd5b506101d85f81565b610195610389366004611496565b61099c565b348015610399575f5ffd5b506101956103a836600461132c565b610a87565b3480156103b8575f5ffd5b506101956103c736600461138b565b610c1d565b3480156103d7575f5ffd5b506101d87fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad211057881565b5f6001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061046157507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561049181610c41565b506003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f34116104e95760405162461bcd60e51b81526004016104e090611510565b60405180910390fd5b5f6040518060400160405280348152602001836001600160a01b03168152506040516020016105189190611548565b60408051601f19818403018152919052600354909150610547906001600160a01b03168260025b5f5f5f610c4e565b6001546040517f346633fb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063346633fb9034906105949086908390600401611556565b5f604051808303818588803b1580156105ab575f5ffd5b505af11580156105bd573d5f5f3e3d5ffd5b50505050505050565b5f828152600260205260409020600101546105e081610c41565b6105ea8383610d62565b50505050565b6001600160a01b0381163314610632576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063c8282610e0d565b505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561066b81610c41565b6106957f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a87610d62565b505f63458ffd6360e01b87878787876040516024016106b895949392919061159c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105bd906001600160a01b031682600161053f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561072f81610c41565b61063c7f9f225881f6e7ac8a885b63aa2269cbce78dd6a669864ccd2cd2517a8e709d73a83610e0d565b610761610e92565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117909155604080517fa1a227fa000000000000000000000000000000000000000000000000000000008152905163a1a227fa916004808201926020929091908290030181865afa1580156107dd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080191906115e8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905550565b6003545f546001600160a01b03918216911633146108615760405162461bcd60e51b81526004016104e09061165f565b806001600160a01b0316610873610efb565b6001600160a01b0316146108995760405162461bcd60e51b81526004016104e0906116c7565b6001600160a01b0384165f9081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16156108e8576108e3848484610f74565b6105ea565b6001600160a01b0384165f9081527f13ad2d85210d477fe1a6e25654c8250308cf29b050a4bf0b039d70467486712c602052604090205460ff1615610930576108e382610f7f565b60405162461bcd60e51b81526004016104e09061172f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561097281610c41565b61063c7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177583610d62565b5f82116109bb5760405162461bcd60e51b81526004016104e090611771565b6001600160a01b0383165f9081527f32ef73018533fa188e9e42b313c0a4048c6052342b662fb7510c0d1abcea3413602052604090205460ff16610a115760405162461bcd60e51b81526004016104e090611781565b610a1d83333085610fee565b5f6383bece4d60e01b848484604051602401610a3b93929190611808565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526003549091506105ea906001600160a01b0316825f61053f565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610ad15750825b90505f8267ffffffffffffffff166001148015610aed5750303b155b905081158015610afb575080155b15610b32576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b6657845468ff00000000000000001916680100000000000000001785555b610b6f86610759565b610b997fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533610d62565b50610bc47fd2fb17ceaa388942529b17e0006ffc4d559f040dd4f2157b8070f17ad21105785f610d62565b508315610c1557845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290610c0c90600190611852565b60405180910390a15b505050505050565b5f82815260026020526040902060010154610c3781610c41565b6105ea8383610e0d565b610c4b8133611048565b50565b5f6040518060600160405280886001600160a01b0316815260200187815260200185815250604051602001610c8391906118e4565b60408051808303601f19018152919052600180549192506001600160a01b0382169163b1454caa91859174010000000000000000000000000000000000000000900463ffffffff16906014610cd783611922565b91906101000a81548163ffffffff021916908363ffffffff1602179055508885886040518663ffffffff1660e01b8152600401610d179493929190611959565b60206040518083038185885af1158015610d33573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d5891906119b9565b5050505050505050565b5f8281526002602090815260408083206001600160a01b038516845290915281205460ff16610e06575f8381526002602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610461565b505f610461565b5f8281526002602090815260408083206001600160a01b038516845290915281205460ff1615610e06575f8381526002602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610461565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610ef9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f5f5f9054906101000a90046001600160a01b03166001600160a01b03166363012de56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6f91906115e8565b905090565b61063c8382846110a7565b6040515f906001600160a01b038316908281818181865af19150503d805f8114610fc4576040519150601f19603f3d011682016040523d82523d5f602084013e610fc9565b606091505b5050905080610fea5760405162461bcd60e51b81526004016104e090611a08565b5050565b6105ea84856001600160a01b03166323b872dd86868660405160240161101693929190611a18565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506110cd565b5f8281526002602090815260408083206001600160a01b038516845290915290205460ff16610fea5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016104e0929190611556565b61063c83846001600160a01b031663a9059cbb8585604051602401611016929190611556565b5f6110e16001600160a01b0384168361113e565b905080515f141580156111055750808060200190518101906111039190611a53565b155b1561063c57826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016104e09190611a70565b606061114b83835f611152565b9392505050565b60608147101561119057306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016104e09190611a70565b5f5f856001600160a01b031684866040516111ab9190611a9f565b5f6040518083038185875af1925050503d805f81146111e5576040519150601f19603f3d011682016040523d82523d5f602084013e6111ea565b606091505b50915091506111fa868383611204565b9695505050505050565b6060826112195761121482611270565b61114b565b815115801561123057506001600160a01b0384163b155b1561126957836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104e09190611a70565b508061114b565b8051156112805780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b031981165b8114610c4b575f5ffd5b8035610461816112b2565b5f602082840312156112e6576112e65f5ffd5b61114b83836112c8565b8015155b82525050565b6020810161046182846112f0565b5f6001600160a01b038216610461565b6112be81611308565b803561046181611318565b5f6020828403121561133f5761133f5f5ffd5b61114b8383611321565b806112be565b803561046181611349565b5f6020828403121561136d5761136d5f5ffd5b61114b838361134f565b806112f4565b602081016104618284611377565b5f5f6040838503121561139f5761139f5f5ffd5b6113a9848461134f565b91506113b88460208501611321565b90509250929050565b5f5f83601f8401126113d4576113d45f5ffd5b50813567ffffffffffffffff8111156113ee576113ee5f5ffd5b602083019150836001820283011115611408576114085f5ffd5b9250929050565b5f5f5f5f5f60608688031215611426576114265f5ffd5b6114308787611321565b9450602086013567ffffffffffffffff81111561144e5761144e5f5ffd5b61145a888289016113c1565b9450945050604086013567ffffffffffffffff81111561147b5761147b5f5ffd5b611487888289016113c1565b92509250509295509295909350565b5f5f5f606084860312156114ab576114ab5f5ffd5b6114b58585611321565b92506114c4856020860161134f565b91506114d38560408601611321565b90509250925092565b600f8152602081017f456d707479207472616e736665722e0000000000000000000000000000000000815290505b60200190565b60208082528101610461816114dc565b6112f481611308565b80516115358382611377565b50602081015161063c6020840182611520565b604081016104618284611529565b604081016115648285611520565b61114b6020830184611377565b82818337505f910152565b818352602083019250611590828483611571565b50601f01601f19160190565b606081016115aa8288611520565b81810360208301526115bd81868861157c565b905081810360408301526115d281848661157c565b979650505050505050565b805161046181611318565b5f602082840312156115fb576115fb5f5ffd5b61114b83836115dd565b60308152602081017f436f6e74726163742063616c6c6572206973206e6f742074686520726567697381527f7465726564206d657373656e6765722100000000000000000000000000000000602082015290505b60400190565b6020808252810161046181611605565b60318152602081017f43726f737320636861696e206d65737361676520636f6d696e672066726f6d2081527f696e636f72726563742073656e6465722100000000000000000000000000000060208201529050611659565b602080825281016104618161166f565b60258152602081017f417474656d7074696e6720746f20776974686472617720756e6b6e6f776e206181527f737365742e00000000000000000000000000000000000000000000000000000060208201529050611659565b60208082528101610461816116d7565b601a8152602081017f417474656d7074696e6720656d707479207472616e736665722e0000000000008152905061150a565b602080825281016104618161173f565b6020808252810161046181604e81527f54686973206164647265737320686173206e6f74206265656e20676976656e2060208201527f61207479706520616e64206973207468757320636f6e73696465726564206e6f60408201527f742077686974656c69737465642e000000000000000000000000000000000000606082015260800190565b606081016118168286611520565b6118236020830185611377565b6118306040830184611520565b949350505050565b5f67ffffffffffffffff8216610461565b6112f481611838565b602081016104618284611849565b8281835e505f910152565b5f611874825190565b80845260208401935061188b818560208601611860565b601f01601f19169290920192915050565b80515f9060608401906118af8582611520565b50602083015184820360208601526118c7828261186b565b91505060408301516118dc6040860182611377565b509392505050565b6020808252810161114b818461189c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b63ffffffff165f63fffffffe19820161193d5761193d6118f5565b5060010190565b63ffffffff81166112f4565b60ff81166112f4565b608081016119678287611944565b6119746020830186611944565b8181036040830152611986818561186b565b90506119956060830184611950565b95945050505050565b67ffffffffffffffff81166112be565b80516104618161199e565b5f602082840312156119cc576119cc5f5ffd5b61114b83836119ae565b60148152602081017f4661696c656420746f2073656e642045746865720000000000000000000000008152905061150a565b60208082528101610461816119d6565b60608101611a268286611520565b611a336020830185611520565b6118306040830184611377565b8015156112be565b805161046181611a40565b5f60208284031215611a6657611a665f5ffd5b61114b8383611a48565b602081016104618284611520565b5f611a87825190565b611a95818560208601611860565b9290920192915050565b6104618183611a7e56fea26469706673582212209dcfe92519eb101dc9fd8937e3c4f599ad995e20466aea28eb78608ac2d8d01864736f6c634300081c0033", } // TenBridgeABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go index eccf52712c..b72f579f0a 100644 --- a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go +++ b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // TransactionPostProcessorMetaData contains all meta data concerning the TransactionPostProcessor contract. var TransactionPostProcessorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"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\":\"uint256\",\"name\":\"transactionsLength\",\"type\":\"uint256\"}],\"name\":\"TransactionsConverted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EOA_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"}],\"name\":\"addOnBlockEndCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b50610ddf8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc3660046107fd565b610265565b6040516100ee919061082d565b60405180910390f35b61011a61010536600461084c565b60009081526020819052604090206001015490565b6040516100ee9190610871565b61013a6101353660046108a4565b6102fe565b005b61013a61014a3660046108a4565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a61018436600461092e565b61037a565b6100e16101973660046108a4565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d6366004610976565b610492565b61013a6101e93660046108a4565b610602565b61013a6101fc366004610976565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610627565b6103238383610634565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037582826106de565b505050565b60006103876001306109ab565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a02565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a44565b60005b600154811015610323576000600182815481106103fd576103fd610a54565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104549088908890600401610d4b565b600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b50505050508060010190506103de565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104dd5750825b905060008267ffffffffffffffff1660011480156104fa5750303b155b905081158015610508575080155b1561053f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057357845468ff00000000000000001916680100000000000000001785555b61057e600087610634565b506105a97ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610634565b5083156105fa57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105f190600190610d80565b60405180910390a15b505050505050565b60008281526020819052604090206001015461061d81610627565b61032383836106de565b6106318133610761565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166106d6576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561068e3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16156106d6576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107bf5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610d8e565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461063157600080fd5b80356102f8816107c3565b60006020828403121561081257610812600080fd5b61081c83836107f2565b9392505050565b8015155b82525050565b602081016102f88284610823565b806107e7565b80356102f88161083b565b60006020828403121561086157610861600080fd5b61081c8383610841565b80610827565b602081016102f8828461086b565b60006001600160a01b0382166102f8565b6107e78161087f565b80356102f881610890565b600080604083850312156108ba576108ba600080fd5b6108c48484610841565b91506108d38460208501610899565b90509250929050565b60008083601f8401126108f1576108f1600080fd5b50813567ffffffffffffffff81111561090c5761090c600080fd5b60208301915083602082028301111561092757610927600080fd5b9250929050565b6000806020838503121561094457610944600080fd5b823567ffffffffffffffff81111561095e5761095e600080fd5b61096a858286016108dc565b92509250509250929050565b60006020828403121561098b5761098b600080fd5b61081c8383610899565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f8610995565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f8816109ce565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109fc565b602080825281016102f881610a12565b634e487b7160e01b600052603260045260246000fd5b60ff81166107e7565b80356102f881610a6a565b5060006102f86020830183610a73565b60ff8116610827565b5060006102f86020830183610841565b5060006102f86020830183610899565b6108278161087f565b6000808335601e1936859003018112610adb57610adb600080fd5b830160208101925035905067ffffffffffffffff811115610afe57610afe600080fd5b3681900382131561092757610927600080fd5b82818337506000910152565b818352602083019250610b31828483610b11565b50601f01601f19160190565b8015156107e7565b80356102f881610b3d565b5060006102f86020830183610b45565b67ffffffffffffffff81166107e7565b80356102f881610b60565b5060006102f86020830183610b70565b67ffffffffffffffff8116610827565b60006101408301610bac8380610a7e565b610bb68582610a8e565b50610bc46020840184610a97565b610bd1602086018261086b565b50610bdf6040840184610a97565b610bec604086018261086b565b50610bfa6060840184610a97565b610c07606086018261086b565b50610c156080840184610aa7565b610c226080860182610ab7565b50610c3060a0840184610a97565b610c3d60a086018261086b565b50610c4b60c0840184610ac0565b85830360c0870152610c5e838284610b1d565b92505050610c6f60e0840184610aa7565b610c7c60e0860182610ab7565b50610c8b610100840184610b50565b610c99610100860182610823565b50610ca8610120840184610b7b565b610cb6610120860182610b8b565b509392505050565b600061081c8383610b9b565b6000823561013e1936849003018112610ce557610ce5600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d3e578484038952610d1c8284610cca565b610d268582610cbe565b94505060208201602099909901989150600101610d05565b5091979650505050505050565b60208082528101610d5d818486610cee565b949350505050565b600067ffffffffffffffff82166102f8565b61082781610d65565b602081016102f88284610d77565b60408101610d9c8285610ab7565b61081c602083018461086b56fea2646970667358221220000c7add8ef77f2ce3e54738e1a6216052e3c7d3dfd30f31adc394e073238b4d64736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b50610d998061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100c4575f3560e01c806364c55a9d1161007d578063c4d66de811610058578063c4d66de8146101bf578063d547741f146101d2578063ee546fd8146101e5575f5ffd5b806364c55a9d1461016f57806391d1485414610182578063a217fddf146101b8575f5ffd5b80632f2ff15d116100ad5780632f2ff15d1461012057806336568abe14610135578063508a50f414610148575f5ffd5b806301ffc9a7146100c8578063248a9ca3146100f1575b5f5ffd5b6100db6100d63660046107dc565b61025b565b6040516100e8919061080a565b60405180910390f35b6101136100ff366004610829565b5f9081526020819052604090206001015490565b6040516100e8919061084c565b61013361012e36600461087e565b6102f3565b005b61013361014336600461087e565b61031d565b6101137ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013361017d366004610902565b61036e565b6100db61019036600461087e565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6101135f81565b6101336101cd366004610947565b61047c565b6101336101e036600461087e565b6105e9565b6101336101f3366004610947565b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102ed57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b5f8281526020819052604090206001015461030d8161060d565b610317838361061a565b50505050565b6001600160a01b038116331461035f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036982826106c1565b505050565b5f61037a600130610978565b9050336001600160a01b038216146103ad5760405162461bcd60e51b81526004016103a4906109cf565b60405180910390fd5b5f8290036103cd5760405162461bcd60e51b81526004016103a490610a11565b5f5b600154811015610317575f600182815481106103ed576103ed610a21565b5f918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104439088908890600401610d06565b5f604051808303815f87803b15801561045a575f5ffd5b505af115801561046c573d5f5f3e3d5ffd5b50505050508060010190506103cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156104c65750825b90505f8267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b15610527576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561055b57845468ff00000000000000001916680100000000000000001785555b6105655f8761061a565b506105907ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a5988761061a565b5083156105e157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105d890600190610d3a565b60405180910390a15b505050505050565b5f828152602081905260409020600101546106038161060d565b61031783836106c1565b6106178133610742565b50565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166106ba575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106723390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102ed565b505f6102ed565b5f828152602081815260408083206001600160a01b038516845290915281205460ff16156106ba575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102ed565b5f828152602081815260408083206001600160a01b038516845290915290205460ff1661079f5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103a4929190610d48565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b8114610617575f5ffd5b80356102ed816107a3565b5f602082840312156107ef576107ef5f5ffd5b6107f983836107d1565b9392505050565b8015155b82525050565b602081016102ed8284610800565b806107c7565b80356102ed81610818565b5f6020828403121561083c5761083c5f5ffd5b6107f9838361081e565b80610804565b602081016102ed8284610846565b5f6001600160a01b0382166102ed565b6107c78161085a565b80356102ed8161086a565b5f5f60408385031215610892576108925f5ffd5b61089c848461081e565b91506108ab8460208501610873565b90509250929050565b5f5f83601f8401126108c7576108c75f5ffd5b50813567ffffffffffffffff8111156108e1576108e15f5ffd5b6020830191508360208202830111156108fb576108fb5f5ffd5b9250929050565b5f5f60208385031215610916576109165f5ffd5b823567ffffffffffffffff81111561092f5761092f5f5ffd5b61093b858286016108b4565b92509250509250929050565b5f6020828403121561095a5761095a5f5ffd5b6107f98383610873565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b039182169190811690828203908111156102ed576102ed610964565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102ed8161099b565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109c9565b602080825281016102ed816109df565b634e487b7160e01b5f52603260045260245ffd5b60ff81166107c7565b80356102ed81610a35565b505f6102ed6020830183610a3e565b60ff8116610804565b505f6102ed602083018361081e565b505f6102ed6020830183610873565b6108048161085a565b5f808335601e1936859003018112610aa157610aa15f5ffd5b830160208101925035905067ffffffffffffffff811115610ac357610ac35f5ffd5b368190038213156108fb576108fb5f5ffd5b82818337505f910152565b818352602083019250610af4828483610ad5565b50601f01601f19160190565b8015156107c7565b80356102ed81610b00565b505f6102ed6020830183610b08565b67ffffffffffffffff81166107c7565b80356102ed81610b22565b505f6102ed6020830183610b32565b67ffffffffffffffff8116610804565b5f6101408301610b6c8380610a49565b610b768582610a58565b50610b846020840184610a61565b610b916020860182610846565b50610b9f6040840184610a61565b610bac6040860182610846565b50610bba6060840184610a61565b610bc76060860182610846565b50610bd56080840184610a70565b610be26080860182610a7f565b50610bf060a0840184610a61565b610bfd60a0860182610846565b50610c0b60c0840184610a88565b85830360c0870152610c1e838284610ae0565b92505050610c2f60e0840184610a70565b610c3c60e0860182610a7f565b50610c4b610100840184610b13565b610c59610100860182610800565b50610c68610120840184610b3d565b610c76610120860182610b4c565b509392505050565b5f6107f98383610b5c565b5f823561013e1936849003018112610ca257610ca25f5ffd5b90910192915050565b8183526020830192505f8360208402810183805f5b87811015610cf9578484038952610cd78284610c89565b610ce18582610c7e565b94505060208201602099909901989150600101610cc0565b5091979650505050505050565b60208082528101610d18818486610cab565b949350505050565b5f67ffffffffffffffff82166102ed565b61080481610d20565b602081016102ed8284610d31565b60408101610d568285610a7f565b6107f9602083018461084656fea2646970667358221220f7bdeecf19cd5b895f8dad75ad8a081d984f3bdaf8fc06a702cfb9540b26586164736f6c634300081c0033", } // TransactionPostProcessorABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go b/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go index 46466682e7..a12224cf62 100644 --- a/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go +++ b/contracts/generated/TransparentUpgradeableProxy/TransparentUpgradeableProxy.go @@ -32,7 +32,7 @@ var ( // TransparentUpgradeableProxyMetaData contains all meta data concerning the TransparentUpgradeableProxy contract. var TransparentUpgradeableProxyMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}]", - Bin: "0x60a060405260405161128a38038061128a8339810160408190526100229161046a565b828161002e8282610089565b50508160405161003d9061031d565b61004791906104df565b604051809103906000f080158015610063573d6000803e3d6000fd5b506001600160a01b031660805261008161007c60805190565b6100e8565b505050610534565b6100928261014b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100dc576100d782826101c5565b505050565b6100e461023e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012860008051602061126a833981519152546001600160a01b031690565b826040516101379291906104ed565b60405180910390a16101488161025f565b50565b806001600160a01b03163b6000036101815780604051634c9c8ce360e01b815260040161017891906104df565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101e2919061052a565b600060405180830381855af49150503d806000811461021d576040519150601f19603f3d011682016040523d82523d6000602084013e610222565b606091505b50909250905061023385838361029e565b925050505b92915050565b341561025d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116610289576000604051633173bdd160e11b815260040161017891906104df565b8060008051602061126a8339815191526101a4565b6060826102b3576102ae826102f4565b6102ed565b81511580156102ca57506001600160a01b0384163b155b156102ea5783604051639996b31560e01b815260040161017891906104df565b50805b9392505050565b8051156103045780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106eb80610b7f83390190565b60006001600160a01b038216610238565b6103448161032a565b811461014857600080fd5b80516102388161033b565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156103955761039561035a565b6040525050565b60006103a760405190565b90506103b38282610370565b919050565b60006001600160401b038211156103d1576103d161035a565b601f19601f83011660200192915050565b60005b838110156103fd5781810151838201526020016103e5565b50506000910152565b6000610419610414846103b8565b61039c565b905082815283838301111561043057610430600080fd5b6102ed8360208301846103e2565b600082601f83011261045257610452600080fd5b8151610462848260208601610406565b949350505050565b60008060006060848603121561048257610482600080fd5b61048c858561034f565b925061049b856020860161034f565b60408501519092506001600160401b038111156104ba576104ba600080fd5b6104c68682870161043e565b9150509250925092565b6104d98161032a565b82525050565b6020810161023882846104d0565b604081016104fb82856104d0565b6102ed60208301846104d0565b6000610512825190565b6105208185602086016103e2565b9290920192915050565b6102388183610508565b60805161063161054e6000396000601001526106316000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea9190610539565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161028891906105f1565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b905082815283838301111561050857610508600080fd5b6103838360208301846104d2565b600082601f83011261052a5761052a600080fd5b610383838335602085016104de565b6000806040838503121561054f5761054f600080fd5b6105598484610424565b9150602083013567ffffffffffffffff81111561057857610578600080fd5b61058485828601610516565b9150509250929050565b610597816103ff565b82525050565b602081016102dd828461058e565b60005b838110156105c65781810151838201526020016105ae565b50506000910152565b60006105d9825190565b6105e78185602086016105ab565b9290920192915050565b6102dd81836105cf56fea264697066735822122010d1880687d5a44f0a558c272f84fabbd9bf65d697170ee3f6681c2467feb26164736f6c634300081c0033608060405234801561001057600080fd5b506040516106eb3803806106eb83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a919061012d565b60405180910390fd5b61006c81610073565b505061013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b61011783836100ed565b9392505050565b610127816100c3565b82525050565b602081016100d0828461011e565b6105a18061014a6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610457565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610513565b34801561011a57600080fd5b50610074610129366004610524565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906101939086908690600401610543565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b905082815283838301111561041f5761041f600080fd5b61042d8360208301846103e9565b9392505050565b600082601f83011261044857610448600080fd5b61042d838335602085016103f5565b60008060006060848603121561046f5761046f600080fd5b6104798585610327565b9250610488856020860161033b565b9150604084013567ffffffffffffffff8111156104a7576104a7600080fd5b6104b386828701610434565b9150509250925092565b60005b838110156104d85781810151838201526020016104c0565b50506000910152565b60006104eb825190565b8084526020840193506105028185602086016104bd565b601f01601f19169290920192915050565b6020808252810161042d81846104e1565b60006020828403121561053957610539600080fd5b61042d838361033b565b6040810161055182856102eb565b818103602083015261056381846104e1565b94935050505056fea264697066735822122096c3a562b6861bd964d97d99d95931f7343ac03c64bc04aeab6287f6e42e45eb64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + Bin: "0x60a06040526040516111d43803806111d48339810160408190526100229161043b565b828161002e8282610086565b50508160405161003d90610311565b61004791906104ac565b604051809103905ff080158015610060573d5f5f3e3d5ffd5b506001600160a01b031660805261007e61007960805190565b6100e4565b505050610500565b61008f82610146565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156100d8576100d382826101bf565b505050565b6100e0610234565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6101235f5160206111b45f395f51905f52546001600160a01b031690565b826040516101329291906104ba565b60405180910390a161014381610255565b50565b806001600160a01b03163b5f0361017b5780604051634c9c8ce360e01b815260040161017291906104ac565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f5f846001600160a01b0316846040516101db91906104f6565b5f60405180830381855af49150503d805f8114610213576040519150601f19603f3d011682016040523d82523d5f602084013e610218565b606091505b509092509050610229858383610292565b925050505b92915050565b34156102535760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b03811661027e575f604051633173bdd160e11b815260040161017291906104ac565b805f5160206111b45f395f51905f5261019e565b6060826102a7576102a2826102e8565b6102e1565b81511580156102be57506001600160a01b0384163b155b156102de5783604051639996b31560e01b815260040161017291906104ac565b50805b9392505050565b8051156102f85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106a680610b0e83390190565b5f6001600160a01b03821661022e565b6103378161031e565b8114610143575f5ffd5b805161022e8161032e565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156103855761038561034c565b6040525050565b5f61039660405190565b90506103a28282610360565b919050565b5f6001600160401b038211156103bf576103bf61034c565b601f19601f83011660200192915050565b8281835e505f910152565b5f6103ed6103e8846103a7565b61038c565b9050828152838383011115610403576104035f5ffd5b6102e18360208301846103d0565b5f82601f830112610423576104235f5ffd5b81516104338482602086016103db565b949350505050565b5f5f5f60608486031215610450576104505f5ffd5b61045a8585610341565b92506104698560208601610341565b60408501519092506001600160401b03811115610487576104875f5ffd5b61049386828701610411565b9150509250925092565b6104a68161031e565b82525050565b6020810161022e828461049d565b604081016104c8828561049d565b6102e1602083018461049d565b5f6104de825190565b6104ec8185602086016103d0565b9290920192915050565b61022e81836104d5565b6080516105f76105175f395f601001526105f75ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c4575f357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100ba576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c26100cc565b565b6100c26100fa565b5f806100db36600481846103c0565b8101906100e8919061051c565b915091506100f6828261010a565b5050565b6100c2610105610164565b61019b565b610113826101b9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561015c576101578282610260565b505050565b6100f66102d4565b5f6101967f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156101b5573d5ff35b3d5ffd5b806001600160a01b03163b5f0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe919061057d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161027c91906105b7565b5f60405180830381855af49150503d805f81146102b4576040519150601f19603f3d011682016040523d82523d5f602084013e6102b9565b606091505b50915091506102c985838361030c565b925050505b92915050565b34156100c2576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103215761031c8261037b565b610374565b815115801561033857506001600160a01b0384163b155b1561037157836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016101fe919061057d565b50805b9392505050565b80511561038b5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f5f858511156103d1576103d15f5ffd5b838611156103e0576103e05f5ffd5b5050820193919092039150565b5f6001600160a01b0382166102ce565b610406816103ed565b81146103bd575f5ffd5b80356102ce816103fd565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561046e5761046e61041b565b6040525050565b5f61047f60405190565b905061048b8282610448565b919050565b5f67ffffffffffffffff8211156104a9576104a961041b565b601f19601f83011660200192915050565b82818337505f910152565b5f6104d76104d284610490565b610475565b90508281528383830111156104ed576104ed5f5ffd5b6103748360208301846104ba565b5f82601f83011261050d5761050d5f5ffd5b610374838335602085016104c5565b5f5f60408385031215610530576105305f5ffd5b61053a8484610410565b9150602083013567ffffffffffffffff811115610558576105585f5ffd5b610564858286016104fb565b9150509250929050565b610577816103ed565b82525050565b602081016102ce828461056e565b8281835e505f910152565b5f61059f825190565b6105ad81856020860161058b565b9290920192915050565b6102ce818361059656fea2646970667358221220ef8defc17bb0b61d9786ae4bf6a8bae264cd148835fbd62548b5d583020e977364736f6c634300081c0033608060405234801561000f575f5ffd5b506040516106a63803806106a683398101604081905261002e916100f3565b806001600160a01b038116610061575f604051631e4fbdf760e01b81526004016100589190610126565b60405180910390fd5b61006a81610071565b5050610134565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6100db816100c0565b81146100e5575f5ffd5b50565b80516100cc816100d2565b5f60208284031215610106576101065f5ffd5b61011083836100e8565b9392505050565b610120816100c0565b82525050565b602081016100cc8284610117565b610565806101415f395ff3fe608060405260043610610058575f3560e01c80639623609d116100415780639623609d1461009f578063ad3cb1cc146100b2578063f2fde38b14610107575f5ffd5b8063715018a61461005c5780638da5cb5b14610072575b5f5ffd5b348015610067575f5ffd5b50610070610126565b005b34801561007d575f5ffd5b505f546001600160a01b031660405161009691906102e9565b60405180910390f35b6100706100ad36600461043b565b610139565b3480156100bd575f5ffd5b506100fa6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009691906104d9565b348015610112575f5ffd5b506100706101213660046104ea565b6101bd565b61012e61021c565b6101375f610261565b565b61014161021c565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef28690349061018a9086908690600401610507565b5f604051808303818588803b1580156101a1575f5ffd5b505af11580156101b3573d5f5f3e3d5ffd5b5050505050505050565b6101c561021c565b6001600160a01b038116610210575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b60405180910390fd5b61021981610261565b50565b5f546001600160a01b0316331461013757336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161020791906102e9565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600160a01b0382165b92915050565b6102e3816102c8565b82525050565b602081016102d482846102da565b5f6102d4826102c8565b61030a816102f7565b8114610219575f5ffd5b80356102d481610301565b61030a816102c8565b80356102d48161031f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f19601f830116810181811067ffffffffffffffff8211171561038657610386610333565b6040525050565b5f61039760405190565b90506103a38282610360565b919050565b5f67ffffffffffffffff8211156103c1576103c1610333565b601f19601f83011660200192915050565b82818337505f910152565b5f6103ef6103ea846103a8565b61038d565b9050828152838383011115610405576104055f5ffd5b6104138360208301846103d2565b9392505050565b5f82601f83011261042c5761042c5f5ffd5b610413838335602085016103dd565b5f5f5f60608486031215610450576104505f5ffd5b61045a8585610314565b92506104698560208601610328565b9150604084013567ffffffffffffffff811115610487576104875f5ffd5b6104938682870161041a565b9150509250925092565b8281835e505f910152565b5f6104b1825190565b8084526020840193506104c881856020860161049d565b601f01601f19169290920192915050565b6020808252810161041381846104a8565b5f602082840312156104fd576104fd5f5ffd5b6104138383610328565b6040810161051582856102da565b818103602083015261052781846104a8565b94935050505056fea2646970667358221220825046736e9ba7da84b283bda1535f423544d9a64889ef23b00a31fa58c37ed964736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", } // TransparentUpgradeableProxyABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/WrappedERC20/WrappedERC20.go b/contracts/generated/WrappedERC20/WrappedERC20.go index 73b461be08..deb0a53a07 100644 --- a/contracts/generated/WrappedERC20/WrappedERC20.go +++ b/contracts/generated/WrappedERC20/WrappedERC20.go @@ -32,7 +32,7 @@ var ( // WrappedERC20MetaData contains all meta data concerning the WrappedERC20 contract. var WrappedERC20MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"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\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"giver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issueFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f317905534801561003657600080fd5b506040516114dc3803806114dc83398101604081905261005591610276565b81818181600361006583826103ce565b50600461007282826103ce565b50505050506100a77fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336100af60201b60201c565b50505061048d565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166101555760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561010d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610159565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b038111828210171561019a5761019a61015f565b6040525050565b60006101ac60405190565b90506101b88282610175565b919050565b60006001600160401b038211156101d6576101d661015f565b601f19601f83011660200192915050565b60005b838110156102025781810151838201526020016101ea565b50506000910152565b600061021e610219846101bd565b6101a1565b905082815283838301111561023557610235600080fd5b6102438360208301846101e7565b9392505050565b600082601f83011261025e5761025e600080fd5b815161026e84826020860161020b565b949350505050565b6000806040838503121561028c5761028c600080fd5b82516001600160401b038111156102a5576102a5600080fd5b6102b18582860161024a565b602085015190935090506001600160401b038111156102d2576102d2600080fd5b6102de8582860161024a565b9150509250929050565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061031257607f821691505b602082108103610324576103246102e8565b50919050565b60006101596103368381565b90565b6103428361032a565b815460001960089490940293841b1916921b91909117905550565b600061036a818484610339565b505050565b8181101561038a5761038260008261035d565b60010161036f565b5050565b601f82111561036a576000818152602090206020601f850104810160208510156103b55750805b6103c76020601f86010483018261036f565b5050505050565b81516001600160401b038111156103e7576103e761015f565b6103f182546102fe565b6103fc82828561038e565b506020601f82116001811461043157600083156104195750848201515b600019600885021c19811660028502178555506103c7565b600084815260208120601f198516915b828110156104615787850151825560209485019460019092019101610441565b508482101561047e5783870151600019601f87166008021c191681555b50505050600202600101905550565b6110408061049c6000396000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806336568abe116100cd578063979005ad11610081578063a9059cbb11610066578063a9059cbb146102ce578063d547741f146102e1578063dd62ed3e146102f457600080fd5b8063979005ad146102b3578063a217fddf146102c657600080fd5b806375b238fc116100b257806375b238fc1461024b57806391d148541461027257806395d89b41146102ab57600080fd5b806336568abe1461022557806370a082311461023857600080fd5b80631dd319cb11610124578063248a9ca311610109578063248a9ca3146101e05780632f2ff15d14610203578063313ce5671461021657600080fd5b80631dd319cb146101b857806323b872dd146101cd57600080fd5b806301ffc9a71461015657806306fdde031461017f578063095ea7b31461019457806318160ddd146101a7575b600080fd5b610169610164366004610c49565b610307565b6040516101769190610c72565b60405180910390f35b6101876103a0565b6040516101769190610cd6565b6101696101a2366004610d1d565b610432565b6002545b6040516101769190610d5b565b6101cb6101c6366004610d1d565b61044a565b005b6101696101db366004610d69565b6104b4565b6101ab6101ee366004610db2565b60009081526007602052604090206001015490565b6101cb610211366004610dd1565b6104da565b60126040516101769190610e09565b6101cb610233366004610dd1565b610505565b6101ab610246366004610e17565b610551565b6101ab7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610169610280366004610dd1565b60009182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101876105c7565b6101cb6102c1366004610d1d565b6105d6565b6101ab600081565b6101696102dc366004610d1d565b61060a565b6101cb6102ef366004610dd1565b610618565b6101ab610302366004610e36565b61063d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061039a57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103af90610e6c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610e6c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106f8565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561047481610705565b8161047e84610551565b10156104a55760405162461bcd60e51b815260040161049c90610ecc565b60405180910390fd5b6104af8383610712565b505050565b6000336104c285828561074c565b6104cd8585856107b2565b60019150505b9392505050565b6000828152600760205260409020600101546104f581610705565b6104ff8383610811565b50505050565b6001600160a01b0381163314610547576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104af82826108bf565b60006001600160a01b0382163203610581576001600160a01b03821660009081526020819052604090205461039a565b6001600160a01b03821633036105af576001600160a01b03821660009081526020819052604090205461039a565b60405162461bcd60e51b815260040161049c90610f0e565b6060600480546103af90610e6c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561060081610705565b6104af8383610946565b6000336104408185856107b2565b60008281526007602052604090206001015461063381610705565b6104ff83836108bf565b6000326001600160a01b038416148061065e5750326001600160a01b038316145b15610691576001600160a01b038084166000908152600160209081526040808320938616835292905220545b905061039a565b336001600160a01b03841614806106b05750336001600160a01b038316145b156106e0576001600160a01b0380841660009081526001602090815260408083209386168352929052205461068a565b60405162461bcd60e51b815260040161049c90610f1e565b6104af838383600161097c565b61070f8133610a81565b50565b6001600160a01b03821661073c576000604051634b637e8f60e11b815260040161049c9190610f88565b61074882600083610ae1565b5050565b6000610758848461063d565b905060001981146104ff57818110156107a3578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161049c93929190610f96565b6104ff8484848403600061097c565b6001600160a01b0383166107dc576000604051634b637e8f60e11b815260040161049c9190610f88565b6001600160a01b03821661080657600060405163ec442f0560e01b815260040161049c9190610f88565b6104af838383610ae1565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff166108b75760008381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561086f3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161039a565b50600061039a565b60008281526007602090815260408083206001600160a01b038516845290915281205460ff16156108b75760008381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161039a565b6001600160a01b03821661097057600060405163ec442f0560e01b815260040161049c9190610f88565b61074860008383610ae1565b6001600160a01b0384166109bf5760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161049c9190610f88565b6001600160a01b038316610a025760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161049c9190610f88565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104ff57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a739190610d5b565b60405180910390a350505050565b60008281526007602090815260408083206001600160a01b038516845290915290205460ff166107485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161049c929190610fc6565b6001600160a01b038316610b0c578060026000828254610b019190610ff7565b90915550610b849050565b6001600160a01b03831660009081526020819052604090205481811015610b65578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161049c93929190610f96565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ba057600280548290039055610bbf565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c029190610d5b565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461070f57600080fd5b803561039a81610c0f565b600060208284031215610c5e57610c5e600080fd5b6104d38383610c3e565b8015155b82525050565b6020810161039a8284610c68565b60005b83811015610c9b578181015183820152602001610c83565b50506000910152565b6000610cae825190565b808452602084019350610cc5818560208601610c80565b601f01601f19169290920192915050565b602080825281016104d38184610ca4565b60006001600160a01b03821661039a565b610c3381610ce7565b803561039a81610cf8565b80610c33565b803561039a81610d0c565b60008060408385031215610d3357610d33600080fd5b610d3d8484610d01565b9150610d4c8460208501610d12565b90509250929050565b80610c6c565b6020810161039a8284610d55565b600080600060608486031215610d8157610d81600080fd5b610d8b8585610d01565b9250610d9a8560208601610d01565b9150610da98560408601610d12565b90509250925092565b600060208284031215610dc757610dc7600080fd5b6104d38383610d12565b60008060408385031215610de757610de7600080fd5b610df18484610d12565b9150610d4c8460208501610d01565b60ff8116610c6c565b6020810161039a8284610e00565b600060208284031215610e2c57610e2c600080fd5b6104d38383610d01565b60008060408385031215610e4c57610e4c600080fd5b610df18484610d01565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610e8057607f821691505b602082108103610e9257610e92610e56565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161039a81610e98565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610ec6565b6020808252810161039a81610edc565b6020808252810161039a81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c6c81610ce7565b6020810161039a8284610f7f565b60608101610fa48286610f7f565b610fb16020830185610d55565b610fbe6040830184610d55565b949350505050565b60408101610fd48285610f7f565b6104d36020830184610d55565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039a5761039a610fe156fea264697066735822122036fe937a11594b4347e4151962e0b8b942fa2a563051f8b1f3e8d8082e9a0f4064736f6c634300081c0033", + Bin: "0x6080604052600580546001600160a01b03191673deb34a740eca1ec42c8b8204cbec0ba34fdd27f3179055348015610035575f5ffd5b5060405161144738038061144783398101604081905261005491610251565b818181816003610064838261039e565b506004610071828261039e565b50505050506100a67fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775336100ae60201b60201c565b505050610459565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610152575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561010a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610155565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b601f19601f83011681016001600160401b03811182821017156101945761019461015b565b6040525050565b5f6101a560405190565b90506101b1828261016f565b919050565b5f6001600160401b038211156101ce576101ce61015b565b601f19601f83011660200192915050565b8281835e505f910152565b5f6101fc6101f7846101b6565b61019b565b9050828152838383011115610212576102125f5ffd5b6102208360208301846101df565b9392505050565b5f82601f830112610239576102395f5ffd5b81516102498482602086016101ea565b949350505050565b5f5f60408385031215610265576102655f5ffd5b82516001600160401b0381111561027d5761027d5f5ffd5b61028985828601610227565b602085015190935090506001600160401b038111156102a9576102a95f5ffd5b6102b585828601610227565b9150509250929050565b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806102e757607f821691505b6020821081036102f9576102f96102bf565b50919050565b5f61015561030a8381565b90565b610316836102ff565b81545f1960089490940293841b1916921b91909117905550565b5f61033c81848461030d565b505050565b8181101561035b576103535f82610330565b600101610341565b5050565b601f82111561033c575f818152602090206020601f850104810160208510156103855750805b6103976020601f860104830182610341565b5050505050565b81516001600160401b038111156103b7576103b761015b565b6103c182546102d3565b6103cc82828561035f565b506020601f8211600181146103ff575f83156103e85750848201515b5f19600885021c1981166002850217855550610397565b5f84815260208120601f198516915b8281101561042e578785015182556020948501946001909201910161040e565b508482101561044a57838701515f19601f87166008021c191681555b50505050600202600101905550565b610fe1806104665f395ff3fe608060405234801561000f575f5ffd5b5060043610610149575f3560e01c806336568abe116100c7578063979005ad1161007d578063a9059cbb11610063578063a9059cbb146102c2578063d547741f146102d5578063dd62ed3e146102e8575f5ffd5b8063979005ad146102a8578063a217fddf146102bb575f5ffd5b806375b238fc116100ad57806375b238fc1461024157806391d148541461026857806395d89b41146102a0575f5ffd5b806336568abe1461021b57806370a082311461022e575f5ffd5b80631dd319cb1161011c578063248a9ca311610102578063248a9ca3146101d75780632f2ff15d146101f9578063313ce5671461020c575f5ffd5b80631dd319cb146101af57806323b872dd146101c4575f5ffd5b806301ffc9a71461014d57806306fdde0314610176578063095ea7b31461018b57806318160ddd1461019e575b5f5ffd5b61016061015b366004610c18565b6102fb565b60405161016d9190610c3f565b60405180910390f35b61017e610393565b60405161016d9190610c89565b610160610199366004610ccf565b610423565b6002545b60405161016d9190610d0b565b6101c26101bd366004610ccf565b61043a565b005b6101606101d2366004610d19565b6104a4565b6101a26101e5366004610d5f565b5f9081526007602052604090206001015490565b6101c2610207366004610d7c565b6104c9565b601260405161016d9190610db2565b6101c2610229366004610d7c565b6104f3565b6101a261023c366004610dc0565b61053f565b6101a27fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b610160610276366004610d7c565b5f9182526007602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61017e6105b2565b6101c26102b6366004610ccf565b6105c1565b6101a25f81565b6101606102d0366004610ccf565b6105f5565b6101c26102e3366004610d7c565b610602565b6101a26102f6366004610ddd565b610626565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061038d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600380546103a290610e0f565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e0f565b80156104195780601f106103f057610100808354040283529160200191610419565b820191905f5260205f20905b8154815290600101906020018083116103fc57829003601f168201915b5050505050905090565b5f336104308185856106de565b5060019392505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610464816106eb565b8161046e8461053f565b10156104955760405162461bcd60e51b815260040161048c90610e6f565b60405180910390fd5b61049f83836106f8565b505050565b5f336104b1858285610730565b6104bc858585610793565b60019150505b9392505050565b5f828152600760205260409020600101546104e3816106eb565b6104ed83836107f0565b50505050565b6001600160a01b0381163314610535576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61049f828261089b565b5f6001600160a01b038216320361056d576001600160a01b0382165f9081526020819052604090205461038d565b6001600160a01b038216330361059a576001600160a01b0382165f9081526020819052604090205461038d565b60405162461bcd60e51b815260040161048c90610eb1565b6060600480546103a290610e0f565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756105eb816106eb565b61049f8383610920565b5f33610430818585610793565b5f8281526007602052604090206001015461061c816106eb565b6104ed838361089b565b5f326001600160a01b03841614806106465750326001600160a01b038316145b15610678576001600160a01b038084165f908152600160209081526040808320938616835292905220545b905061038d565b336001600160a01b03841614806106975750336001600160a01b038316145b156106c6576001600160a01b038084165f90815260016020908152604080832093861683529290522054610671565b60405162461bcd60e51b815260040161048c90610ec1565b61049f8383836001610954565b6106f58133610a56565b50565b6001600160a01b038216610721575f604051634b637e8f60e11b815260040161048c9190610f2b565b61072c825f83610ab5565b5050565b5f61073b8484610626565b90505f1981146104ed5781811015610785578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161048c93929190610f39565b6104ed84848484035f610954565b6001600160a01b0383166107bc575f604051634b637e8f60e11b815260040161048c9190610f2b565b6001600160a01b0382166107e5575f60405163ec442f0560e01b815260040161048c9190610f2b565b61049f838383610ab5565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff16610894575f8381526007602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561084c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161038d565b505f61038d565b5f8281526007602090815260408083206001600160a01b038516845290915281205460ff1615610894575f8381526007602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161038d565b6001600160a01b038216610949575f60405163ec442f0560e01b815260040161048c9190610f2b565b61072c5f8383610ab5565b6001600160a01b038416610996575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161048c9190610f2b565b6001600160a01b0383166109d8575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161048c9190610f2b565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104ed57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a489190610d0b565b60405180910390a350505050565b5f8281526007602090815260408083206001600160a01b038516845290915290205460ff1661072c5780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161048c929190610f69565b6001600160a01b038316610adf578060025f828254610ad49190610f98565b90915550610b559050565b6001600160a01b0383165f9081526020819052604090205481811015610b37578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161048c93929190610f39565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610b7157600280548290039055610b8f565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd29190610d0b565b60405180910390a3505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b81146106f5575f5ffd5b803561038d81610bdf565b5f60208284031215610c2b57610c2b5f5ffd5b6104c28383610c0d565b8015155b82525050565b6020810161038d8284610c35565b8281835e505f910152565b5f610c61825190565b808452602084019350610c78818560208601610c4d565b601f01601f19169290920192915050565b602080825281016104c28184610c58565b5f6001600160a01b03821661038d565b610c0381610c9a565b803561038d81610caa565b80610c03565b803561038d81610cbe565b5f5f60408385031215610ce357610ce35f5ffd5b610ced8484610cb3565b9150610cfc8460208501610cc4565b90509250929050565b80610c39565b6020810161038d8284610d05565b5f5f5f60608486031215610d2e57610d2e5f5ffd5b610d388585610cb3565b9250610d478560208601610cb3565b9150610d568560408601610cc4565b90509250925092565b5f60208284031215610d7257610d725f5ffd5b6104c28383610cc4565b5f5f60408385031215610d9057610d905f5ffd5b610d9a8484610cc4565b9150610cfc8460208501610cb3565b60ff8116610c39565b6020810161038d8284610da9565b5f60208284031215610dd357610dd35f5ffd5b6104c28383610cb3565b5f5f60408385031215610df157610df15f5ffd5b610d9a8484610cb3565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610e2357607f821691505b602082108103610e3557610e35610dfb565b50919050565b60158152602081017f496e73756666696369656e742062616c616e63652e0000000000000000000000815290505b60200190565b6020808252810161038d81610e3b565b601f8152602081017f4e6f7420616c6c6f77656420746f2072656164207468652062616c616e63650081529050610e69565b6020808252810161038d81610e7f565b6020808252810161038d81602181527f4e6f7420616c6c6f77656420746f20726561642074686520616c6c6f77616e6360208201527f6500000000000000000000000000000000000000000000000000000000000000604082015260600190565b610c3981610c9a565b6020810161038d8284610f22565b60608101610f478286610f22565b610f546020830185610d05565b610f616040830184610d05565b949350505050565b60408101610f778285610f22565b6104c26020830184610d05565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561038d5761038d610f8456fea2646970667358221220ba6b4996116e560a54ab485db6a674eeef7255da269323f7a3bdf4b4aa8995c964736f6c634300081c0033", } // WrappedERC20ABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ZenBase/ZenBase.go b/contracts/generated/ZenBase/ZenBase.go index d45081b8cf..ac365a5970 100644 --- a/contracts/generated/ZenBase/ZenBase.go +++ b/contracts/generated/ZenBase/ZenBase.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // ZenBaseMetaData contains all meta data concerning the ZenBase contract. var ZenBaseMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactionPostProcessor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransactionProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlockEnd\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b5060405161104a38038061104a83398101604081905261002f91610196565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b815250816003908161007791906102b8565b50600461008482826102b8565b5050506001600160a01b0381166100ba576000604051631e4fbdf760e01b81526004016100b19190610386565b60405180910390fd5b6100c38161010f565b506001600160a01b0381166100ea5760405162461bcd60e51b81526004016100b190610394565b600680546001600160a01b0319166001600160a01b03929092169190911790556103dc565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160a01b0382165b92915050565b61017d81610161565b811461018857600080fd5b50565b805161016e81610174565b6000602082840312156101ab576101ab600080fd5b6101b5838361018b565b9392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806101fc57607f821691505b60208210810361020e5761020e6101d2565b50919050565b600061016e6102208381565b90565b61022c83610214565b815460001960089490940293841b1916921b91909117905550565b6000610254818484610223565b505050565b818110156102745761026c600082610247565b600101610259565b5050565b601f821115610254576000818152602090206020601f8501048101602085101561029f5750805b6102b16020601f860104830182610259565b5050505050565b81516001600160401b038111156102d1576102d16101bc565b6102db82546101e8565b6102e6828285610278565b506020601f82116001811461031b57600083156103035750848201515b600019600885021c19811660028502178555506102b1565b600084815260208120601f198516915b8281101561034b578785015182556020948501946001909201910161032b565b50848210156103685783870151600019601f87166008021c191681555b50505050600202600101905550565b61038081610161565b82525050565b6020810161016e8284610377565b6020808252810161016e81602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610c5f806103eb6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063715018a61161008c5780639f9976af116100665780639f9976af146101a9578063a9059cbb146101bc578063dd62ed3e146101cf578063f2fde38b1461020857600080fd5b8063715018a61461017e5780638da5cb5b1461018857806395d89b41146101a157600080fd5b806323b872dd116100bd57806323b872dd14610133578063313ce5671461014657806370a082311461015557600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610122575b600080fd5b6100ec61021b565b6040516100f9919061089b565b60405180910390f35b6101156101103660046108f4565b6102ad565b6040516100f99190610936565b6002545b6040516100f9919061094a565b610115610141366004610958565b6102c7565b60126040516100f991906109aa565b6101266101633660046109b8565b6001600160a01b031660009081526020819052604090205490565b6101866102eb565b005b6005546001600160a01b03166040516100f991906109e0565b6100ec6102ff565b6101866101b7366004610a40565b61030e565b6101156101ca3660046108f4565b6103ba565b6101266101dd366004610a88565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101866102163660046109b8565b6103c8565b60606003805461022a90610acd565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610acd565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b5050505050905090565b6000336102bb81858561041f565b60019150505b92915050565b6000336102d585828561042c565b6102e08585856104b0565b506001949350505050565b6102f3610528565b6102fd600061056e565b565b60606004805461022a90610acd565b6006546001600160a01b031633146103415760405162461bcd60e51b815260040161033890610af9565b60405180910390fd5b60008190036103625760405162461bcd60e51b815260040161033890610b5a565b60005b818110156103b5576103ad83838381811061038257610382610b95565b90506020028101906103949190610bab565b6103a69061010081019060e0016109b8565b60016105d8565b600101610365565b505050565b6000336102bb8185856104b0565b6103d0610528565b6001600160a01b0381166104135760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161033891906109e0565b61041c8161056e565b50565b6103b58383836001610612565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146104aa578181101561049b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161033893929190610bd0565b6104aa84848484036000610612565b50505050565b6001600160a01b0383166104f35760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161033891906109e0565b6001600160a01b03821661051d57600060405163ec442f0560e01b815260040161033891906109e0565b6103b5838383610717565b6005546001600160a01b031633146102fd57336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161033891906109e0565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821661060257600060405163ec442f0560e01b815260040161033891906109e0565b61060e60008383610717565b5050565b6001600160a01b0384166106555760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161033891906109e0565b6001600160a01b0383166106985760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161033891906109e0565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156104aa57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610709919061094a565b60405180910390a350505050565b6001600160a01b0383166107425780600260008282546107379190610c16565b909155506107ba9050565b6001600160a01b0383166000908152602081905260409020548181101561079b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161033893929190610bd0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166107d6576002805482900390556107f5565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610838919061094a565b60405180910390a3505050565b60005b83811015610860578181015183820152602001610848565b50506000910152565b6000610873825190565b80845260208401935061088a818560208601610845565b601f01601f19169290920192915050565b602080825281016108ac8184610869565b9392505050565b60006001600160a01b0382166102c1565b6108cd816108b3565b811461041c57600080fd5b80356102c1816108c4565b806108cd565b80356102c1816108e3565b6000806040838503121561090a5761090a600080fd5b61091484846108d8565b915061092384602085016108e9565b90509250929050565b8015155b82525050565b602081016102c1828461092c565b80610930565b602081016102c18284610944565b60008060006060848603121561097057610970600080fd5b61097a85856108d8565b925061098985602086016108d8565b915061099885604086016108e9565b90509250925092565b60ff8116610930565b602081016102c182846109a1565b6000602082840312156109cd576109cd600080fd5b6108ac83836108d8565b610930816108b3565b602081016102c182846109d7565b60008083601f840112610a0357610a03600080fd5b50813567ffffffffffffffff811115610a1e57610a1e600080fd5b602083019150836020820283011115610a3957610a39600080fd5b9250929050565b60008060208385031215610a5657610a56600080fd5b823567ffffffffffffffff811115610a7057610a70600080fd5b610a7c858286016109ee565b92509250509250929050565b60008060408385031215610a9e57610a9e600080fd5b610aa884846108d8565b915061092384602085016108d8565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610ae157607f821691505b602082108103610af357610af3610ab7565b50919050565b602080825281016102c181602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102c181601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e1936849003018112610bc657610bc6600080fd5b9190910192915050565b60608101610bde82866109d7565b610beb6020830185610944565b610bf86040830184610944565b949350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102c1576102c1610c0056fea26469706673582212200b22fc3a1593fad9c93e9b34f2929a2ca7e82bde5ec06ab385c9135ceb15c3a364736f6c634300081c0033", + Bin: "0x608060405234801561000f575f5ffd5b50604051610fe0380380610fe083398101604081905261002e91610191565b33604051806040016040528060038152602001622d32b760e91b815250604051806040016040528060038152602001622d22a760e91b815250816003908161007691906102a8565b50600461008382826102a8565b5050506001600160a01b0381166100b8575f604051631e4fbdf760e01b81526004016100af9190610372565b60405180910390fd5b6100c18161010d565b506001600160a01b0381166100e85760405162461bcd60e51b81526004016100af90610380565b600680546001600160a01b0319166001600160a01b03929092169190911790556103c8565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0382165b92915050565b6101798161015e565b8114610183575f5ffd5b50565b805161016a81610170565b5f602082840312156101a4576101a45f5ffd5b6101ae8383610186565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52602260045260245ffd5b6002810460018216806101f157607f821691505b602082108103610203576102036101c9565b50919050565b5f61016a6102148381565b90565b61022083610209565b81545f1960089490940293841b1916921b91909117905550565b5f610246818484610217565b505050565b818110156102655761025d5f8261023a565b60010161024b565b5050565b601f821115610246575f818152602090206020601f8501048101602085101561028f5750805b6102a16020601f86010483018261024b565b5050505050565b81516001600160401b038111156102c1576102c16101b5565b6102cb82546101dd565b6102d6828285610269565b506020601f821160018114610309575f83156102f25750848201515b5f19600885021c19811660028502178555506102a1565b5f84815260208120601f198516915b828110156103385787850151825560209485019460019092019101610318565b508482101561035457838701515f19601f87166008021c191681555b50505050600202600101905550565b61036c8161015e565b82525050565b6020810161016a8284610363565b6020808252810161016a81602481527f496e76616c6964207472616e73616374696f6e20616e616c797a6572206164646020820152637265737360e01b604082015260600190565b610c0b806103d55f395ff3fe608060405234801561000f575f5ffd5b50600436106100da575f3560e01c8063715018a6116100885780639f9976af116100635780639f9976af146101a2578063a9059cbb146101b5578063dd62ed3e146101c8578063f2fde38b14610200575f5ffd5b8063715018a6146101775780638da5cb5b1461018157806395d89b411461019a575f5ffd5b806323b872dd116100b857806323b872dd1461012d578063313ce5671461014057806370a082311461014f575f5ffd5b806306fdde03146100de578063095ea7b3146100fc57806318160ddd1461011c575b5f5ffd5b6100e6610213565b6040516100f39190610861565b60405180910390f35b61010f61010a3660046108b8565b6102a3565b6040516100f391906108f8565b6002545b6040516100f3919061090c565b61010f61013b36600461091a565b6102bc565b60126040516100f39190610969565b61012061015d366004610977565b6001600160a01b03165f9081526020819052604090205490565b61017f6102df565b005b6005546001600160a01b03166040516100f3919061099d565b6100e66102f2565b61017f6101b03660046109f9565b610301565b61010f6101c33660046108b8565b6103ab565b6101206101d6366004610a3e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f61020e366004610977565b6103b8565b60606003805461022290610a7f565b80601f016020809104026020016040519081016040528092919081815260200182805461024e90610a7f565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b5050505050905090565b5f336102b081858561040e565b60019150505b92915050565b5f336102c985828561041b565b6102d485858561049c565b506001949350505050565b6102e7610512565b6102f05f610558565b565b60606004805461022290610a7f565b6006546001600160a01b031633146103345760405162461bcd60e51b815260040161032b90610aab565b60405180910390fd5b5f8190036103545760405162461bcd60e51b815260040161032b90610b0c565b5f5b818110156103a65761039e83838381811061037357610373610b47565b90506020028101906103859190610b5b565b6103979061010081019060e001610977565b60016105c1565b600101610356565b505050565b5f336102b081858561049c565b6103c0610512565b6001600160a01b038116610402575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161032b919061099d565b61040b81610558565b50565b6103a683838360016105f9565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146104965781811015610488578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161032b93929190610b7e565b61049684848484035f6105f9565b50505050565b6001600160a01b0383166104de575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161032b919061099d565b6001600160a01b038216610507575f60405163ec442f0560e01b815260040161032b919061099d565b6103a68383836106fb565b6005546001600160a01b031633146102f057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161032b919061099d565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166105ea575f60405163ec442f0560e01b815260040161032b919061099d565b6105f55f83836106fb565b5050565b6001600160a01b03841661063b575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161032b919061099d565b6001600160a01b03831661067d575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161032b919061099d565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561049657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106ed919061090c565b60405180910390a350505050565b6001600160a01b038316610725578060025f82825461071a9190610bc2565b9091555061079b9050565b6001600160a01b0383165f908152602081905260409020548181101561077d578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161032b93929190610b7e565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107b7576002805482900390556107d5565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610818919061090c565b60405180910390a3505050565b8281835e505f910152565b5f610839825190565b808452602084019350610850818560208601610825565b601f01601f19169290920192915050565b602080825281016108728184610830565b9392505050565b5f6001600160a01b0382166102b6565b61089281610879565b811461040b575f5ffd5b80356102b681610889565b80610892565b80356102b6816108a7565b5f5f604083850312156108cc576108cc5f5ffd5b6108d6848461089c565b91506108e584602085016108ad565b90509250929050565b8015155b82525050565b602081016102b682846108ee565b806108f2565b602081016102b68284610906565b5f5f5f6060848603121561092f5761092f5f5ffd5b610939858561089c565b9250610948856020860161089c565b915061095785604086016108ad565b90509250925092565b60ff81166108f2565b602081016102b68284610960565b5f6020828403121561098a5761098a5f5ffd5b610872838361089c565b6108f281610879565b602081016102b68284610994565b5f5f83601f8401126109be576109be5f5ffd5b50813567ffffffffffffffff8111156109d8576109d85f5ffd5b6020830191508360208202830111156109f2576109f25f5ffd5b9250929050565b5f5f60208385031215610a0d57610a0d5f5ffd5b823567ffffffffffffffff811115610a2657610a265f5ffd5b610a32858286016109ab565b92509250509250929050565b5f5f60408385031215610a5257610a525f5ffd5b610a5c848461089c565b91506108e5846020850161089c565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610a9357607f821691505b602082108103610aa557610aa5610a6b565b50919050565b602080825281016102b681602c81527f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e60208201527f6174656420616464726573730000000000000000000000000000000000000000604082015260600190565b602080825281016102b681601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e1936849003018112610b7457610b745f5ffd5b9190910192915050565b60608101610b8c8286610994565b610b996020830185610906565b610ba66040830184610906565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102b6576102b6610bae56fea26469706673582212202f3fe83c28332a1b3f7a1b0a4814756d6537d3bf5156d725954b66819c1364aa64736f6c634300081c0033", } // ZenBaseABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/ZenTestnet/ZenTestnet.go b/contracts/generated/ZenTestnet/ZenTestnet.go index 14e2e56786..5a701afff7 100644 --- a/contracts/generated/ZenTestnet/ZenTestnet.go +++ b/contracts/generated/ZenTestnet/ZenTestnet.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // ZenTestnetMetaData contains all meta data concerning the ZenTestnet contract. var ZenTestnetMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransactionProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactionPostProcessor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlockEnd\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61132d806100d96000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb14610224578063c4d66de814610237578063dd62ed3e1461024a578063f2fde38b146102a257600080fd5b80638da5cb5b146101d157806395d89b41146102095780639f9976af1461021157600080fd5b806323b872dd116100c857806323b872dd1461015d578063313ce5671461017057806370a082311461017f578063715018a6146101c757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461012d575b600080fd5b6100f76102b5565b6040516101049190610d5f565b60405180910390f35b61012061011b366004610db8565b61038a565b6040516101049190610dfa565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516101049190610e0e565b61012061016b366004610e1c565b6103a4565b60126040516101049190610e6e565b61015061018d366004610e7c565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101cf6103c8565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516101049190610ea4565b6100f76103dc565b6101cf61021f366004610f04565b61042d565b610120610232366004610db8565b6104d9565b6101cf610245366004610e7c565b6104e7565b610150610258366004610f4c565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101cf6102b0366004610e7c565b6106eb565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161030690610f91565b80601f016020809104026020016040519081016040528092919081815260200182805461033290610f91565b801561037f5780601f106103545761010080835404028352916020019161037f565b820191906000526020600020905b81548152906001019060200180831161036257829003601f168201915b505050505091505090565b600033610398818585610742565b60019150505b92915050565b6000336103b285828561074f565b6103bd8585856107f2565b506001949350505050565b6103d061086a565b6103da60006108de565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161030690610f91565b6000546001600160a01b031633146104605760405162461bcd60e51b815260040161045790611017565b60405180910390fd5b60008190036104815760405162461bcd60e51b815260040161045790611027565b60005b818110156104d4576104cc8383838181106104a1576104a1611062565b90506020028101906104b39190611078565b6104c59061010081019060e001610e7c565b600161095c565b600101610484565b505050565b6000336103988185856107f2565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105325750825b905060008267ffffffffffffffff16600114801561054f5750303b155b90508115801561055d575080155b15610594576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105c857845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166105ee5760405162461bcd60e51b8152600401610457906110f5565b6106626040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610996565b61066b336109a8565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156106e357845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906106da90600190611129565b60405180910390a15b505050505050565b6106f361086a565b6001600160a01b0381166107365760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104579190610ea4565b61073f816108de565b50565b6104d483838360016109b9565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146107ec57818110156107dd578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161045793929190611137565b6107ec848484840360006109b9565b50505050565b6001600160a01b0383166108355760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104579190610ea4565b6001600160a01b03821661085f57600060405163ec442f0560e01b81526004016104579190610ea4565b6104d4838383610ae3565b3361089c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103da57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104579190610ea4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b03821661098657600060405163ec442f0560e01b81526004016104579190610ea4565b61099260008383610ae3565b5050565b61099e610c37565b6109928282610c9e565b6109b0610c37565b61073f81610d01565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038516610a1d5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104579190610ea4565b6001600160a01b038416610a605760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104579190610ea4565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610adc57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610ad39190610e0e565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610b315781816002016000828254610b26919061117d565b90915550610ba99050565b6001600160a01b03841660009081526020829052604090205482811015610b8a578481846040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161045793929190611137565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316610bc7576002810180548390039055610be6565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c299190610e0e565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103da576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ca6610c37565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610cf28482611237565b50600481016107ec8382611237565b6106f3610c37565b60005b83811015610d24578181015183820152602001610d0c565b50506000910152565b6000610d37825190565b808452602084019350610d4e818560208601610d09565b601f01601f19169290920192915050565b60208082528101610d708184610d2d565b9392505050565b60006001600160a01b03821661039e565b610d9181610d77565b811461073f57600080fd5b803561039e81610d88565b80610d91565b803561039e81610da7565b60008060408385031215610dce57610dce600080fd5b610dd88484610d9c565b9150610de78460208501610dad565b90509250929050565b8015155b82525050565b6020810161039e8284610df0565b80610df4565b6020810161039e8284610e08565b600080600060608486031215610e3457610e34600080fd5b610e3e8585610d9c565b9250610e4d8560208601610d9c565b9150610e5c8560408601610dad565b90509250925092565b60ff8116610df4565b6020810161039e8284610e65565b600060208284031215610e9157610e91600080fd5b610d708383610d9c565b610df481610d77565b6020810161039e8284610e9b565b60008083601f840112610ec757610ec7600080fd5b50813567ffffffffffffffff811115610ee257610ee2600080fd5b602083019150836020820283011115610efd57610efd600080fd5b9250929050565b60008060208385031215610f1a57610f1a600080fd5b823567ffffffffffffffff811115610f3457610f34600080fd5b610f4085828601610eb2565b92509250509250929050565b60008060408385031215610f6257610f62600080fd5b610f6c8484610d9c565b9150610de78460208501610d9c565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610fa557607f821691505b602082108103610fb757610fb7610f7b565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039e81610fbd565b6020808252810161039e81601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6000823561013e193684900301811261109357611093600080fd5b9190910192915050565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f726573730000000000000000000000000000000000000000000000000000000060208201529050611011565b6020808252810161039e8161109d565b600061039e82611113565b90565b67ffffffffffffffff1690565b610df481611105565b6020810161039e8284611120565b606081016111458286610e9b565b6111526020830185610e08565b61115f6040830184610e08565b949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561039e5761039e611167565b634e487b7160e01b600052604160045260246000fd5b600061039e6111108381565b6111bb836111a6565b815460001960089490940293841b1916921b91909117905550565b60006104d48184846111b2565b81811015610992576111f66000826111d6565b6001016111e3565b601f8211156104d4576000818152602090206020601f850104810160208510156112255750805b610adc6020601f8601048301826111e3565b815167ffffffffffffffff81111561125157611251611190565b61125b8254610f91565b6112668282856111fe565b506020601f82116001811461129b57600083156112835750848201515b600019600885021c1981166002850217855550610adc565b600084815260208120601f198516915b828110156112cb57878501518255602094850194600190920191016112ab565b50848210156112e85783870151600019601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220d3a3770d9c18415c040cd5e27518d888372c17c40d07a8cc0d3063bc6943861064736f6c634300081c0033", + Bin: "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6112c9806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638da5cb5b11610088578063a9059cbb11610063578063a9059cbb1461021d578063c4d66de814610230578063dd62ed3e14610243578063f2fde38b1461029a575f5ffd5b80638da5cb5b146101ca57806395d89b41146102025780639f9976af1461020a575f5ffd5b806323b872dd116100c357806323b872dd14610157578063313ce5671461016a57806370a0823114610179578063715018a6146101c0575f5ffd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd14610127575b5f5ffd5b6100f16102ad565b6040516100fe9190610d21565b60405180910390f35b61011a610115366004610d78565b610380565b6040516100fe9190610db8565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b6040516100fe9190610dcc565b61011a610165366004610dda565b610399565b60126040516100fe9190610e29565b61014a610187366004610e37565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6101c86103bc565b005b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166040516100fe9190610e5d565b6100f16103cf565b6101c8610218366004610eb9565b610420565b61011a61022b366004610d78565b6104c9565b6101c861023e366004610e37565b6104d6565b61014a610251366004610efe565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b6101c86102a8366004610e37565b6106d7565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916102fe90610f3f565b80601f016020809104026020016040519081016040528092919081815260200182805461032a90610f3f565b80156103755780601f1061034c57610100808354040283529160200191610375565b820191905f5260205f20905b81548152906001019060200180831161035857829003601f168201915b505050505091505090565b5f3361038d81858561072d565b60019150505b92915050565b5f336103a685828561073a565b6103b18585856107da565b506001949350505050565b6103c4610850565b6103cd5f6108c4565b565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00916102fe90610f3f565b5f546001600160a01b031633146104525760405162461bcd60e51b815260040161044990610fc5565b60405180910390fd5b5f8190036104725760405162461bcd60e51b815260040161044990610fd5565b5f5b818110156104c4576104bc83838381811061049157610491611010565b90506020028101906104a39190611024565b6104b59061010081019060e001610e37565b6001610941565b600101610474565b505050565b5f3361038d8185856107da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f811580156105205750825b90505f8267ffffffffffffffff16600114801561053c5750303b155b90508115801561054a575080155b15610581576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105b557845468ff00000000000000001916680100000000000000001785555b6001600160a01b0386166105db5760405162461bcd60e51b81526004016104499061109f565b61064f6040518060400160405280600381526020017f5a656e00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5a454e0000000000000000000000000000000000000000000000000000000000815250610979565b6106583361098b565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156106cf57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906106c6906001906110d2565b60405180910390a15b505050505050565b6106df610850565b6001600160a01b038116610721575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016104499190610e5d565b61072a816108c4565b50565b6104c4838383600161099c565b6001600160a01b038381165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220545f1981146107d457818110156107c6578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610449939291906110e0565b6107d484848484035f61099c565b50505050565b6001600160a01b03831661081c575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104499190610e5d565b6001600160a01b038216610845575f60405163ec442f0560e01b81526004016104499190610e5d565b6104c4838383610ac3565b336108827f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103cd57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104499190610e5d565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b03821661096a575f60405163ec442f0560e01b81526004016104499190610e5d565b6109755f8383610ac3565b5050565b610981610c13565b6109758282610c7a565b610993610c13565b61072a81610cdd565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b0385166109ff575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104499190610e5d565b6001600160a01b038416610a41575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104499190610e5d565b6001600160a01b038086165f90815260018301602090815260408083209388168352929052208390558115610abc57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051610ab39190610dcc565b60405180910390a35b5050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416610b105781816002015f828254610b059190611124565b90915550610b869050565b6001600160a01b0384165f9081526020829052604090205482811015610b68578481846040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610449939291906110e0565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316610ba4576002810180548390039055610bc2565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c059190610dcc565b60405180910390a350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103cd576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c82610c13565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03610cce84826111d7565b50600481016107d483826111d7565b6106df610c13565b8281835e505f910152565b5f610cf9825190565b808452602084019350610d10818560208601610ce5565b601f01601f19169290920192915050565b60208082528101610d328184610cf0565b9392505050565b5f6001600160a01b038216610393565b610d5281610d39565b811461072a575f5ffd5b803561039381610d49565b80610d52565b803561039381610d67565b5f5f60408385031215610d8c57610d8c5f5ffd5b610d968484610d5c565b9150610da58460208501610d6d565b90509250929050565b8015155b82525050565b602081016103938284610dae565b80610db2565b602081016103938284610dc6565b5f5f5f60608486031215610def57610def5f5ffd5b610df98585610d5c565b9250610e088560208601610d5c565b9150610e178560408601610d6d565b90509250925092565b60ff8116610db2565b602081016103938284610e20565b5f60208284031215610e4a57610e4a5f5ffd5b610d328383610d5c565b610db281610d39565b602081016103938284610e54565b5f5f83601f840112610e7e57610e7e5f5ffd5b50813567ffffffffffffffff811115610e9857610e985f5ffd5b602083019150836020820283011115610eb257610eb25f5ffd5b9250929050565b5f5f60208385031215610ecd57610ecd5f5ffd5b823567ffffffffffffffff811115610ee657610ee65f5ffd5b610ef285828601610e6b565b92509250509250929050565b5f5f60408385031215610f1257610f125f5ffd5b610f1c8484610d5c565b9150610da58460208501610d5c565b634e487b7160e01b5f52602260045260245ffd5b600281046001821680610f5357607f821691505b602082108103610f6557610f65610f2b565b50919050565b602c8152602081017f43616c6c65723a2063616c6c6572206973206e6f74207468652064657369676e81527f6174656420616464726573730000000000000000000000000000000000000000602082015290505b60400190565b6020808252810161039381610f6b565b6020808252810161039381601a81527f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e193684900301811261103d5761103d5f5ffd5b9190910192915050565b60248152602081017f496e76616c6964207472616e73616374696f6e20616e616c797a65722061646481527f726573730000000000000000000000000000000000000000000000000000000060208201529050610fbf565b6020808252810161039381611047565b5f610393826110bc565b90565b67ffffffffffffffff1690565b610db2816110af565b6020810161039382846110c9565b606081016110ee8286610e54565b6110fb6020830185610dc6565b6111086040830184610dc6565b949350505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561039357610393611110565b634e487b7160e01b5f52604160045260245ffd5b5f6103936110b98381565b61115f8361114b565b81545f1960089490940293841b1916921b91909117905550565b5f6104c4818484611156565b81811015610975576111975f82611179565b600101611185565b601f8211156104c4575f818152602090206020601f850104810160208510156111c55750805b610abc6020601f860104830182611185565b815167ffffffffffffffff8111156111f1576111f1611137565b6111fb8254610f3f565b61120682828561119f565b506020601f821160018114611239575f83156112225750848201515b5f19600885021c1981166002850217855550610abc565b5f84815260208120601f198516915b828110156112685787850151825560209485019460019092019101611248565b508482101561128457838701515f19601f87166008021c191681555b5050505060020260010190555056fea2646970667358221220455653f64c631289d0fb2d9be759dde58d6e439ed20c71efc7d30436437dd69964736f6c634300081c0033", } // ZenTestnetABI is the input ABI used to generate the binding from. diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index a0ff6d97e5..476757aa60 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -5,7 +5,7 @@ import "@nomicfoundation/hardhat-toolbox"; import "hardhat-abi-exporter"; import "@solidstate/hardhat-bytecode-exporter"; -// Hardhat-deploy plugin - https://www.npmjs.com/package/hardhat-deploy +// Hardhat-deploy plugin - https://www.npmjs.com/package /hardhat-deploy import 'hardhat-deploy'; // Hardhat ignore warnings plugin - https://www.npmjs.com/package/hardhat-ignore-warnings import 'hardhat-ignore-warnings'; @@ -31,6 +31,7 @@ const config: HardhatUserConfig = { }, }, }, + evmVersion: "cancun", outputSelection: { "*": { "*": [ "*" ], "": [ "*" ] } } }, }, diff --git a/contracts/src/management/ManagementContract.sol b/contracts/src/management/ManagementContract.sol index 685211a2c6..997921675d 100644 --- a/contracts/src/management/ManagementContract.sol +++ b/contracts/src/management/ManagementContract.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 -pragma solidity >=0.8.24 <0.9.0; +pragma solidity >=0.7.0 <0.9.0; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; @@ -80,7 +80,7 @@ contract ManagementContract is Initializable, OwnableUpgradeable { function GetRollupByNumber(uint256 number) view public returns(bool, Structs.MetaRollup memory) { bytes32 hash = rollups.byOrder[number]; if (hash == 0x0) { // ensure we don't try to get rollup for hash zero as that would not pull anything, but the hash would match and return true - return (false, Structs.MetaRollup(0x0, "", 0)); + return (false, Structs.MetaRollup(0x0, "", 0, 0x0, 0x0, 0, 0x0)); } return GetRollupByHash(hash); @@ -120,7 +120,7 @@ contract ManagementContract is Initializable, OwnableUpgradeable { require(block.number < (blockNum + 255), "Block binding too old"); require(block.number != blockNum, "Cannot bind to the block that is being currently mined"); - bytes32 knownBlockHash = blockhash(blockNum); + bytes32 knownBlockHash = blockhash(blockNum); require(knownBlockHash != 0x0, "Unknown block hash"); require(knownBlockHash == providedBlockHash, "Block binding mismatch"); require(rollups.toUniqueForkID[rollupNumber] == forkID, "Invalid forkID"); @@ -134,7 +134,7 @@ contract ManagementContract is Initializable, OwnableUpgradeable { for(uint256 i = 0; i < crossChainHashes.length; i++) { merkleMessageBus.addStateRoot( - bytes32(crossChainHashes[i]), block.timestamp + challengePeriod + bytes32(crossChainHashes[i]), block.timestamp //block.timestamp + challengePeriod ); bundleHash = keccak256(abi.encode(bundleHash, bytes32(crossChainHashes[i]))); } @@ -151,28 +151,12 @@ contract ManagementContract is Initializable, OwnableUpgradeable { // solc-ignore-next-line unused-param function AddRollup(Structs.MetaRollup calldata r) public { - // Verify block binding - require(block.number > r.BlockNumber, "Cannot bind to future block"); - require(block.number < (r.BlockNumber + 255), "Block binding too old"); - bytes32 knownBlockHash = blockhash(r.BlockNumber); - require(knownBlockHash != 0x0, "Unknown block hash"); - require(knownBlockHash == r.BlockHash, "Block binding mismatch"); - // Verify blob hash using the opcode - bytes32 computedBlobHash = blobhash(0); // TODO: Is rollup data always stored in the first blob? - require(computedBlobHash == r.BlobHash, "Invalid blob hash"); - // Create composite hash that the enclave would have signed - bytes32 compositeHash = keccak256(abi.encode( - r.BlobHash, // Hash from blob - r.MessageRoot, // Cross-chain message root - knownBlockHash, // Block binding (using knownBlockHash instead of undefined blockHash) - r.BlockNumber, // Block number - r.LastSequenceNumber // Include sequence for ordering - )); - - address enclaveID = ECDSA.recover(compositeHash, r.Signature); + address enclaveID = ECDSA.recover(r.Hash, r.Signature); + // revert if the EnclaveID is not attested require(attested[enclaveID], "enclaveID not attested"); + // revert if the EnclaveID is not permissioned as a sequencer require(sequencerEnclave[enclaveID], "enclaveID not a sequencer"); - + AppendRollup(r); emit RollupAdded(r.Hash); } @@ -284,12 +268,12 @@ contract ManagementContract is Initializable, OwnableUpgradeable { } // Return the challenge period delay for message bus root - function GetChallengePeriod() public view returns (uint256) { + function getChallengePeriod() public view returns (uint256) { return challengePeriod; } - + // Sets the challenge period for message bus root (owner only) - function SetChallengePeriod(uint256 _delay) public onlyOwner { + function setChallengePeriod(uint256 _delay) public onlyOwner { challengePeriod = _delay; } -} +} \ No newline at end of file diff --git a/contracts/src/management/Structs.sol b/contracts/src/management/Structs.sol index c5401fe061..8df951b659 100644 --- a/contracts/src/management/Structs.sol +++ b/contracts/src/management/Structs.sol @@ -11,6 +11,7 @@ interface Structs { bytes32 BlockHash; bytes32 MessageRoot; uint256 BlockNumber; + bytes32 BlobHash; } struct RollupStorage { diff --git a/go/ethadapter/mgmtcontractlib/mgmt_contract_lib.go b/go/ethadapter/mgmtcontractlib/mgmt_contract_lib.go index 89f0e5dcbc..b96e0746a4 100644 --- a/go/ethadapter/mgmtcontractlib/mgmt_contract_lib.go +++ b/go/ethadapter/mgmtcontractlib/mgmt_contract_lib.go @@ -129,7 +129,7 @@ func (c *contractLibImpl) CreateBlobRollup(t *common.L1RollupTx) (types.TxData, } // Calculate blob hash from first blob - blobHash, err := ethadapter.ComputeBlobHash(blobs[0]) + //blobHash, err := ethadapter.ComputeBlobHash(blobs[0]) if err != nil { return nil, fmt.Errorf("failed to compute blob hash: %w", err) } @@ -139,10 +139,10 @@ func (c *contractLibImpl) CreateBlobRollup(t *common.L1RollupTx) (types.TxData, Hash: decodedRollup.Header.PayloadHash, Signature: decodedRollup.Header.Signature, LastSequenceNumber: big.NewInt(int64(decodedRollup.Header.LastBatchSeqNo)), - BlockHash: decodedRollup.Header.CompressionL1Head, // Using CompressionL1Head as BlockHash - MessageRoot: common.Hash{}, // Zero for now as specified - BlockNumber: big.NewInt(int64(decodedRollup.Header.BlockNumber)), - BlobHash: blobHash, + //BlockHash: decodedRollup.Header.CompressionL1Head, // Using CompressionL1Head as BlockHash + //MessageRoot: common.Hash{}, // Zero for now as specified + //BlockNumber: big.NewInt(int64(decodedRollup.Header.BlockNumber)), + //BlobHash: blobHash, } data, err := c.contractABI.Pack(