github.com/XinFinOrg/xdcchain@v1.1.0/contracts/validator/contract/validator.go (about) 1 // Code generated - DO NOT EDIT. 2 // This file is a generated binding and any manual changes will be lost. 3 4 package contract 5 6 import ( 7 "math/big" 8 "strings" 9 10 ethereum "github.com/ethereum/go-ethereum" 11 "github.com/ethereum/go-ethereum/accounts/abi" 12 "github.com/ethereum/go-ethereum/accounts/abi/bind" 13 "github.com/ethereum/go-ethereum/common" 14 "github.com/ethereum/go-ethereum/core/types" 15 "github.com/ethereum/go-ethereum/event" 16 ) 17 18 // SafeMathABI is the input ABI used to generate the binding from. 19 const SafeMathABI = "[]" 20 21 // SafeMathBin is the compiled bytecode used for deploying new contracts. 22 const SafeMathBin = `0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146060604052600080fd00a165627a7a72305820b9407d48ebc7efee5c9f08b3b3a957df2939281f5913225e8c1291f069b900490029` 23 24 // DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. 25 func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { 26 parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) 27 if err != nil { 28 return common.Address{}, nil, nil, err 29 } 30 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend) 31 if err != nil { 32 return common.Address{}, nil, nil, err 33 } 34 return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil 35 } 36 37 // SafeMath is an auto generated Go binding around an Ethereum contract. 38 type SafeMath struct { 39 SafeMathCaller // Read-only binding to the contract 40 SafeMathTransactor // Write-only binding to the contract 41 SafeMathFilterer // Log filterer for contract events 42 } 43 44 // SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract. 45 type SafeMathCaller struct { 46 contract *bind.BoundContract // Generic contract wrapper for the low level calls 47 } 48 49 // SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract. 50 type SafeMathTransactor struct { 51 contract *bind.BoundContract // Generic contract wrapper for the low level calls 52 } 53 54 // SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 55 type SafeMathFilterer struct { 56 contract *bind.BoundContract // Generic contract wrapper for the low level calls 57 } 58 59 // SafeMathSession is an auto generated Go binding around an Ethereum contract, 60 // with pre-set call and transact options. 61 type SafeMathSession struct { 62 Contract *SafeMath // Generic contract binding to set the session for 63 CallOpts bind.CallOpts // Call options to use throughout this session 64 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 65 } 66 67 // SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, 68 // with pre-set call options. 69 type SafeMathCallerSession struct { 70 Contract *SafeMathCaller // Generic contract caller binding to set the session for 71 CallOpts bind.CallOpts // Call options to use throughout this session 72 } 73 74 // SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 75 // with pre-set transact options. 76 type SafeMathTransactorSession struct { 77 Contract *SafeMathTransactor // Generic contract transactor binding to set the session for 78 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 79 } 80 81 // SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract. 82 type SafeMathRaw struct { 83 Contract *SafeMath // Generic contract binding to access the raw methods on 84 } 85 86 // SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 87 type SafeMathCallerRaw struct { 88 Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on 89 } 90 91 // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 92 type SafeMathTransactorRaw struct { 93 Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on 94 } 95 96 // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract. 97 func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) { 98 contract, err := bindSafeMath(address, backend, backend, backend) 99 if err != nil { 100 return nil, err 101 } 102 return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil 103 } 104 105 // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract. 106 func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) { 107 contract, err := bindSafeMath(address, caller, nil, nil) 108 if err != nil { 109 return nil, err 110 } 111 return &SafeMathCaller{contract: contract}, nil 112 } 113 114 // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract. 115 func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) { 116 contract, err := bindSafeMath(address, nil, transactor, nil) 117 if err != nil { 118 return nil, err 119 } 120 return &SafeMathTransactor{contract: contract}, nil 121 } 122 123 // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract. 124 func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) { 125 contract, err := bindSafeMath(address, nil, nil, filterer) 126 if err != nil { 127 return nil, err 128 } 129 return &SafeMathFilterer{contract: contract}, nil 130 } 131 132 // bindSafeMath binds a generic wrapper to an already deployed contract. 133 func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 134 parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) 135 if err != nil { 136 return nil, err 137 } 138 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 139 } 140 141 // Call invokes the (constant) contract method with params as input values and 142 // sets the output to result. The result type might be a single field for simple 143 // returns, a slice of interfaces for anonymous returns and a struct for named 144 // returns. 145 func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 146 return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...) 147 } 148 149 // Transfer initiates a plain transaction to move funds to the contract, calling 150 // its default method if one is available. 151 func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 152 return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts) 153 } 154 155 // Transact invokes the (paid) contract method with params as input values. 156 func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 157 return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...) 158 } 159 160 // Call invokes the (constant) contract method with params as input values and 161 // sets the output to result. The result type might be a single field for simple 162 // returns, a slice of interfaces for anonymous returns and a struct for named 163 // returns. 164 func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 165 return _SafeMath.Contract.contract.Call(opts, result, method, params...) 166 } 167 168 // Transfer initiates a plain transaction to move funds to the contract, calling 169 // its default method if one is available. 170 func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 171 return _SafeMath.Contract.contract.Transfer(opts) 172 } 173 174 // Transact invokes the (paid) contract method with params as input values. 175 func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 176 return _SafeMath.Contract.contract.Transact(opts, method, params...) 177 } 178 179 // XDCValidatorABI is the input ABI used to generate the binding from. 180 const XDCValidatorABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"unvote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCandidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ownerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"hasVotedInvalid\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getWithdrawCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWithdrawBlockNumbers\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getLatestKYC\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"candidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_invalidCandidate\",\"type\":\"address\"}],\"name\":\"invalidPercent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"KYCString\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"invalidKYCCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voterWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"resign\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getHashCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxValidatorNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"isCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwnerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_invalidCandidate\",\"type\":\"address\"}],\"name\":\"voteInvalidKYC\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"kychash\",\"type\":\"string\"}],\"name\":\"uploadKYC\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_candidates\",\"type\":\"address[]\"},{\"name\":\"_caps\",\"type\":\"uint256[]\"},{\"name\":\"_firstOwner\",\"type\":\"address\"},{\"name\":\"_minCandidateCap\",\"type\":\"uint256\"},{\"name\":\"_minVoterCap\",\"type\":\"uint256\"},{\"name\":\"_maxValidatorNumber\",\"type\":\"uint256\"},{\"name\":\"_candidateWithdrawDelay\",\"type\":\"uint256\"},{\"name\":\"_voterWithdrawDelay\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Vote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Unvote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Propose\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"Resign\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kycHash\",\"type\":\"string\"}],\"name\":\"UploadedKYC\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_masternodeOwner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_masternodes\",\"type\":\"address[]\"}],\"name\":\"InvalidatedNode\",\"type\":\"event\"}]" 181 182 // XDCValidatorBin is the compiled bytecode used for deploying new contracts. 183 const XDCValidatorBin = `606060405260006009556000600a5534156200001a57600080fd5b60405162003dcc38038062003dcc83398101604052808051820191906020018051820191906020018051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050600085600b8190555084600c8190555083600d8190555082600e8190555081600f81905550885160098190555060078054806001018281620000bd9190620004f1565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600a60008154809291906001019190505550600090505b8851811015620004e25760088054806001018281620001439190620004f1565b916000526020600020900160008b848151811015156200015f57fe5b90602001906020020151909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052808873ffffffffffffffffffffffffffffffffffffffff1681526020016001151581526020018983815181101515620001ea57fe5b90602001906020020151815250600160008b848151811015156200020a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160010155905050600260008a83815181101515620002d557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816200032d9190620004f1565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281620003cf9190620004f1565b916000526020600020900160008b84815181101515620003eb57fe5b90602001906020020151909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600b54600160008b848151811015156200044c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505062000123565b50505050505050505062000548565b8154818355818115116200051b578183600052602060002091820191016200051a919062000520565b5b505050565b6200054591905b808211156200054157600081600090555060010162000527565b5090565b90565b61387480620005586000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063012679511461019b578063025e7c27146101c957806302aa9be21461022c57806306a49fce1461026e5780630db02622146102d85780630e3e4fb81461030157806315febd68146103715780632a3640b1146103a85780632d15cc041461042a5780632f9c4bba146104b8578063302b687214610522578063326586521461058e5780633477ee2e14610640578063441a3e70146106a357806358e7525f146106cf5780635b860d271461071c5780635b9cd8cc146107695780636dd7d8ea1461082457806372e44a3814610852578063a9a981a31461089f578063a9ff959e146108c8578063ae6e43f5146108f1578063b642facd1461092a578063c45607df146109a3578063d09f1ab4146109f0578063d161c76714610a19578063d51b9e9314610a42578063d55b7dff14610a93578063ef18374a14610abc578063f2ee3c7d14610ae5578063f5c9512514610b1e578063f8ac9dd514610b4c575b600080fd5b6101c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b75565b005b34156101d457600080fd5b6101ea60048080359060200190919050506111fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561023757600080fd5b61026c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061123b565b005b341561027957600080fd5b610281611796565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102c45780820151818401526020810190506102a9565b505050509050019250505060405180910390f35b34156102e357600080fd5b6102eb61182a565b6040518082815260200191505060405180910390f35b341561030c57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611830565b604051808215151515815260200191505060405180910390f35b341561037c57600080fd5b610392600480803590602001909190505061185f565b6040518082815260200191505060405180910390f35b34156103b357600080fd5b6103e8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043557600080fd5b610461600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104a4578082015181840152602081019050610489565b505050509050019250505060405180910390f35b34156104c357600080fd5b6104cb6119dc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561050e5780820151818401526020810190506104f3565b505050509050019250505060405180910390f35b341561052d57600080fd5b610578600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a79565b6040518082815260200191505060405180910390f35b341561059957600080fd5b6105c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b03565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106055780820151818401526020810190506105ea565b50505050905090810190601f1680156106325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064b57600080fd5b6106616004808035906020019091905050611da2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106ae57600080fd5b6106cd6004808035906020019091908035906020019091905050611de1565b005b34156106da57600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061208d565b6040518082815260200191505060405180910390f35b341561072757600080fd5b610753600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120d9565b6040518082815260200191505060405180910390f35b341561077457600080fd5b6107a9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506121a1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e95780820151818401526020810190506107ce565b50505050905090810190601f1680156108165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610850600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061226a565b005b341561085d57600080fd5b610889600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612653565b6040518082815260200191505060405180910390f35b34156108aa57600080fd5b6108b261266b565b6040518082815260200191505060405180910390f35b34156108d357600080fd5b6108db612671565b6040518082815260200191505060405180910390f35b34156108fc57600080fd5b610928600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612677565b005b341561093557600080fd5b610961600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ae57600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ca2565b6040518082815260200191505060405180910390f35b34156109fb57600080fd5b610a03612cee565b6040518082815260200191505060405180910390f35b3415610a2457600080fd5b610a2c612cf4565b6040518082815260200191505060405180910390f35b3415610a4d57600080fd5b610a79600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612cfa565b604051808215151515815260200191505060405180910390f35b3415610a9e57600080fd5b610aa6612d53565b6040518082815260200191505060405180910390f35b3415610ac757600080fd5b610acf612d59565b6040518082815260200191505060405180910390f35b3415610af057600080fd5b610b1c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d63565b005b3415610b2957600080fd5b610b4a600480803590602001908201803590602001919091929050506134f1565b005b3415610b5757600080fd5b610b5f6135f0565b6040518082815260200191505060405180910390f35b6000600b543410151515610b8857600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141580610c1c57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050115b1515610c2757600080fd5b81600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151515610c8457600080fd5b610cd934600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b915060088054806001018281610cef919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160011515815260200183815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160010155905050610eb834600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5160016009546135f690919063ffffffff16565b6009819055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156110185760078054806001018281610fb6919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600a600081548092919060010191905055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611069919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611109919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c1338434604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60078181548110151561120b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828280600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156112cd57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561140657600b546113f882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b1015151561140557600080fd5b5b61145b84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061153384600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115cb43600f546135f690919063ffffffff16565b9250611632846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816116db9190613659565b9160005260206000209001600085909190915055507faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa2338686604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b61179e613685565b600880548060200260200160405190810160405280929190818152602001828054801561182057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116117d6575b5050505050905090565b600a5481565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000838152602001908152602001600020549050919050565b6006602052816000526040600020818154811015156118d657fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611911613685565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156119d057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611986575b50505050509050919050565b6119e4613699565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015611a6f57602002820191906000526020600020905b815481526020019060010190808311611a5b575b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b0b6136ad565b611b1482612cfa565b15611c655760036000611b2684612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600160036000611b6f86612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611bba57fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c595780601f10611c2e57610100808354040283529160200191611c59565b820191906000526020600020905b815481529060010190602001808311611c3c57829003601f168201915b50505050509050611d9d565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611cf657fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d955780601f10611d6a57610100808354040283529160200191611d95565b820191906000526020600020905b815481529060010190602001808311611d7857829003601f168201915b505050505090505b919050565b600881815481101515611db157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282600082111515611df457600080fd5b814310151515611e0357600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600084815260200190815260200160002054111515611e6457600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611eb357fe5b906000526020600020900154141515611ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008681526020019081526020016000205492506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020600090556000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184815481101515611fc457fe5b9060005260206000209001600090553373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561201357600080fd5b7ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568338685604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008082600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561213857600080fd5b61214184612c36565b915061214b612d59565b6064600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561219757fe5b0492505050919050565b6003602052816000526040600020818154811015156121bc57fe5b9060005260206000209001600091509150508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122625780601f1061223757610100808354040283529160200191612262565b820191906000526020600020905b81548152906001019060200180831161224557829003601f168201915b505050505081565b600c54341015151561227b57600080fd5b80600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff1615156122d757600080fd5b61232c34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561249b57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161244b919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b61252d34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc338334604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b60046020528060005260406000206000915090505481565b60095481565b600f5481565b6000806000833373ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561271957600080fd5b84600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561277557600080fd5b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160146101000a81548160ff0219169083151502179055506127e6600160095461361490919063ffffffff16565b600981905550600094505b6008805490508510156128bb578573ffffffffffffffffffffffffffffffffffffffff1660088681548110151561282457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156128ae5760088581548110151561287b57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556128bb565b84806001019550506127f1565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061299284600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7243600e546135f690919063ffffffff16565b9250612ad9846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054806001018281612b829190613659565b9160005260206000209001600085909190915055507f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d33387604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600d5481565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff169050919050565b600b5481565b6000600a54905090565b600080612d6e613685565b600080600033600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612dcf57600080fd5b87600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612e2b57600080fd5b612e3433612c36565b9750612e3f89612c36565b9650600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612ed757600080fd5b6001600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550604b612fc4612d59565b6064600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561301057fe5b041015156134e65760016008805490500360405180591061302e5750595b9080825280602002602001820160405250955060009450600093505b600880549050841015613357578673ffffffffffffffffffffffffffffffffffffffff166130b160088681548110151561308057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c36565b73ffffffffffffffffffffffffffffffffffffffff16141561334a576130e3600160095461361490919063ffffffff16565b6009819055506008848154811015156130f857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868680600101975081518110151561313857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060088481548110151561318357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160006008868154811015156131c457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905560018201600090555050600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006132bb91906136c1565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061330691906136e2565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090555b838060010194505061304a565b600092505b600780549050831015613439578673ffffffffffffffffffffffffffffffffffffffff1660078481548110151561338f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561342c576007838154811015156133e657fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600a6000815480929190600190039190505550613439565b828060010193505061335c565b7fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e8787604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156134d15780820151818401526020810190506134b6565b50505050905001935050505060405180910390a15b505050505050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816135429190613703565b91600052602060002090016000848490919290919250919061356592919061372f565b50507f949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a15050565b600c5481565b600080828401905083811015151561360a57fe5b8091505092915050565b600082821115151561362257fe5b818303905092915050565b8154818355818115116136545781836000526020600020918201910161365391906137af565b5b505050565b8154818355818115116136805781836000526020600020918201910161367f91906137af565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b50805460008255906000526020600020908101906136df91906137d4565b50565b508054600082559060005260206000209081019061370091906137af565b50565b81548183558181151161372a5781836000526020600020918201910161372991906137d4565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061377057803560ff191683800117855561379e565b8280016001018555821561379e579182015b8281111561379d578235825591602001919060010190613782565b5b5090506137ab91906137af565b5090565b6137d191905b808211156137cd5760008160009055506001016137b5565b5090565b90565b6137fd91905b808211156137f957600081816137f09190613800565b506001016137da565b5090565b90565b50805460018160011615610100020316600290046000825580601f106138265750613845565b601f01602090049060005260206000209081019061384491906137af565b5b505600a165627a7a72305820f5bbb127b52ce86c873faef85cff176563476a5e49a3d88eaa9a06a8f432c9080029` 184 185 // DeployXDCValidator deploys a new Ethereum contract, binding an instance of XDCValidator to it. 186 func DeployXDCValidator(auth *bind.TransactOpts, backend bind.ContractBackend, _candidates []common.Address, _caps []*big.Int, _firstOwner common.Address, _minCandidateCap *big.Int, _minVoterCap *big.Int, _maxValidatorNumber *big.Int, _candidateWithdrawDelay *big.Int, _voterWithdrawDelay *big.Int) (common.Address, *types.Transaction, *XDCValidator, error) { 187 parsed, err := abi.JSON(strings.NewReader(XDCValidatorABI)) 188 if err != nil { 189 return common.Address{}, nil, nil, err 190 } 191 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(XDCValidatorBin), backend, _candidates, _caps, _firstOwner, _minCandidateCap, _minVoterCap, _maxValidatorNumber, _candidateWithdrawDelay, _voterWithdrawDelay) 192 if err != nil { 193 return common.Address{}, nil, nil, err 194 } 195 return address, tx, &XDCValidator{XDCValidatorCaller: XDCValidatorCaller{contract: contract}, XDCValidatorTransactor: XDCValidatorTransactor{contract: contract}, XDCValidatorFilterer: XDCValidatorFilterer{contract: contract}}, nil 196 } 197 198 // XDCValidator is an auto generated Go binding around an Ethereum contract. 199 type XDCValidator struct { 200 XDCValidatorCaller // Read-only binding to the contract 201 XDCValidatorTransactor // Write-only binding to the contract 202 XDCValidatorFilterer // Log filterer for contract events 203 } 204 205 // XDCValidatorCaller is an auto generated read-only Go binding around an Ethereum contract. 206 type XDCValidatorCaller struct { 207 contract *bind.BoundContract // Generic contract wrapper for the low level calls 208 } 209 210 // XDCValidatorTransactor is an auto generated write-only Go binding around an Ethereum contract. 211 type XDCValidatorTransactor struct { 212 contract *bind.BoundContract // Generic contract wrapper for the low level calls 213 } 214 215 // XDCValidatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. 216 type XDCValidatorFilterer struct { 217 contract *bind.BoundContract // Generic contract wrapper for the low level calls 218 } 219 220 // XDCValidatorSession is an auto generated Go binding around an Ethereum contract, 221 // with pre-set call and transact options. 222 type XDCValidatorSession struct { 223 Contract *XDCValidator // Generic contract binding to set the session for 224 CallOpts bind.CallOpts // Call options to use throughout this session 225 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 226 } 227 228 // XDCValidatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, 229 // with pre-set call options. 230 type XDCValidatorCallerSession struct { 231 Contract *XDCValidatorCaller // Generic contract caller binding to set the session for 232 CallOpts bind.CallOpts // Call options to use throughout this session 233 } 234 235 // XDCValidatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, 236 // with pre-set transact options. 237 type XDCValidatorTransactorSession struct { 238 Contract *XDCValidatorTransactor // Generic contract transactor binding to set the session for 239 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 240 } 241 242 // XDCValidatorRaw is an auto generated low-level Go binding around an Ethereum contract. 243 type XDCValidatorRaw struct { 244 Contract *XDCValidator // Generic contract binding to access the raw methods on 245 } 246 247 // XDCValidatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 248 type XDCValidatorCallerRaw struct { 249 Contract *XDCValidatorCaller // Generic read-only contract binding to access the raw methods on 250 } 251 252 // XDCValidatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 253 type XDCValidatorTransactorRaw struct { 254 Contract *XDCValidatorTransactor // Generic write-only contract binding to access the raw methods on 255 } 256 257 // NewXDCValidator creates a new instance of XDCValidator, bound to a specific deployed contract. 258 func NewXDCValidator(address common.Address, backend bind.ContractBackend) (*XDCValidator, error) { 259 contract, err := bindXDCValidator(address, backend, backend, backend) 260 if err != nil { 261 return nil, err 262 } 263 return &XDCValidator{XDCValidatorCaller: XDCValidatorCaller{contract: contract}, XDCValidatorTransactor: XDCValidatorTransactor{contract: contract}, XDCValidatorFilterer: XDCValidatorFilterer{contract: contract}}, nil 264 } 265 266 // NewXDCValidatorCaller creates a new read-only instance of XDCValidator, bound to a specific deployed contract. 267 func NewXDCValidatorCaller(address common.Address, caller bind.ContractCaller) (*XDCValidatorCaller, error) { 268 contract, err := bindXDCValidator(address, caller, nil, nil) 269 if err != nil { 270 return nil, err 271 } 272 return &XDCValidatorCaller{contract: contract}, nil 273 } 274 275 // NewXDCValidatorTransactor creates a new write-only instance of XDCValidator, bound to a specific deployed contract. 276 func NewXDCValidatorTransactor(address common.Address, transactor bind.ContractTransactor) (*XDCValidatorTransactor, error) { 277 contract, err := bindXDCValidator(address, nil, transactor, nil) 278 if err != nil { 279 return nil, err 280 } 281 return &XDCValidatorTransactor{contract: contract}, nil 282 } 283 284 // NewXDCValidatorFilterer creates a new log filterer instance of XDCValidator, bound to a specific deployed contract. 285 func NewXDCValidatorFilterer(address common.Address, filterer bind.ContractFilterer) (*XDCValidatorFilterer, error) { 286 contract, err := bindXDCValidator(address, nil, nil, filterer) 287 if err != nil { 288 return nil, err 289 } 290 return &XDCValidatorFilterer{contract: contract}, nil 291 } 292 293 // bindXDCValidator binds a generic wrapper to an already deployed contract. 294 func bindXDCValidator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 295 parsed, err := abi.JSON(strings.NewReader(XDCValidatorABI)) 296 if err != nil { 297 return nil, err 298 } 299 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 300 } 301 302 // Call invokes the (constant) contract method with params as input values and 303 // sets the output to result. The result type might be a single field for simple 304 // returns, a slice of interfaces for anonymous returns and a struct for named 305 // returns. 306 func (_XDCValidator *XDCValidatorRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 307 return _XDCValidator.Contract.XDCValidatorCaller.contract.Call(opts, result, method, params...) 308 } 309 310 // Transfer initiates a plain transaction to move funds to the contract, calling 311 // its default method if one is available. 312 func (_XDCValidator *XDCValidatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 313 return _XDCValidator.Contract.XDCValidatorTransactor.contract.Transfer(opts) 314 } 315 316 // Transact invokes the (paid) contract method with params as input values. 317 func (_XDCValidator *XDCValidatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 318 return _XDCValidator.Contract.XDCValidatorTransactor.contract.Transact(opts, method, params...) 319 } 320 321 // Call invokes the (constant) contract method with params as input values and 322 // sets the output to result. The result type might be a single field for simple 323 // returns, a slice of interfaces for anonymous returns and a struct for named 324 // returns. 325 func (_XDCValidator *XDCValidatorCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 326 return _XDCValidator.Contract.contract.Call(opts, result, method, params...) 327 } 328 329 // Transfer initiates a plain transaction to move funds to the contract, calling 330 // its default method if one is available. 331 func (_XDCValidator *XDCValidatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 332 return _XDCValidator.Contract.contract.Transfer(opts) 333 } 334 335 // Transact invokes the (paid) contract method with params as input values. 336 func (_XDCValidator *XDCValidatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 337 return _XDCValidator.Contract.contract.Transact(opts, method, params...) 338 } 339 340 // KYCString is a free data retrieval call binding the contract method 0x5b9cd8cc. 341 // 342 // Solidity: function KYCString( address, uint256) constant returns(string) 343 func (_XDCValidator *XDCValidatorCaller) KYCString(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (string, error) { 344 var ( 345 ret0 = new(string) 346 ) 347 out := ret0 348 err := _XDCValidator.contract.Call(opts, out, "KYCString", arg0, arg1) 349 return *ret0, err 350 } 351 352 // KYCString is a free data retrieval call binding the contract method 0x5b9cd8cc. 353 // 354 // Solidity: function KYCString( address, uint256) constant returns(string) 355 func (_XDCValidator *XDCValidatorSession) KYCString(arg0 common.Address, arg1 *big.Int) (string, error) { 356 return _XDCValidator.Contract.KYCString(&_XDCValidator.CallOpts, arg0, arg1) 357 } 358 359 // KYCString is a free data retrieval call binding the contract method 0x5b9cd8cc. 360 // 361 // Solidity: function KYCString( address, uint256) constant returns(string) 362 func (_XDCValidator *XDCValidatorCallerSession) KYCString(arg0 common.Address, arg1 *big.Int) (string, error) { 363 return _XDCValidator.Contract.KYCString(&_XDCValidator.CallOpts, arg0, arg1) 364 } 365 366 // CandidateCount is a free data retrieval call binding the contract method 0xa9a981a3. 367 // 368 // Solidity: function candidateCount() constant returns(uint256) 369 func (_XDCValidator *XDCValidatorCaller) CandidateCount(opts *bind.CallOpts) (*big.Int, error) { 370 var ( 371 ret0 = new(*big.Int) 372 ) 373 out := ret0 374 err := _XDCValidator.contract.Call(opts, out, "candidateCount") 375 return *ret0, err 376 } 377 378 // CandidateCount is a free data retrieval call binding the contract method 0xa9a981a3. 379 // 380 // Solidity: function candidateCount() constant returns(uint256) 381 func (_XDCValidator *XDCValidatorSession) CandidateCount() (*big.Int, error) { 382 return _XDCValidator.Contract.CandidateCount(&_XDCValidator.CallOpts) 383 } 384 385 // CandidateCount is a free data retrieval call binding the contract method 0xa9a981a3. 386 // 387 // Solidity: function candidateCount() constant returns(uint256) 388 func (_XDCValidator *XDCValidatorCallerSession) CandidateCount() (*big.Int, error) { 389 return _XDCValidator.Contract.CandidateCount(&_XDCValidator.CallOpts) 390 } 391 392 // CandidateWithdrawDelay is a free data retrieval call binding the contract method 0xd161c767. 393 // 394 // Solidity: function candidateWithdrawDelay() constant returns(uint256) 395 func (_XDCValidator *XDCValidatorCaller) CandidateWithdrawDelay(opts *bind.CallOpts) (*big.Int, error) { 396 var ( 397 ret0 = new(*big.Int) 398 ) 399 out := ret0 400 err := _XDCValidator.contract.Call(opts, out, "candidateWithdrawDelay") 401 return *ret0, err 402 } 403 404 // CandidateWithdrawDelay is a free data retrieval call binding the contract method 0xd161c767. 405 // 406 // Solidity: function candidateWithdrawDelay() constant returns(uint256) 407 func (_XDCValidator *XDCValidatorSession) CandidateWithdrawDelay() (*big.Int, error) { 408 return _XDCValidator.Contract.CandidateWithdrawDelay(&_XDCValidator.CallOpts) 409 } 410 411 // CandidateWithdrawDelay is a free data retrieval call binding the contract method 0xd161c767. 412 // 413 // Solidity: function candidateWithdrawDelay() constant returns(uint256) 414 func (_XDCValidator *XDCValidatorCallerSession) CandidateWithdrawDelay() (*big.Int, error) { 415 return _XDCValidator.Contract.CandidateWithdrawDelay(&_XDCValidator.CallOpts) 416 } 417 418 // Candidates is a free data retrieval call binding the contract method 0x3477ee2e. 419 // 420 // Solidity: function candidates( uint256) constant returns(address) 421 func (_XDCValidator *XDCValidatorCaller) Candidates(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { 422 var ( 423 ret0 = new(common.Address) 424 ) 425 out := ret0 426 err := _XDCValidator.contract.Call(opts, out, "candidates", arg0) 427 return *ret0, err 428 } 429 430 // Candidates is a free data retrieval call binding the contract method 0x3477ee2e. 431 // 432 // Solidity: function candidates( uint256) constant returns(address) 433 func (_XDCValidator *XDCValidatorSession) Candidates(arg0 *big.Int) (common.Address, error) { 434 return _XDCValidator.Contract.Candidates(&_XDCValidator.CallOpts, arg0) 435 } 436 437 // Candidates is a free data retrieval call binding the contract method 0x3477ee2e. 438 // 439 // Solidity: function candidates( uint256) constant returns(address) 440 func (_XDCValidator *XDCValidatorCallerSession) Candidates(arg0 *big.Int) (common.Address, error) { 441 return _XDCValidator.Contract.Candidates(&_XDCValidator.CallOpts, arg0) 442 } 443 444 // GetCandidateCap is a free data retrieval call binding the contract method 0x58e7525f. 445 // 446 // Solidity: function getCandidateCap(_candidate address) constant returns(uint256) 447 func (_XDCValidator *XDCValidatorCaller) GetCandidateCap(opts *bind.CallOpts, _candidate common.Address) (*big.Int, error) { 448 var ( 449 ret0 = new(*big.Int) 450 ) 451 out := ret0 452 err := _XDCValidator.contract.Call(opts, out, "getCandidateCap", _candidate) 453 return *ret0, err 454 } 455 456 // GetCandidateCap is a free data retrieval call binding the contract method 0x58e7525f. 457 // 458 // Solidity: function getCandidateCap(_candidate address) constant returns(uint256) 459 func (_XDCValidator *XDCValidatorSession) GetCandidateCap(_candidate common.Address) (*big.Int, error) { 460 return _XDCValidator.Contract.GetCandidateCap(&_XDCValidator.CallOpts, _candidate) 461 } 462 463 // GetCandidateCap is a free data retrieval call binding the contract method 0x58e7525f. 464 // 465 // Solidity: function getCandidateCap(_candidate address) constant returns(uint256) 466 func (_XDCValidator *XDCValidatorCallerSession) GetCandidateCap(_candidate common.Address) (*big.Int, error) { 467 return _XDCValidator.Contract.GetCandidateCap(&_XDCValidator.CallOpts, _candidate) 468 } 469 470 // GetCandidateOwner is a free data retrieval call binding the contract method 0xb642facd. 471 // 472 // Solidity: function getCandidateOwner(_candidate address) constant returns(address) 473 func (_XDCValidator *XDCValidatorCaller) GetCandidateOwner(opts *bind.CallOpts, _candidate common.Address) (common.Address, error) { 474 var ( 475 ret0 = new(common.Address) 476 ) 477 out := ret0 478 err := _XDCValidator.contract.Call(opts, out, "getCandidateOwner", _candidate) 479 return *ret0, err 480 } 481 482 // GetCandidateOwner is a free data retrieval call binding the contract method 0xb642facd. 483 // 484 // Solidity: function getCandidateOwner(_candidate address) constant returns(address) 485 func (_XDCValidator *XDCValidatorSession) GetCandidateOwner(_candidate common.Address) (common.Address, error) { 486 return _XDCValidator.Contract.GetCandidateOwner(&_XDCValidator.CallOpts, _candidate) 487 } 488 489 // GetCandidateOwner is a free data retrieval call binding the contract method 0xb642facd. 490 // 491 // Solidity: function getCandidateOwner(_candidate address) constant returns(address) 492 func (_XDCValidator *XDCValidatorCallerSession) GetCandidateOwner(_candidate common.Address) (common.Address, error) { 493 return _XDCValidator.Contract.GetCandidateOwner(&_XDCValidator.CallOpts, _candidate) 494 } 495 496 // GetCandidates is a free data retrieval call binding the contract method 0x06a49fce. 497 // 498 // Solidity: function getCandidates() constant returns(address[]) 499 func (_XDCValidator *XDCValidatorCaller) GetCandidates(opts *bind.CallOpts) ([]common.Address, error) { 500 var ( 501 ret0 = new([]common.Address) 502 ) 503 out := ret0 504 err := _XDCValidator.contract.Call(opts, out, "getCandidates") 505 return *ret0, err 506 } 507 508 // GetCandidates is a free data retrieval call binding the contract method 0x06a49fce. 509 // 510 // Solidity: function getCandidates() constant returns(address[]) 511 func (_XDCValidator *XDCValidatorSession) GetCandidates() ([]common.Address, error) { 512 return _XDCValidator.Contract.GetCandidates(&_XDCValidator.CallOpts) 513 } 514 515 // GetCandidates is a free data retrieval call binding the contract method 0x06a49fce. 516 // 517 // Solidity: function getCandidates() constant returns(address[]) 518 func (_XDCValidator *XDCValidatorCallerSession) GetCandidates() ([]common.Address, error) { 519 return _XDCValidator.Contract.GetCandidates(&_XDCValidator.CallOpts) 520 } 521 522 // GetHashCount is a free data retrieval call binding the contract method 0xc45607df. 523 // 524 // Solidity: function getHashCount(_address address) constant returns(uint256) 525 func (_XDCValidator *XDCValidatorCaller) GetHashCount(opts *bind.CallOpts, _address common.Address) (*big.Int, error) { 526 var ( 527 ret0 = new(*big.Int) 528 ) 529 out := ret0 530 err := _XDCValidator.contract.Call(opts, out, "getHashCount", _address) 531 return *ret0, err 532 } 533 534 // GetHashCount is a free data retrieval call binding the contract method 0xc45607df. 535 // 536 // Solidity: function getHashCount(_address address) constant returns(uint256) 537 func (_XDCValidator *XDCValidatorSession) GetHashCount(_address common.Address) (*big.Int, error) { 538 return _XDCValidator.Contract.GetHashCount(&_XDCValidator.CallOpts, _address) 539 } 540 541 // GetHashCount is a free data retrieval call binding the contract method 0xc45607df. 542 // 543 // Solidity: function getHashCount(_address address) constant returns(uint256) 544 func (_XDCValidator *XDCValidatorCallerSession) GetHashCount(_address common.Address) (*big.Int, error) { 545 return _XDCValidator.Contract.GetHashCount(&_XDCValidator.CallOpts, _address) 546 } 547 548 // GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. 549 // 550 // Solidity: function getLatestKYC(_address address) constant returns(string) 551 func (_XDCValidator *XDCValidatorCaller) GetLatestKYC(opts *bind.CallOpts, _address common.Address) (string, error) { 552 var ( 553 ret0 = new(string) 554 ) 555 out := ret0 556 err := _XDCValidator.contract.Call(opts, out, "getLatestKYC", _address) 557 return *ret0, err 558 } 559 560 // GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. 561 // 562 // Solidity: function getLatestKYC(_address address) constant returns(string) 563 func (_XDCValidator *XDCValidatorSession) GetLatestKYC(_address common.Address) (string, error) { 564 return _XDCValidator.Contract.GetLatestKYC(&_XDCValidator.CallOpts, _address) 565 } 566 567 // GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. 568 // 569 // Solidity: function getLatestKYC(_address address) constant returns(string) 570 func (_XDCValidator *XDCValidatorCallerSession) GetLatestKYC(_address common.Address) (string, error) { 571 return _XDCValidator.Contract.GetLatestKYC(&_XDCValidator.CallOpts, _address) 572 } 573 574 // GetOwnerCount is a free data retrieval call binding the contract method 0xef18374a. 575 // 576 // Solidity: function getOwnerCount() constant returns(uint256) 577 func (_XDCValidator *XDCValidatorCaller) GetOwnerCount(opts *bind.CallOpts) (*big.Int, error) { 578 var ( 579 ret0 = new(*big.Int) 580 ) 581 out := ret0 582 err := _XDCValidator.contract.Call(opts, out, "getOwnerCount") 583 return *ret0, err 584 } 585 586 // GetOwnerCount is a free data retrieval call binding the contract method 0xef18374a. 587 // 588 // Solidity: function getOwnerCount() constant returns(uint256) 589 func (_XDCValidator *XDCValidatorSession) GetOwnerCount() (*big.Int, error) { 590 return _XDCValidator.Contract.GetOwnerCount(&_XDCValidator.CallOpts) 591 } 592 593 // GetOwnerCount is a free data retrieval call binding the contract method 0xef18374a. 594 // 595 // Solidity: function getOwnerCount() constant returns(uint256) 596 func (_XDCValidator *XDCValidatorCallerSession) GetOwnerCount() (*big.Int, error) { 597 return _XDCValidator.Contract.GetOwnerCount(&_XDCValidator.CallOpts) 598 } 599 600 // GetVoterCap is a free data retrieval call binding the contract method 0x302b6872. 601 // 602 // Solidity: function getVoterCap(_candidate address, _voter address) constant returns(uint256) 603 func (_XDCValidator *XDCValidatorCaller) GetVoterCap(opts *bind.CallOpts, _candidate common.Address, _voter common.Address) (*big.Int, error) { 604 var ( 605 ret0 = new(*big.Int) 606 ) 607 out := ret0 608 err := _XDCValidator.contract.Call(opts, out, "getVoterCap", _candidate, _voter) 609 return *ret0, err 610 } 611 612 // GetVoterCap is a free data retrieval call binding the contract method 0x302b6872. 613 // 614 // Solidity: function getVoterCap(_candidate address, _voter address) constant returns(uint256) 615 func (_XDCValidator *XDCValidatorSession) GetVoterCap(_candidate common.Address, _voter common.Address) (*big.Int, error) { 616 return _XDCValidator.Contract.GetVoterCap(&_XDCValidator.CallOpts, _candidate, _voter) 617 } 618 619 // GetVoterCap is a free data retrieval call binding the contract method 0x302b6872. 620 // 621 // Solidity: function getVoterCap(_candidate address, _voter address) constant returns(uint256) 622 func (_XDCValidator *XDCValidatorCallerSession) GetVoterCap(_candidate common.Address, _voter common.Address) (*big.Int, error) { 623 return _XDCValidator.Contract.GetVoterCap(&_XDCValidator.CallOpts, _candidate, _voter) 624 } 625 626 // GetVoters is a free data retrieval call binding the contract method 0x2d15cc04. 627 // 628 // Solidity: function getVoters(_candidate address) constant returns(address[]) 629 func (_XDCValidator *XDCValidatorCaller) GetVoters(opts *bind.CallOpts, _candidate common.Address) ([]common.Address, error) { 630 var ( 631 ret0 = new([]common.Address) 632 ) 633 out := ret0 634 err := _XDCValidator.contract.Call(opts, out, "getVoters", _candidate) 635 return *ret0, err 636 } 637 638 // GetVoters is a free data retrieval call binding the contract method 0x2d15cc04. 639 // 640 // Solidity: function getVoters(_candidate address) constant returns(address[]) 641 func (_XDCValidator *XDCValidatorSession) GetVoters(_candidate common.Address) ([]common.Address, error) { 642 return _XDCValidator.Contract.GetVoters(&_XDCValidator.CallOpts, _candidate) 643 } 644 645 // GetVoters is a free data retrieval call binding the contract method 0x2d15cc04. 646 // 647 // Solidity: function getVoters(_candidate address) constant returns(address[]) 648 func (_XDCValidator *XDCValidatorCallerSession) GetVoters(_candidate common.Address) ([]common.Address, error) { 649 return _XDCValidator.Contract.GetVoters(&_XDCValidator.CallOpts, _candidate) 650 } 651 652 // GetWithdrawBlockNumbers is a free data retrieval call binding the contract method 0x2f9c4bba. 653 // 654 // Solidity: function getWithdrawBlockNumbers() constant returns(uint256[]) 655 func (_XDCValidator *XDCValidatorCaller) GetWithdrawBlockNumbers(opts *bind.CallOpts) ([]*big.Int, error) { 656 var ( 657 ret0 = new([]*big.Int) 658 ) 659 out := ret0 660 err := _XDCValidator.contract.Call(opts, out, "getWithdrawBlockNumbers") 661 return *ret0, err 662 } 663 664 // GetWithdrawBlockNumbers is a free data retrieval call binding the contract method 0x2f9c4bba. 665 // 666 // Solidity: function getWithdrawBlockNumbers() constant returns(uint256[]) 667 func (_XDCValidator *XDCValidatorSession) GetWithdrawBlockNumbers() ([]*big.Int, error) { 668 return _XDCValidator.Contract.GetWithdrawBlockNumbers(&_XDCValidator.CallOpts) 669 } 670 671 // GetWithdrawBlockNumbers is a free data retrieval call binding the contract method 0x2f9c4bba. 672 // 673 // Solidity: function getWithdrawBlockNumbers() constant returns(uint256[]) 674 func (_XDCValidator *XDCValidatorCallerSession) GetWithdrawBlockNumbers() ([]*big.Int, error) { 675 return _XDCValidator.Contract.GetWithdrawBlockNumbers(&_XDCValidator.CallOpts) 676 } 677 678 // GetWithdrawCap is a free data retrieval call binding the contract method 0x15febd68. 679 // 680 // Solidity: function getWithdrawCap(_blockNumber uint256) constant returns(uint256) 681 func (_XDCValidator *XDCValidatorCaller) GetWithdrawCap(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) { 682 var ( 683 ret0 = new(*big.Int) 684 ) 685 out := ret0 686 err := _XDCValidator.contract.Call(opts, out, "getWithdrawCap", _blockNumber) 687 return *ret0, err 688 } 689 690 // GetWithdrawCap is a free data retrieval call binding the contract method 0x15febd68. 691 // 692 // Solidity: function getWithdrawCap(_blockNumber uint256) constant returns(uint256) 693 func (_XDCValidator *XDCValidatorSession) GetWithdrawCap(_blockNumber *big.Int) (*big.Int, error) { 694 return _XDCValidator.Contract.GetWithdrawCap(&_XDCValidator.CallOpts, _blockNumber) 695 } 696 697 // GetWithdrawCap is a free data retrieval call binding the contract method 0x15febd68. 698 // 699 // Solidity: function getWithdrawCap(_blockNumber uint256) constant returns(uint256) 700 func (_XDCValidator *XDCValidatorCallerSession) GetWithdrawCap(_blockNumber *big.Int) (*big.Int, error) { 701 return _XDCValidator.Contract.GetWithdrawCap(&_XDCValidator.CallOpts, _blockNumber) 702 } 703 704 // HasVotedInvalid is a free data retrieval call binding the contract method 0x0e3e4fb8. 705 // 706 // Solidity: function hasVotedInvalid( address, address) constant returns(bool) 707 func (_XDCValidator *XDCValidatorCaller) HasVotedInvalid(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (bool, error) { 708 var ( 709 ret0 = new(bool) 710 ) 711 out := ret0 712 err := _XDCValidator.contract.Call(opts, out, "hasVotedInvalid", arg0, arg1) 713 return *ret0, err 714 } 715 716 // HasVotedInvalid is a free data retrieval call binding the contract method 0x0e3e4fb8. 717 // 718 // Solidity: function hasVotedInvalid( address, address) constant returns(bool) 719 func (_XDCValidator *XDCValidatorSession) HasVotedInvalid(arg0 common.Address, arg1 common.Address) (bool, error) { 720 return _XDCValidator.Contract.HasVotedInvalid(&_XDCValidator.CallOpts, arg0, arg1) 721 } 722 723 // HasVotedInvalid is a free data retrieval call binding the contract method 0x0e3e4fb8. 724 // 725 // Solidity: function hasVotedInvalid( address, address) constant returns(bool) 726 func (_XDCValidator *XDCValidatorCallerSession) HasVotedInvalid(arg0 common.Address, arg1 common.Address) (bool, error) { 727 return _XDCValidator.Contract.HasVotedInvalid(&_XDCValidator.CallOpts, arg0, arg1) 728 } 729 730 // InvalidKYCCount is a free data retrieval call binding the contract method 0x72e44a38. 731 // 732 // Solidity: function invalidKYCCount( address) constant returns(uint256) 733 func (_XDCValidator *XDCValidatorCaller) InvalidKYCCount(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) { 734 var ( 735 ret0 = new(*big.Int) 736 ) 737 out := ret0 738 err := _XDCValidator.contract.Call(opts, out, "invalidKYCCount", arg0) 739 return *ret0, err 740 } 741 742 // InvalidKYCCount is a free data retrieval call binding the contract method 0x72e44a38. 743 // 744 // Solidity: function invalidKYCCount( address) constant returns(uint256) 745 func (_XDCValidator *XDCValidatorSession) InvalidKYCCount(arg0 common.Address) (*big.Int, error) { 746 return _XDCValidator.Contract.InvalidKYCCount(&_XDCValidator.CallOpts, arg0) 747 } 748 749 // InvalidKYCCount is a free data retrieval call binding the contract method 0x72e44a38. 750 // 751 // Solidity: function invalidKYCCount( address) constant returns(uint256) 752 func (_XDCValidator *XDCValidatorCallerSession) InvalidKYCCount(arg0 common.Address) (*big.Int, error) { 753 return _XDCValidator.Contract.InvalidKYCCount(&_XDCValidator.CallOpts, arg0) 754 } 755 756 // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. 757 // 758 // Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) 759 func (_XDCValidator *XDCValidatorCaller) InvalidPercent(opts *bind.CallOpts, _invalidCandidate common.Address) (*big.Int, error) { 760 var ( 761 ret0 = new(*big.Int) 762 ) 763 out := ret0 764 err := _XDCValidator.contract.Call(opts, out, "invalidPercent", _invalidCandidate) 765 return *ret0, err 766 } 767 768 // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. 769 // 770 // Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) 771 func (_XDCValidator *XDCValidatorSession) InvalidPercent(_invalidCandidate common.Address) (*big.Int, error) { 772 return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _invalidCandidate) 773 } 774 775 // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. 776 // 777 // Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) 778 func (_XDCValidator *XDCValidatorCallerSession) InvalidPercent(_invalidCandidate common.Address) (*big.Int, error) { 779 return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _invalidCandidate) 780 } 781 782 // IsCandidate is a free data retrieval call binding the contract method 0xd51b9e93. 783 // 784 // Solidity: function isCandidate(_candidate address) constant returns(bool) 785 func (_XDCValidator *XDCValidatorCaller) IsCandidate(opts *bind.CallOpts, _candidate common.Address) (bool, error) { 786 var ( 787 ret0 = new(bool) 788 ) 789 out := ret0 790 err := _XDCValidator.contract.Call(opts, out, "isCandidate", _candidate) 791 return *ret0, err 792 } 793 794 // IsCandidate is a free data retrieval call binding the contract method 0xd51b9e93. 795 // 796 // Solidity: function isCandidate(_candidate address) constant returns(bool) 797 func (_XDCValidator *XDCValidatorSession) IsCandidate(_candidate common.Address) (bool, error) { 798 return _XDCValidator.Contract.IsCandidate(&_XDCValidator.CallOpts, _candidate) 799 } 800 801 // IsCandidate is a free data retrieval call binding the contract method 0xd51b9e93. 802 // 803 // Solidity: function isCandidate(_candidate address) constant returns(bool) 804 func (_XDCValidator *XDCValidatorCallerSession) IsCandidate(_candidate common.Address) (bool, error) { 805 return _XDCValidator.Contract.IsCandidate(&_XDCValidator.CallOpts, _candidate) 806 } 807 808 // MaxValidatorNumber is a free data retrieval call binding the contract method 0xd09f1ab4. 809 // 810 // Solidity: function maxValidatorNumber() constant returns(uint256) 811 func (_XDCValidator *XDCValidatorCaller) MaxValidatorNumber(opts *bind.CallOpts) (*big.Int, error) { 812 var ( 813 ret0 = new(*big.Int) 814 ) 815 out := ret0 816 err := _XDCValidator.contract.Call(opts, out, "maxValidatorNumber") 817 return *ret0, err 818 } 819 820 // MaxValidatorNumber is a free data retrieval call binding the contract method 0xd09f1ab4. 821 // 822 // Solidity: function maxValidatorNumber() constant returns(uint256) 823 func (_XDCValidator *XDCValidatorSession) MaxValidatorNumber() (*big.Int, error) { 824 return _XDCValidator.Contract.MaxValidatorNumber(&_XDCValidator.CallOpts) 825 } 826 827 // MaxValidatorNumber is a free data retrieval call binding the contract method 0xd09f1ab4. 828 // 829 // Solidity: function maxValidatorNumber() constant returns(uint256) 830 func (_XDCValidator *XDCValidatorCallerSession) MaxValidatorNumber() (*big.Int, error) { 831 return _XDCValidator.Contract.MaxValidatorNumber(&_XDCValidator.CallOpts) 832 } 833 834 // MinCandidateCap is a free data retrieval call binding the contract method 0xd55b7dff. 835 // 836 // Solidity: function minCandidateCap() constant returns(uint256) 837 func (_XDCValidator *XDCValidatorCaller) MinCandidateCap(opts *bind.CallOpts) (*big.Int, error) { 838 var ( 839 ret0 = new(*big.Int) 840 ) 841 out := ret0 842 err := _XDCValidator.contract.Call(opts, out, "minCandidateCap") 843 return *ret0, err 844 } 845 846 // MinCandidateCap is a free data retrieval call binding the contract method 0xd55b7dff. 847 // 848 // Solidity: function minCandidateCap() constant returns(uint256) 849 func (_XDCValidator *XDCValidatorSession) MinCandidateCap() (*big.Int, error) { 850 return _XDCValidator.Contract.MinCandidateCap(&_XDCValidator.CallOpts) 851 } 852 853 // MinCandidateCap is a free data retrieval call binding the contract method 0xd55b7dff. 854 // 855 // Solidity: function minCandidateCap() constant returns(uint256) 856 func (_XDCValidator *XDCValidatorCallerSession) MinCandidateCap() (*big.Int, error) { 857 return _XDCValidator.Contract.MinCandidateCap(&_XDCValidator.CallOpts) 858 } 859 860 // MinVoterCap is a free data retrieval call binding the contract method 0xf8ac9dd5. 861 // 862 // Solidity: function minVoterCap() constant returns(uint256) 863 func (_XDCValidator *XDCValidatorCaller) MinVoterCap(opts *bind.CallOpts) (*big.Int, error) { 864 var ( 865 ret0 = new(*big.Int) 866 ) 867 out := ret0 868 err := _XDCValidator.contract.Call(opts, out, "minVoterCap") 869 return *ret0, err 870 } 871 872 // MinVoterCap is a free data retrieval call binding the contract method 0xf8ac9dd5. 873 // 874 // Solidity: function minVoterCap() constant returns(uint256) 875 func (_XDCValidator *XDCValidatorSession) MinVoterCap() (*big.Int, error) { 876 return _XDCValidator.Contract.MinVoterCap(&_XDCValidator.CallOpts) 877 } 878 879 // MinVoterCap is a free data retrieval call binding the contract method 0xf8ac9dd5. 880 // 881 // Solidity: function minVoterCap() constant returns(uint256) 882 func (_XDCValidator *XDCValidatorCallerSession) MinVoterCap() (*big.Int, error) { 883 return _XDCValidator.Contract.MinVoterCap(&_XDCValidator.CallOpts) 884 } 885 886 // OwnerCount is a free data retrieval call binding the contract method 0x0db02622. 887 // 888 // Solidity: function ownerCount() constant returns(uint256) 889 func (_XDCValidator *XDCValidatorCaller) OwnerCount(opts *bind.CallOpts) (*big.Int, error) { 890 var ( 891 ret0 = new(*big.Int) 892 ) 893 out := ret0 894 err := _XDCValidator.contract.Call(opts, out, "ownerCount") 895 return *ret0, err 896 } 897 898 // OwnerCount is a free data retrieval call binding the contract method 0x0db02622. 899 // 900 // Solidity: function ownerCount() constant returns(uint256) 901 func (_XDCValidator *XDCValidatorSession) OwnerCount() (*big.Int, error) { 902 return _XDCValidator.Contract.OwnerCount(&_XDCValidator.CallOpts) 903 } 904 905 // OwnerCount is a free data retrieval call binding the contract method 0x0db02622. 906 // 907 // Solidity: function ownerCount() constant returns(uint256) 908 func (_XDCValidator *XDCValidatorCallerSession) OwnerCount() (*big.Int, error) { 909 return _XDCValidator.Contract.OwnerCount(&_XDCValidator.CallOpts) 910 } 911 912 // OwnerToCandidate is a free data retrieval call binding the contract method 0x2a3640b1. 913 // 914 // Solidity: function ownerToCandidate( address, uint256) constant returns(address) 915 func (_XDCValidator *XDCValidatorCaller) OwnerToCandidate(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (common.Address, error) { 916 var ( 917 ret0 = new(common.Address) 918 ) 919 out := ret0 920 err := _XDCValidator.contract.Call(opts, out, "ownerToCandidate", arg0, arg1) 921 return *ret0, err 922 } 923 924 // OwnerToCandidate is a free data retrieval call binding the contract method 0x2a3640b1. 925 // 926 // Solidity: function ownerToCandidate( address, uint256) constant returns(address) 927 func (_XDCValidator *XDCValidatorSession) OwnerToCandidate(arg0 common.Address, arg1 *big.Int) (common.Address, error) { 928 return _XDCValidator.Contract.OwnerToCandidate(&_XDCValidator.CallOpts, arg0, arg1) 929 } 930 931 // OwnerToCandidate is a free data retrieval call binding the contract method 0x2a3640b1. 932 // 933 // Solidity: function ownerToCandidate( address, uint256) constant returns(address) 934 func (_XDCValidator *XDCValidatorCallerSession) OwnerToCandidate(arg0 common.Address, arg1 *big.Int) (common.Address, error) { 935 return _XDCValidator.Contract.OwnerToCandidate(&_XDCValidator.CallOpts, arg0, arg1) 936 } 937 938 // Owners is a free data retrieval call binding the contract method 0x025e7c27. 939 // 940 // Solidity: function owners( uint256) constant returns(address) 941 func (_XDCValidator *XDCValidatorCaller) Owners(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { 942 var ( 943 ret0 = new(common.Address) 944 ) 945 out := ret0 946 err := _XDCValidator.contract.Call(opts, out, "owners", arg0) 947 return *ret0, err 948 } 949 950 // Owners is a free data retrieval call binding the contract method 0x025e7c27. 951 // 952 // Solidity: function owners( uint256) constant returns(address) 953 func (_XDCValidator *XDCValidatorSession) Owners(arg0 *big.Int) (common.Address, error) { 954 return _XDCValidator.Contract.Owners(&_XDCValidator.CallOpts, arg0) 955 } 956 957 // Owners is a free data retrieval call binding the contract method 0x025e7c27. 958 // 959 // Solidity: function owners( uint256) constant returns(address) 960 func (_XDCValidator *XDCValidatorCallerSession) Owners(arg0 *big.Int) (common.Address, error) { 961 return _XDCValidator.Contract.Owners(&_XDCValidator.CallOpts, arg0) 962 } 963 964 // VoterWithdrawDelay is a free data retrieval call binding the contract method 0xa9ff959e. 965 // 966 // Solidity: function voterWithdrawDelay() constant returns(uint256) 967 func (_XDCValidator *XDCValidatorCaller) VoterWithdrawDelay(opts *bind.CallOpts) (*big.Int, error) { 968 var ( 969 ret0 = new(*big.Int) 970 ) 971 out := ret0 972 err := _XDCValidator.contract.Call(opts, out, "voterWithdrawDelay") 973 return *ret0, err 974 } 975 976 // VoterWithdrawDelay is a free data retrieval call binding the contract method 0xa9ff959e. 977 // 978 // Solidity: function voterWithdrawDelay() constant returns(uint256) 979 func (_XDCValidator *XDCValidatorSession) VoterWithdrawDelay() (*big.Int, error) { 980 return _XDCValidator.Contract.VoterWithdrawDelay(&_XDCValidator.CallOpts) 981 } 982 983 // VoterWithdrawDelay is a free data retrieval call binding the contract method 0xa9ff959e. 984 // 985 // Solidity: function voterWithdrawDelay() constant returns(uint256) 986 func (_XDCValidator *XDCValidatorCallerSession) VoterWithdrawDelay() (*big.Int, error) { 987 return _XDCValidator.Contract.VoterWithdrawDelay(&_XDCValidator.CallOpts) 988 } 989 990 // Propose is a paid mutator transaction binding the contract method 0x01267951. 991 // 992 // Solidity: function propose(_candidate address) returns() 993 func (_XDCValidator *XDCValidatorTransactor) Propose(opts *bind.TransactOpts, _candidate common.Address) (*types.Transaction, error) { 994 return _XDCValidator.contract.Transact(opts, "propose", _candidate) 995 } 996 997 // Propose is a paid mutator transaction binding the contract method 0x01267951. 998 // 999 // Solidity: function propose(_candidate address) returns() 1000 func (_XDCValidator *XDCValidatorSession) Propose(_candidate common.Address) (*types.Transaction, error) { 1001 return _XDCValidator.Contract.Propose(&_XDCValidator.TransactOpts, _candidate) 1002 } 1003 1004 // Propose is a paid mutator transaction binding the contract method 0x01267951. 1005 // 1006 // Solidity: function propose(_candidate address) returns() 1007 func (_XDCValidator *XDCValidatorTransactorSession) Propose(_candidate common.Address) (*types.Transaction, error) { 1008 return _XDCValidator.Contract.Propose(&_XDCValidator.TransactOpts, _candidate) 1009 } 1010 1011 // Resign is a paid mutator transaction binding the contract method 0xae6e43f5. 1012 // 1013 // Solidity: function resign(_candidate address) returns() 1014 func (_XDCValidator *XDCValidatorTransactor) Resign(opts *bind.TransactOpts, _candidate common.Address) (*types.Transaction, error) { 1015 return _XDCValidator.contract.Transact(opts, "resign", _candidate) 1016 } 1017 1018 // Resign is a paid mutator transaction binding the contract method 0xae6e43f5. 1019 // 1020 // Solidity: function resign(_candidate address) returns() 1021 func (_XDCValidator *XDCValidatorSession) Resign(_candidate common.Address) (*types.Transaction, error) { 1022 return _XDCValidator.Contract.Resign(&_XDCValidator.TransactOpts, _candidate) 1023 } 1024 1025 // Resign is a paid mutator transaction binding the contract method 0xae6e43f5. 1026 // 1027 // Solidity: function resign(_candidate address) returns() 1028 func (_XDCValidator *XDCValidatorTransactorSession) Resign(_candidate common.Address) (*types.Transaction, error) { 1029 return _XDCValidator.Contract.Resign(&_XDCValidator.TransactOpts, _candidate) 1030 } 1031 1032 // Unvote is a paid mutator transaction binding the contract method 0x02aa9be2. 1033 // 1034 // Solidity: function unvote(_candidate address, _cap uint256) returns() 1035 func (_XDCValidator *XDCValidatorTransactor) Unvote(opts *bind.TransactOpts, _candidate common.Address, _cap *big.Int) (*types.Transaction, error) { 1036 return _XDCValidator.contract.Transact(opts, "unvote", _candidate, _cap) 1037 } 1038 1039 // Unvote is a paid mutator transaction binding the contract method 0x02aa9be2. 1040 // 1041 // Solidity: function unvote(_candidate address, _cap uint256) returns() 1042 func (_XDCValidator *XDCValidatorSession) Unvote(_candidate common.Address, _cap *big.Int) (*types.Transaction, error) { 1043 return _XDCValidator.Contract.Unvote(&_XDCValidator.TransactOpts, _candidate, _cap) 1044 } 1045 1046 // Unvote is a paid mutator transaction binding the contract method 0x02aa9be2. 1047 // 1048 // Solidity: function unvote(_candidate address, _cap uint256) returns() 1049 func (_XDCValidator *XDCValidatorTransactorSession) Unvote(_candidate common.Address, _cap *big.Int) (*types.Transaction, error) { 1050 return _XDCValidator.Contract.Unvote(&_XDCValidator.TransactOpts, _candidate, _cap) 1051 } 1052 1053 // UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. 1054 // 1055 // Solidity: function uploadKYC(kychash string) returns() 1056 func (_XDCValidator *XDCValidatorTransactor) UploadKYC(opts *bind.TransactOpts, kychash string) (*types.Transaction, error) { 1057 return _XDCValidator.contract.Transact(opts, "uploadKYC", kychash) 1058 } 1059 1060 // UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. 1061 // 1062 // Solidity: function uploadKYC(kychash string) returns() 1063 func (_XDCValidator *XDCValidatorSession) UploadKYC(kychash string) (*types.Transaction, error) { 1064 return _XDCValidator.Contract.UploadKYC(&_XDCValidator.TransactOpts, kychash) 1065 } 1066 1067 // UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. 1068 // 1069 // Solidity: function uploadKYC(kychash string) returns() 1070 func (_XDCValidator *XDCValidatorTransactorSession) UploadKYC(kychash string) (*types.Transaction, error) { 1071 return _XDCValidator.Contract.UploadKYC(&_XDCValidator.TransactOpts, kychash) 1072 } 1073 1074 // Vote is a paid mutator transaction binding the contract method 0x6dd7d8ea. 1075 // 1076 // Solidity: function vote(_candidate address) returns() 1077 func (_XDCValidator *XDCValidatorTransactor) Vote(opts *bind.TransactOpts, _candidate common.Address) (*types.Transaction, error) { 1078 return _XDCValidator.contract.Transact(opts, "vote", _candidate) 1079 } 1080 1081 // Vote is a paid mutator transaction binding the contract method 0x6dd7d8ea. 1082 // 1083 // Solidity: function vote(_candidate address) returns() 1084 func (_XDCValidator *XDCValidatorSession) Vote(_candidate common.Address) (*types.Transaction, error) { 1085 return _XDCValidator.Contract.Vote(&_XDCValidator.TransactOpts, _candidate) 1086 } 1087 1088 // Vote is a paid mutator transaction binding the contract method 0x6dd7d8ea. 1089 // 1090 // Solidity: function vote(_candidate address) returns() 1091 func (_XDCValidator *XDCValidatorTransactorSession) Vote(_candidate common.Address) (*types.Transaction, error) { 1092 return _XDCValidator.Contract.Vote(&_XDCValidator.TransactOpts, _candidate) 1093 } 1094 1095 // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. 1096 // 1097 // Solidity: function voteInvalidKYC(_invalidCandidate address) returns() 1098 func (_XDCValidator *XDCValidatorTransactor) VoteInvalidKYC(opts *bind.TransactOpts, _invalidCandidate common.Address) (*types.Transaction, error) { 1099 return _XDCValidator.contract.Transact(opts, "voteInvalidKYC", _invalidCandidate) 1100 } 1101 1102 // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. 1103 // 1104 // Solidity: function voteInvalidKYC(_invalidCandidate address) returns() 1105 func (_XDCValidator *XDCValidatorSession) VoteInvalidKYC(_invalidCandidate common.Address) (*types.Transaction, error) { 1106 return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _invalidCandidate) 1107 } 1108 1109 // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. 1110 // 1111 // Solidity: function voteInvalidKYC(_invalidCandidate address) returns() 1112 func (_XDCValidator *XDCValidatorTransactorSession) VoteInvalidKYC(_invalidCandidate common.Address) (*types.Transaction, error) { 1113 return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _invalidCandidate) 1114 } 1115 1116 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1117 // 1118 // Solidity: function withdraw(_blockNumber uint256, _index uint256) returns() 1119 func (_XDCValidator *XDCValidatorTransactor) Withdraw(opts *bind.TransactOpts, _blockNumber *big.Int, _index *big.Int) (*types.Transaction, error) { 1120 return _XDCValidator.contract.Transact(opts, "withdraw", _blockNumber, _index) 1121 } 1122 1123 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1124 // 1125 // Solidity: function withdraw(_blockNumber uint256, _index uint256) returns() 1126 func (_XDCValidator *XDCValidatorSession) Withdraw(_blockNumber *big.Int, _index *big.Int) (*types.Transaction, error) { 1127 return _XDCValidator.Contract.Withdraw(&_XDCValidator.TransactOpts, _blockNumber, _index) 1128 } 1129 1130 // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. 1131 // 1132 // Solidity: function withdraw(_blockNumber uint256, _index uint256) returns() 1133 func (_XDCValidator *XDCValidatorTransactorSession) Withdraw(_blockNumber *big.Int, _index *big.Int) (*types.Transaction, error) { 1134 return _XDCValidator.Contract.Withdraw(&_XDCValidator.TransactOpts, _blockNumber, _index) 1135 } 1136 1137 // XDCValidatorInvalidatedNodeIterator is returned from FilterInvalidatedNode and is used to iterate over the raw logs and unpacked data for InvalidatedNode events raised by the XDCValidator contract. 1138 type XDCValidatorInvalidatedNodeIterator struct { 1139 Event *XDCValidatorInvalidatedNode // Event containing the contract specifics and raw log 1140 1141 contract *bind.BoundContract // Generic contract to use for unpacking event data 1142 event string // Event name to use for unpacking event data 1143 1144 logs chan types.Log // Log channel receiving the found contract events 1145 sub ethereum.Subscription // Subscription for errors, completion and termination 1146 done bool // Whether the subscription completed delivering logs 1147 fail error // Occurred error to stop iteration 1148 } 1149 1150 // Next advances the iterator to the subsequent event, returning whether there 1151 // are any more events found. In case of a retrieval or parsing error, false is 1152 // returned and Error() can be queried for the exact failure. 1153 func (it *XDCValidatorInvalidatedNodeIterator) Next() bool { 1154 // If the iterator failed, stop iterating 1155 if it.fail != nil { 1156 return false 1157 } 1158 // If the iterator completed, deliver directly whatever's available 1159 if it.done { 1160 select { 1161 case log := <-it.logs: 1162 it.Event = new(XDCValidatorInvalidatedNode) 1163 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1164 it.fail = err 1165 return false 1166 } 1167 it.Event.Raw = log 1168 return true 1169 1170 default: 1171 return false 1172 } 1173 } 1174 // Iterator still in progress, wait for either a data or an error event 1175 select { 1176 case log := <-it.logs: 1177 it.Event = new(XDCValidatorInvalidatedNode) 1178 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1179 it.fail = err 1180 return false 1181 } 1182 it.Event.Raw = log 1183 return true 1184 1185 case err := <-it.sub.Err(): 1186 it.done = true 1187 it.fail = err 1188 return it.Next() 1189 } 1190 } 1191 1192 // Error returns any retrieval or parsing error occurred during filtering. 1193 func (it *XDCValidatorInvalidatedNodeIterator) Error() error { 1194 return it.fail 1195 } 1196 1197 // Close terminates the iteration process, releasing any pending underlying 1198 // resources. 1199 func (it *XDCValidatorInvalidatedNodeIterator) Close() error { 1200 it.sub.Unsubscribe() 1201 return nil 1202 } 1203 1204 // XDCValidatorInvalidatedNode represents a InvalidatedNode event raised by the XDCValidator contract. 1205 type XDCValidatorInvalidatedNode struct { 1206 MasternodeOwner common.Address 1207 Masternodes []common.Address 1208 Raw types.Log // Blockchain specific contextual infos 1209 } 1210 1211 // FilterInvalidatedNode is a free log retrieval operation binding the contract event 0xe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e. 1212 // 1213 // Solidity: event InvalidatedNode(_masternodeOwner address, _masternodes address[]) 1214 func (_XDCValidator *XDCValidatorFilterer) FilterInvalidatedNode(opts *bind.FilterOpts) (*XDCValidatorInvalidatedNodeIterator, error) { 1215 1216 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "InvalidatedNode") 1217 if err != nil { 1218 return nil, err 1219 } 1220 return &XDCValidatorInvalidatedNodeIterator{contract: _XDCValidator.contract, event: "InvalidatedNode", logs: logs, sub: sub}, nil 1221 } 1222 1223 // WatchInvalidatedNode is a free log subscription operation binding the contract event 0xe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e. 1224 // 1225 // Solidity: event InvalidatedNode(_masternodeOwner address, _masternodes address[]) 1226 func (_XDCValidator *XDCValidatorFilterer) WatchInvalidatedNode(opts *bind.WatchOpts, sink chan<- *XDCValidatorInvalidatedNode) (event.Subscription, error) { 1227 1228 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "InvalidatedNode") 1229 if err != nil { 1230 return nil, err 1231 } 1232 return event.NewSubscription(func(quit <-chan struct{}) error { 1233 defer sub.Unsubscribe() 1234 for { 1235 select { 1236 case log := <-logs: 1237 // New log arrived, parse the event and forward to the user 1238 event := new(XDCValidatorInvalidatedNode) 1239 if err := _XDCValidator.contract.UnpackLog(event, "InvalidatedNode", log); err != nil { 1240 return err 1241 } 1242 event.Raw = log 1243 1244 select { 1245 case sink <- event: 1246 case err := <-sub.Err(): 1247 return err 1248 case <-quit: 1249 return nil 1250 } 1251 case err := <-sub.Err(): 1252 return err 1253 case <-quit: 1254 return nil 1255 } 1256 } 1257 }), nil 1258 } 1259 1260 // XDCValidatorProposeIterator is returned from FilterPropose and is used to iterate over the raw logs and unpacked data for Propose events raised by the XDCValidator contract. 1261 type XDCValidatorProposeIterator struct { 1262 Event *XDCValidatorPropose // Event containing the contract specifics and raw log 1263 1264 contract *bind.BoundContract // Generic contract to use for unpacking event data 1265 event string // Event name to use for unpacking event data 1266 1267 logs chan types.Log // Log channel receiving the found contract events 1268 sub ethereum.Subscription // Subscription for errors, completion and termination 1269 done bool // Whether the subscription completed delivering logs 1270 fail error // Occurred error to stop iteration 1271 } 1272 1273 // Next advances the iterator to the subsequent event, returning whether there 1274 // are any more events found. In case of a retrieval or parsing error, false is 1275 // returned and Error() can be queried for the exact failure. 1276 func (it *XDCValidatorProposeIterator) Next() bool { 1277 // If the iterator failed, stop iterating 1278 if it.fail != nil { 1279 return false 1280 } 1281 // If the iterator completed, deliver directly whatever's available 1282 if it.done { 1283 select { 1284 case log := <-it.logs: 1285 it.Event = new(XDCValidatorPropose) 1286 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1287 it.fail = err 1288 return false 1289 } 1290 it.Event.Raw = log 1291 return true 1292 1293 default: 1294 return false 1295 } 1296 } 1297 // Iterator still in progress, wait for either a data or an error event 1298 select { 1299 case log := <-it.logs: 1300 it.Event = new(XDCValidatorPropose) 1301 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1302 it.fail = err 1303 return false 1304 } 1305 it.Event.Raw = log 1306 return true 1307 1308 case err := <-it.sub.Err(): 1309 it.done = true 1310 it.fail = err 1311 return it.Next() 1312 } 1313 } 1314 1315 // Error returns any retrieval or parsing error occurred during filtering. 1316 func (it *XDCValidatorProposeIterator) Error() error { 1317 return it.fail 1318 } 1319 1320 // Close terminates the iteration process, releasing any pending underlying 1321 // resources. 1322 func (it *XDCValidatorProposeIterator) Close() error { 1323 it.sub.Unsubscribe() 1324 return nil 1325 } 1326 1327 // XDCValidatorPropose represents a Propose event raised by the XDCValidator contract. 1328 type XDCValidatorPropose struct { 1329 Owner common.Address 1330 Candidate common.Address 1331 Cap *big.Int 1332 Raw types.Log // Blockchain specific contextual infos 1333 } 1334 1335 // FilterPropose is a free log retrieval operation binding the contract event 0x7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c1. 1336 // 1337 // Solidity: event Propose(_owner address, _candidate address, _cap uint256) 1338 func (_XDCValidator *XDCValidatorFilterer) FilterPropose(opts *bind.FilterOpts) (*XDCValidatorProposeIterator, error) { 1339 1340 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "Propose") 1341 if err != nil { 1342 return nil, err 1343 } 1344 return &XDCValidatorProposeIterator{contract: _XDCValidator.contract, event: "Propose", logs: logs, sub: sub}, nil 1345 } 1346 1347 // WatchPropose is a free log subscription operation binding the contract event 0x7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c1. 1348 // 1349 // Solidity: event Propose(_owner address, _candidate address, _cap uint256) 1350 func (_XDCValidator *XDCValidatorFilterer) WatchPropose(opts *bind.WatchOpts, sink chan<- *XDCValidatorPropose) (event.Subscription, error) { 1351 1352 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "Propose") 1353 if err != nil { 1354 return nil, err 1355 } 1356 return event.NewSubscription(func(quit <-chan struct{}) error { 1357 defer sub.Unsubscribe() 1358 for { 1359 select { 1360 case log := <-logs: 1361 // New log arrived, parse the event and forward to the user 1362 event := new(XDCValidatorPropose) 1363 if err := _XDCValidator.contract.UnpackLog(event, "Propose", log); err != nil { 1364 return err 1365 } 1366 event.Raw = log 1367 1368 select { 1369 case sink <- event: 1370 case err := <-sub.Err(): 1371 return err 1372 case <-quit: 1373 return nil 1374 } 1375 case err := <-sub.Err(): 1376 return err 1377 case <-quit: 1378 return nil 1379 } 1380 } 1381 }), nil 1382 } 1383 1384 // XDCValidatorResignIterator is returned from FilterResign and is used to iterate over the raw logs and unpacked data for Resign events raised by the XDCValidator contract. 1385 type XDCValidatorResignIterator struct { 1386 Event *XDCValidatorResign // Event containing the contract specifics and raw log 1387 1388 contract *bind.BoundContract // Generic contract to use for unpacking event data 1389 event string // Event name to use for unpacking event data 1390 1391 logs chan types.Log // Log channel receiving the found contract events 1392 sub ethereum.Subscription // Subscription for errors, completion and termination 1393 done bool // Whether the subscription completed delivering logs 1394 fail error // Occurred error to stop iteration 1395 } 1396 1397 // Next advances the iterator to the subsequent event, returning whether there 1398 // are any more events found. In case of a retrieval or parsing error, false is 1399 // returned and Error() can be queried for the exact failure. 1400 func (it *XDCValidatorResignIterator) Next() bool { 1401 // If the iterator failed, stop iterating 1402 if it.fail != nil { 1403 return false 1404 } 1405 // If the iterator completed, deliver directly whatever's available 1406 if it.done { 1407 select { 1408 case log := <-it.logs: 1409 it.Event = new(XDCValidatorResign) 1410 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1411 it.fail = err 1412 return false 1413 } 1414 it.Event.Raw = log 1415 return true 1416 1417 default: 1418 return false 1419 } 1420 } 1421 // Iterator still in progress, wait for either a data or an error event 1422 select { 1423 case log := <-it.logs: 1424 it.Event = new(XDCValidatorResign) 1425 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1426 it.fail = err 1427 return false 1428 } 1429 it.Event.Raw = log 1430 return true 1431 1432 case err := <-it.sub.Err(): 1433 it.done = true 1434 it.fail = err 1435 return it.Next() 1436 } 1437 } 1438 1439 // Error returns any retrieval or parsing error occurred during filtering. 1440 func (it *XDCValidatorResignIterator) Error() error { 1441 return it.fail 1442 } 1443 1444 // Close terminates the iteration process, releasing any pending underlying 1445 // resources. 1446 func (it *XDCValidatorResignIterator) Close() error { 1447 it.sub.Unsubscribe() 1448 return nil 1449 } 1450 1451 // XDCValidatorResign represents a Resign event raised by the XDCValidator contract. 1452 type XDCValidatorResign struct { 1453 Owner common.Address 1454 Candidate common.Address 1455 Raw types.Log // Blockchain specific contextual infos 1456 } 1457 1458 // FilterResign is a free log retrieval operation binding the contract event 0x4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3. 1459 // 1460 // Solidity: event Resign(_owner address, _candidate address) 1461 func (_XDCValidator *XDCValidatorFilterer) FilterResign(opts *bind.FilterOpts) (*XDCValidatorResignIterator, error) { 1462 1463 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "Resign") 1464 if err != nil { 1465 return nil, err 1466 } 1467 return &XDCValidatorResignIterator{contract: _XDCValidator.contract, event: "Resign", logs: logs, sub: sub}, nil 1468 } 1469 1470 // WatchResign is a free log subscription operation binding the contract event 0x4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3. 1471 // 1472 // Solidity: event Resign(_owner address, _candidate address) 1473 func (_XDCValidator *XDCValidatorFilterer) WatchResign(opts *bind.WatchOpts, sink chan<- *XDCValidatorResign) (event.Subscription, error) { 1474 1475 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "Resign") 1476 if err != nil { 1477 return nil, err 1478 } 1479 return event.NewSubscription(func(quit <-chan struct{}) error { 1480 defer sub.Unsubscribe() 1481 for { 1482 select { 1483 case log := <-logs: 1484 // New log arrived, parse the event and forward to the user 1485 event := new(XDCValidatorResign) 1486 if err := _XDCValidator.contract.UnpackLog(event, "Resign", log); err != nil { 1487 return err 1488 } 1489 event.Raw = log 1490 1491 select { 1492 case sink <- event: 1493 case err := <-sub.Err(): 1494 return err 1495 case <-quit: 1496 return nil 1497 } 1498 case err := <-sub.Err(): 1499 return err 1500 case <-quit: 1501 return nil 1502 } 1503 } 1504 }), nil 1505 } 1506 1507 // XDCValidatorUnvoteIterator is returned from FilterUnvote and is used to iterate over the raw logs and unpacked data for Unvote events raised by the XDCValidator contract. 1508 type XDCValidatorUnvoteIterator struct { 1509 Event *XDCValidatorUnvote // Event containing the contract specifics and raw log 1510 1511 contract *bind.BoundContract // Generic contract to use for unpacking event data 1512 event string // Event name to use for unpacking event data 1513 1514 logs chan types.Log // Log channel receiving the found contract events 1515 sub ethereum.Subscription // Subscription for errors, completion and termination 1516 done bool // Whether the subscription completed delivering logs 1517 fail error // Occurred error to stop iteration 1518 } 1519 1520 // Next advances the iterator to the subsequent event, returning whether there 1521 // are any more events found. In case of a retrieval or parsing error, false is 1522 // returned and Error() can be queried for the exact failure. 1523 func (it *XDCValidatorUnvoteIterator) Next() bool { 1524 // If the iterator failed, stop iterating 1525 if it.fail != nil { 1526 return false 1527 } 1528 // If the iterator completed, deliver directly whatever's available 1529 if it.done { 1530 select { 1531 case log := <-it.logs: 1532 it.Event = new(XDCValidatorUnvote) 1533 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1534 it.fail = err 1535 return false 1536 } 1537 it.Event.Raw = log 1538 return true 1539 1540 default: 1541 return false 1542 } 1543 } 1544 // Iterator still in progress, wait for either a data or an error event 1545 select { 1546 case log := <-it.logs: 1547 it.Event = new(XDCValidatorUnvote) 1548 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1549 it.fail = err 1550 return false 1551 } 1552 it.Event.Raw = log 1553 return true 1554 1555 case err := <-it.sub.Err(): 1556 it.done = true 1557 it.fail = err 1558 return it.Next() 1559 } 1560 } 1561 1562 // Error returns any retrieval or parsing error occurred during filtering. 1563 func (it *XDCValidatorUnvoteIterator) Error() error { 1564 return it.fail 1565 } 1566 1567 // Close terminates the iteration process, releasing any pending underlying 1568 // resources. 1569 func (it *XDCValidatorUnvoteIterator) Close() error { 1570 it.sub.Unsubscribe() 1571 return nil 1572 } 1573 1574 // XDCValidatorUnvote represents a Unvote event raised by the XDCValidator contract. 1575 type XDCValidatorUnvote struct { 1576 Voter common.Address 1577 Candidate common.Address 1578 Cap *big.Int 1579 Raw types.Log // Blockchain specific contextual infos 1580 } 1581 1582 // FilterUnvote is a free log retrieval operation binding the contract event 0xaa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa2. 1583 // 1584 // Solidity: event Unvote(_voter address, _candidate address, _cap uint256) 1585 func (_XDCValidator *XDCValidatorFilterer) FilterUnvote(opts *bind.FilterOpts) (*XDCValidatorUnvoteIterator, error) { 1586 1587 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "Unvote") 1588 if err != nil { 1589 return nil, err 1590 } 1591 return &XDCValidatorUnvoteIterator{contract: _XDCValidator.contract, event: "Unvote", logs: logs, sub: sub}, nil 1592 } 1593 1594 // WatchUnvote is a free log subscription operation binding the contract event 0xaa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa2. 1595 // 1596 // Solidity: event Unvote(_voter address, _candidate address, _cap uint256) 1597 func (_XDCValidator *XDCValidatorFilterer) WatchUnvote(opts *bind.WatchOpts, sink chan<- *XDCValidatorUnvote) (event.Subscription, error) { 1598 1599 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "Unvote") 1600 if err != nil { 1601 return nil, err 1602 } 1603 return event.NewSubscription(func(quit <-chan struct{}) error { 1604 defer sub.Unsubscribe() 1605 for { 1606 select { 1607 case log := <-logs: 1608 // New log arrived, parse the event and forward to the user 1609 event := new(XDCValidatorUnvote) 1610 if err := _XDCValidator.contract.UnpackLog(event, "Unvote", log); err != nil { 1611 return err 1612 } 1613 event.Raw = log 1614 1615 select { 1616 case sink <- event: 1617 case err := <-sub.Err(): 1618 return err 1619 case <-quit: 1620 return nil 1621 } 1622 case err := <-sub.Err(): 1623 return err 1624 case <-quit: 1625 return nil 1626 } 1627 } 1628 }), nil 1629 } 1630 1631 // XDCValidatorUploadedKYCIterator is returned from FilterUploadedKYC and is used to iterate over the raw logs and unpacked data for UploadedKYC events raised by the XDCValidator contract. 1632 type XDCValidatorUploadedKYCIterator struct { 1633 Event *XDCValidatorUploadedKYC // Event containing the contract specifics and raw log 1634 1635 contract *bind.BoundContract // Generic contract to use for unpacking event data 1636 event string // Event name to use for unpacking event data 1637 1638 logs chan types.Log // Log channel receiving the found contract events 1639 sub ethereum.Subscription // Subscription for errors, completion and termination 1640 done bool // Whether the subscription completed delivering logs 1641 fail error // Occurred error to stop iteration 1642 } 1643 1644 // Next advances the iterator to the subsequent event, returning whether there 1645 // are any more events found. In case of a retrieval or parsing error, false is 1646 // returned and Error() can be queried for the exact failure. 1647 func (it *XDCValidatorUploadedKYCIterator) Next() bool { 1648 // If the iterator failed, stop iterating 1649 if it.fail != nil { 1650 return false 1651 } 1652 // If the iterator completed, deliver directly whatever's available 1653 if it.done { 1654 select { 1655 case log := <-it.logs: 1656 it.Event = new(XDCValidatorUploadedKYC) 1657 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1658 it.fail = err 1659 return false 1660 } 1661 it.Event.Raw = log 1662 return true 1663 1664 default: 1665 return false 1666 } 1667 } 1668 // Iterator still in progress, wait for either a data or an error event 1669 select { 1670 case log := <-it.logs: 1671 it.Event = new(XDCValidatorUploadedKYC) 1672 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1673 it.fail = err 1674 return false 1675 } 1676 it.Event.Raw = log 1677 return true 1678 1679 case err := <-it.sub.Err(): 1680 it.done = true 1681 it.fail = err 1682 return it.Next() 1683 } 1684 } 1685 1686 // Error returns any retrieval or parsing error occurred during filtering. 1687 func (it *XDCValidatorUploadedKYCIterator) Error() error { 1688 return it.fail 1689 } 1690 1691 // Close terminates the iteration process, releasing any pending underlying 1692 // resources. 1693 func (it *XDCValidatorUploadedKYCIterator) Close() error { 1694 it.sub.Unsubscribe() 1695 return nil 1696 } 1697 1698 // XDCValidatorUploadedKYC represents a UploadedKYC event raised by the XDCValidator contract. 1699 type XDCValidatorUploadedKYC struct { 1700 Owner common.Address 1701 KycHash string 1702 Raw types.Log // Blockchain specific contextual infos 1703 } 1704 1705 // FilterUploadedKYC is a free log retrieval operation binding the contract event 0x949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a. 1706 // 1707 // Solidity: event UploadedKYC(_owner address, kycHash string) 1708 func (_XDCValidator *XDCValidatorFilterer) FilterUploadedKYC(opts *bind.FilterOpts) (*XDCValidatorUploadedKYCIterator, error) { 1709 1710 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "UploadedKYC") 1711 if err != nil { 1712 return nil, err 1713 } 1714 return &XDCValidatorUploadedKYCIterator{contract: _XDCValidator.contract, event: "UploadedKYC", logs: logs, sub: sub}, nil 1715 } 1716 1717 // WatchUploadedKYC is a free log subscription operation binding the contract event 0x949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a. 1718 // 1719 // Solidity: event UploadedKYC(_owner address, kycHash string) 1720 func (_XDCValidator *XDCValidatorFilterer) WatchUploadedKYC(opts *bind.WatchOpts, sink chan<- *XDCValidatorUploadedKYC) (event.Subscription, error) { 1721 1722 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "UploadedKYC") 1723 if err != nil { 1724 return nil, err 1725 } 1726 return event.NewSubscription(func(quit <-chan struct{}) error { 1727 defer sub.Unsubscribe() 1728 for { 1729 select { 1730 case log := <-logs: 1731 // New log arrived, parse the event and forward to the user 1732 event := new(XDCValidatorUploadedKYC) 1733 if err := _XDCValidator.contract.UnpackLog(event, "UploadedKYC", log); err != nil { 1734 return err 1735 } 1736 event.Raw = log 1737 1738 select { 1739 case sink <- event: 1740 case err := <-sub.Err(): 1741 return err 1742 case <-quit: 1743 return nil 1744 } 1745 case err := <-sub.Err(): 1746 return err 1747 case <-quit: 1748 return nil 1749 } 1750 } 1751 }), nil 1752 } 1753 1754 // XDCValidatorVoteIterator is returned from FilterVote and is used to iterate over the raw logs and unpacked data for Vote events raised by the XDCValidator contract. 1755 type XDCValidatorVoteIterator struct { 1756 Event *XDCValidatorVote // Event containing the contract specifics and raw log 1757 1758 contract *bind.BoundContract // Generic contract to use for unpacking event data 1759 event string // Event name to use for unpacking event data 1760 1761 logs chan types.Log // Log channel receiving the found contract events 1762 sub ethereum.Subscription // Subscription for errors, completion and termination 1763 done bool // Whether the subscription completed delivering logs 1764 fail error // Occurred error to stop iteration 1765 } 1766 1767 // Next advances the iterator to the subsequent event, returning whether there 1768 // are any more events found. In case of a retrieval or parsing error, false is 1769 // returned and Error() can be queried for the exact failure. 1770 func (it *XDCValidatorVoteIterator) Next() bool { 1771 // If the iterator failed, stop iterating 1772 if it.fail != nil { 1773 return false 1774 } 1775 // If the iterator completed, deliver directly whatever's available 1776 if it.done { 1777 select { 1778 case log := <-it.logs: 1779 it.Event = new(XDCValidatorVote) 1780 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1781 it.fail = err 1782 return false 1783 } 1784 it.Event.Raw = log 1785 return true 1786 1787 default: 1788 return false 1789 } 1790 } 1791 // Iterator still in progress, wait for either a data or an error event 1792 select { 1793 case log := <-it.logs: 1794 it.Event = new(XDCValidatorVote) 1795 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1796 it.fail = err 1797 return false 1798 } 1799 it.Event.Raw = log 1800 return true 1801 1802 case err := <-it.sub.Err(): 1803 it.done = true 1804 it.fail = err 1805 return it.Next() 1806 } 1807 } 1808 1809 // Error returns any retrieval or parsing error occurred during filtering. 1810 func (it *XDCValidatorVoteIterator) Error() error { 1811 return it.fail 1812 } 1813 1814 // Close terminates the iteration process, releasing any pending underlying 1815 // resources. 1816 func (it *XDCValidatorVoteIterator) Close() error { 1817 it.sub.Unsubscribe() 1818 return nil 1819 } 1820 1821 // XDCValidatorVote represents a Vote event raised by the XDCValidator contract. 1822 type XDCValidatorVote struct { 1823 Voter common.Address 1824 Candidate common.Address 1825 Cap *big.Int 1826 Raw types.Log // Blockchain specific contextual infos 1827 } 1828 1829 // FilterVote is a free log retrieval operation binding the contract event 0x66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc. 1830 // 1831 // Solidity: event Vote(_voter address, _candidate address, _cap uint256) 1832 func (_XDCValidator *XDCValidatorFilterer) FilterVote(opts *bind.FilterOpts) (*XDCValidatorVoteIterator, error) { 1833 1834 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "Vote") 1835 if err != nil { 1836 return nil, err 1837 } 1838 return &XDCValidatorVoteIterator{contract: _XDCValidator.contract, event: "Vote", logs: logs, sub: sub}, nil 1839 } 1840 1841 // WatchVote is a free log subscription operation binding the contract event 0x66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc. 1842 // 1843 // Solidity: event Vote(_voter address, _candidate address, _cap uint256) 1844 func (_XDCValidator *XDCValidatorFilterer) WatchVote(opts *bind.WatchOpts, sink chan<- *XDCValidatorVote) (event.Subscription, error) { 1845 1846 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "Vote") 1847 if err != nil { 1848 return nil, err 1849 } 1850 return event.NewSubscription(func(quit <-chan struct{}) error { 1851 defer sub.Unsubscribe() 1852 for { 1853 select { 1854 case log := <-logs: 1855 // New log arrived, parse the event and forward to the user 1856 event := new(XDCValidatorVote) 1857 if err := _XDCValidator.contract.UnpackLog(event, "Vote", log); err != nil { 1858 return err 1859 } 1860 event.Raw = log 1861 1862 select { 1863 case sink <- event: 1864 case err := <-sub.Err(): 1865 return err 1866 case <-quit: 1867 return nil 1868 } 1869 case err := <-sub.Err(): 1870 return err 1871 case <-quit: 1872 return nil 1873 } 1874 } 1875 }), nil 1876 } 1877 1878 // XDCValidatorWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the XDCValidator contract. 1879 type XDCValidatorWithdrawIterator struct { 1880 Event *XDCValidatorWithdraw // Event containing the contract specifics and raw log 1881 1882 contract *bind.BoundContract // Generic contract to use for unpacking event data 1883 event string // Event name to use for unpacking event data 1884 1885 logs chan types.Log // Log channel receiving the found contract events 1886 sub ethereum.Subscription // Subscription for errors, completion and termination 1887 done bool // Whether the subscription completed delivering logs 1888 fail error // Occurred error to stop iteration 1889 } 1890 1891 // Next advances the iterator to the subsequent event, returning whether there 1892 // are any more events found. In case of a retrieval or parsing error, false is 1893 // returned and Error() can be queried for the exact failure. 1894 func (it *XDCValidatorWithdrawIterator) Next() bool { 1895 // If the iterator failed, stop iterating 1896 if it.fail != nil { 1897 return false 1898 } 1899 // If the iterator completed, deliver directly whatever's available 1900 if it.done { 1901 select { 1902 case log := <-it.logs: 1903 it.Event = new(XDCValidatorWithdraw) 1904 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1905 it.fail = err 1906 return false 1907 } 1908 it.Event.Raw = log 1909 return true 1910 1911 default: 1912 return false 1913 } 1914 } 1915 // Iterator still in progress, wait for either a data or an error event 1916 select { 1917 case log := <-it.logs: 1918 it.Event = new(XDCValidatorWithdraw) 1919 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1920 it.fail = err 1921 return false 1922 } 1923 it.Event.Raw = log 1924 return true 1925 1926 case err := <-it.sub.Err(): 1927 it.done = true 1928 it.fail = err 1929 return it.Next() 1930 } 1931 } 1932 1933 // Error returns any retrieval or parsing error occurred during filtering. 1934 func (it *XDCValidatorWithdrawIterator) Error() error { 1935 return it.fail 1936 } 1937 1938 // Close terminates the iteration process, releasing any pending underlying 1939 // resources. 1940 func (it *XDCValidatorWithdrawIterator) Close() error { 1941 it.sub.Unsubscribe() 1942 return nil 1943 } 1944 1945 // XDCValidatorWithdraw represents a Withdraw event raised by the XDCValidator contract. 1946 type XDCValidatorWithdraw struct { 1947 Owner common.Address 1948 BlockNumber *big.Int 1949 Cap *big.Int 1950 Raw types.Log // Blockchain specific contextual infos 1951 } 1952 1953 // FilterWithdraw is a free log retrieval operation binding the contract event 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568. 1954 // 1955 // Solidity: event Withdraw(_owner address, _blockNumber uint256, _cap uint256) 1956 func (_XDCValidator *XDCValidatorFilterer) FilterWithdraw(opts *bind.FilterOpts) (*XDCValidatorWithdrawIterator, error) { 1957 1958 logs, sub, err := _XDCValidator.contract.FilterLogs(opts, "Withdraw") 1959 if err != nil { 1960 return nil, err 1961 } 1962 return &XDCValidatorWithdrawIterator{contract: _XDCValidator.contract, event: "Withdraw", logs: logs, sub: sub}, nil 1963 } 1964 1965 // WatchWithdraw is a free log subscription operation binding the contract event 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568. 1966 // 1967 // Solidity: event Withdraw(_owner address, _blockNumber uint256, _cap uint256) 1968 func (_XDCValidator *XDCValidatorFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *XDCValidatorWithdraw) (event.Subscription, error) { 1969 1970 logs, sub, err := _XDCValidator.contract.WatchLogs(opts, "Withdraw") 1971 if err != nil { 1972 return nil, err 1973 } 1974 return event.NewSubscription(func(quit <-chan struct{}) error { 1975 defer sub.Unsubscribe() 1976 for { 1977 select { 1978 case log := <-logs: 1979 // New log arrived, parse the event and forward to the user 1980 event := new(XDCValidatorWithdraw) 1981 if err := _XDCValidator.contract.UnpackLog(event, "Withdraw", log); err != nil { 1982 return err 1983 } 1984 event.Raw = log 1985 1986 select { 1987 case sink <- event: 1988 case err := <-sub.Err(): 1989 return err 1990 case <-quit: 1991 return nil 1992 } 1993 case err := <-sub.Err(): 1994 return err 1995 case <-quit: 1996 return nil 1997 } 1998 } 1999 }), nil 2000 }