github.com/jpmorganchase/quorum@v21.1.0+incompatible/permission/v2/bind/nodes.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 permission
     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  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = abi.U256
    24  	_ = bind.Bind
    25  	_ = common.Big1
    26  	_ = types.BloomLookup
    27  	_ = event.NewSubscription
    28  )
    29  
    30  // NodeManagerABI is the input ABI used to generate the binding from.
    31  const NodeManagerABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"}],\"name\":\"updateNodeStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"enodeId\",\"type\":\"string\"}],\"name\":\"getNodeDetails\",\"outputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_nodeStatus\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addAdminNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"}],\"name\":\"connectionAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addOrgNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_nodeIndex\",\"type\":\"uint256\"}],\"name\":\"getNodeDetailsFromIndex\",\"outputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_nodeStatus\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfNodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ip\",\"type\":\"string\"},{\"name\":\"_port\",\"type\":\"uint16\"},{\"name\":\"_raftport\",\"type\":\"uint16\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"approveNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_permUpgradable\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeRecoveryInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ip\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_port\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_raftport\",\"type\":\"uint16\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeRecoveryCompleted\",\"type\":\"event\"}]"
    32  
    33  var NodeManagerParsedABI, _ = abi.JSON(strings.NewReader(NodeManagerABI))
    34  
    35  // NodeManagerBin is the compiled bytecode used for deploying new contracts.
    36  var NodeManagerBin = "0x608060405234801561001057600080fd5b5060405160208061338f8339810180604052602081101561003057600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561332d806100626000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80634c573311116100665780634c5733111461042b578063549583df1461073057806397c07a9b146108f2578063b81c806a1461090f578063f82e08ac1461092957610093565b806337d50b27146100985780633f0e0e471461025e5780634530abe11461042b57806345a59e5b146105ed575b600080fd5b61025c600480360360c08110156100ae57600080fd5b810190602081018135600160201b8111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111600160201b831117156100fb57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561014d57600080fd5b82018360208201111561015f57600080fd5b803590602001918460018302840111600160201b8311171561018057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929561ffff8535811696602087013590911695919450925060608101915060400135600160201b8111156101e657600080fd5b8201836020820111156101f857600080fd5b803590602001918460018302840111600160201b8311171561021957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610aeb915050565b005b6102cc6004803603602081101561027457600080fd5b810190602081018135600160201b81111561028e57600080fd5b8201836020820111156102a057600080fd5b803590602001918460018302840111600160201b831117156102c157600080fd5b50909250905061160a565b6040805161ffff80861660608301528416608082015260a0810183905260c080825288519082015287519091829160208084019284019160e08501918c019080838360005b83811015610329578181015183820152602001610311565b50505050905090810190601f1680156103565780820380516001836020036101000a031916815260200191505b5084810383528951815289516020918201918b019080838360005b83811015610389578181015183820152602001610371565b50505050905090810190601f1680156103b65780820380516001836020036101000a031916815260200191505b5084810382528851815288516020918201918a019080838360005b838110156103e95781810151838201526020016103d1565b50505050905090810190601f1680156104165780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b61025c600480360360a081101561044157600080fd5b810190602081018135600160201b81111561045b57600080fd5b82018360208201111561046d57600080fd5b803590602001918460018302840111600160201b8311171561048e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104e057600080fd5b8201836020820111156104f257600080fd5b803590602001918460018302840111600160201b8311171561051357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929561ffff8535811696602087013590911695919450925060608101915060400135600160201b81111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460018302840111600160201b831117156105ac57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119d1945050505050565b61071c6004803603606081101561060357600080fd5b810190602081018135600160201b81111561061d57600080fd5b82018360208201111561062f57600080fd5b803590602001918460018302840111600160201b8311171561065057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156106a257600080fd5b8201836020820111156106b457600080fd5b803590602001918460018302840111600160201b831117156106d557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903561ffff169150611ec79050565b604080519115158252519081900360200190f35b61025c600480360360a081101561074657600080fd5b810190602081018135600160201b81111561076057600080fd5b82018360208201111561077257600080fd5b803590602001918460018302840111600160201b8311171561079357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156107e557600080fd5b8201836020820111156107f757600080fd5b803590602001918460018302840111600160201b8311171561081857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929561ffff8535811696602087013590911695919450925060608101915060400135600160201b81111561087e57600080fd5b82018360208201111561089057600080fd5b803590602001918460018302840111600160201b831117156108b157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506121e8945050505050565b6102cc6004803603602081101561090857600080fd5b50356125d5565b610917612879565b60408051918252519081900360200190f35b61025c600480360360a081101561093f57600080fd5b810190602081018135600160201b81111561095957600080fd5b82018360208201111561096b57600080fd5b803590602001918460018302840111600160201b8311171561098c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156109de57600080fd5b8201836020820111156109f057600080fd5b803590602001918460018302840111600160201b83111715610a1157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929561ffff8535811696602087013590911695919450925060608101915060400135600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460018302840111600160201b83111715610aaa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612880945050505050565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3857600080fd5b505afa158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b50516001600160a01b03163314610bb75760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b8560036000826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610bfd578181015183820152602001610be5565b50505050905090810190601f168015610c2a5780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152815160209283012086529085019590955250505001600020541515610caa5760408051600160e51b62461bcd02815260206004820152601e60248201527f70617373656420656e6f646520696420646f6573206e6f742065786973740000604482015290519081900360640190fd5b610cb48784612eed565b1515610cf457604051600160e51b62461bcd02815260040180806020018281038252602a815260200180613265602a913960400191505060405180910390fd5b8160011480610d035750816002145b80610d0e5750816003145b80610d195750816004145b80610d245750816005145b1515610d6457604051600160e51b62461bcd0281526004018080602001828103825260268152602001806132af6026913960400191505060405180910390fd5b6000610d6f88613047565b9050866040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610db2578181015183820152602001610d9a565b50505050905090810190601f168015610ddf5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120600182815481101515610e0957fe5b90600052602060002090600502016001016040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610ea65780601f10610e7b57610100808354040283529160200191610ea6565b820191906000526020600020905b815481529060010190602001808311610e8957829003601f168201915b50509250505060405160208183030381529060405280519060200120141580610ef957508561ffff16600182815481101515610ede57fe5b600091825260209091206002600590920201015461ffff1614155b80610f3457508461ffff16600182815481101515610f1357fe5b600091825260209091206005909102016002015462010000900461ffff1614155b15610f3f5750611601565b826001141561114857610f51886130f0565b600214610f965760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061328f833981519152604482015290519081900360640190fd5b6003600182815481101515610fa757fe5b9060005260206000209060050201600401819055507ff631019be71bc682c59150635d714061185232e98e60de8bdd87bbee239cc5c888888888886040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360005b8381101561104357818101518382015260200161102b565b50505050905090810190601f1680156110705780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156110a357818101518382015260200161108b565b50505050905090810190601f1680156110d05780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156111035781810151838201526020016110eb565b50505050905090810190601f1680156111305780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a16115ff565b826002141561124b5761115a886130f0565b60031461119f5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061328f833981519152604482015290519081900360640190fd5b60026001828154811015156111b057fe5b9060005260206000209060050201600401819055507ffb98f62dea866f0c373574c8523f611d0db1d8f19cc1b95d07a221d36a6a45de88888888886040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360008381101561104357818101518382015260200161102b565b826003141561130057600460018281548110151561126557fe5b9060005260206000209060050201600401819055507f25300d4d785e654bc9b7979700cfa0fdc9ace890a46841fecfce661fd2c41a3388888888886040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360008381101561104357818101518382015260200161102b565b826004141561140357611312886130f0565b6004146113575760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061328f833981519152604482015290519081900360640190fd5b600560018281548110151561136857fe5b9060005260206000209060050201600401819055507f72779f66ea90e28bae76fbfe03eaef5ae01699976c7493f93186ab9560ccfaa488888888886040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360008381101561104357818101518382015260200161102b565b61140c886130f0565b6005146114515760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061328f833981519152604482015290519081900360640190fd5b600260018281548110151561146257fe5b9060005260206000209060050201600401819055507f60aac8c36efdaabf125dc9ec2124bde8b3ceafe5c8b4fc8063fc4ac9017eb0be88888888886040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360005b838110156114fe5781810151838201526020016114e6565b50505050905090810190601f16801561152b5780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b8381101561155e578181015183820152602001611546565b50505050905090810190601f16801561158b5780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b838110156115be5781810151838201526020016115a6565b50505050905090810190601f1680156115eb5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a15b505b50505050505050565b6060806060600080600060026000866040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611659578181015183820152602001611641565b50505050905090810190601f1680156116865780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002054600014156116f157505060408051602080820183526000808352835180830185528181528451928301909452808252919650919450909250905080806119c7565b600061173289898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061304792505050565b905060018181548110151561174357fe5b906000526020600020906005020160030160018281548110151561176357fe5b906000526020600020906005020160000160018381548110151561178357fe5b90600052602060002090600502016001016001848154811015156117a357fe5b60009182526020909120600260059092020101546001805461ffff90921691869081106117cc57fe5b906000526020600020906005020160020160029054906101000a900461ffff166001868154811015156117fb57fe5b600091825260209182902060046005909202010154865460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815291928891908301828280156118965780601f1061186b57610100808354040283529160200191611896565b820191906000526020600020905b81548152906001019060200180831161187957829003601f168201915b5050885460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959b508a9450925084019050828280156119245780601f106118f957610100808354040283529160200191611924565b820191906000526020600020905b81548152906001019060200180831161190757829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a50899450925084019050828280156119b25780601f10611987576101008083540402835291602001916119b2565b820191906000526020600020905b81548152906001019060200180831161199557829003601f168201915b50505050509350965096509650965096509650505b9295509295509295565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1e57600080fd5b505afa158015611a32573d6000803e3d6000fd5b505050506040513d6020811015611a4857600080fd5b50516001600160a01b03163314611a9d5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b8460036000826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611ae3578181015183820152602001611acb565b50505050905090810190601f168015611b105780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181528151602092830120865290850195909552505050016000205415611b8f5760408051600160e51b62461bcd02815260206004820152601660248201527f70617373656420656e6f64652069642065786973747300000000000000000000604482015290519081900360640190fd5b60048054600101908190556040805160208082018181528a519383019390935289516003936000938c9391928392606090920191850190808383895b83811015611be3578181015183820152602001611bcb565b50505050905090810190601f168015611c105780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652858201969096529385016000908120969096555050825160c0810184528a81528083018a905261ffff808a169482019490945292871660608401525060808201859052600260a083015260018054808201808355919094528251805191946005027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60192611cbe928492909101906131cc565b506020828101518051611cd792600185019201906131cc565b506040820151600282018054606085015161ffff908116620100000263ffff0000199190941661ffff19909216919091171691909117905560808201518051611d2a9160038401916020909101906131cc565b5060a082015181600401555050507f9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d86868686866040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818151815260200191508051906020019080838360005b83811015611dbf578181015183820152602001611da7565b50505050905090810190601f168015611dec5780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b83811015611e1f578181015183820152602001611e07565b50505050905090810190601f168015611e4c5780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015611e7f578181015183820152602001611e67565b50505050905090810190601f168015611eac5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a1505050505050565b60008060009054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1657600080fd5b505afa158015611f2a573d6000803e3d6000fd5b505050506040513d6020811015611f4057600080fd5b50516001600160a01b03163314611f955760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b60036000856040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611fda578181015183820152602001611fc2565b50505050905090810190601f1680156120075780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415612041575060006121e1565b600061204c85613047565b905060018181548110151561205d57fe5b90600052602060002090600502016004015460021480156121cc5750836040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156120ba5781810151838201526020016120a2565b50505050905090810190601f1680156120e75780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012060018281548110151561211157fe5b906000526020600020906005020160010160405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156121ae5780601f10612183576101008083540402835291602001916121ae565b820191906000526020600020905b81548152906001019060200180831161219157829003601f168201915b50509250505060405160208183030381529060405280519060200120145b156121db5760019150506121e1565b60009150505b9392505050565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b15801561223557600080fd5b505afa158015612249573d6000803e3d6000fd5b505050506040513d602081101561225f57600080fd5b50516001600160a01b031633146122b45760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b8460036000826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156122fa5781810151838201526020016122e2565b50505050905090810190601f1680156123275780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652908501959095525050500160002054156123a65760408051600160e51b62461bcd02815260206004820152601660248201527f70617373656420656e6f64652069642065786973747300000000000000000000604482015290519081900360640190fd5b60048054600101908190556040805160208082018181528a519383019390935289516003936000938c9391928392606090920191850190808383895b838110156123fa5781810151838201526020016123e2565b50505050905090810190601f1680156124275780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652858201969096529385016000908120969096555050825160c0810184528a81528083018a905261ffff808a169482019490945292871660608401525060808201859052600160a083018190528054808201808355919094528251805191946005027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601926124d5928492909101906131cc565b5060208281015180516124ee92600185019201906131cc565b506040820151600282018054606085015161ffff908116620100000263ffff0000199190941661ffff199092169190911716919091179055608082015180516125419160038401916020909101906131cc565b5060a082015181600401555050507ff9bad9f8a2dccc52fad61273a7fd673335b420319506c19b87df9ce7a19732da86868686866040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff168152602001806020018481038452898181518152602001915080519060200190808383600083811015611dbf578181015183820152602001611da7565b606080606060008060006001878154811015156125ee57fe5b906000526020600020906005020160030160018881548110151561260e57fe5b906000526020600020906005020160000160018981548110151561262e57fe5b906000526020600020906005020160010160018a81548110151561264e57fe5b60009182526020909120600260059092020101546001805461ffff909216918c90811061267757fe5b906000526020600020906005020160020160029054906101000a900461ffff1660018c8154811015156126a657fe5b600091825260209182902060046005909202010154865460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815291928891908301828280156127415780601f1061271657610100808354040283529160200191612741565b820191906000526020600020905b81548152906001019060200180831161272457829003601f168201915b5050885460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959b508a9450925084019050828280156127cf5780601f106127a4576101008083540402835291602001916127cf565b820191906000526020600020905b8154815290600101906020018083116127b257829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a508994509250840190508282801561285d5780601f106128325761010080835404028352916020019161285d565b820191906000526020600020905b81548152906001019060200180831161284057829003601f168201915b5050505050935095509550955095509550955091939550919395565b6004545b90565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b1580156128cd57600080fd5b505afa1580156128e1573d6000803e3d6000fd5b505050506040513d60208110156128f757600080fd5b50516001600160a01b0316331461294c5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b8460036000826040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561299257818101518382015260200161297a565b50505050905090810190601f1680156129bf5780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152815160209283012086529085019590955250505001600020541515612a3f5760408051600160e51b62461bcd02815260206004820152601e60248201527f70617373656420656e6f646520696420646f6573206e6f742065786973740000604482015290519081900360640190fd5b612a498683612eed565b1515612a8957604051600160e51b62461bcd02815260040180806020018281038252602d8152602001806132d5602d913960400191505060405180910390fd5b612a92866130f0565b600114612ae95760408051600160e51b62461bcd02815260206004820152601c60248201527f6e6f7468696e672070656e64696e6720666f7220617070726f76616c00000000604482015290519081900360640190fd5b6000612af487613047565b9050856040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612b37578181015183820152602001612b1f565b50505050905090810190601f168015612b645780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120600182815481101515612b8e57fe5b90600052602060002090600502016001016040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015612c2b5780601f10612c0057610100808354040283529160200191612c2b565b820191906000526020600020905b815481529060010190602001808311612c0e57829003601f168201915b50509250505060405160208183030381529060405280519060200120141580612c7e57508461ffff16600182815481101515612c6357fe5b600091825260209091206002600590920201015461ffff1614155b80612cb957508361ffff16600182815481101515612c9857fe5b600091825260209091206005909102016002015462010000900461ffff1614155b15612cc45750612ee5565b6002600182815481101515612cd557fe5b9060005260206000209060050201600401819055507f9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d600182815481101515612d1a57fe5b9060005260206000209060050201600001878787600186815481101515612d3d57fe5b90600052602060002090600502016003016040518080602001806020018661ffff1661ffff1681526020018561ffff1661ffff16815260200180602001848103845289818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015612dfb5780601f10612dd057610100808354040283529160200191612dfb565b820191906000526020600020905b815481529060010190602001808311612dde57829003601f168201915b505084810383528851815288516020918201918a019080838360005b83811015612e2f578181015183820152602001612e17565b50505050905090810190601f168015612e5c5780820380516001836020036101000a031916815260200191505b50848103825285546002600019610100600184161502019091160480825260209091019086908015612ecf5780601f10612ea457610100808354040283529160200191612ecf565b820191906000526020600020905b815481529060010190602001808311612eb257829003601f168201915b50509850505050505050505060405180910390a1505b505050505050565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612f30578181015183820152602001612f18565b50505050905090810190601f168015612f5d5780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001206001612f8385613047565b81548110612f8d57fe5b60009182526020918290206040805180850194855260036005909402909201929092018054600260001961010060018416150201909116049282018390529291829160600190849080156130225780601f10612ff757610100808354040283529160200191613022565b820191906000526020600020905b81548152906001019060200180831161300557829003601f168201915b5050925050506040516020818303038152906040528051906020012014905092915050565b6000600160036000846040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613090578181015183820152602001613078565b50505050905090810190601f1680156130bd5780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001208152602001908152602001600020540390505b919050565b600060036000836040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561313757818101518382015260200161311f565b50505050905090810190601f1680156131645780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141561319e575060006130eb565b60016131a983613047565b815481106131b357fe5b9060005260206000209060050201600401549050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061320d57805160ff191683800117855561323a565b8280016001018555821561323a579182015b8281111561323a57825182559160200191906001019061321f565b5061324692915061324a565b5090565b61287d91905b80821115613246576000815560010161325056fe656e6f646520696420646f6573206e6f742062656c6f6e6720746f2074686520706173736564206f72676f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000696e76616c6964206f7065726174696f6e2e2077726f6e6720616374696f6e20706173736564656e6f646520696420646f6573206e6f742062656c6f6e6720746f2074686520706173736564206f7267206964a165627a7a7230582033fd8af5439a9af79764088da6847651cc33d3b41698fff5d54b3e47419c5c6a0029"
    37  
    38  // DeployNodeManager deploys a new Ethereum contract, binding an instance of NodeManager to it.
    39  func DeployNodeManager(auth *bind.TransactOpts, backend bind.ContractBackend, _permUpgradable common.Address) (common.Address, *types.Transaction, *NodeManager, error) {
    40  	parsed, err := abi.JSON(strings.NewReader(NodeManagerABI))
    41  	if err != nil {
    42  		return common.Address{}, nil, nil, err
    43  	}
    44  
    45  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(NodeManagerBin), backend, _permUpgradable)
    46  	if err != nil {
    47  		return common.Address{}, nil, nil, err
    48  	}
    49  	return address, tx, &NodeManager{NodeManagerCaller: NodeManagerCaller{contract: contract}, NodeManagerTransactor: NodeManagerTransactor{contract: contract}, NodeManagerFilterer: NodeManagerFilterer{contract: contract}}, nil
    50  }
    51  
    52  // NodeManager is an auto generated Go binding around an Ethereum contract.
    53  type NodeManager struct {
    54  	NodeManagerCaller     // Read-only binding to the contract
    55  	NodeManagerTransactor // Write-only binding to the contract
    56  	NodeManagerFilterer   // Log filterer for contract events
    57  }
    58  
    59  // NodeManagerCaller is an auto generated read-only Go binding around an Ethereum contract.
    60  type NodeManagerCaller struct {
    61  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    62  }
    63  
    64  // NodeManagerTransactor is an auto generated write-only Go binding around an Ethereum contract.
    65  type NodeManagerTransactor struct {
    66  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    67  }
    68  
    69  // NodeManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    70  type NodeManagerFilterer struct {
    71  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    72  }
    73  
    74  // NodeManagerSession is an auto generated Go binding around an Ethereum contract,
    75  // with pre-set call and transact options.
    76  type NodeManagerSession struct {
    77  	Contract     *NodeManager      // Generic contract binding to set the session for
    78  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    79  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    80  }
    81  
    82  // NodeManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    83  // with pre-set call options.
    84  type NodeManagerCallerSession struct {
    85  	Contract *NodeManagerCaller // Generic contract caller binding to set the session for
    86  	CallOpts bind.CallOpts      // Call options to use throughout this session
    87  }
    88  
    89  // NodeManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    90  // with pre-set transact options.
    91  type NodeManagerTransactorSession struct {
    92  	Contract     *NodeManagerTransactor // Generic contract transactor binding to set the session for
    93  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
    94  }
    95  
    96  // NodeManagerRaw is an auto generated low-level Go binding around an Ethereum contract.
    97  type NodeManagerRaw struct {
    98  	Contract *NodeManager // Generic contract binding to access the raw methods on
    99  }
   100  
   101  // NodeManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   102  type NodeManagerCallerRaw struct {
   103  	Contract *NodeManagerCaller // Generic read-only contract binding to access the raw methods on
   104  }
   105  
   106  // NodeManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   107  type NodeManagerTransactorRaw struct {
   108  	Contract *NodeManagerTransactor // Generic write-only contract binding to access the raw methods on
   109  }
   110  
   111  // NewNodeManager creates a new instance of NodeManager, bound to a specific deployed contract.
   112  func NewNodeManager(address common.Address, backend bind.ContractBackend) (*NodeManager, error) {
   113  	contract, err := bindNodeManager(address, backend, backend, backend)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	return &NodeManager{NodeManagerCaller: NodeManagerCaller{contract: contract}, NodeManagerTransactor: NodeManagerTransactor{contract: contract}, NodeManagerFilterer: NodeManagerFilterer{contract: contract}}, nil
   118  }
   119  
   120  // NewNodeManagerCaller creates a new read-only instance of NodeManager, bound to a specific deployed contract.
   121  func NewNodeManagerCaller(address common.Address, caller bind.ContractCaller) (*NodeManagerCaller, error) {
   122  	contract, err := bindNodeManager(address, caller, nil, nil)
   123  	if err != nil {
   124  		return nil, err
   125  	}
   126  	return &NodeManagerCaller{contract: contract}, nil
   127  }
   128  
   129  // NewNodeManagerTransactor creates a new write-only instance of NodeManager, bound to a specific deployed contract.
   130  func NewNodeManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*NodeManagerTransactor, error) {
   131  	contract, err := bindNodeManager(address, nil, transactor, nil)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return &NodeManagerTransactor{contract: contract}, nil
   136  }
   137  
   138  // NewNodeManagerFilterer creates a new log filterer instance of NodeManager, bound to a specific deployed contract.
   139  func NewNodeManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*NodeManagerFilterer, error) {
   140  	contract, err := bindNodeManager(address, nil, nil, filterer)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &NodeManagerFilterer{contract: contract}, nil
   145  }
   146  
   147  // bindNodeManager binds a generic wrapper to an already deployed contract.
   148  func bindNodeManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   149  	parsed, err := abi.JSON(strings.NewReader(NodeManagerABI))
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   154  }
   155  
   156  // Call invokes the (constant) contract method with params as input values and
   157  // sets the output to result. The result type might be a single field for simple
   158  // returns, a slice of interfaces for anonymous returns and a struct for named
   159  // returns.
   160  func (_NodeManager *NodeManagerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   161  	return _NodeManager.Contract.NodeManagerCaller.contract.Call(opts, result, method, params...)
   162  }
   163  
   164  // Transfer initiates a plain transaction to move funds to the contract, calling
   165  // its default method if one is available.
   166  func (_NodeManager *NodeManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   167  	return _NodeManager.Contract.NodeManagerTransactor.contract.Transfer(opts)
   168  }
   169  
   170  // Transact invokes the (paid) contract method with params as input values.
   171  func (_NodeManager *NodeManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   172  	return _NodeManager.Contract.NodeManagerTransactor.contract.Transact(opts, method, params...)
   173  }
   174  
   175  // Call invokes the (constant) contract method with params as input values and
   176  // sets the output to result. The result type might be a single field for simple
   177  // returns, a slice of interfaces for anonymous returns and a struct for named
   178  // returns.
   179  func (_NodeManager *NodeManagerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   180  	return _NodeManager.Contract.contract.Call(opts, result, method, params...)
   181  }
   182  
   183  // Transfer initiates a plain transaction to move funds to the contract, calling
   184  // its default method if one is available.
   185  func (_NodeManager *NodeManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   186  	return _NodeManager.Contract.contract.Transfer(opts)
   187  }
   188  
   189  // Transact invokes the (paid) contract method with params as input values.
   190  func (_NodeManager *NodeManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   191  	return _NodeManager.Contract.contract.Transact(opts, method, params...)
   192  }
   193  
   194  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   195  //
   196  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) constant returns(bool)
   197  func (_NodeManager *NodeManagerCaller) ConnectionAllowed(opts *bind.CallOpts, _enodeId string, _ip string, _port uint16) (bool, error) {
   198  	var (
   199  		ret0 = new(bool)
   200  	)
   201  	out := ret0
   202  	err := _NodeManager.contract.Call(opts, out, "connectionAllowed", _enodeId, _ip, _port)
   203  	return *ret0, err
   204  }
   205  
   206  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   207  //
   208  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) constant returns(bool)
   209  func (_NodeManager *NodeManagerSession) ConnectionAllowed(_enodeId string, _ip string, _port uint16) (bool, error) {
   210  	return _NodeManager.Contract.ConnectionAllowed(&_NodeManager.CallOpts, _enodeId, _ip, _port)
   211  }
   212  
   213  // ConnectionAllowed is a free data retrieval call binding the contract method 0x45a59e5b.
   214  //
   215  // Solidity: function connectionAllowed(string _enodeId, string _ip, uint16 _port) constant returns(bool)
   216  func (_NodeManager *NodeManagerCallerSession) ConnectionAllowed(_enodeId string, _ip string, _port uint16) (bool, error) {
   217  	return _NodeManager.Contract.ConnectionAllowed(&_NodeManager.CallOpts, _enodeId, _ip, _port)
   218  }
   219  
   220  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   221  //
   222  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   223  func (_NodeManager *NodeManagerCaller) GetNodeDetails(opts *bind.CallOpts, enodeId string) (struct {
   224  	OrgId      string
   225  	EnodeId    string
   226  	Ip         string
   227  	Port       uint16
   228  	Raftport   uint16
   229  	NodeStatus *big.Int
   230  }, error) {
   231  	ret := new(struct {
   232  		OrgId      string
   233  		EnodeId    string
   234  		Ip         string
   235  		Port       uint16
   236  		Raftport   uint16
   237  		NodeStatus *big.Int
   238  	})
   239  	out := ret
   240  	err := _NodeManager.contract.Call(opts, out, "getNodeDetails", enodeId)
   241  	return *ret, err
   242  }
   243  
   244  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   245  //
   246  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   247  func (_NodeManager *NodeManagerSession) GetNodeDetails(enodeId string) (struct {
   248  	OrgId      string
   249  	EnodeId    string
   250  	Ip         string
   251  	Port       uint16
   252  	Raftport   uint16
   253  	NodeStatus *big.Int
   254  }, error) {
   255  	return _NodeManager.Contract.GetNodeDetails(&_NodeManager.CallOpts, enodeId)
   256  }
   257  
   258  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   259  //
   260  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   261  func (_NodeManager *NodeManagerCallerSession) GetNodeDetails(enodeId string) (struct {
   262  	OrgId      string
   263  	EnodeId    string
   264  	Ip         string
   265  	Port       uint16
   266  	Raftport   uint16
   267  	NodeStatus *big.Int
   268  }, error) {
   269  	return _NodeManager.Contract.GetNodeDetails(&_NodeManager.CallOpts, enodeId)
   270  }
   271  
   272  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   273  //
   274  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   275  func (_NodeManager *NodeManagerCaller) GetNodeDetailsFromIndex(opts *bind.CallOpts, _nodeIndex *big.Int) (struct {
   276  	OrgId      string
   277  	EnodeId    string
   278  	Ip         string
   279  	Port       uint16
   280  	Raftport   uint16
   281  	NodeStatus *big.Int
   282  }, error) {
   283  	ret := new(struct {
   284  		OrgId      string
   285  		EnodeId    string
   286  		Ip         string
   287  		Port       uint16
   288  		Raftport   uint16
   289  		NodeStatus *big.Int
   290  	})
   291  	out := ret
   292  	err := _NodeManager.contract.Call(opts, out, "getNodeDetailsFromIndex", _nodeIndex)
   293  	return *ret, err
   294  }
   295  
   296  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   297  //
   298  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   299  func (_NodeManager *NodeManagerSession) GetNodeDetailsFromIndex(_nodeIndex *big.Int) (struct {
   300  	OrgId      string
   301  	EnodeId    string
   302  	Ip         string
   303  	Port       uint16
   304  	Raftport   uint16
   305  	NodeStatus *big.Int
   306  }, error) {
   307  	return _NodeManager.Contract.GetNodeDetailsFromIndex(&_NodeManager.CallOpts, _nodeIndex)
   308  }
   309  
   310  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   311  //
   312  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, string _ip, uint16 _port, uint16 _raftport, uint256 _nodeStatus)
   313  func (_NodeManager *NodeManagerCallerSession) GetNodeDetailsFromIndex(_nodeIndex *big.Int) (struct {
   314  	OrgId      string
   315  	EnodeId    string
   316  	Ip         string
   317  	Port       uint16
   318  	Raftport   uint16
   319  	NodeStatus *big.Int
   320  }, error) {
   321  	return _NodeManager.Contract.GetNodeDetailsFromIndex(&_NodeManager.CallOpts, _nodeIndex)
   322  }
   323  
   324  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   325  //
   326  // Solidity: function getNumberOfNodes() constant returns(uint256)
   327  func (_NodeManager *NodeManagerCaller) GetNumberOfNodes(opts *bind.CallOpts) (*big.Int, error) {
   328  	var (
   329  		ret0 = new(*big.Int)
   330  	)
   331  	out := ret0
   332  	err := _NodeManager.contract.Call(opts, out, "getNumberOfNodes")
   333  	return *ret0, err
   334  }
   335  
   336  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   337  //
   338  // Solidity: function getNumberOfNodes() constant returns(uint256)
   339  func (_NodeManager *NodeManagerSession) GetNumberOfNodes() (*big.Int, error) {
   340  	return _NodeManager.Contract.GetNumberOfNodes(&_NodeManager.CallOpts)
   341  }
   342  
   343  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   344  //
   345  // Solidity: function getNumberOfNodes() constant returns(uint256)
   346  func (_NodeManager *NodeManagerCallerSession) GetNumberOfNodes() (*big.Int, error) {
   347  	return _NodeManager.Contract.GetNumberOfNodes(&_NodeManager.CallOpts)
   348  }
   349  
   350  // AddAdminNode is a paid mutator transaction binding the contract method 0x4530abe1.
   351  //
   352  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   353  func (_NodeManager *NodeManagerTransactor) AddAdminNode(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   354  	return _NodeManager.contract.Transact(opts, "addAdminNode", _enodeId, _ip, _port, _raftport, _orgId)
   355  }
   356  
   357  // AddAdminNode is a paid mutator transaction binding the contract method 0x4530abe1.
   358  //
   359  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   360  func (_NodeManager *NodeManagerSession) AddAdminNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   361  	return _NodeManager.Contract.AddAdminNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   362  }
   363  
   364  // AddAdminNode is a paid mutator transaction binding the contract method 0x4530abe1.
   365  //
   366  // Solidity: function addAdminNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   367  func (_NodeManager *NodeManagerTransactorSession) AddAdminNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   368  	return _NodeManager.Contract.AddAdminNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   369  }
   370  
   371  // AddNode is a paid mutator transaction binding the contract method 0x549583df.
   372  //
   373  // Solidity: function addNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   374  func (_NodeManager *NodeManagerTransactor) AddNode(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   375  	return _NodeManager.contract.Transact(opts, "addNode", _enodeId, _ip, _port, _raftport, _orgId)
   376  }
   377  
   378  // AddNode is a paid mutator transaction binding the contract method 0x549583df.
   379  //
   380  // Solidity: function addNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   381  func (_NodeManager *NodeManagerSession) AddNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   382  	return _NodeManager.Contract.AddNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   383  }
   384  
   385  // AddNode is a paid mutator transaction binding the contract method 0x549583df.
   386  //
   387  // Solidity: function addNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   388  func (_NodeManager *NodeManagerTransactorSession) AddNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   389  	return _NodeManager.Contract.AddNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   390  }
   391  
   392  // AddOrgNode is a paid mutator transaction binding the contract method 0x4c573311.
   393  //
   394  // Solidity: function addOrgNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   395  func (_NodeManager *NodeManagerTransactor) AddOrgNode(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   396  	return _NodeManager.contract.Transact(opts, "addOrgNode", _enodeId, _ip, _port, _raftport, _orgId)
   397  }
   398  
   399  // AddOrgNode is a paid mutator transaction binding the contract method 0x4c573311.
   400  //
   401  // Solidity: function addOrgNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   402  func (_NodeManager *NodeManagerSession) AddOrgNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   403  	return _NodeManager.Contract.AddOrgNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   404  }
   405  
   406  // AddOrgNode is a paid mutator transaction binding the contract method 0x4c573311.
   407  //
   408  // Solidity: function addOrgNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   409  func (_NodeManager *NodeManagerTransactorSession) AddOrgNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   410  	return _NodeManager.Contract.AddOrgNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   411  }
   412  
   413  // ApproveNode is a paid mutator transaction binding the contract method 0xf82e08ac.
   414  //
   415  // Solidity: function approveNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   416  func (_NodeManager *NodeManagerTransactor) ApproveNode(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   417  	return _NodeManager.contract.Transact(opts, "approveNode", _enodeId, _ip, _port, _raftport, _orgId)
   418  }
   419  
   420  // ApproveNode is a paid mutator transaction binding the contract method 0xf82e08ac.
   421  //
   422  // Solidity: function approveNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   423  func (_NodeManager *NodeManagerSession) ApproveNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   424  	return _NodeManager.Contract.ApproveNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   425  }
   426  
   427  // ApproveNode is a paid mutator transaction binding the contract method 0xf82e08ac.
   428  //
   429  // Solidity: function approveNode(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId) returns()
   430  func (_NodeManager *NodeManagerTransactorSession) ApproveNode(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string) (*types.Transaction, error) {
   431  	return _NodeManager.Contract.ApproveNode(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId)
   432  }
   433  
   434  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x37d50b27.
   435  //
   436  // Solidity: function updateNodeStatus(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId, uint256 _action) returns()
   437  func (_NodeManager *NodeManagerTransactor) UpdateNodeStatus(opts *bind.TransactOpts, _enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string, _action *big.Int) (*types.Transaction, error) {
   438  	return _NodeManager.contract.Transact(opts, "updateNodeStatus", _enodeId, _ip, _port, _raftport, _orgId, _action)
   439  }
   440  
   441  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x37d50b27.
   442  //
   443  // Solidity: function updateNodeStatus(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId, uint256 _action) returns()
   444  func (_NodeManager *NodeManagerSession) UpdateNodeStatus(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string, _action *big.Int) (*types.Transaction, error) {
   445  	return _NodeManager.Contract.UpdateNodeStatus(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId, _action)
   446  }
   447  
   448  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x37d50b27.
   449  //
   450  // Solidity: function updateNodeStatus(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId, uint256 _action) returns()
   451  func (_NodeManager *NodeManagerTransactorSession) UpdateNodeStatus(_enodeId string, _ip string, _port uint16, _raftport uint16, _orgId string, _action *big.Int) (*types.Transaction, error) {
   452  	return _NodeManager.Contract.UpdateNodeStatus(&_NodeManager.TransactOpts, _enodeId, _ip, _port, _raftport, _orgId, _action)
   453  }
   454  
   455  // NodeManagerNodeActivatedIterator is returned from FilterNodeActivated and is used to iterate over the raw logs and unpacked data for NodeActivated events raised by the NodeManager contract.
   456  type NodeManagerNodeActivatedIterator struct {
   457  	Event *NodeManagerNodeActivated // Event containing the contract specifics and raw log
   458  
   459  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   460  	event    string              // Event name to use for unpacking event data
   461  
   462  	logs chan types.Log        // Log channel receiving the found contract events
   463  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   464  	done bool                  // Whether the subscription completed delivering logs
   465  	fail error                 // Occurred error to stop iteration
   466  }
   467  
   468  // Next advances the iterator to the subsequent event, returning whether there
   469  // are any more events found. In case of a retrieval or parsing error, false is
   470  // returned and Error() can be queried for the exact failure.
   471  func (it *NodeManagerNodeActivatedIterator) Next() bool {
   472  	// If the iterator failed, stop iterating
   473  	if it.fail != nil {
   474  		return false
   475  	}
   476  	// If the iterator completed, deliver directly whatever's available
   477  	if it.done {
   478  		select {
   479  		case log := <-it.logs:
   480  			it.Event = new(NodeManagerNodeActivated)
   481  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   482  				it.fail = err
   483  				return false
   484  			}
   485  			it.Event.Raw = log
   486  			return true
   487  
   488  		default:
   489  			return false
   490  		}
   491  	}
   492  	// Iterator still in progress, wait for either a data or an error event
   493  	select {
   494  	case log := <-it.logs:
   495  		it.Event = new(NodeManagerNodeActivated)
   496  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   497  			it.fail = err
   498  			return false
   499  		}
   500  		it.Event.Raw = log
   501  		return true
   502  
   503  	case err := <-it.sub.Err():
   504  		it.done = true
   505  		it.fail = err
   506  		return it.Next()
   507  	}
   508  }
   509  
   510  // Error returns any retrieval or parsing error occurred during filtering.
   511  func (it *NodeManagerNodeActivatedIterator) Error() error {
   512  	return it.fail
   513  }
   514  
   515  // Close terminates the iteration process, releasing any pending underlying
   516  // resources.
   517  func (it *NodeManagerNodeActivatedIterator) Close() error {
   518  	it.sub.Unsubscribe()
   519  	return nil
   520  }
   521  
   522  // NodeManagerNodeActivated represents a NodeActivated event raised by the NodeManager contract.
   523  type NodeManagerNodeActivated struct {
   524  	EnodeId  string
   525  	Ip       string
   526  	Port     uint16
   527  	Raftport uint16
   528  	OrgId    string
   529  	Raw      types.Log // Blockchain specific contextual infos
   530  }
   531  
   532  // FilterNodeActivated is a free log retrieval operation binding the contract event 0xfb98f62dea866f0c373574c8523f611d0db1d8f19cc1b95d07a221d36a6a45de.
   533  //
   534  // Solidity: event NodeActivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   535  func (_NodeManager *NodeManagerFilterer) FilterNodeActivated(opts *bind.FilterOpts) (*NodeManagerNodeActivatedIterator, error) {
   536  
   537  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeActivated")
   538  	if err != nil {
   539  		return nil, err
   540  	}
   541  	return &NodeManagerNodeActivatedIterator{contract: _NodeManager.contract, event: "NodeActivated", logs: logs, sub: sub}, nil
   542  }
   543  
   544  var NodeActivatedTopicHash = "0xfb98f62dea866f0c373574c8523f611d0db1d8f19cc1b95d07a221d36a6a45de"
   545  
   546  // WatchNodeActivated is a free log subscription operation binding the contract event 0xfb98f62dea866f0c373574c8523f611d0db1d8f19cc1b95d07a221d36a6a45de.
   547  //
   548  // Solidity: event NodeActivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   549  func (_NodeManager *NodeManagerFilterer) WatchNodeActivated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeActivated) (event.Subscription, error) {
   550  
   551  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeActivated")
   552  	if err != nil {
   553  		return nil, err
   554  	}
   555  	return event.NewSubscription(func(quit <-chan struct{}) error {
   556  		defer sub.Unsubscribe()
   557  		for {
   558  			select {
   559  			case log := <-logs:
   560  				// New log arrived, parse the event and forward to the user
   561  				event := new(NodeManagerNodeActivated)
   562  				if err := _NodeManager.contract.UnpackLog(event, "NodeActivated", log); err != nil {
   563  					return err
   564  				}
   565  				event.Raw = log
   566  
   567  				select {
   568  				case sink <- event:
   569  				case err := <-sub.Err():
   570  					return err
   571  				case <-quit:
   572  					return nil
   573  				}
   574  			case err := <-sub.Err():
   575  				return err
   576  			case <-quit:
   577  				return nil
   578  			}
   579  		}
   580  	}), nil
   581  }
   582  
   583  // ParseNodeActivated is a log parse operation binding the contract event 0xfb98f62dea866f0c373574c8523f611d0db1d8f19cc1b95d07a221d36a6a45de.
   584  //
   585  // Solidity: event NodeActivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   586  func (_NodeManager *NodeManagerFilterer) ParseNodeActivated(log types.Log) (*NodeManagerNodeActivated, error) {
   587  	event := new(NodeManagerNodeActivated)
   588  	if err := _NodeManager.contract.UnpackLog(event, "NodeActivated", log); err != nil {
   589  		return nil, err
   590  	}
   591  	return event, nil
   592  }
   593  
   594  // NodeManagerNodeApprovedIterator is returned from FilterNodeApproved and is used to iterate over the raw logs and unpacked data for NodeApproved events raised by the NodeManager contract.
   595  type NodeManagerNodeApprovedIterator struct {
   596  	Event *NodeManagerNodeApproved // Event containing the contract specifics and raw log
   597  
   598  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   599  	event    string              // Event name to use for unpacking event data
   600  
   601  	logs chan types.Log        // Log channel receiving the found contract events
   602  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   603  	done bool                  // Whether the subscription completed delivering logs
   604  	fail error                 // Occurred error to stop iteration
   605  }
   606  
   607  // Next advances the iterator to the subsequent event, returning whether there
   608  // are any more events found. In case of a retrieval or parsing error, false is
   609  // returned and Error() can be queried for the exact failure.
   610  func (it *NodeManagerNodeApprovedIterator) Next() bool {
   611  	// If the iterator failed, stop iterating
   612  	if it.fail != nil {
   613  		return false
   614  	}
   615  	// If the iterator completed, deliver directly whatever's available
   616  	if it.done {
   617  		select {
   618  		case log := <-it.logs:
   619  			it.Event = new(NodeManagerNodeApproved)
   620  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   621  				it.fail = err
   622  				return false
   623  			}
   624  			it.Event.Raw = log
   625  			return true
   626  
   627  		default:
   628  			return false
   629  		}
   630  	}
   631  	// Iterator still in progress, wait for either a data or an error event
   632  	select {
   633  	case log := <-it.logs:
   634  		it.Event = new(NodeManagerNodeApproved)
   635  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   636  			it.fail = err
   637  			return false
   638  		}
   639  		it.Event.Raw = log
   640  		return true
   641  
   642  	case err := <-it.sub.Err():
   643  		it.done = true
   644  		it.fail = err
   645  		return it.Next()
   646  	}
   647  }
   648  
   649  // Error returns any retrieval or parsing error occurred during filtering.
   650  func (it *NodeManagerNodeApprovedIterator) Error() error {
   651  	return it.fail
   652  }
   653  
   654  // Close terminates the iteration process, releasing any pending underlying
   655  // resources.
   656  func (it *NodeManagerNodeApprovedIterator) Close() error {
   657  	it.sub.Unsubscribe()
   658  	return nil
   659  }
   660  
   661  // NodeManagerNodeApproved represents a NodeApproved event raised by the NodeManager contract.
   662  type NodeManagerNodeApproved struct {
   663  	EnodeId  string
   664  	Ip       string
   665  	Port     uint16
   666  	Raftport uint16
   667  	OrgId    string
   668  	Raw      types.Log // Blockchain specific contextual infos
   669  }
   670  
   671  // FilterNodeApproved is a free log retrieval operation binding the contract event 0x9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d.
   672  //
   673  // Solidity: event NodeApproved(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   674  func (_NodeManager *NodeManagerFilterer) FilterNodeApproved(opts *bind.FilterOpts) (*NodeManagerNodeApprovedIterator, error) {
   675  
   676  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeApproved")
   677  	if err != nil {
   678  		return nil, err
   679  	}
   680  	return &NodeManagerNodeApprovedIterator{contract: _NodeManager.contract, event: "NodeApproved", logs: logs, sub: sub}, nil
   681  }
   682  
   683  var NodeApprovedTopicHash = "0x9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d"
   684  
   685  // WatchNodeApproved is a free log subscription operation binding the contract event 0x9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d.
   686  //
   687  // Solidity: event NodeApproved(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   688  func (_NodeManager *NodeManagerFilterer) WatchNodeApproved(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeApproved) (event.Subscription, error) {
   689  
   690  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeApproved")
   691  	if err != nil {
   692  		return nil, err
   693  	}
   694  	return event.NewSubscription(func(quit <-chan struct{}) error {
   695  		defer sub.Unsubscribe()
   696  		for {
   697  			select {
   698  			case log := <-logs:
   699  				// New log arrived, parse the event and forward to the user
   700  				event := new(NodeManagerNodeApproved)
   701  				if err := _NodeManager.contract.UnpackLog(event, "NodeApproved", log); err != nil {
   702  					return err
   703  				}
   704  				event.Raw = log
   705  
   706  				select {
   707  				case sink <- event:
   708  				case err := <-sub.Err():
   709  					return err
   710  				case <-quit:
   711  					return nil
   712  				}
   713  			case err := <-sub.Err():
   714  				return err
   715  			case <-quit:
   716  				return nil
   717  			}
   718  		}
   719  	}), nil
   720  }
   721  
   722  // ParseNodeApproved is a log parse operation binding the contract event 0x9394c836a3325586270659f6aa3b9f835abca9afe7fec5abfc69760bb12bce0d.
   723  //
   724  // Solidity: event NodeApproved(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   725  func (_NodeManager *NodeManagerFilterer) ParseNodeApproved(log types.Log) (*NodeManagerNodeApproved, error) {
   726  	event := new(NodeManagerNodeApproved)
   727  	if err := _NodeManager.contract.UnpackLog(event, "NodeApproved", log); err != nil {
   728  		return nil, err
   729  	}
   730  	return event, nil
   731  }
   732  
   733  // NodeManagerNodeBlacklistedIterator is returned from FilterNodeBlacklisted and is used to iterate over the raw logs and unpacked data for NodeBlacklisted events raised by the NodeManager contract.
   734  type NodeManagerNodeBlacklistedIterator struct {
   735  	Event *NodeManagerNodeBlacklisted // Event containing the contract specifics and raw log
   736  
   737  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   738  	event    string              // Event name to use for unpacking event data
   739  
   740  	logs chan types.Log        // Log channel receiving the found contract events
   741  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   742  	done bool                  // Whether the subscription completed delivering logs
   743  	fail error                 // Occurred error to stop iteration
   744  }
   745  
   746  // Next advances the iterator to the subsequent event, returning whether there
   747  // are any more events found. In case of a retrieval or parsing error, false is
   748  // returned and Error() can be queried for the exact failure.
   749  func (it *NodeManagerNodeBlacklistedIterator) Next() bool {
   750  	// If the iterator failed, stop iterating
   751  	if it.fail != nil {
   752  		return false
   753  	}
   754  	// If the iterator completed, deliver directly whatever's available
   755  	if it.done {
   756  		select {
   757  		case log := <-it.logs:
   758  			it.Event = new(NodeManagerNodeBlacklisted)
   759  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   760  				it.fail = err
   761  				return false
   762  			}
   763  			it.Event.Raw = log
   764  			return true
   765  
   766  		default:
   767  			return false
   768  		}
   769  	}
   770  	// Iterator still in progress, wait for either a data or an error event
   771  	select {
   772  	case log := <-it.logs:
   773  		it.Event = new(NodeManagerNodeBlacklisted)
   774  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   775  			it.fail = err
   776  			return false
   777  		}
   778  		it.Event.Raw = log
   779  		return true
   780  
   781  	case err := <-it.sub.Err():
   782  		it.done = true
   783  		it.fail = err
   784  		return it.Next()
   785  	}
   786  }
   787  
   788  // Error returns any retrieval or parsing error occurred during filtering.
   789  func (it *NodeManagerNodeBlacklistedIterator) Error() error {
   790  	return it.fail
   791  }
   792  
   793  // Close terminates the iteration process, releasing any pending underlying
   794  // resources.
   795  func (it *NodeManagerNodeBlacklistedIterator) Close() error {
   796  	it.sub.Unsubscribe()
   797  	return nil
   798  }
   799  
   800  // NodeManagerNodeBlacklisted represents a NodeBlacklisted event raised by the NodeManager contract.
   801  type NodeManagerNodeBlacklisted struct {
   802  	EnodeId  string
   803  	Ip       string
   804  	Port     uint16
   805  	Raftport uint16
   806  	OrgId    string
   807  	Raw      types.Log // Blockchain specific contextual infos
   808  }
   809  
   810  // FilterNodeBlacklisted is a free log retrieval operation binding the contract event 0x25300d4d785e654bc9b7979700cfa0fdc9ace890a46841fecfce661fd2c41a33.
   811  //
   812  // Solidity: event NodeBlacklisted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   813  func (_NodeManager *NodeManagerFilterer) FilterNodeBlacklisted(opts *bind.FilterOpts) (*NodeManagerNodeBlacklistedIterator, error) {
   814  
   815  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeBlacklisted")
   816  	if err != nil {
   817  		return nil, err
   818  	}
   819  	return &NodeManagerNodeBlacklistedIterator{contract: _NodeManager.contract, event: "NodeBlacklisted", logs: logs, sub: sub}, nil
   820  }
   821  
   822  var NodeBlacklistedTopicHash = "0x25300d4d785e654bc9b7979700cfa0fdc9ace890a46841fecfce661fd2c41a33"
   823  
   824  // WatchNodeBlacklisted is a free log subscription operation binding the contract event 0x25300d4d785e654bc9b7979700cfa0fdc9ace890a46841fecfce661fd2c41a33.
   825  //
   826  // Solidity: event NodeBlacklisted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   827  func (_NodeManager *NodeManagerFilterer) WatchNodeBlacklisted(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeBlacklisted) (event.Subscription, error) {
   828  
   829  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeBlacklisted")
   830  	if err != nil {
   831  		return nil, err
   832  	}
   833  	return event.NewSubscription(func(quit <-chan struct{}) error {
   834  		defer sub.Unsubscribe()
   835  		for {
   836  			select {
   837  			case log := <-logs:
   838  				// New log arrived, parse the event and forward to the user
   839  				event := new(NodeManagerNodeBlacklisted)
   840  				if err := _NodeManager.contract.UnpackLog(event, "NodeBlacklisted", log); err != nil {
   841  					return err
   842  				}
   843  				event.Raw = log
   844  
   845  				select {
   846  				case sink <- event:
   847  				case err := <-sub.Err():
   848  					return err
   849  				case <-quit:
   850  					return nil
   851  				}
   852  			case err := <-sub.Err():
   853  				return err
   854  			case <-quit:
   855  				return nil
   856  			}
   857  		}
   858  	}), nil
   859  }
   860  
   861  // ParseNodeBlacklisted is a log parse operation binding the contract event 0x25300d4d785e654bc9b7979700cfa0fdc9ace890a46841fecfce661fd2c41a33.
   862  //
   863  // Solidity: event NodeBlacklisted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   864  func (_NodeManager *NodeManagerFilterer) ParseNodeBlacklisted(log types.Log) (*NodeManagerNodeBlacklisted, error) {
   865  	event := new(NodeManagerNodeBlacklisted)
   866  	if err := _NodeManager.contract.UnpackLog(event, "NodeBlacklisted", log); err != nil {
   867  		return nil, err
   868  	}
   869  	return event, nil
   870  }
   871  
   872  // NodeManagerNodeDeactivatedIterator is returned from FilterNodeDeactivated and is used to iterate over the raw logs and unpacked data for NodeDeactivated events raised by the NodeManager contract.
   873  type NodeManagerNodeDeactivatedIterator struct {
   874  	Event *NodeManagerNodeDeactivated // Event containing the contract specifics and raw log
   875  
   876  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   877  	event    string              // Event name to use for unpacking event data
   878  
   879  	logs chan types.Log        // Log channel receiving the found contract events
   880  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   881  	done bool                  // Whether the subscription completed delivering logs
   882  	fail error                 // Occurred error to stop iteration
   883  }
   884  
   885  // Next advances the iterator to the subsequent event, returning whether there
   886  // are any more events found. In case of a retrieval or parsing error, false is
   887  // returned and Error() can be queried for the exact failure.
   888  func (it *NodeManagerNodeDeactivatedIterator) Next() bool {
   889  	// If the iterator failed, stop iterating
   890  	if it.fail != nil {
   891  		return false
   892  	}
   893  	// If the iterator completed, deliver directly whatever's available
   894  	if it.done {
   895  		select {
   896  		case log := <-it.logs:
   897  			it.Event = new(NodeManagerNodeDeactivated)
   898  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   899  				it.fail = err
   900  				return false
   901  			}
   902  			it.Event.Raw = log
   903  			return true
   904  
   905  		default:
   906  			return false
   907  		}
   908  	}
   909  	// Iterator still in progress, wait for either a data or an error event
   910  	select {
   911  	case log := <-it.logs:
   912  		it.Event = new(NodeManagerNodeDeactivated)
   913  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   914  			it.fail = err
   915  			return false
   916  		}
   917  		it.Event.Raw = log
   918  		return true
   919  
   920  	case err := <-it.sub.Err():
   921  		it.done = true
   922  		it.fail = err
   923  		return it.Next()
   924  	}
   925  }
   926  
   927  // Error returns any retrieval or parsing error occurred during filtering.
   928  func (it *NodeManagerNodeDeactivatedIterator) Error() error {
   929  	return it.fail
   930  }
   931  
   932  // Close terminates the iteration process, releasing any pending underlying
   933  // resources.
   934  func (it *NodeManagerNodeDeactivatedIterator) Close() error {
   935  	it.sub.Unsubscribe()
   936  	return nil
   937  }
   938  
   939  // NodeManagerNodeDeactivated represents a NodeDeactivated event raised by the NodeManager contract.
   940  type NodeManagerNodeDeactivated struct {
   941  	EnodeId  string
   942  	Ip       string
   943  	Port     uint16
   944  	Raftport uint16
   945  	OrgId    string
   946  	Raw      types.Log // Blockchain specific contextual infos
   947  }
   948  
   949  // FilterNodeDeactivated is a free log retrieval operation binding the contract event 0xf631019be71bc682c59150635d714061185232e98e60de8bdd87bbee239cc5c8.
   950  //
   951  // Solidity: event NodeDeactivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   952  func (_NodeManager *NodeManagerFilterer) FilterNodeDeactivated(opts *bind.FilterOpts) (*NodeManagerNodeDeactivatedIterator, error) {
   953  
   954  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeDeactivated")
   955  	if err != nil {
   956  		return nil, err
   957  	}
   958  	return &NodeManagerNodeDeactivatedIterator{contract: _NodeManager.contract, event: "NodeDeactivated", logs: logs, sub: sub}, nil
   959  }
   960  
   961  var NodeDeactivatedTopicHash = "0xf631019be71bc682c59150635d714061185232e98e60de8bdd87bbee239cc5c8"
   962  
   963  // WatchNodeDeactivated is a free log subscription operation binding the contract event 0xf631019be71bc682c59150635d714061185232e98e60de8bdd87bbee239cc5c8.
   964  //
   965  // Solidity: event NodeDeactivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
   966  func (_NodeManager *NodeManagerFilterer) WatchNodeDeactivated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeDeactivated) (event.Subscription, error) {
   967  
   968  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeDeactivated")
   969  	if err != nil {
   970  		return nil, err
   971  	}
   972  	return event.NewSubscription(func(quit <-chan struct{}) error {
   973  		defer sub.Unsubscribe()
   974  		for {
   975  			select {
   976  			case log := <-logs:
   977  				// New log arrived, parse the event and forward to the user
   978  				event := new(NodeManagerNodeDeactivated)
   979  				if err := _NodeManager.contract.UnpackLog(event, "NodeDeactivated", log); err != nil {
   980  					return err
   981  				}
   982  				event.Raw = log
   983  
   984  				select {
   985  				case sink <- event:
   986  				case err := <-sub.Err():
   987  					return err
   988  				case <-quit:
   989  					return nil
   990  				}
   991  			case err := <-sub.Err():
   992  				return err
   993  			case <-quit:
   994  				return nil
   995  			}
   996  		}
   997  	}), nil
   998  }
   999  
  1000  // ParseNodeDeactivated is a log parse operation binding the contract event 0xf631019be71bc682c59150635d714061185232e98e60de8bdd87bbee239cc5c8.
  1001  //
  1002  // Solidity: event NodeDeactivated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1003  func (_NodeManager *NodeManagerFilterer) ParseNodeDeactivated(log types.Log) (*NodeManagerNodeDeactivated, error) {
  1004  	event := new(NodeManagerNodeDeactivated)
  1005  	if err := _NodeManager.contract.UnpackLog(event, "NodeDeactivated", log); err != nil {
  1006  		return nil, err
  1007  	}
  1008  	return event, nil
  1009  }
  1010  
  1011  // NodeManagerNodeProposedIterator is returned from FilterNodeProposed and is used to iterate over the raw logs and unpacked data for NodeProposed events raised by the NodeManager contract.
  1012  type NodeManagerNodeProposedIterator struct {
  1013  	Event *NodeManagerNodeProposed // Event containing the contract specifics and raw log
  1014  
  1015  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1016  	event    string              // Event name to use for unpacking event data
  1017  
  1018  	logs chan types.Log        // Log channel receiving the found contract events
  1019  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1020  	done bool                  // Whether the subscription completed delivering logs
  1021  	fail error                 // Occurred error to stop iteration
  1022  }
  1023  
  1024  // Next advances the iterator to the subsequent event, returning whether there
  1025  // are any more events found. In case of a retrieval or parsing error, false is
  1026  // returned and Error() can be queried for the exact failure.
  1027  func (it *NodeManagerNodeProposedIterator) Next() bool {
  1028  	// If the iterator failed, stop iterating
  1029  	if it.fail != nil {
  1030  		return false
  1031  	}
  1032  	// If the iterator completed, deliver directly whatever's available
  1033  	if it.done {
  1034  		select {
  1035  		case log := <-it.logs:
  1036  			it.Event = new(NodeManagerNodeProposed)
  1037  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1038  				it.fail = err
  1039  				return false
  1040  			}
  1041  			it.Event.Raw = log
  1042  			return true
  1043  
  1044  		default:
  1045  			return false
  1046  		}
  1047  	}
  1048  	// Iterator still in progress, wait for either a data or an error event
  1049  	select {
  1050  	case log := <-it.logs:
  1051  		it.Event = new(NodeManagerNodeProposed)
  1052  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1053  			it.fail = err
  1054  			return false
  1055  		}
  1056  		it.Event.Raw = log
  1057  		return true
  1058  
  1059  	case err := <-it.sub.Err():
  1060  		it.done = true
  1061  		it.fail = err
  1062  		return it.Next()
  1063  	}
  1064  }
  1065  
  1066  // Error returns any retrieval or parsing error occurred during filtering.
  1067  func (it *NodeManagerNodeProposedIterator) Error() error {
  1068  	return it.fail
  1069  }
  1070  
  1071  // Close terminates the iteration process, releasing any pending underlying
  1072  // resources.
  1073  func (it *NodeManagerNodeProposedIterator) Close() error {
  1074  	it.sub.Unsubscribe()
  1075  	return nil
  1076  }
  1077  
  1078  // NodeManagerNodeProposed represents a NodeProposed event raised by the NodeManager contract.
  1079  type NodeManagerNodeProposed struct {
  1080  	EnodeId  string
  1081  	Ip       string
  1082  	Port     uint16
  1083  	Raftport uint16
  1084  	OrgId    string
  1085  	Raw      types.Log // Blockchain specific contextual infos
  1086  }
  1087  
  1088  // FilterNodeProposed is a free log retrieval operation binding the contract event 0xf9bad9f8a2dccc52fad61273a7fd673335b420319506c19b87df9ce7a19732da.
  1089  //
  1090  // Solidity: event NodeProposed(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1091  func (_NodeManager *NodeManagerFilterer) FilterNodeProposed(opts *bind.FilterOpts) (*NodeManagerNodeProposedIterator, error) {
  1092  
  1093  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeProposed")
  1094  	if err != nil {
  1095  		return nil, err
  1096  	}
  1097  	return &NodeManagerNodeProposedIterator{contract: _NodeManager.contract, event: "NodeProposed", logs: logs, sub: sub}, nil
  1098  }
  1099  
  1100  var NodeProposedTopicHash = "0xf9bad9f8a2dccc52fad61273a7fd673335b420319506c19b87df9ce7a19732da"
  1101  
  1102  // WatchNodeProposed is a free log subscription operation binding the contract event 0xf9bad9f8a2dccc52fad61273a7fd673335b420319506c19b87df9ce7a19732da.
  1103  //
  1104  // Solidity: event NodeProposed(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1105  func (_NodeManager *NodeManagerFilterer) WatchNodeProposed(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeProposed) (event.Subscription, error) {
  1106  
  1107  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeProposed")
  1108  	if err != nil {
  1109  		return nil, err
  1110  	}
  1111  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1112  		defer sub.Unsubscribe()
  1113  		for {
  1114  			select {
  1115  			case log := <-logs:
  1116  				// New log arrived, parse the event and forward to the user
  1117  				event := new(NodeManagerNodeProposed)
  1118  				if err := _NodeManager.contract.UnpackLog(event, "NodeProposed", log); err != nil {
  1119  					return err
  1120  				}
  1121  				event.Raw = log
  1122  
  1123  				select {
  1124  				case sink <- event:
  1125  				case err := <-sub.Err():
  1126  					return err
  1127  				case <-quit:
  1128  					return nil
  1129  				}
  1130  			case err := <-sub.Err():
  1131  				return err
  1132  			case <-quit:
  1133  				return nil
  1134  			}
  1135  		}
  1136  	}), nil
  1137  }
  1138  
  1139  // ParseNodeProposed is a log parse operation binding the contract event 0xf9bad9f8a2dccc52fad61273a7fd673335b420319506c19b87df9ce7a19732da.
  1140  //
  1141  // Solidity: event NodeProposed(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1142  func (_NodeManager *NodeManagerFilterer) ParseNodeProposed(log types.Log) (*NodeManagerNodeProposed, error) {
  1143  	event := new(NodeManagerNodeProposed)
  1144  	if err := _NodeManager.contract.UnpackLog(event, "NodeProposed", log); err != nil {
  1145  		return nil, err
  1146  	}
  1147  	return event, nil
  1148  }
  1149  
  1150  // NodeManagerNodeRecoveryCompletedIterator is returned from FilterNodeRecoveryCompleted and is used to iterate over the raw logs and unpacked data for NodeRecoveryCompleted events raised by the NodeManager contract.
  1151  type NodeManagerNodeRecoveryCompletedIterator struct {
  1152  	Event *NodeManagerNodeRecoveryCompleted // Event containing the contract specifics and raw log
  1153  
  1154  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1155  	event    string              // Event name to use for unpacking event data
  1156  
  1157  	logs chan types.Log        // Log channel receiving the found contract events
  1158  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1159  	done bool                  // Whether the subscription completed delivering logs
  1160  	fail error                 // Occurred error to stop iteration
  1161  }
  1162  
  1163  // Next advances the iterator to the subsequent event, returning whether there
  1164  // are any more events found. In case of a retrieval or parsing error, false is
  1165  // returned and Error() can be queried for the exact failure.
  1166  func (it *NodeManagerNodeRecoveryCompletedIterator) Next() bool {
  1167  	// If the iterator failed, stop iterating
  1168  	if it.fail != nil {
  1169  		return false
  1170  	}
  1171  	// If the iterator completed, deliver directly whatever's available
  1172  	if it.done {
  1173  		select {
  1174  		case log := <-it.logs:
  1175  			it.Event = new(NodeManagerNodeRecoveryCompleted)
  1176  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1177  				it.fail = err
  1178  				return false
  1179  			}
  1180  			it.Event.Raw = log
  1181  			return true
  1182  
  1183  		default:
  1184  			return false
  1185  		}
  1186  	}
  1187  	// Iterator still in progress, wait for either a data or an error event
  1188  	select {
  1189  	case log := <-it.logs:
  1190  		it.Event = new(NodeManagerNodeRecoveryCompleted)
  1191  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1192  			it.fail = err
  1193  			return false
  1194  		}
  1195  		it.Event.Raw = log
  1196  		return true
  1197  
  1198  	case err := <-it.sub.Err():
  1199  		it.done = true
  1200  		it.fail = err
  1201  		return it.Next()
  1202  	}
  1203  }
  1204  
  1205  // Error returns any retrieval or parsing error occurred during filtering.
  1206  func (it *NodeManagerNodeRecoveryCompletedIterator) Error() error {
  1207  	return it.fail
  1208  }
  1209  
  1210  // Close terminates the iteration process, releasing any pending underlying
  1211  // resources.
  1212  func (it *NodeManagerNodeRecoveryCompletedIterator) Close() error {
  1213  	it.sub.Unsubscribe()
  1214  	return nil
  1215  }
  1216  
  1217  // NodeManagerNodeRecoveryCompleted represents a NodeRecoveryCompleted event raised by the NodeManager contract.
  1218  type NodeManagerNodeRecoveryCompleted struct {
  1219  	EnodeId  string
  1220  	Ip       string
  1221  	Port     uint16
  1222  	Raftport uint16
  1223  	OrgId    string
  1224  	Raw      types.Log // Blockchain specific contextual infos
  1225  }
  1226  
  1227  // FilterNodeRecoveryCompleted is a free log retrieval operation binding the contract event 0x60aac8c36efdaabf125dc9ec2124bde8b3ceafe5c8b4fc8063fc4ac9017eb0be.
  1228  //
  1229  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1230  func (_NodeManager *NodeManagerFilterer) FilterNodeRecoveryCompleted(opts *bind.FilterOpts) (*NodeManagerNodeRecoveryCompletedIterator, error) {
  1231  
  1232  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeRecoveryCompleted")
  1233  	if err != nil {
  1234  		return nil, err
  1235  	}
  1236  	return &NodeManagerNodeRecoveryCompletedIterator{contract: _NodeManager.contract, event: "NodeRecoveryCompleted", logs: logs, sub: sub}, nil
  1237  }
  1238  
  1239  var NodeRecoveryCompletedTopicHash = "0x60aac8c36efdaabf125dc9ec2124bde8b3ceafe5c8b4fc8063fc4ac9017eb0be"
  1240  
  1241  // WatchNodeRecoveryCompleted is a free log subscription operation binding the contract event 0x60aac8c36efdaabf125dc9ec2124bde8b3ceafe5c8b4fc8063fc4ac9017eb0be.
  1242  //
  1243  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1244  func (_NodeManager *NodeManagerFilterer) WatchNodeRecoveryCompleted(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeRecoveryCompleted) (event.Subscription, error) {
  1245  
  1246  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeRecoveryCompleted")
  1247  	if err != nil {
  1248  		return nil, err
  1249  	}
  1250  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1251  		defer sub.Unsubscribe()
  1252  		for {
  1253  			select {
  1254  			case log := <-logs:
  1255  				// New log arrived, parse the event and forward to the user
  1256  				event := new(NodeManagerNodeRecoveryCompleted)
  1257  				if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryCompleted", log); err != nil {
  1258  					return err
  1259  				}
  1260  				event.Raw = log
  1261  
  1262  				select {
  1263  				case sink <- event:
  1264  				case err := <-sub.Err():
  1265  					return err
  1266  				case <-quit:
  1267  					return nil
  1268  				}
  1269  			case err := <-sub.Err():
  1270  				return err
  1271  			case <-quit:
  1272  				return nil
  1273  			}
  1274  		}
  1275  	}), nil
  1276  }
  1277  
  1278  // ParseNodeRecoveryCompleted is a log parse operation binding the contract event 0x60aac8c36efdaabf125dc9ec2124bde8b3ceafe5c8b4fc8063fc4ac9017eb0be.
  1279  //
  1280  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1281  func (_NodeManager *NodeManagerFilterer) ParseNodeRecoveryCompleted(log types.Log) (*NodeManagerNodeRecoveryCompleted, error) {
  1282  	event := new(NodeManagerNodeRecoveryCompleted)
  1283  	if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryCompleted", log); err != nil {
  1284  		return nil, err
  1285  	}
  1286  	return event, nil
  1287  }
  1288  
  1289  // NodeManagerNodeRecoveryInitiatedIterator is returned from FilterNodeRecoveryInitiated and is used to iterate over the raw logs and unpacked data for NodeRecoveryInitiated events raised by the NodeManager contract.
  1290  type NodeManagerNodeRecoveryInitiatedIterator struct {
  1291  	Event *NodeManagerNodeRecoveryInitiated // Event containing the contract specifics and raw log
  1292  
  1293  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1294  	event    string              // Event name to use for unpacking event data
  1295  
  1296  	logs chan types.Log        // Log channel receiving the found contract events
  1297  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1298  	done bool                  // Whether the subscription completed delivering logs
  1299  	fail error                 // Occurred error to stop iteration
  1300  }
  1301  
  1302  // Next advances the iterator to the subsequent event, returning whether there
  1303  // are any more events found. In case of a retrieval or parsing error, false is
  1304  // returned and Error() can be queried for the exact failure.
  1305  func (it *NodeManagerNodeRecoveryInitiatedIterator) Next() bool {
  1306  	// If the iterator failed, stop iterating
  1307  	if it.fail != nil {
  1308  		return false
  1309  	}
  1310  	// If the iterator completed, deliver directly whatever's available
  1311  	if it.done {
  1312  		select {
  1313  		case log := <-it.logs:
  1314  			it.Event = new(NodeManagerNodeRecoveryInitiated)
  1315  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1316  				it.fail = err
  1317  				return false
  1318  			}
  1319  			it.Event.Raw = log
  1320  			return true
  1321  
  1322  		default:
  1323  			return false
  1324  		}
  1325  	}
  1326  	// Iterator still in progress, wait for either a data or an error event
  1327  	select {
  1328  	case log := <-it.logs:
  1329  		it.Event = new(NodeManagerNodeRecoveryInitiated)
  1330  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1331  			it.fail = err
  1332  			return false
  1333  		}
  1334  		it.Event.Raw = log
  1335  		return true
  1336  
  1337  	case err := <-it.sub.Err():
  1338  		it.done = true
  1339  		it.fail = err
  1340  		return it.Next()
  1341  	}
  1342  }
  1343  
  1344  // Error returns any retrieval or parsing error occurred during filtering.
  1345  func (it *NodeManagerNodeRecoveryInitiatedIterator) Error() error {
  1346  	return it.fail
  1347  }
  1348  
  1349  // Close terminates the iteration process, releasing any pending underlying
  1350  // resources.
  1351  func (it *NodeManagerNodeRecoveryInitiatedIterator) Close() error {
  1352  	it.sub.Unsubscribe()
  1353  	return nil
  1354  }
  1355  
  1356  // NodeManagerNodeRecoveryInitiated represents a NodeRecoveryInitiated event raised by the NodeManager contract.
  1357  type NodeManagerNodeRecoveryInitiated struct {
  1358  	EnodeId  string
  1359  	Ip       string
  1360  	Port     uint16
  1361  	Raftport uint16
  1362  	OrgId    string
  1363  	Raw      types.Log // Blockchain specific contextual infos
  1364  }
  1365  
  1366  // FilterNodeRecoveryInitiated is a free log retrieval operation binding the contract event 0x72779f66ea90e28bae76fbfe03eaef5ae01699976c7493f93186ab9560ccfaa4.
  1367  //
  1368  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1369  func (_NodeManager *NodeManagerFilterer) FilterNodeRecoveryInitiated(opts *bind.FilterOpts) (*NodeManagerNodeRecoveryInitiatedIterator, error) {
  1370  
  1371  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeRecoveryInitiated")
  1372  	if err != nil {
  1373  		return nil, err
  1374  	}
  1375  	return &NodeManagerNodeRecoveryInitiatedIterator{contract: _NodeManager.contract, event: "NodeRecoveryInitiated", logs: logs, sub: sub}, nil
  1376  }
  1377  
  1378  var NodeRecoveryInitiatedTopicHash = "0x72779f66ea90e28bae76fbfe03eaef5ae01699976c7493f93186ab9560ccfaa4"
  1379  
  1380  // WatchNodeRecoveryInitiated is a free log subscription operation binding the contract event 0x72779f66ea90e28bae76fbfe03eaef5ae01699976c7493f93186ab9560ccfaa4.
  1381  //
  1382  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1383  func (_NodeManager *NodeManagerFilterer) WatchNodeRecoveryInitiated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeRecoveryInitiated) (event.Subscription, error) {
  1384  
  1385  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeRecoveryInitiated")
  1386  	if err != nil {
  1387  		return nil, err
  1388  	}
  1389  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1390  		defer sub.Unsubscribe()
  1391  		for {
  1392  			select {
  1393  			case log := <-logs:
  1394  				// New log arrived, parse the event and forward to the user
  1395  				event := new(NodeManagerNodeRecoveryInitiated)
  1396  				if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryInitiated", log); err != nil {
  1397  					return err
  1398  				}
  1399  				event.Raw = log
  1400  
  1401  				select {
  1402  				case sink <- event:
  1403  				case err := <-sub.Err():
  1404  					return err
  1405  				case <-quit:
  1406  					return nil
  1407  				}
  1408  			case err := <-sub.Err():
  1409  				return err
  1410  			case <-quit:
  1411  				return nil
  1412  			}
  1413  		}
  1414  	}), nil
  1415  }
  1416  
  1417  // ParseNodeRecoveryInitiated is a log parse operation binding the contract event 0x72779f66ea90e28bae76fbfe03eaef5ae01699976c7493f93186ab9560ccfaa4.
  1418  //
  1419  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _ip, uint16 _port, uint16 _raftport, string _orgId)
  1420  func (_NodeManager *NodeManagerFilterer) ParseNodeRecoveryInitiated(log types.Log) (*NodeManagerNodeRecoveryInitiated, error) {
  1421  	event := new(NodeManagerNodeRecoveryInitiated)
  1422  	if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryInitiated", log); err != nil {
  1423  		return nil, err
  1424  	}
  1425  	return event, nil
  1426  }