Documentation ¶
Index ¶
- Variables
- type Adjudicator
- type AdjudicatorCaller
- func (_Adjudicator *AdjudicatorCaller) ChannelID(opts *bind.CallOpts, params ChannelParams) ([32]byte, error)
- func (_Adjudicator *AdjudicatorCaller) Disputes(opts *bind.CallOpts, arg0 [32]byte) (struct{ ... }, error)
- func (_Adjudicator *AdjudicatorCaller) HashState(opts *bind.CallOpts, state ChannelState) ([32]byte, error)
- type AdjudicatorCallerRaw
- type AdjudicatorCallerSession
- type AdjudicatorChannelUpdate
- type AdjudicatorChannelUpdateIterator
- type AdjudicatorFilterer
- func (_Adjudicator *AdjudicatorFilterer) FilterChannelUpdate(opts *bind.FilterOpts, channelID [][32]byte) (*AdjudicatorChannelUpdateIterator, error)
- func (_Adjudicator *AdjudicatorFilterer) ParseChannelUpdate(log types.Log) (*AdjudicatorChannelUpdate, error)
- func (_Adjudicator *AdjudicatorFilterer) WatchChannelUpdate(opts *bind.WatchOpts, sink chan<- *AdjudicatorChannelUpdate, ...) (event.Subscription, error)
- type AdjudicatorRaw
- func (_Adjudicator *AdjudicatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, ...) error
- func (_Adjudicator *AdjudicatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
- type AdjudicatorSession
- func (_Adjudicator *AdjudicatorSession) ChannelID(params ChannelParams) ([32]byte, error)
- func (_Adjudicator *AdjudicatorSession) Conclude(params ChannelParams, state ChannelState, subStates []ChannelState) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorSession) ConcludeFinal(params ChannelParams, state ChannelState, sigs [][]byte) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorSession) Disputes(arg0 [32]byte) (struct{ ... }, error)
- func (_Adjudicator *AdjudicatorSession) HashState(state ChannelState) ([32]byte, error)
- func (_Adjudicator *AdjudicatorSession) Progress(params ChannelParams, stateOld ChannelState, state ChannelState, ...) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorSession) Register(channel AdjudicatorSignedState, subChannels []AdjudicatorSignedState) (*types.Transaction, error)
- type AdjudicatorSignedState
- type AdjudicatorTransactor
- func (_Adjudicator *AdjudicatorTransactor) Conclude(opts *bind.TransactOpts, params ChannelParams, state ChannelState, ...) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactor) ConcludeFinal(opts *bind.TransactOpts, params ChannelParams, state ChannelState, ...) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactor) Progress(opts *bind.TransactOpts, params ChannelParams, stateOld ChannelState, ...) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactor) Register(opts *bind.TransactOpts, channel AdjudicatorSignedState, ...) (*types.Transaction, error)
- type AdjudicatorTransactorRaw
- type AdjudicatorTransactorSession
- func (_Adjudicator *AdjudicatorTransactorSession) Conclude(params ChannelParams, state ChannelState, subStates []ChannelState) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactorSession) ConcludeFinal(params ChannelParams, state ChannelState, sigs [][]byte) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactorSession) Progress(params ChannelParams, stateOld ChannelState, state ChannelState, ...) (*types.Transaction, error)
- func (_Adjudicator *AdjudicatorTransactorSession) Register(channel AdjudicatorSignedState, subChannels []AdjudicatorSignedState) (*types.Transaction, error)
- type ChannelAllocation
- type ChannelAsset
- type ChannelParams
- type ChannelState
- type ChannelSubAlloc
Constants ¶
This section is empty.
Variables ¶
var AdjudicatorABI = AdjudicatorMetaData.ABI
AdjudicatorABI is the input ABI used to generate the binding from. Deprecated: Use AdjudicatorMetaData.ABI instead.
var AdjudicatorBin = AdjudicatorMetaData.Bin
AdjudicatorBin is the compiled bytecode used for deploying new contracts. Deprecated: Use AdjudicatorMetaData.Bin instead.
var AdjudicatorBinRuntime = "" /* 25960-byte string literal not displayed */
AdjudicatorBinRuntime is the runtime part of the compiled bytecode used for deploying new contracts.
var AdjudicatorMetaData = &bind.MetaData{
ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"phase\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timeout\",\"type\":\"uint64\"}],\"name\":\"ChannelUpdate\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"channelID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State[]\",\"name\":\"subStates\",\"type\":\"tuple[]\"}],\"name\":\"conclude\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"sigs\",\"type\":\"bytes[]\"}],\"name\":\"concludeFinal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"disputes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"timeout\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"challengeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"hasApp\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"phase\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"}],\"name\":\"hashState\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"stateOld\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"actorIdx\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"name\":\"progress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"sigs\",\"type\":\"bytes[]\"}],\"internalType\":\"structAdjudicator.SignedState\",\"name\":\"channel\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"challengeDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"participants\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ledgerChannel\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"virtualChannel\",\"type\":\"bool\"}],\"internalType\":\"structChannel.Params\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"channelID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"internalType\":\"structChannel.Asset[]\",\"name\":\"assets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"balances\",\"type\":\"uint256[][]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint16[]\",\"name\":\"indexMap\",\"type\":\"uint16[]\"}],\"internalType\":\"structChannel.SubAlloc[]\",\"name\":\"locked\",\"type\":\"tuple[]\"}],\"internalType\":\"structChannel.Allocation\",\"name\":\"outcome\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"appData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"}],\"internalType\":\"structChannel.State\",\"name\":\"state\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"sigs\",\"type\":\"bytes[]\"}],\"internalType\":\"structAdjudicator.SignedState[]\",\"name\":\"subChannels\",\"type\":\"tuple[]\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
Bin: "0x608060405234801561001057600080fd5b506132b4806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063894afe2f1161005b578063894afe2f1461015b578063b1d6da2214610170578063da89ed2d14610183578063f53f5dfe1461019657600080fd5b806311be1997146100825780636914670e146101275780636f68e70e14610148575b600080fd5b6100df6100903660046122ea565b600060208190529081526040902080546001909101546001600160401b0380831692600160401b8104821692600160801b82049092169160ff600160c01b8304811692600160c81b9004169086565b604080516001600160401b039788168152958716602087015293909516928401929092521515606083015260ff16608082015260a081019190915260c0015b60405180910390f35b61013a610135366004612895565b6101a9565b60405190815260200161011e565b61013a6101563660046129ba565b6101c2565b61016e6101693660046129ee565b6101cd565b005b61016e61017e366004612aa4565b610455565b61016e610191366004612ca1565b6104b8565b61016e6101a4366004612d75565b6104e6565b60006101b482610661565b805190602001209050919050565b60006101b48261068a565b60006101dc846000015161069d565b608081015190915060ff166102445780516001600160401b031642101561023f5760405162461bcd60e51b81526020600482015260126024820152711d1a5b595bdd5d081b9bdd081c185cdcd95960721b60448201526064015b60405180910390fd5b6102d8565b600160ff16816080015160ff16036102a05780516001600160401b0316421061023f5760405162461bcd60e51b815260206004820152600e60248201526d1d1a5b595bdd5d081c185cdcd95960921b6044820152606401610236565b60405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420706861736560981b6044820152606401610236565b60608601516001600160a01b03166103225760405162461bcd60e51b815260206004820152600d60248201526c06d75737420686176652061707609c1b6044820152606401610236565b856040015151831061036e5760405162461bcd60e51b81526020600482015260156024820152746163746f72496478206f7574206f662072616e676560581b6044820152606401610236565b6103788685610722565b610381856101a9565b8160a00151146103c55760405162461bcd60e51b815260206004820152600f60248201526e77726f6e67206f6c6420737461746560881b6044820152606401610236565b6103f56103d185610661565b83886040015186815181106103e8576103e8612e12565b602002602001015161076f565b6104355760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610236565b610441868686866107f8565b61044d86856001610944565b505050505050565b82608001516104765760405162461bcd60e51b815260040161023690612e28565b6104808383610722565b61048982610a1a565b600061049783836000610b7d565b50835160408086015151908701519293506104b29284610f18565b50505050565b8151608001516104da5760405162461bcd60e51b815260040161023690612e28565b6104b282826000610fe0565b82608001516105075760405162461bcd60e51b815260040161023690612e28565b6080820151151560011461054f5760405162461bcd60e51b815260206004820152600f60248201526e1cdd185d19481b9bdd08199a5b985b608a1b6044820152606401610236565b604080830151015151156105a55760405162461bcd60e51b815260206004820152601860248201527f63616e6e6f742068617665207375622d6368616e6e656c7300000000000000006044820152606401610236565b6105af8383610722565b6105ba838383611166565b6000806105ca846000015161125a565b91509150801561062a57600260ff16826080015160ff160361062a5760405162461bcd60e51b815260206004820152601960248201527818da185b9b995b08185b1c9958591e4818dbdb98db1d591959603a1b6044820152606401610236565b61063685856002610944565b61065a84600001518560400151600001518760400151876040015160200151610f18565b5050505050565b60608160405160200161067491906130cf565b6040516020818303038152906040529050919050565b6060816040516020016106749190613179565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905290806106d98461125a565b915091508061071b5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081c9959da5cdd195c995960921b6044820152606401610236565b5092915050565b61072b826101c2565b81511461076b5760405162461bcd60e51b815260206004820152600e60248201526d696e76616c696420706172616d7360901b6044820152606401610236565b5050565b6000806107d085805190602001206040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b905060006107de828661130a565b6001600160a01b0390811690851614925050509392505050565b60208301516108089060016131a2565b6001600160401b031682602001516001600160401b03161461086c5760405162461bcd60e51b815260206004820152601d60248201527f76657273696f6e206d75737420696e6372656d656e74206279206f6e650000006044820152606401610236565b6080830151156108be5760405162461bcd60e51b815260206004820181905260248201527f63616e6e6f742070726f67726573732066726f6d2066696e616c2073746174656044820152606401610236565b6108d683604001518360400151866040015151611330565b6060840151604051636d7eba0d60e01b81526001600160a01b03821690636d7eba0d9061090d9088908890889088906004016131cd565b60006040518083038186803b15801561092557600080fd5b505afa158015610939573d6000803e3d6000fd5b505050505050505050565b600080610954846000015161125a565b86516001600160401b039081166020848101919091528701511660408301526060808801516001600160a01b0316151590830152909250905082600281111561099f5761099f612dfc565b60ff1660808301526109b0846101a9565b60a08301526080840151156109d0576001600160401b0342168252610a0e565b8015806109e45750608082015160ff166001145b15610a0e576020820151610a02906001600160401b0342169061162d565b6001600160401b031682525b835161065a9083611688565b6000610a29826000015161069d565b9050610a34826101a9565b8160a0015114610a7e5760405162461bcd60e51b8152602060048201526015602482015274696e76616c6964206368616e6e656c20737461746560581b6044820152606401610236565b600260ff16816080015160ff1603610ad45760405162461bcd60e51b815260206004820152601960248201527818da185b9b995b08185b1c9958591e4818dbdb98db1d591959603a1b6044820152606401610236565b608081015160ff16158015610aea575080606001515b15610b175760208101518151610b0b916001600160401b039091169061162d565b6001600160401b031681525b80516001600160401b0316421015610b6a5760405162461bcd60e51b81526020600482015260166024820152751d1a5b595bdd5d081b9bdd081c185cdcd959081e595d60521b6044820152606401610236565b60026080820152815161076b9082611688565b60606000610b8a8561177d565b60408501515180516001600160401b03811115610ba957610ba9612303565b604051908082528060200260200182016040528015610bdc57816020015b6060815260200190600190039081610bc75790505b50925060005b8151811015610d155760008760400151602001518281518110610c0757610c07612e12565b6020026020010151905080516001600160401b03811115610c2a57610c2a612303565b604051908082528060200260200182016040528015610c53578160200160208202803683370190505b50858381518110610c6657610c66612e12565b602002602001018190525060005b8151811015610d00578860400151602001518381518110610c9757610c97612e12565b60200260200101518181518110610cb057610cb0612e12565b6020026020010151868481518110610cca57610cca612e12565b60200260200101518281518110610ce357610ce3612e12565b602090810291909101015280610cf881613218565b915050610c74565b50508080610d0d90613218565b915050610be2565b50604080870151015184925060005b8151811015610f0d576000828281518110610d4157610d41612e12565b602002602001015190506000888680610d5990613218565b975081518110610d6b57610d6b612e12565b602002602001015190508060000151826000015114610dc45760405162461bcd60e51b81526020600482015260156024820152741a5b9d985b1a59081cdd5898da185b9b995b081a59605a1b6044820152606401610236565b6060610dd1828b89610b7d565b604085015190985090915060005b8751811015610ef55760005b8251811015610ee2576000848381518110610e0857610e08612e12565b60200260200101518281518110610e2157610e21612e12565b602002602001015190506000848381518110610e3f57610e3f612e12565b60200260200101519050610e92828e8681518110610e5f57610e5f612e12565b60200260200101518361ffff1681518110610e7c57610e7c612e12565b60200260200101516117e190919063ffffffff16565b8d8581518110610ea457610ea4612e12565b60200260200101518261ffff1681518110610ec157610ec1612e12565b60200260200101818152505050508080610eda90613218565b915050610deb565b5080610eed81613218565b915050610ddf565b50505050508080610f0590613218565b915050610d24565b505050935093915050565b60005b835181101561065a576000848281518110610f3857610f38612e12565b6020026020010151905046816000015103610fcd5780602001516001600160a01b031663fc79a66d8786868681518110610f7457610f74612e12565b60200260200101516040518463ffffffff1660e01b8152600401610f9a93929190613231565b600060405180830381600087803b158015610fb457600080fd5b505af1158015610fc8573d6000803e3d6000fd5b505050505b5080610fd881613218565b915050610f1b565b60208301516040015180516060918391610ff9876117f4565b61100682602001516119fc565b935060008260400151905086518151111561105c5760405162461bcd60e51b81526020600482015260166024820152751cdd5890da185b9b995b1cce881d1bdbc81cda1bdc9d60521b6044820152606401610236565b60005b815181101561115a576000888661107581613218565b97508151811061108757611087612e12565b602002602001015190506000808484815181106110a6576110a6612e12565b602002602001015183602001519150915080600001518260000151146111075760405162461bcd60e51b81526020600482015260166024820152751a5b9d985b1a59081cdd588b58da185b9b995b081a5960521b6044820152606401610236565b6060611114848d8b610fe0565b604084015151909a5090915061112b908890611af2565b611139836020015182611b95565b6111438a82611c85565b50505050808061115290613218565b91505061105f565b50505050935093915050565b600061117183610661565b90508151846040015151146111c85760405162461bcd60e51b815260206004820152601a60248201527f7369676e617475726573206c656e677468206d69736d617463680000000000006044820152606401610236565b60005b825181101561065a57611208828483815181106111ea576111ea612e12565b6020026020010151876040015184815181106103e8576103e8612e12565b6112485760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610236565b8061125281613218565b9150506111cb565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091525060009081526020818152604091829020825160c08101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935260ff600160c01b8304811615156060850152600160c81b90920490911660808301526001015460a08201819052909190151590565b60008060006113198585611cef565b9150915061132681611d5d565b5090505b92915050565b816020015151836020015151146113895760405162461bcd60e51b815260206004820152601860248201527f62616c616e636573206c656e677468206d69736d6174636800000000000000006044820152606401610236565b815151835151146113d55760405162461bcd60e51b81526020600482015260166024820152750c2e6e6cae8e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610236565b6113e783604001518360400151611f16565b60005b8251518110156104b2576114388460000151828151811061140d5761140d612e12565b60200260200101518460000151838151811061142b5761142b612e12565b6020026020010151611fc1565b600080838660200151848151811061145257611452612e12565b602002602001015151146114a85760405162461bcd60e51b815260206004820152601c60248201527f6f6c642062616c616e636573206c656e677468206d69736d61746368000000006044820152606401610236565b83856020015184815181106114bf576114bf612e12565b602002602001015151146115155760405162461bcd60e51b815260206004820152601c60248201527f6e65772062616c616e636573206c656e677468206d69736d61746368000000006044820152606401610236565b60005b848110156115c8576115698760200151858151811061153957611539612e12565b6020026020010151828151811061155257611552612e12565b6020026020010151846117e190919063ffffffff16565b92506115b48660200151858151811061158457611584612e12565b6020026020010151828151811061159d5761159d612e12565b6020026020010151836117e190919063ffffffff16565b9150806115c081613218565b915050611518565b508082146116185760405162461bcd60e51b815260206004820152601860248201527f73756d206f662062616c616e636573206d69736d6174636800000000000000006044820152606401610236565b5050808061162590613218565b9150506113ea565b60006001600160401b03831661164383856131a2565b9150816001600160401b0316101561132a5760405162461bcd60e51b81526020600482015260086024820152676f766572666c6f7760c01b6044820152606401610236565b6000828152602081815260409182902083518154858401518686015160608089015160808a015160ff16600160c81b810260ff60c81b19921515600160c01b0260ff60c01b196001600160401b03968716600160801b81029190911668ffffffffffffffffff60801b19988816600160401b026fffffffffffffffffffffffffffffffff19909a1697909a16968717989098179690961697909717949094171694909417855560a08801516001909501949094558551918252938101939093529282015283917f895ef5a5fc3efd313a300b006d6ce97ff0670dfe04f6eea90417edf924fa786b910160405180910390a25050565b600061178c826000015161069d565b9050611797826101a9565b8160a0015114610b6a5760405162461bcd60e51b8152602060048201526015602482015274696e76616c6964206368616e6e656c20737461746560581b6044820152606401610236565b60006117ed8284613266565b9392505050565b805160208201516118058282610722565b61181482828560400151611166565b8160a00151156118c15760608201516001600160a01b03161561186b5760405162461bcd60e51b815260206004820152600f60248201526e063616e6e6f7420686176652061707608c1b6044820152606401610236565b604080820151015151156118c15760405162461bcd60e51b815260206004820152601860248201527f63616e6e6f742068617665206c6f636b65642066756e647300000000000000006044820152606401610236565b6000806118d1836000015161125a565b9150915080156119f0576118e4836101a9565b8260a00151036118f5575050505050565b82602001516001600160401b031682604001516001600160401b0316106119505760405162461bcd60e51b815260206004820152600f60248201526e34b73b30b634b2103b32b939b4b7b760891b6044820152606401610236565b608082015160ff16156119975760405162461bcd60e51b815260206004820152600f60248201526e696e636f727265637420706861736560881b6044820152606401610236565b81516001600160401b031642106119f05760405162461bcd60e51b815260206004820152601960248201527f72656675746174696f6e2074696d656f757420706173736564000000000000006044820152606401610236565b61065a84846000610944565b606081516001600160401b03811115611a1757611a17612303565b604051908082528060200260200182016040528015611a40578160200160208202803683370190505b50905060005b8251811015611aec576000838281518110611a6357611a63612e12565b6020026020010151905060005b8151811015611ad757611aa8828281518110611a8e57611a8e612e12565b6020026020010151858581518110610e7c57610e7c612e12565b848481518110611aba57611aba612e12565b602090810291909101015280611acf81613218565b915050611a70565b50508080611ae490613218565b915050611a46565b50919050565b8051825114611b435760405162461bcd60e51b815260206004820152601760248201527f41737365745b5d3a20756e657175616c206c656e6774680000000000000000006044820152606401610236565b60005b8251811015611b9057611b7e838281518110611b6457611b64612e12565b602002602001015183838151811061142b5761142b612e12565b80611b8881613218565b915050611b46565b505050565b8051825114611be65760405162461bcd60e51b815260206004820152601960248201527f75696e743235365b5d3a20756e657175616c206c656e677468000000000000006044820152606401610236565b60005b8251811015611b9057818181518110611c0457611c04612e12565b6020026020010151838281518110611c1e57611c1e612e12565b602002602001015114611c735760405162461bcd60e51b815260206004820152601760248201527f75696e743235365b5d3a20756e657175616c206974656d0000000000000000006044820152606401610236565b80611c7d81613218565b915050611be9565b60005b8251811015611b9057611cc0828281518110611ca657611ca6612e12565b6020026020010151848381518110610e7c57610e7c612e12565b838281518110611cd257611cd2612e12565b602090810291909101015280611ce781613218565b915050611c88565b6000808251604103611d255760208301516040840151606085015160001a611d198782858561206c565b94509450505050611d56565b8251604003611d4e5760208301516040840151611d43868383612159565b935093505050611d56565b506000905060025b9250929050565b6000816004811115611d7157611d71612dfc565b03611d795750565b6001816004811115611d8d57611d8d612dfc565b03611dda5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610236565b6002816004811115611dee57611dee612dfc565b03611e3b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610236565b6003816004811115611e4f57611e4f612dfc565b03611ea75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610236565b6004816004811115611ebb57611ebb612dfc565b03611f135760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610236565b50565b8051825114611f675760405162461bcd60e51b815260206004820152601a60248201527f537562416c6c6f635b5d3a20756e657175616c206c656e6774680000000000006044820152606401610236565b60005b8251811015611b9057611faf838281518110611f8857611f88612e12565b6020026020010151838381518110611fa257611fa2612e12565b6020026020010151612192565b80611fb981613218565b915050611f6a565b805182511461200b5760405162461bcd60e51b8152602060048201526016602482015275105cdcd95d0e881d5b995c5d585b0818da185a5b925160521b6044820152606401610236565b80602001516001600160a01b031682602001516001600160a01b03161461076b5760405162461bcd60e51b815260206004820152601560248201527420b9b9b2ba1d103ab732b8bab0b6103437b63232b960591b6044820152606401610236565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120a35750600090506003612150565b8460ff16601b141580156120bb57508460ff16601c14155b156120cc5750600090506004612150565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612120573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661214957600060019250925050612150565b9150600090505b94509492505050565b6000806001600160ff1b0383168161217660ff86901c601b613266565b90506121848782888561206c565b935093505050935093915050565b80518251146121da5760405162461bcd60e51b815260206004820152601460248201527314dd58905b1b1bd8ce881d5b995c5d585b08125160621b6044820152606401610236565b6121ec82602001518260200151611b95565b61076b82604001518260400151805182511461224a5760405162461bcd60e51b815260206004820152601860248201527f75696e7431365b5d3a20756e657175616c206c656e67746800000000000000006044820152606401610236565b60005b8251811015611b905781818151811061226857612268612e12565b602002602001015161ffff1683828151811061228657612286612e12565b602002602001015161ffff16146122d85760405162461bcd60e51b815260206004820152601660248201527575696e7431365b5d3a20756e657175616c206974656d60501b6044820152606401610236565b806122e281613218565b91505061224d565b6000602082840312156122fc57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561233b5761233b612303565b60405290565b604080519081016001600160401b038111828210171561233b5761233b612303565b60405160a081016001600160401b038111828210171561233b5761233b612303565b60405160c081016001600160401b038111828210171561233b5761233b612303565b604051601f8201601f191681016001600160401b03811182821017156123cf576123cf612303565b604052919050565b60006001600160401b038211156123f0576123f0612303565b5060051b60200190565b80356001600160a01b038116811461241157600080fd5b919050565b600082601f83011261242757600080fd5b8135602061243c612437836123d7565b6123a7565b82815260059290921b8401810191818101908684111561245b57600080fd5b8286015b84811015612476578035835291830191830161245f565b509695505050505050565b600082601f83011261249257600080fd5b813560206124a2612437836123d7565b82815260059290921b840181019181810190868411156124c157600080fd5b8286015b848110156124765780356001600160401b038111156124e45760008081fd5b6124f28986838b0101612416565b8452509183019183016124c5565b600082601f83011261251157600080fd5b81356020612521612437836123d7565b828152600592831b850182019282820191908785111561254057600080fd5b8387015b858110156126505780356001600160401b03808211156125645760008081fd5b908901906060828c03601f190181131561257e5760008081fd5b612586612319565b888401358152604080850135848111156125a05760008081fd5b6125ae8f8c83890101612416565b838c0152509184013591838311156125c65760008081fd5b82850194508d603f8601126125dd57600093508384fd5b8985013593506125ef612437856123d7565b84815293871b85018101938a810193508e85111561260d5760008081fd5b948101945b8486101561263c57853561ffff8116811461262d5760008081fd5b8452948a0194928a0192612612565b908201528752505050928401928401612544565b5090979650505050505050565b60006060828403121561266f57600080fd5b612677612319565b905081356001600160401b038082111561269057600080fd5b818401915084601f8301126126a457600080fd5b813560206126b4612437836123d7565b82815260069290921b840181019181810190888411156126d357600080fd5b948201945b8386101561271e576040868a0312156126f15760008081fd5b6126f9612341565b863581526127088488016123fa565b81850152825260409590950194908201906126d8565b8652508581013593508284111561273457600080fd5b61274087858801612481565b9085015250604084013591508082111561275957600080fd5b5061276684828501612500565b60408301525092915050565b600082601f83011261278357600080fd5b81356001600160401b0381111561279c5761279c612303565b6127af601f8201601f19166020016123a7565b8181528460208386010111156127c457600080fd5b816020850160208301376000918101602001919091529392505050565b8035801515811461241157600080fd5b600060a0828403121561280357600080fd5b61280b612363565b90508135815260208201356001600160401b03808216821461282c57600080fd5b816020840152604084013591508082111561284657600080fd5b6128528583860161265d565b6040840152606084013591508082111561286b57600080fd5b5061287884828501612772565b60608301525061288a608083016127e1565b608082015292915050565b6000602082840312156128a757600080fd5b81356001600160401b038111156128bd57600080fd5b6128c9848285016127f1565b949350505050565b600060c082840312156128e357600080fd5b6128eb612385565b9050813581526020808301358183015260408301356001600160401b0381111561291457600080fd5b8301601f8101851361292557600080fd5b8035612933612437826123d7565b81815260059190911b8201830190838101908783111561295257600080fd5b928401925b8284101561297757612968846123fa565b82529284019290840190612957565b60408601525061298d92505050606083016123fa565b606082015261299e608083016127e1565b60808201526129af60a083016127e1565b60a082015292915050565b6000602082840312156129cc57600080fd5b81356001600160401b038111156129e257600080fd5b6128c9848285016128d1565b600080600080600060a08688031215612a0657600080fd5b85356001600160401b0380821115612a1d57600080fd5b612a2989838a016128d1565b96506020880135915080821115612a3f57600080fd5b612a4b89838a016127f1565b95506040880135915080821115612a6157600080fd5b612a6d89838a016127f1565b9450606088013593506080880135915080821115612a8a57600080fd5b50612a9788828901612772565b9150509295509295909350565b600080600060608486031215612ab957600080fd5b83356001600160401b0380821115612ad057600080fd5b612adc878388016128d1565b9450602091508186013581811115612af357600080fd5b612aff888289016127f1565b945050604086013581811115612b1457600080fd5b8601601f81018813612b2557600080fd5b8035612b33612437826123d7565b81815260059190911b8201840190848101908a831115612b5257600080fd5b8584015b83811015612b8a57803586811115612b6e5760008081fd5b612b7c8d89838901016127f1565b845250918601918601612b56565b508096505050505050509250925092565b600082601f830112612bac57600080fd5b81356020612bbc612437836123d7565b82815260059290921b84018101918181019086841115612bdb57600080fd5b8286015b848110156124765780356001600160401b03811115612bfe5760008081fd5b612c0c8986838b0101612772565b845250918301918301612bdf565b600060608284031215612c2c57600080fd5b612c34612319565b905081356001600160401b0380821115612c4d57600080fd5b612c59858386016128d1565b83526020840135915080821115612c6f57600080fd5b612c7b858386016127f1565b60208401526040840135915080821115612c9457600080fd5b5061276684828501612b9b565b60008060408385031215612cb457600080fd5b82356001600160401b0380821115612ccb57600080fd5b612cd786838701612c1a565b9350602091508185013581811115612cee57600080fd5b8501601f81018713612cff57600080fd5b8035612d0d612437826123d7565b81815260059190911b82018401908481019089831115612d2c57600080fd5b8584015b83811015612d6457803586811115612d485760008081fd5b612d568c8983890101612c1a565b845250918601918601612d30565b508096505050505050509250929050565b600080600060608486031215612d8a57600080fd5b83356001600160401b0380821115612da157600080fd5b612dad878388016128d1565b94506020860135915080821115612dc357600080fd5b612dcf878388016127f1565b93506040860135915080821115612de557600080fd5b50612df286828701612b9b565b9150509250925092565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252600a90820152693737ba103632b233b2b960b11b604082015260600190565b600081518084526020808501945080840160005b83811015612e7c57815187529582019590820190600101612e60565b509495945050505050565b600081518084526020808501808196508360051b8101915082860160005b85811015612ecf578284038952612ebd848351612e4c565b98850198935090840190600101612ea5565b5091979650505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015612f80578385038a528251606081518752878201518189890152612f2582890182612e4c565b604093840151898203948a01949094528351808252938a0193869350908a0191505b80831015612f6b57835161ffff168252928901926001929092019190890190612f47565b509b88019b9650505091850191600101612efb565b509298975050505050505050565b6000815180845260005b81811015612fb457602081850181015186830182015201612f98565b81811115612fc6576000602083870101525b50601f01601f19169290920160200192915050565b80518252600060206001600160401b0381840151168185015260408084015160a08287015261010086018151606060a08901528181518084526101208a0191508683019350600092505b80831015613057578351805183528701516001600160a01b031687830152928601926001929092019190850190613025565b50858401519550609f199250828982030160c08a01526130778187612e87565b95505050828201519250808785030160e088015250506130978282612edc565b915050606083015184820360608601526130b18282612f8e565b91505060808301516130c7608086018215159052565b509392505050565b6020815260006117ed6020830184612fdb565b600081518084526020808501945080840160005b83811015612e7c5781516001600160a01b0316875295820195908201906001016130f6565b80518252602081015160208301526000604082015160c0604085015261314460c08501826130e2565b6060848101516001600160a01b03169086015260808085015115159086015260a0938401511515949093019390935250919050565b6020815260006117ed602083018461311b565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038083168185168083038211156131c4576131c461318c565b01949350505050565b6080815260006131e0608083018761311b565b82810360208401526131f28187612fdb565b905082810360408401526132068186612fdb565b91505082606083015295945050505050565b60006001820161322a5761322a61318c565b5060010190565b83815260606020820152600061324a60608301856130e2565b828103604084015261325c8185612e4c565b9695505050505050565b600082198211156132795761327961318c565b50019056fea26469706673582212209cf6452c4d23141fbc53107c61d4c07976ee23ddccb1c2885bd4dd293ace00aa64736f6c634300080f0033",
}
AdjudicatorMetaData contains all meta data concerning the Adjudicator contract.
Functions ¶
This section is empty.
Types ¶
type Adjudicator ¶
type Adjudicator struct { AdjudicatorCaller // Read-only binding to the contract AdjudicatorTransactor // Write-only binding to the contract AdjudicatorFilterer // Log filterer for contract events }
Adjudicator is an auto generated Go binding around an Ethereum contract.
func DeployAdjudicator ¶
func DeployAdjudicator(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Adjudicator, error)
DeployAdjudicator deploys a new Ethereum contract, binding an instance of Adjudicator to it.
func NewAdjudicator ¶
func NewAdjudicator(address common.Address, backend bind.ContractBackend) (*Adjudicator, error)
NewAdjudicator creates a new instance of Adjudicator, bound to a specific deployed contract.
type AdjudicatorCaller ¶
type AdjudicatorCaller struct {
// contains filtered or unexported fields
}
AdjudicatorCaller is an auto generated read-only Go binding around an Ethereum contract.
func NewAdjudicatorCaller ¶
func NewAdjudicatorCaller(address common.Address, caller bind.ContractCaller) (*AdjudicatorCaller, error)
NewAdjudicatorCaller creates a new read-only instance of Adjudicator, bound to a specific deployed contract.
func (*AdjudicatorCaller) ChannelID ¶
func (_Adjudicator *AdjudicatorCaller) ChannelID(opts *bind.CallOpts, params ChannelParams) ([32]byte, error)
ChannelID is a free data retrieval call binding the contract method 0x6f68e70e.
Solidity: function channelID((uint256,uint256,address[],address,bool,bool) params) pure returns(bytes32)
func (*AdjudicatorCaller) Disputes ¶
func (_Adjudicator *AdjudicatorCaller) Disputes(opts *bind.CallOpts, arg0 [32]byte) (struct { Timeout uint64 ChallengeDuration uint64 Version uint64 HasApp bool Phase uint8 StateHash [32]byte }, error)
Disputes is a free data retrieval call binding the contract method 0x11be1997.
Solidity: function disputes(bytes32 ) view returns(uint64 timeout, uint64 challengeDuration, uint64 version, bool hasApp, uint8 phase, bytes32 stateHash)
func (*AdjudicatorCaller) HashState ¶
func (_Adjudicator *AdjudicatorCaller) HashState(opts *bind.CallOpts, state ChannelState) ([32]byte, error)
HashState is a free data retrieval call binding the contract method 0x6914670e.
Solidity: function hashState((bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state) pure returns(bytes32)
type AdjudicatorCallerRaw ¶
type AdjudicatorCallerRaw struct {
Contract *AdjudicatorCaller // Generic read-only contract binding to access the raw methods on
}
AdjudicatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
func (*AdjudicatorCallerRaw) Call ¶
func (_Adjudicator *AdjudicatorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
type AdjudicatorCallerSession ¶
type AdjudicatorCallerSession struct { Contract *AdjudicatorCaller // Generic contract caller binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session }
AdjudicatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, with pre-set call options.
func (*AdjudicatorCallerSession) ChannelID ¶
func (_Adjudicator *AdjudicatorCallerSession) ChannelID(params ChannelParams) ([32]byte, error)
ChannelID is a free data retrieval call binding the contract method 0x6f68e70e.
Solidity: function channelID((uint256,uint256,address[],address,bool,bool) params) pure returns(bytes32)
func (*AdjudicatorCallerSession) Disputes ¶
func (_Adjudicator *AdjudicatorCallerSession) Disputes(arg0 [32]byte) (struct { Timeout uint64 ChallengeDuration uint64 Version uint64 HasApp bool Phase uint8 StateHash [32]byte }, error)
Disputes is a free data retrieval call binding the contract method 0x11be1997.
Solidity: function disputes(bytes32 ) view returns(uint64 timeout, uint64 challengeDuration, uint64 version, bool hasApp, uint8 phase, bytes32 stateHash)
func (*AdjudicatorCallerSession) HashState ¶
func (_Adjudicator *AdjudicatorCallerSession) HashState(state ChannelState) ([32]byte, error)
HashState is a free data retrieval call binding the contract method 0x6914670e.
Solidity: function hashState((bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state) pure returns(bytes32)
type AdjudicatorChannelUpdate ¶
type AdjudicatorChannelUpdate struct { ChannelID [32]byte Version uint64 Phase uint8 Timeout uint64 Raw types.Log // Blockchain specific contextual infos }
AdjudicatorChannelUpdate represents a ChannelUpdate event raised by the Adjudicator contract.
type AdjudicatorChannelUpdateIterator ¶
type AdjudicatorChannelUpdateIterator struct { Event *AdjudicatorChannelUpdate // Event containing the contract specifics and raw log // contains filtered or unexported fields }
AdjudicatorChannelUpdateIterator is returned from FilterChannelUpdate and is used to iterate over the raw logs and unpacked data for ChannelUpdate events raised by the Adjudicator contract.
func (*AdjudicatorChannelUpdateIterator) Close ¶
func (it *AdjudicatorChannelUpdateIterator) Close() error
Close terminates the iteration process, releasing any pending underlying resources.
func (*AdjudicatorChannelUpdateIterator) Error ¶
func (it *AdjudicatorChannelUpdateIterator) Error() error
Error returns any retrieval or parsing error occurred during filtering.
func (*AdjudicatorChannelUpdateIterator) Next ¶
func (it *AdjudicatorChannelUpdateIterator) Next() bool
Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.
type AdjudicatorFilterer ¶
type AdjudicatorFilterer struct {
// contains filtered or unexported fields
}
AdjudicatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
func NewAdjudicatorFilterer ¶
func NewAdjudicatorFilterer(address common.Address, filterer bind.ContractFilterer) (*AdjudicatorFilterer, error)
NewAdjudicatorFilterer creates a new log filterer instance of Adjudicator, bound to a specific deployed contract.
func (*AdjudicatorFilterer) FilterChannelUpdate ¶
func (_Adjudicator *AdjudicatorFilterer) FilterChannelUpdate(opts *bind.FilterOpts, channelID [][32]byte) (*AdjudicatorChannelUpdateIterator, error)
FilterChannelUpdate is a free log retrieval operation binding the contract event 0x895ef5a5fc3efd313a300b006d6ce97ff0670dfe04f6eea90417edf924fa786b.
Solidity: event ChannelUpdate(bytes32 indexed channelID, uint64 version, uint8 phase, uint64 timeout)
func (*AdjudicatorFilterer) ParseChannelUpdate ¶
func (_Adjudicator *AdjudicatorFilterer) ParseChannelUpdate(log types.Log) (*AdjudicatorChannelUpdate, error)
ParseChannelUpdate is a log parse operation binding the contract event 0x895ef5a5fc3efd313a300b006d6ce97ff0670dfe04f6eea90417edf924fa786b.
Solidity: event ChannelUpdate(bytes32 indexed channelID, uint64 version, uint8 phase, uint64 timeout)
func (*AdjudicatorFilterer) WatchChannelUpdate ¶
func (_Adjudicator *AdjudicatorFilterer) WatchChannelUpdate(opts *bind.WatchOpts, sink chan<- *AdjudicatorChannelUpdate, channelID [][32]byte) (event.Subscription, error)
WatchChannelUpdate is a free log subscription operation binding the contract event 0x895ef5a5fc3efd313a300b006d6ce97ff0670dfe04f6eea90417edf924fa786b.
Solidity: event ChannelUpdate(bytes32 indexed channelID, uint64 version, uint8 phase, uint64 timeout)
type AdjudicatorRaw ¶
type AdjudicatorRaw struct {
Contract *Adjudicator // Generic contract binding to access the raw methods on
}
AdjudicatorRaw is an auto generated low-level Go binding around an Ethereum contract.
func (*AdjudicatorRaw) Call ¶
func (_Adjudicator *AdjudicatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
func (*AdjudicatorRaw) Transact ¶
func (_Adjudicator *AdjudicatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*AdjudicatorRaw) Transfer ¶
func (_Adjudicator *AdjudicatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type AdjudicatorSession ¶
type AdjudicatorSession struct { Contract *Adjudicator // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
AdjudicatorSession is an auto generated Go binding around an Ethereum contract, with pre-set call and transact options.
func (*AdjudicatorSession) ChannelID ¶
func (_Adjudicator *AdjudicatorSession) ChannelID(params ChannelParams) ([32]byte, error)
ChannelID is a free data retrieval call binding the contract method 0x6f68e70e.
Solidity: function channelID((uint256,uint256,address[],address,bool,bool) params) pure returns(bytes32)
func (*AdjudicatorSession) Conclude ¶
func (_Adjudicator *AdjudicatorSession) Conclude(params ChannelParams, state ChannelState, subStates []ChannelState) (*types.Transaction, error)
Conclude is a paid mutator transaction binding the contract method 0xb1d6da22.
Solidity: function conclude((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool)[] subStates) returns()
func (*AdjudicatorSession) ConcludeFinal ¶
func (_Adjudicator *AdjudicatorSession) ConcludeFinal(params ChannelParams, state ChannelState, sigs [][]byte) (*types.Transaction, error)
ConcludeFinal is a paid mutator transaction binding the contract method 0xf53f5dfe.
Solidity: function concludeFinal((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, bytes[] sigs) returns()
func (*AdjudicatorSession) Disputes ¶
func (_Adjudicator *AdjudicatorSession) Disputes(arg0 [32]byte) (struct { Timeout uint64 ChallengeDuration uint64 Version uint64 HasApp bool Phase uint8 StateHash [32]byte }, error)
Disputes is a free data retrieval call binding the contract method 0x11be1997.
Solidity: function disputes(bytes32 ) view returns(uint64 timeout, uint64 challengeDuration, uint64 version, bool hasApp, uint8 phase, bytes32 stateHash)
func (*AdjudicatorSession) HashState ¶
func (_Adjudicator *AdjudicatorSession) HashState(state ChannelState) ([32]byte, error)
HashState is a free data retrieval call binding the contract method 0x6914670e.
Solidity: function hashState((bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state) pure returns(bytes32)
func (*AdjudicatorSession) Progress ¶
func (_Adjudicator *AdjudicatorSession) Progress(params ChannelParams, stateOld ChannelState, state ChannelState, actorIdx *big.Int, sig []byte) (*types.Transaction, error)
Progress is a paid mutator transaction binding the contract method 0x894afe2f.
Solidity: function progress((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) stateOld, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, uint256 actorIdx, bytes sig) returns()
func (*AdjudicatorSession) Register ¶
func (_Adjudicator *AdjudicatorSession) Register(channel AdjudicatorSignedState, subChannels []AdjudicatorSignedState) (*types.Transaction, error)
Register is a paid mutator transaction binding the contract method 0xda89ed2d.
Solidity: function register(((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[]) channel, ((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[])[] subChannels) returns()
type AdjudicatorSignedState ¶
type AdjudicatorSignedState struct { Params ChannelParams State ChannelState Sigs [][]byte }
AdjudicatorSignedState is an auto generated low-level Go binding around an user-defined struct.
type AdjudicatorTransactor ¶
type AdjudicatorTransactor struct {
// contains filtered or unexported fields
}
AdjudicatorTransactor is an auto generated write-only Go binding around an Ethereum contract.
func NewAdjudicatorTransactor ¶
func NewAdjudicatorTransactor(address common.Address, transactor bind.ContractTransactor) (*AdjudicatorTransactor, error)
NewAdjudicatorTransactor creates a new write-only instance of Adjudicator, bound to a specific deployed contract.
func (*AdjudicatorTransactor) Conclude ¶
func (_Adjudicator *AdjudicatorTransactor) Conclude(opts *bind.TransactOpts, params ChannelParams, state ChannelState, subStates []ChannelState) (*types.Transaction, error)
Conclude is a paid mutator transaction binding the contract method 0xb1d6da22.
Solidity: function conclude((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool)[] subStates) returns()
func (*AdjudicatorTransactor) ConcludeFinal ¶
func (_Adjudicator *AdjudicatorTransactor) ConcludeFinal(opts *bind.TransactOpts, params ChannelParams, state ChannelState, sigs [][]byte) (*types.Transaction, error)
ConcludeFinal is a paid mutator transaction binding the contract method 0xf53f5dfe.
Solidity: function concludeFinal((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, bytes[] sigs) returns()
func (*AdjudicatorTransactor) Progress ¶
func (_Adjudicator *AdjudicatorTransactor) Progress(opts *bind.TransactOpts, params ChannelParams, stateOld ChannelState, state ChannelState, actorIdx *big.Int, sig []byte) (*types.Transaction, error)
Progress is a paid mutator transaction binding the contract method 0x894afe2f.
Solidity: function progress((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) stateOld, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, uint256 actorIdx, bytes sig) returns()
func (*AdjudicatorTransactor) Register ¶
func (_Adjudicator *AdjudicatorTransactor) Register(opts *bind.TransactOpts, channel AdjudicatorSignedState, subChannels []AdjudicatorSignedState) (*types.Transaction, error)
Register is a paid mutator transaction binding the contract method 0xda89ed2d.
Solidity: function register(((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[]) channel, ((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[])[] subChannels) returns()
type AdjudicatorTransactorRaw ¶
type AdjudicatorTransactorRaw struct {
Contract *AdjudicatorTransactor // Generic write-only contract binding to access the raw methods on
}
AdjudicatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
func (*AdjudicatorTransactorRaw) Transact ¶
func (_Adjudicator *AdjudicatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*AdjudicatorTransactorRaw) Transfer ¶
func (_Adjudicator *AdjudicatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type AdjudicatorTransactorSession ¶
type AdjudicatorTransactorSession struct { Contract *AdjudicatorTransactor // Generic contract transactor binding to set the session for TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
AdjudicatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, with pre-set transact options.
func (*AdjudicatorTransactorSession) Conclude ¶
func (_Adjudicator *AdjudicatorTransactorSession) Conclude(params ChannelParams, state ChannelState, subStates []ChannelState) (*types.Transaction, error)
Conclude is a paid mutator transaction binding the contract method 0xb1d6da22.
Solidity: function conclude((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool)[] subStates) returns()
func (*AdjudicatorTransactorSession) ConcludeFinal ¶
func (_Adjudicator *AdjudicatorTransactorSession) ConcludeFinal(params ChannelParams, state ChannelState, sigs [][]byte) (*types.Transaction, error)
ConcludeFinal is a paid mutator transaction binding the contract method 0xf53f5dfe.
Solidity: function concludeFinal((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, bytes[] sigs) returns()
func (*AdjudicatorTransactorSession) Progress ¶
func (_Adjudicator *AdjudicatorTransactorSession) Progress(params ChannelParams, stateOld ChannelState, state ChannelState, actorIdx *big.Int, sig []byte) (*types.Transaction, error)
Progress is a paid mutator transaction binding the contract method 0x894afe2f.
Solidity: function progress((uint256,uint256,address[],address,bool,bool) params, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) stateOld, (bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool) state, uint256 actorIdx, bytes sig) returns()
func (*AdjudicatorTransactorSession) Register ¶
func (_Adjudicator *AdjudicatorTransactorSession) Register(channel AdjudicatorSignedState, subChannels []AdjudicatorSignedState) (*types.Transaction, error)
Register is a paid mutator transaction binding the contract method 0xda89ed2d.
Solidity: function register(((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[]) channel, ((uint256,uint256,address[],address,bool,bool),(bytes32,uint64,((uint256,address)[],uint256[][],(bytes32,uint256[],uint16[])[]),bytes,bool),bytes[])[] subChannels) returns()
type ChannelAllocation ¶
type ChannelAllocation struct { Assets []ChannelAsset Balances [][]*big.Int Locked []ChannelSubAlloc }
ChannelAllocation is an auto generated low-level Go binding around an user-defined struct.
type ChannelAsset ¶
ChannelAsset is an auto generated low-level Go binding around an user-defined struct.
type ChannelParams ¶
type ChannelParams struct { ChallengeDuration *big.Int Nonce *big.Int Participants []common.Address App common.Address LedgerChannel bool VirtualChannel bool }
ChannelParams is an auto generated low-level Go binding around an user-defined struct.
type ChannelState ¶
type ChannelState struct { ChannelID [32]byte Version uint64 Outcome ChannelAllocation AppData []byte IsFinal bool }
ChannelState is an auto generated low-level Go binding around an user-defined struct.