github.com/jpmorganchase/quorum@v21.1.0+incompatible/permission/v1/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\":\"_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\":\"_nodeStatus\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addOrgNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"approveNode\",\"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\":\"_nodeStatus\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"_orgId\",\"type\":\"string\"}],\"name\":\"addAdminNode\",\"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\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"NodeRecoveryInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"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 = "0x608060405234801561001057600080fd5b5060405160208061250b8339810180604052602081101561003057600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556124a9806100626000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806397c07a9b1161005b57806397c07a9b1461041c578063a97a440614610439578063b81c806a146104f7578063e3b09d84146102a057610088565b80630cc501461461008d5780633f0e0e471461014d5780633f5e1a45146102a057806386bc36521461035e575b600080fd5b61014b600480360360608110156100a357600080fd5b810190602081018135600160201b8111156100bd57600080fd5b8201836020820111156100cf57600080fd5b803590602001918460018302840111600160201b831117156100f057600080fd5b919390929091602081019035600160201b81111561010d57600080fd5b82018360208201111561011f57600080fd5b803590602001918460018302840111600160201b8311171561014057600080fd5b919350915035610511565b005b6101bb6004803603602081101561016357600080fd5b810190602081018135600160201b81111561017d57600080fd5b82018360208201111561018f57600080fd5b803590602001918460018302840111600160201b831117156101b057600080fd5b509092509050610f21565b604051808060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156102025781810151838201526020016101ea565b50505050905090810190601f16801561022f5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561026257818101518382015260200161024a565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61014b600480360360408110156102b657600080fd5b810190602081018135600160201b8111156102d057600080fd5b8201836020820111156102e257600080fd5b803590602001918460018302840111600160201b8311171561030357600080fd5b919390929091602081019035600160201b81111561032057600080fd5b82018360208201111561033257600080fd5b803590602001918460018302840111600160201b8311171561035357600080fd5b5090925090506111f7565b61014b6004803603604081101561037457600080fd5b810190602081018135600160201b81111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460018302840111600160201b831117156103c157600080fd5b919390929091602081019035600160201b8111156103de57600080fd5b8201836020820111156103f057600080fd5b803590602001918460018302840111600160201b8311171561041157600080fd5b5090925090506115d0565b6101bb6004803603602081101561043257600080fd5b5035611af2565b61014b6004803603604081101561044f57600080fd5b810190602081018135600160201b81111561046957600080fd5b82018360208201111561047b57600080fd5b803590602001918460018302840111600160201b8311171561049c57600080fd5b919390929091602081019035600160201b8111156104b957600080fd5b8201836020820111156104cb57600080fd5b803590602001918460018302840111600160201b831117156104ec57600080fd5b509092509050611c81565b6104ff61205a565b60408051918252519081900360200190f35b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d602081101561058857600080fd5b50516001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602080820181815288519383019390935287516002975093955087945091928392606090920191850190808383895b8381101561065a578181015183820152602001610642565b50505050905090810190601f1680156106875780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181528151602092830120865290850195909552505050016000205415156107075760408051600160e51b62461bcd02815260206004820152601e60248201527f70617373656420656e6f646520696420646f6573206e6f742065786973740000604482015290519081900360640190fd5b61077a86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061206192505050565b15156107ba57604051600160e51b62461bcd02815260040180806020018281038252602a8152602001806123e1602a913960400191505060405180910390fd5b81600114806107c95750816002145b806107d45750816003145b806107df5750816004145b806107ea5750816005145b151561082a57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061242b6026913960400191505060405180910390fd5b81600114156109aa5761087286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121c392505050565b6002146108b75760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061240b833981519152604482015290519081900360640190fd5b600360016108fa88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b8154811061090457fe5b9060005260206000209060030201600201819055507fc6c3720fe673e87bb26e06be713d514278aa94c3939cfe7c64b9bea4d486824a868686866040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a1610f19565b8160021415610b2a576109f286868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121c392505050565b600314610a375760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061240b833981519152604482015290519081900360640190fd5b60026001610a7a88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b81548110610a8457fe5b9060005260206000209060030201600201819055507f49796be3ca168a59c8ae46c75a36a9bb3a84753d3e12a812f93ae010e783b14f868686866040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a1610f19565b8160031415610c265760046001610b7688888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b81548110610b8057fe5b9060005260206000209060030201600201819055507f4714623279994517c446c8fb72c3fdaca26434da1e2490d3976fe0cd880cfa7a868686866040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a1610f19565b8160041415610da657610c6e86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121c392505050565b600414610cb35760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061240b833981519152604482015290519081900360640190fd5b60056001610cf688888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b81548110610d0057fe5b9060005260206000209060030201600201819055507ffd385c618a1e89d01fb9a21780846793e282e8bc0b60caf6ccb3e422d543fbfb868686866040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a1610f19565b610de586868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121c392505050565b600514610e2a5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061240b833981519152604482015290519081900360640190fd5b60026001610e6d88888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b81548110610e7757fe5b9060005260206000209060030201600201819055507f787d7bc525e7c4658c64e3e456d974a1be21cc196e8162a4bf1337a12cb38dac868686866040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a15b505050505050565b606080600060026000836040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015610f6b578181015183820152602001610f53565b50505050905090810190601f168015610f985780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141561102857848460006040518060200160405280600081525092919082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699509197509195506111f0945050505050565b600061106986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b905060018181548110151561107a57fe5b906000526020600020906003020160010160018281548110151561109a57fe5b90600052602060002090600302016000016001838154811015156110ba57fe5b60009182526020918290206002600390920201810154845460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835290928591908301828280156111535780601f1061112857610100808354040283529160200191611153565b820191906000526020600020905b81548152906001019060200180831161113657829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959850879450925084019050828280156111e15780601f106111b6576101008083540402835291602001916111e1565b820191906000526020600020905b8154815290600101906020018083116111c457829003601f168201915b50505050509150935093509350505b9250925092565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b15801561124457600080fd5b505afa158015611258573d6000803e3d6000fd5b505050506040513d602081101561126e57600080fd5b50516001600160a01b031633146112c35760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602080820181815288519383019390935287516002975093955087945091928392606090920191850190808383895b83811015611340578181015183820152602001611328565b50505050905090810190601f16801561136d5780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652908501959095525050500160002054156113ec5760408051600160e51b62461bcd02815260206004820152601660248201527f70617373656420656e6f64652069642065786973747300000000000000000000604482015290519081900360640190fd5b6003805460010190819055604080516020808201908152918101879052600291600091899189918190606001848480828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001208152602001908152602001600020819055506001604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f88018190048102820181019092528681529181019190879087908190840183828082843760009201829052509385525050600260209384015250835460018101808655948252908290208351805160039093029091019261151692849290910190612348565b50602082810151805161152f9260018501920190612348565b50604082015181600201555050507f0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d858585856040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050505050565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b15801561161d57600080fd5b505afa158015611631573d6000803e3d6000fd5b505050506040513d602081101561164757600080fd5b50516001600160a01b0316331461169c5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602080820181815288519383019390935287516002975093955087945091928392606090920191850190808383895b83811015611719578181015183820152602001611701565b50505050905090810190601f1680156117465780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181528151602092830120865290850195909552505050016000205415156117c65760408051600160e51b62461bcd02815260206004820152601e60248201527f70617373656420656e6f646520696420646f6573206e6f742065786973740000604482015290519081900360640190fd5b61183985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152925087915086908190840183828082843760009201919091525061206192505050565b151561187957604051600160e51b62461bcd02815260040180806020018281038252602d815260200180612451602d913960400191505060405180910390fd5b6118b885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121c392505050565b60011461190f5760408051600160e51b62461bcd02815260206004820152601c60248201527f6e6f7468696e672070656e64696e6720666f7220617070726f76616c00000000604482015290519081900360640190fd5b600061195086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506122a092505050565b9050600260018281548110151561196357fe5b9060005260206000209060030201600201819055507f0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d6001828154811015156119a857fe5b90600052602060002090600302016000016001838154811015156119c857fe5b9060005260206000209060030201600101604051808060200180602001838103835285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611a665780601f10611a3b57610100808354040283529160200191611a66565b820191906000526020600020905b815481529060010190602001808311611a4957829003601f168201915b5050838103825284546002600019610100600184161502019091160480825260209091019085908015611ada5780601f10611aaf57610100808354040283529160200191611ada565b820191906000526020600020905b815481529060010190602001808311611abd57829003601f168201915b505094505050505060405180910390a1505050505050565b6060806000600184815481101515611b0657fe5b9060005260206000209060030201600101600185815481101515611b2657fe5b9060005260206000209060030201600001600186815481101515611b4657fe5b60009182526020918290206002600390920201810154845460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529092859190830182828015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015611c6d5780601f10611c4257610100808354040283529160200191611c6d565b820191906000526020600020905b815481529060010190602001808311611c5057829003601f168201915b505050505091509250925092509193909250565b6000809054906101000a90046001600160a01b03166001600160a01b0316630e32cf906040518163ffffffff1660e01b815260040160206040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6020811015611cf857600080fd5b50516001600160a01b03163314611d4d5760408051600160e51b62461bcd02815260206004820152600e6024820152600160911b6d34b73b30b634b21031b0b63632b902604482015290519081900360640190fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602080820181815288519383019390935287516002975093955087945091928392606090920191850190808383895b83811015611dca578181015183820152602001611db2565b50505050905090810190601f168015611df75780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181528151602092830120865290850195909552505050016000205415611e765760408051600160e51b62461bcd02815260206004820152601660248201527f70617373656420656e6f64652069642065786973747300000000000000000000604482015290519081900360640190fd5b6003805460010190819055604080516020808201908152918101879052600291600091899189918190606001848480828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001208152602001908152602001600020819055506001604051806060016040528087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f880181900481028201810190925286815291810191908790879081908401838280828437600092018290525093855250506001602093840181905285549081018087559583529183902084518051600390940290910193611fa093859350910190612348565b506020828101518051611fb99260018501920190612348565b50604082015181600201555050507fb1a7eec7dd1a516c3132d6d1f770758b19aa34c3a07c138caf662688b7e3556f858585856040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050505050565b6003545b90565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156120a457818101518382015260200161208c565b50505050905090810190601f1680156120d15780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012060016120f7856122a0565b8154811061210157fe5b9060005260206000209060030201600101604051602001808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561219e5780601f106121735761010080835404028352916020019161219e565b820191906000526020600020905b81548152906001019060200180831161218157829003601f168201915b5050925050506040516020818303038152906040528051906020012014905092915050565b600060026000836040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561220a5781810151838201526020016121f2565b50505050905090810190601f1680156122375780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002054600014156122715750600061229b565b600161227c836122a0565b8154811061228657fe5b90600052602060002090600302016002015490505b919050565b6000600160026000846040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156122e95781810151838201526020016122d1565b50505050905090810190601f1680156123165780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002054039050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061238957805160ff19168380011785556123b6565b828001600101855582156123b6579182015b828111156123b657825182559160200191906001019061239b565b506123c29291506123c6565b5090565b61205e91905b808211156123c257600081556001016123cc56fe656e6f646520696420646f6573206e6f742062656c6f6e6720746f2074686520706173736564206f72676f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000696e76616c6964206f7065726174696f6e2e2077726f6e6720616374696f6e20706173736564656e6f646520696420646f6573206e6f742062656c6f6e6720746f2074686520706173736564206f7267206964a165627a7a723058207ca0dd787547cf61d1f16df314986310b2a2c8f853fdca9e4a4c784046b0864c0029"
    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  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   195  //
   196  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   197  func (_NodeManager *NodeManagerCaller) GetNodeDetails(opts *bind.CallOpts, enodeId string) (struct {
   198  	OrgId      string
   199  	EnodeId    string
   200  	NodeStatus *big.Int
   201  }, error) {
   202  	ret := new(struct {
   203  		OrgId      string
   204  		EnodeId    string
   205  		NodeStatus *big.Int
   206  	})
   207  	out := ret
   208  	err := _NodeManager.contract.Call(opts, out, "getNodeDetails", enodeId)
   209  	return *ret, err
   210  }
   211  
   212  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   213  //
   214  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   215  func (_NodeManager *NodeManagerSession) GetNodeDetails(enodeId string) (struct {
   216  	OrgId      string
   217  	EnodeId    string
   218  	NodeStatus *big.Int
   219  }, error) {
   220  	return _NodeManager.Contract.GetNodeDetails(&_NodeManager.CallOpts, enodeId)
   221  }
   222  
   223  // GetNodeDetails is a free data retrieval call binding the contract method 0x3f0e0e47.
   224  //
   225  // Solidity: function getNodeDetails(string enodeId) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   226  func (_NodeManager *NodeManagerCallerSession) GetNodeDetails(enodeId string) (struct {
   227  	OrgId      string
   228  	EnodeId    string
   229  	NodeStatus *big.Int
   230  }, error) {
   231  	return _NodeManager.Contract.GetNodeDetails(&_NodeManager.CallOpts, enodeId)
   232  }
   233  
   234  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   235  //
   236  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   237  func (_NodeManager *NodeManagerCaller) GetNodeDetailsFromIndex(opts *bind.CallOpts, _nodeIndex *big.Int) (struct {
   238  	OrgId      string
   239  	EnodeId    string
   240  	NodeStatus *big.Int
   241  }, error) {
   242  	ret := new(struct {
   243  		OrgId      string
   244  		EnodeId    string
   245  		NodeStatus *big.Int
   246  	})
   247  	out := ret
   248  	err := _NodeManager.contract.Call(opts, out, "getNodeDetailsFromIndex", _nodeIndex)
   249  	return *ret, err
   250  }
   251  
   252  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   253  //
   254  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   255  func (_NodeManager *NodeManagerSession) GetNodeDetailsFromIndex(_nodeIndex *big.Int) (struct {
   256  	OrgId      string
   257  	EnodeId    string
   258  	NodeStatus *big.Int
   259  }, error) {
   260  	return _NodeManager.Contract.GetNodeDetailsFromIndex(&_NodeManager.CallOpts, _nodeIndex)
   261  }
   262  
   263  // GetNodeDetailsFromIndex is a free data retrieval call binding the contract method 0x97c07a9b.
   264  //
   265  // Solidity: function getNodeDetailsFromIndex(uint256 _nodeIndex) constant returns(string _orgId, string _enodeId, uint256 _nodeStatus)
   266  func (_NodeManager *NodeManagerCallerSession) GetNodeDetailsFromIndex(_nodeIndex *big.Int) (struct {
   267  	OrgId      string
   268  	EnodeId    string
   269  	NodeStatus *big.Int
   270  }, error) {
   271  	return _NodeManager.Contract.GetNodeDetailsFromIndex(&_NodeManager.CallOpts, _nodeIndex)
   272  }
   273  
   274  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   275  //
   276  // Solidity: function getNumberOfNodes() constant returns(uint256)
   277  func (_NodeManager *NodeManagerCaller) GetNumberOfNodes(opts *bind.CallOpts) (*big.Int, error) {
   278  	var (
   279  		ret0 = new(*big.Int)
   280  	)
   281  	out := ret0
   282  	err := _NodeManager.contract.Call(opts, out, "getNumberOfNodes")
   283  	return *ret0, err
   284  }
   285  
   286  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   287  //
   288  // Solidity: function getNumberOfNodes() constant returns(uint256)
   289  func (_NodeManager *NodeManagerSession) GetNumberOfNodes() (*big.Int, error) {
   290  	return _NodeManager.Contract.GetNumberOfNodes(&_NodeManager.CallOpts)
   291  }
   292  
   293  // GetNumberOfNodes is a free data retrieval call binding the contract method 0xb81c806a.
   294  //
   295  // Solidity: function getNumberOfNodes() constant returns(uint256)
   296  func (_NodeManager *NodeManagerCallerSession) GetNumberOfNodes() (*big.Int, error) {
   297  	return _NodeManager.Contract.GetNumberOfNodes(&_NodeManager.CallOpts)
   298  }
   299  
   300  // AddAdminNode is a paid mutator transaction binding the contract method 0xe3b09d84.
   301  //
   302  // Solidity: function addAdminNode(string _enodeId, string _orgId) returns()
   303  func (_NodeManager *NodeManagerTransactor) AddAdminNode(opts *bind.TransactOpts, _enodeId string, _orgId string) (*types.Transaction, error) {
   304  	return _NodeManager.contract.Transact(opts, "addAdminNode", _enodeId, _orgId)
   305  }
   306  
   307  // AddAdminNode is a paid mutator transaction binding the contract method 0xe3b09d84.
   308  //
   309  // Solidity: function addAdminNode(string _enodeId, string _orgId) returns()
   310  func (_NodeManager *NodeManagerSession) AddAdminNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   311  	return _NodeManager.Contract.AddAdminNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   312  }
   313  
   314  // AddAdminNode is a paid mutator transaction binding the contract method 0xe3b09d84.
   315  //
   316  // Solidity: function addAdminNode(string _enodeId, string _orgId) returns()
   317  func (_NodeManager *NodeManagerTransactorSession) AddAdminNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   318  	return _NodeManager.Contract.AddAdminNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   319  }
   320  
   321  // AddNode is a paid mutator transaction binding the contract method 0xa97a4406.
   322  //
   323  // Solidity: function addNode(string _enodeId, string _orgId) returns()
   324  func (_NodeManager *NodeManagerTransactor) AddNode(opts *bind.TransactOpts, _enodeId string, _orgId string) (*types.Transaction, error) {
   325  	return _NodeManager.contract.Transact(opts, "addNode", _enodeId, _orgId)
   326  }
   327  
   328  // AddNode is a paid mutator transaction binding the contract method 0xa97a4406.
   329  //
   330  // Solidity: function addNode(string _enodeId, string _orgId) returns()
   331  func (_NodeManager *NodeManagerSession) AddNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   332  	return _NodeManager.Contract.AddNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   333  }
   334  
   335  // AddNode is a paid mutator transaction binding the contract method 0xa97a4406.
   336  //
   337  // Solidity: function addNode(string _enodeId, string _orgId) returns()
   338  func (_NodeManager *NodeManagerTransactorSession) AddNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   339  	return _NodeManager.Contract.AddNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   340  }
   341  
   342  // AddOrgNode is a paid mutator transaction binding the contract method 0x3f5e1a45.
   343  //
   344  // Solidity: function addOrgNode(string _enodeId, string _orgId) returns()
   345  func (_NodeManager *NodeManagerTransactor) AddOrgNode(opts *bind.TransactOpts, _enodeId string, _orgId string) (*types.Transaction, error) {
   346  	return _NodeManager.contract.Transact(opts, "addOrgNode", _enodeId, _orgId)
   347  }
   348  
   349  // AddOrgNode is a paid mutator transaction binding the contract method 0x3f5e1a45.
   350  //
   351  // Solidity: function addOrgNode(string _enodeId, string _orgId) returns()
   352  func (_NodeManager *NodeManagerSession) AddOrgNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   353  	return _NodeManager.Contract.AddOrgNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   354  }
   355  
   356  // AddOrgNode is a paid mutator transaction binding the contract method 0x3f5e1a45.
   357  //
   358  // Solidity: function addOrgNode(string _enodeId, string _orgId) returns()
   359  func (_NodeManager *NodeManagerTransactorSession) AddOrgNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   360  	return _NodeManager.Contract.AddOrgNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   361  }
   362  
   363  // ApproveNode is a paid mutator transaction binding the contract method 0x86bc3652.
   364  //
   365  // Solidity: function approveNode(string _enodeId, string _orgId) returns()
   366  func (_NodeManager *NodeManagerTransactor) ApproveNode(opts *bind.TransactOpts, _enodeId string, _orgId string) (*types.Transaction, error) {
   367  	return _NodeManager.contract.Transact(opts, "approveNode", _enodeId, _orgId)
   368  }
   369  
   370  // ApproveNode is a paid mutator transaction binding the contract method 0x86bc3652.
   371  //
   372  // Solidity: function approveNode(string _enodeId, string _orgId) returns()
   373  func (_NodeManager *NodeManagerSession) ApproveNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   374  	return _NodeManager.Contract.ApproveNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   375  }
   376  
   377  // ApproveNode is a paid mutator transaction binding the contract method 0x86bc3652.
   378  //
   379  // Solidity: function approveNode(string _enodeId, string _orgId) returns()
   380  func (_NodeManager *NodeManagerTransactorSession) ApproveNode(_enodeId string, _orgId string) (*types.Transaction, error) {
   381  	return _NodeManager.Contract.ApproveNode(&_NodeManager.TransactOpts, _enodeId, _orgId)
   382  }
   383  
   384  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x0cc50146.
   385  //
   386  // Solidity: function updateNodeStatus(string _enodeId, string _orgId, uint256 _action) returns()
   387  func (_NodeManager *NodeManagerTransactor) UpdateNodeStatus(opts *bind.TransactOpts, _enodeId string, _orgId string, _action *big.Int) (*types.Transaction, error) {
   388  	return _NodeManager.contract.Transact(opts, "updateNodeStatus", _enodeId, _orgId, _action)
   389  }
   390  
   391  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x0cc50146.
   392  //
   393  // Solidity: function updateNodeStatus(string _enodeId, string _orgId, uint256 _action) returns()
   394  func (_NodeManager *NodeManagerSession) UpdateNodeStatus(_enodeId string, _orgId string, _action *big.Int) (*types.Transaction, error) {
   395  	return _NodeManager.Contract.UpdateNodeStatus(&_NodeManager.TransactOpts, _enodeId, _orgId, _action)
   396  }
   397  
   398  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0x0cc50146.
   399  //
   400  // Solidity: function updateNodeStatus(string _enodeId, string _orgId, uint256 _action) returns()
   401  func (_NodeManager *NodeManagerTransactorSession) UpdateNodeStatus(_enodeId string, _orgId string, _action *big.Int) (*types.Transaction, error) {
   402  	return _NodeManager.Contract.UpdateNodeStatus(&_NodeManager.TransactOpts, _enodeId, _orgId, _action)
   403  }
   404  
   405  // 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.
   406  type NodeManagerNodeActivatedIterator struct {
   407  	Event *NodeManagerNodeActivated // Event containing the contract specifics and raw log
   408  
   409  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   410  	event    string              // Event name to use for unpacking event data
   411  
   412  	logs chan types.Log        // Log channel receiving the found contract events
   413  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   414  	done bool                  // Whether the subscription completed delivering logs
   415  	fail error                 // Occurred error to stop iteration
   416  }
   417  
   418  // Next advances the iterator to the subsequent event, returning whether there
   419  // are any more events found. In case of a retrieval or parsing error, false is
   420  // returned and Error() can be queried for the exact failure.
   421  func (it *NodeManagerNodeActivatedIterator) Next() bool {
   422  	// If the iterator failed, stop iterating
   423  	if it.fail != nil {
   424  		return false
   425  	}
   426  	// If the iterator completed, deliver directly whatever's available
   427  	if it.done {
   428  		select {
   429  		case log := <-it.logs:
   430  			it.Event = new(NodeManagerNodeActivated)
   431  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   432  				it.fail = err
   433  				return false
   434  			}
   435  			it.Event.Raw = log
   436  			return true
   437  
   438  		default:
   439  			return false
   440  		}
   441  	}
   442  	// Iterator still in progress, wait for either a data or an error event
   443  	select {
   444  	case log := <-it.logs:
   445  		it.Event = new(NodeManagerNodeActivated)
   446  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   447  			it.fail = err
   448  			return false
   449  		}
   450  		it.Event.Raw = log
   451  		return true
   452  
   453  	case err := <-it.sub.Err():
   454  		it.done = true
   455  		it.fail = err
   456  		return it.Next()
   457  	}
   458  }
   459  
   460  // Error returns any retrieval or parsing error occurred during filtering.
   461  func (it *NodeManagerNodeActivatedIterator) Error() error {
   462  	return it.fail
   463  }
   464  
   465  // Close terminates the iteration process, releasing any pending underlying
   466  // resources.
   467  func (it *NodeManagerNodeActivatedIterator) Close() error {
   468  	it.sub.Unsubscribe()
   469  	return nil
   470  }
   471  
   472  // NodeManagerNodeActivated represents a NodeActivated event raised by the NodeManager contract.
   473  type NodeManagerNodeActivated struct {
   474  	EnodeId string
   475  	OrgId   string
   476  	Raw     types.Log // Blockchain specific contextual infos
   477  }
   478  
   479  // FilterNodeActivated is a free log retrieval operation binding the contract event 0x49796be3ca168a59c8ae46c75a36a9bb3a84753d3e12a812f93ae010e783b14f.
   480  //
   481  // Solidity: event NodeActivated(string _enodeId, string _orgId)
   482  func (_NodeManager *NodeManagerFilterer) FilterNodeActivated(opts *bind.FilterOpts) (*NodeManagerNodeActivatedIterator, error) {
   483  
   484  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeActivated")
   485  	if err != nil {
   486  		return nil, err
   487  	}
   488  	return &NodeManagerNodeActivatedIterator{contract: _NodeManager.contract, event: "NodeActivated", logs: logs, sub: sub}, nil
   489  }
   490  
   491  var NodeActivatedTopicHash = "0x49796be3ca168a59c8ae46c75a36a9bb3a84753d3e12a812f93ae010e783b14f"
   492  
   493  // WatchNodeActivated is a free log subscription operation binding the contract event 0x49796be3ca168a59c8ae46c75a36a9bb3a84753d3e12a812f93ae010e783b14f.
   494  //
   495  // Solidity: event NodeActivated(string _enodeId, string _orgId)
   496  func (_NodeManager *NodeManagerFilterer) WatchNodeActivated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeActivated) (event.Subscription, error) {
   497  
   498  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeActivated")
   499  	if err != nil {
   500  		return nil, err
   501  	}
   502  	return event.NewSubscription(func(quit <-chan struct{}) error {
   503  		defer sub.Unsubscribe()
   504  		for {
   505  			select {
   506  			case log := <-logs:
   507  				// New log arrived, parse the event and forward to the user
   508  				event := new(NodeManagerNodeActivated)
   509  				if err := _NodeManager.contract.UnpackLog(event, "NodeActivated", log); err != nil {
   510  					return err
   511  				}
   512  				event.Raw = log
   513  
   514  				select {
   515  				case sink <- event:
   516  				case err := <-sub.Err():
   517  					return err
   518  				case <-quit:
   519  					return nil
   520  				}
   521  			case err := <-sub.Err():
   522  				return err
   523  			case <-quit:
   524  				return nil
   525  			}
   526  		}
   527  	}), nil
   528  }
   529  
   530  // ParseNodeActivated is a log parse operation binding the contract event 0x49796be3ca168a59c8ae46c75a36a9bb3a84753d3e12a812f93ae010e783b14f.
   531  //
   532  // Solidity: event NodeActivated(string _enodeId, string _orgId)
   533  func (_NodeManager *NodeManagerFilterer) ParseNodeActivated(log types.Log) (*NodeManagerNodeActivated, error) {
   534  	event := new(NodeManagerNodeActivated)
   535  	if err := _NodeManager.contract.UnpackLog(event, "NodeActivated", log); err != nil {
   536  		return nil, err
   537  	}
   538  	return event, nil
   539  }
   540  
   541  // 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.
   542  type NodeManagerNodeApprovedIterator struct {
   543  	Event *NodeManagerNodeApproved // Event containing the contract specifics and raw log
   544  
   545  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   546  	event    string              // Event name to use for unpacking event data
   547  
   548  	logs chan types.Log        // Log channel receiving the found contract events
   549  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   550  	done bool                  // Whether the subscription completed delivering logs
   551  	fail error                 // Occurred error to stop iteration
   552  }
   553  
   554  // Next advances the iterator to the subsequent event, returning whether there
   555  // are any more events found. In case of a retrieval or parsing error, false is
   556  // returned and Error() can be queried for the exact failure.
   557  func (it *NodeManagerNodeApprovedIterator) Next() bool {
   558  	// If the iterator failed, stop iterating
   559  	if it.fail != nil {
   560  		return false
   561  	}
   562  	// If the iterator completed, deliver directly whatever's available
   563  	if it.done {
   564  		select {
   565  		case log := <-it.logs:
   566  			it.Event = new(NodeManagerNodeApproved)
   567  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   568  				it.fail = err
   569  				return false
   570  			}
   571  			it.Event.Raw = log
   572  			return true
   573  
   574  		default:
   575  			return false
   576  		}
   577  	}
   578  	// Iterator still in progress, wait for either a data or an error event
   579  	select {
   580  	case log := <-it.logs:
   581  		it.Event = new(NodeManagerNodeApproved)
   582  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   583  			it.fail = err
   584  			return false
   585  		}
   586  		it.Event.Raw = log
   587  		return true
   588  
   589  	case err := <-it.sub.Err():
   590  		it.done = true
   591  		it.fail = err
   592  		return it.Next()
   593  	}
   594  }
   595  
   596  // Error returns any retrieval or parsing error occurred during filtering.
   597  func (it *NodeManagerNodeApprovedIterator) Error() error {
   598  	return it.fail
   599  }
   600  
   601  // Close terminates the iteration process, releasing any pending underlying
   602  // resources.
   603  func (it *NodeManagerNodeApprovedIterator) Close() error {
   604  	it.sub.Unsubscribe()
   605  	return nil
   606  }
   607  
   608  // NodeManagerNodeApproved represents a NodeApproved event raised by the NodeManager contract.
   609  type NodeManagerNodeApproved struct {
   610  	EnodeId string
   611  	OrgId   string
   612  	Raw     types.Log // Blockchain specific contextual infos
   613  }
   614  
   615  // FilterNodeApproved is a free log retrieval operation binding the contract event 0x0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d.
   616  //
   617  // Solidity: event NodeApproved(string _enodeId, string _orgId)
   618  func (_NodeManager *NodeManagerFilterer) FilterNodeApproved(opts *bind.FilterOpts) (*NodeManagerNodeApprovedIterator, error) {
   619  
   620  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeApproved")
   621  	if err != nil {
   622  		return nil, err
   623  	}
   624  	return &NodeManagerNodeApprovedIterator{contract: _NodeManager.contract, event: "NodeApproved", logs: logs, sub: sub}, nil
   625  }
   626  
   627  var NodeApprovedTopicHash = "0x0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d"
   628  
   629  // WatchNodeApproved is a free log subscription operation binding the contract event 0x0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d.
   630  //
   631  // Solidity: event NodeApproved(string _enodeId, string _orgId)
   632  func (_NodeManager *NodeManagerFilterer) WatchNodeApproved(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeApproved) (event.Subscription, error) {
   633  
   634  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeApproved")
   635  	if err != nil {
   636  		return nil, err
   637  	}
   638  	return event.NewSubscription(func(quit <-chan struct{}) error {
   639  		defer sub.Unsubscribe()
   640  		for {
   641  			select {
   642  			case log := <-logs:
   643  				// New log arrived, parse the event and forward to the user
   644  				event := new(NodeManagerNodeApproved)
   645  				if err := _NodeManager.contract.UnpackLog(event, "NodeApproved", log); err != nil {
   646  					return err
   647  				}
   648  				event.Raw = log
   649  
   650  				select {
   651  				case sink <- event:
   652  				case err := <-sub.Err():
   653  					return err
   654  				case <-quit:
   655  					return nil
   656  				}
   657  			case err := <-sub.Err():
   658  				return err
   659  			case <-quit:
   660  				return nil
   661  			}
   662  		}
   663  	}), nil
   664  }
   665  
   666  // ParseNodeApproved is a log parse operation binding the contract event 0x0413ce00d5de406d9939003416263a7530eaeb13f9d281c8baeba1601def960d.
   667  //
   668  // Solidity: event NodeApproved(string _enodeId, string _orgId)
   669  func (_NodeManager *NodeManagerFilterer) ParseNodeApproved(log types.Log) (*NodeManagerNodeApproved, error) {
   670  	event := new(NodeManagerNodeApproved)
   671  	if err := _NodeManager.contract.UnpackLog(event, "NodeApproved", log); err != nil {
   672  		return nil, err
   673  	}
   674  	return event, nil
   675  }
   676  
   677  // 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.
   678  type NodeManagerNodeBlacklistedIterator struct {
   679  	Event *NodeManagerNodeBlacklisted // Event containing the contract specifics and raw log
   680  
   681  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   682  	event    string              // Event name to use for unpacking event data
   683  
   684  	logs chan types.Log        // Log channel receiving the found contract events
   685  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   686  	done bool                  // Whether the subscription completed delivering logs
   687  	fail error                 // Occurred error to stop iteration
   688  }
   689  
   690  // Next advances the iterator to the subsequent event, returning whether there
   691  // are any more events found. In case of a retrieval or parsing error, false is
   692  // returned and Error() can be queried for the exact failure.
   693  func (it *NodeManagerNodeBlacklistedIterator) Next() bool {
   694  	// If the iterator failed, stop iterating
   695  	if it.fail != nil {
   696  		return false
   697  	}
   698  	// If the iterator completed, deliver directly whatever's available
   699  	if it.done {
   700  		select {
   701  		case log := <-it.logs:
   702  			it.Event = new(NodeManagerNodeBlacklisted)
   703  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   704  				it.fail = err
   705  				return false
   706  			}
   707  			it.Event.Raw = log
   708  			return true
   709  
   710  		default:
   711  			return false
   712  		}
   713  	}
   714  	// Iterator still in progress, wait for either a data or an error event
   715  	select {
   716  	case log := <-it.logs:
   717  		it.Event = new(NodeManagerNodeBlacklisted)
   718  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   719  			it.fail = err
   720  			return false
   721  		}
   722  		it.Event.Raw = log
   723  		return true
   724  
   725  	case err := <-it.sub.Err():
   726  		it.done = true
   727  		it.fail = err
   728  		return it.Next()
   729  	}
   730  }
   731  
   732  // Error returns any retrieval or parsing error occurred during filtering.
   733  func (it *NodeManagerNodeBlacklistedIterator) Error() error {
   734  	return it.fail
   735  }
   736  
   737  // Close terminates the iteration process, releasing any pending underlying
   738  // resources.
   739  func (it *NodeManagerNodeBlacklistedIterator) Close() error {
   740  	it.sub.Unsubscribe()
   741  	return nil
   742  }
   743  
   744  // NodeManagerNodeBlacklisted represents a NodeBlacklisted event raised by the NodeManager contract.
   745  type NodeManagerNodeBlacklisted struct {
   746  	EnodeId string
   747  	OrgId   string
   748  	Raw     types.Log // Blockchain specific contextual infos
   749  }
   750  
   751  // FilterNodeBlacklisted is a free log retrieval operation binding the contract event 0x4714623279994517c446c8fb72c3fdaca26434da1e2490d3976fe0cd880cfa7a.
   752  //
   753  // Solidity: event NodeBlacklisted(string _enodeId, string _orgId)
   754  func (_NodeManager *NodeManagerFilterer) FilterNodeBlacklisted(opts *bind.FilterOpts) (*NodeManagerNodeBlacklistedIterator, error) {
   755  
   756  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeBlacklisted")
   757  	if err != nil {
   758  		return nil, err
   759  	}
   760  	return &NodeManagerNodeBlacklistedIterator{contract: _NodeManager.contract, event: "NodeBlacklisted", logs: logs, sub: sub}, nil
   761  }
   762  
   763  var NodeBlacklistedTopicHash = "0x4714623279994517c446c8fb72c3fdaca26434da1e2490d3976fe0cd880cfa7a"
   764  
   765  // WatchNodeBlacklisted is a free log subscription operation binding the contract event 0x4714623279994517c446c8fb72c3fdaca26434da1e2490d3976fe0cd880cfa7a.
   766  //
   767  // Solidity: event NodeBlacklisted(string _enodeId, string _orgId)
   768  func (_NodeManager *NodeManagerFilterer) WatchNodeBlacklisted(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeBlacklisted) (event.Subscription, error) {
   769  
   770  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeBlacklisted")
   771  	if err != nil {
   772  		return nil, err
   773  	}
   774  	return event.NewSubscription(func(quit <-chan struct{}) error {
   775  		defer sub.Unsubscribe()
   776  		for {
   777  			select {
   778  			case log := <-logs:
   779  				// New log arrived, parse the event and forward to the user
   780  				event := new(NodeManagerNodeBlacklisted)
   781  				if err := _NodeManager.contract.UnpackLog(event, "NodeBlacklisted", log); err != nil {
   782  					return err
   783  				}
   784  				event.Raw = log
   785  
   786  				select {
   787  				case sink <- event:
   788  				case err := <-sub.Err():
   789  					return err
   790  				case <-quit:
   791  					return nil
   792  				}
   793  			case err := <-sub.Err():
   794  				return err
   795  			case <-quit:
   796  				return nil
   797  			}
   798  		}
   799  	}), nil
   800  }
   801  
   802  // ParseNodeBlacklisted is a log parse operation binding the contract event 0x4714623279994517c446c8fb72c3fdaca26434da1e2490d3976fe0cd880cfa7a.
   803  //
   804  // Solidity: event NodeBlacklisted(string _enodeId, string _orgId)
   805  func (_NodeManager *NodeManagerFilterer) ParseNodeBlacklisted(log types.Log) (*NodeManagerNodeBlacklisted, error) {
   806  	event := new(NodeManagerNodeBlacklisted)
   807  	if err := _NodeManager.contract.UnpackLog(event, "NodeBlacklisted", log); err != nil {
   808  		return nil, err
   809  	}
   810  	return event, nil
   811  }
   812  
   813  // 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.
   814  type NodeManagerNodeDeactivatedIterator struct {
   815  	Event *NodeManagerNodeDeactivated // Event containing the contract specifics and raw log
   816  
   817  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   818  	event    string              // Event name to use for unpacking event data
   819  
   820  	logs chan types.Log        // Log channel receiving the found contract events
   821  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   822  	done bool                  // Whether the subscription completed delivering logs
   823  	fail error                 // Occurred error to stop iteration
   824  }
   825  
   826  // Next advances the iterator to the subsequent event, returning whether there
   827  // are any more events found. In case of a retrieval or parsing error, false is
   828  // returned and Error() can be queried for the exact failure.
   829  func (it *NodeManagerNodeDeactivatedIterator) Next() bool {
   830  	// If the iterator failed, stop iterating
   831  	if it.fail != nil {
   832  		return false
   833  	}
   834  	// If the iterator completed, deliver directly whatever's available
   835  	if it.done {
   836  		select {
   837  		case log := <-it.logs:
   838  			it.Event = new(NodeManagerNodeDeactivated)
   839  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   840  				it.fail = err
   841  				return false
   842  			}
   843  			it.Event.Raw = log
   844  			return true
   845  
   846  		default:
   847  			return false
   848  		}
   849  	}
   850  	// Iterator still in progress, wait for either a data or an error event
   851  	select {
   852  	case log := <-it.logs:
   853  		it.Event = new(NodeManagerNodeDeactivated)
   854  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   855  			it.fail = err
   856  			return false
   857  		}
   858  		it.Event.Raw = log
   859  		return true
   860  
   861  	case err := <-it.sub.Err():
   862  		it.done = true
   863  		it.fail = err
   864  		return it.Next()
   865  	}
   866  }
   867  
   868  // Error returns any retrieval or parsing error occurred during filtering.
   869  func (it *NodeManagerNodeDeactivatedIterator) Error() error {
   870  	return it.fail
   871  }
   872  
   873  // Close terminates the iteration process, releasing any pending underlying
   874  // resources.
   875  func (it *NodeManagerNodeDeactivatedIterator) Close() error {
   876  	it.sub.Unsubscribe()
   877  	return nil
   878  }
   879  
   880  // NodeManagerNodeDeactivated represents a NodeDeactivated event raised by the NodeManager contract.
   881  type NodeManagerNodeDeactivated struct {
   882  	EnodeId string
   883  	OrgId   string
   884  	Raw     types.Log // Blockchain specific contextual infos
   885  }
   886  
   887  // FilterNodeDeactivated is a free log retrieval operation binding the contract event 0xc6c3720fe673e87bb26e06be713d514278aa94c3939cfe7c64b9bea4d486824a.
   888  //
   889  // Solidity: event NodeDeactivated(string _enodeId, string _orgId)
   890  func (_NodeManager *NodeManagerFilterer) FilterNodeDeactivated(opts *bind.FilterOpts) (*NodeManagerNodeDeactivatedIterator, error) {
   891  
   892  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeDeactivated")
   893  	if err != nil {
   894  		return nil, err
   895  	}
   896  	return &NodeManagerNodeDeactivatedIterator{contract: _NodeManager.contract, event: "NodeDeactivated", logs: logs, sub: sub}, nil
   897  }
   898  
   899  var NodeDeactivatedTopicHash = "0xc6c3720fe673e87bb26e06be713d514278aa94c3939cfe7c64b9bea4d486824a"
   900  
   901  // WatchNodeDeactivated is a free log subscription operation binding the contract event 0xc6c3720fe673e87bb26e06be713d514278aa94c3939cfe7c64b9bea4d486824a.
   902  //
   903  // Solidity: event NodeDeactivated(string _enodeId, string _orgId)
   904  func (_NodeManager *NodeManagerFilterer) WatchNodeDeactivated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeDeactivated) (event.Subscription, error) {
   905  
   906  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeDeactivated")
   907  	if err != nil {
   908  		return nil, err
   909  	}
   910  	return event.NewSubscription(func(quit <-chan struct{}) error {
   911  		defer sub.Unsubscribe()
   912  		for {
   913  			select {
   914  			case log := <-logs:
   915  				// New log arrived, parse the event and forward to the user
   916  				event := new(NodeManagerNodeDeactivated)
   917  				if err := _NodeManager.contract.UnpackLog(event, "NodeDeactivated", log); err != nil {
   918  					return err
   919  				}
   920  				event.Raw = log
   921  
   922  				select {
   923  				case sink <- event:
   924  				case err := <-sub.Err():
   925  					return err
   926  				case <-quit:
   927  					return nil
   928  				}
   929  			case err := <-sub.Err():
   930  				return err
   931  			case <-quit:
   932  				return nil
   933  			}
   934  		}
   935  	}), nil
   936  }
   937  
   938  // ParseNodeDeactivated is a log parse operation binding the contract event 0xc6c3720fe673e87bb26e06be713d514278aa94c3939cfe7c64b9bea4d486824a.
   939  //
   940  // Solidity: event NodeDeactivated(string _enodeId, string _orgId)
   941  func (_NodeManager *NodeManagerFilterer) ParseNodeDeactivated(log types.Log) (*NodeManagerNodeDeactivated, error) {
   942  	event := new(NodeManagerNodeDeactivated)
   943  	if err := _NodeManager.contract.UnpackLog(event, "NodeDeactivated", log); err != nil {
   944  		return nil, err
   945  	}
   946  	return event, nil
   947  }
   948  
   949  // 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.
   950  type NodeManagerNodeProposedIterator struct {
   951  	Event *NodeManagerNodeProposed // Event containing the contract specifics and raw log
   952  
   953  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   954  	event    string              // Event name to use for unpacking event data
   955  
   956  	logs chan types.Log        // Log channel receiving the found contract events
   957  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   958  	done bool                  // Whether the subscription completed delivering logs
   959  	fail error                 // Occurred error to stop iteration
   960  }
   961  
   962  // Next advances the iterator to the subsequent event, returning whether there
   963  // are any more events found. In case of a retrieval or parsing error, false is
   964  // returned and Error() can be queried for the exact failure.
   965  func (it *NodeManagerNodeProposedIterator) Next() bool {
   966  	// If the iterator failed, stop iterating
   967  	if it.fail != nil {
   968  		return false
   969  	}
   970  	// If the iterator completed, deliver directly whatever's available
   971  	if it.done {
   972  		select {
   973  		case log := <-it.logs:
   974  			it.Event = new(NodeManagerNodeProposed)
   975  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   976  				it.fail = err
   977  				return false
   978  			}
   979  			it.Event.Raw = log
   980  			return true
   981  
   982  		default:
   983  			return false
   984  		}
   985  	}
   986  	// Iterator still in progress, wait for either a data or an error event
   987  	select {
   988  	case log := <-it.logs:
   989  		it.Event = new(NodeManagerNodeProposed)
   990  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   991  			it.fail = err
   992  			return false
   993  		}
   994  		it.Event.Raw = log
   995  		return true
   996  
   997  	case err := <-it.sub.Err():
   998  		it.done = true
   999  		it.fail = err
  1000  		return it.Next()
  1001  	}
  1002  }
  1003  
  1004  // Error returns any retrieval or parsing error occurred during filtering.
  1005  func (it *NodeManagerNodeProposedIterator) Error() error {
  1006  	return it.fail
  1007  }
  1008  
  1009  // Close terminates the iteration process, releasing any pending underlying
  1010  // resources.
  1011  func (it *NodeManagerNodeProposedIterator) Close() error {
  1012  	it.sub.Unsubscribe()
  1013  	return nil
  1014  }
  1015  
  1016  // NodeManagerNodeProposed represents a NodeProposed event raised by the NodeManager contract.
  1017  type NodeManagerNodeProposed struct {
  1018  	EnodeId string
  1019  	OrgId   string
  1020  	Raw     types.Log // Blockchain specific contextual infos
  1021  }
  1022  
  1023  // FilterNodeProposed is a free log retrieval operation binding the contract event 0xb1a7eec7dd1a516c3132d6d1f770758b19aa34c3a07c138caf662688b7e3556f.
  1024  //
  1025  // Solidity: event NodeProposed(string _enodeId, string _orgId)
  1026  func (_NodeManager *NodeManagerFilterer) FilterNodeProposed(opts *bind.FilterOpts) (*NodeManagerNodeProposedIterator, error) {
  1027  
  1028  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeProposed")
  1029  	if err != nil {
  1030  		return nil, err
  1031  	}
  1032  	return &NodeManagerNodeProposedIterator{contract: _NodeManager.contract, event: "NodeProposed", logs: logs, sub: sub}, nil
  1033  }
  1034  
  1035  var NodeProposedTopicHash = "0xb1a7eec7dd1a516c3132d6d1f770758b19aa34c3a07c138caf662688b7e3556f"
  1036  
  1037  // WatchNodeProposed is a free log subscription operation binding the contract event 0xb1a7eec7dd1a516c3132d6d1f770758b19aa34c3a07c138caf662688b7e3556f.
  1038  //
  1039  // Solidity: event NodeProposed(string _enodeId, string _orgId)
  1040  func (_NodeManager *NodeManagerFilterer) WatchNodeProposed(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeProposed) (event.Subscription, error) {
  1041  
  1042  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeProposed")
  1043  	if err != nil {
  1044  		return nil, err
  1045  	}
  1046  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1047  		defer sub.Unsubscribe()
  1048  		for {
  1049  			select {
  1050  			case log := <-logs:
  1051  				// New log arrived, parse the event and forward to the user
  1052  				event := new(NodeManagerNodeProposed)
  1053  				if err := _NodeManager.contract.UnpackLog(event, "NodeProposed", log); err != nil {
  1054  					return err
  1055  				}
  1056  				event.Raw = log
  1057  
  1058  				select {
  1059  				case sink <- event:
  1060  				case err := <-sub.Err():
  1061  					return err
  1062  				case <-quit:
  1063  					return nil
  1064  				}
  1065  			case err := <-sub.Err():
  1066  				return err
  1067  			case <-quit:
  1068  				return nil
  1069  			}
  1070  		}
  1071  	}), nil
  1072  }
  1073  
  1074  // ParseNodeProposed is a log parse operation binding the contract event 0xb1a7eec7dd1a516c3132d6d1f770758b19aa34c3a07c138caf662688b7e3556f.
  1075  //
  1076  // Solidity: event NodeProposed(string _enodeId, string _orgId)
  1077  func (_NodeManager *NodeManagerFilterer) ParseNodeProposed(log types.Log) (*NodeManagerNodeProposed, error) {
  1078  	event := new(NodeManagerNodeProposed)
  1079  	if err := _NodeManager.contract.UnpackLog(event, "NodeProposed", log); err != nil {
  1080  		return nil, err
  1081  	}
  1082  	return event, nil
  1083  }
  1084  
  1085  // 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.
  1086  type NodeManagerNodeRecoveryCompletedIterator struct {
  1087  	Event *NodeManagerNodeRecoveryCompleted // Event containing the contract specifics and raw log
  1088  
  1089  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1090  	event    string              // Event name to use for unpacking event data
  1091  
  1092  	logs chan types.Log        // Log channel receiving the found contract events
  1093  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1094  	done bool                  // Whether the subscription completed delivering logs
  1095  	fail error                 // Occurred error to stop iteration
  1096  }
  1097  
  1098  // Next advances the iterator to the subsequent event, returning whether there
  1099  // are any more events found. In case of a retrieval or parsing error, false is
  1100  // returned and Error() can be queried for the exact failure.
  1101  func (it *NodeManagerNodeRecoveryCompletedIterator) Next() bool {
  1102  	// If the iterator failed, stop iterating
  1103  	if it.fail != nil {
  1104  		return false
  1105  	}
  1106  	// If the iterator completed, deliver directly whatever's available
  1107  	if it.done {
  1108  		select {
  1109  		case log := <-it.logs:
  1110  			it.Event = new(NodeManagerNodeRecoveryCompleted)
  1111  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1112  				it.fail = err
  1113  				return false
  1114  			}
  1115  			it.Event.Raw = log
  1116  			return true
  1117  
  1118  		default:
  1119  			return false
  1120  		}
  1121  	}
  1122  	// Iterator still in progress, wait for either a data or an error event
  1123  	select {
  1124  	case log := <-it.logs:
  1125  		it.Event = new(NodeManagerNodeRecoveryCompleted)
  1126  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1127  			it.fail = err
  1128  			return false
  1129  		}
  1130  		it.Event.Raw = log
  1131  		return true
  1132  
  1133  	case err := <-it.sub.Err():
  1134  		it.done = true
  1135  		it.fail = err
  1136  		return it.Next()
  1137  	}
  1138  }
  1139  
  1140  // Error returns any retrieval or parsing error occurred during filtering.
  1141  func (it *NodeManagerNodeRecoveryCompletedIterator) Error() error {
  1142  	return it.fail
  1143  }
  1144  
  1145  // Close terminates the iteration process, releasing any pending underlying
  1146  // resources.
  1147  func (it *NodeManagerNodeRecoveryCompletedIterator) Close() error {
  1148  	it.sub.Unsubscribe()
  1149  	return nil
  1150  }
  1151  
  1152  // NodeManagerNodeRecoveryCompleted represents a NodeRecoveryCompleted event raised by the NodeManager contract.
  1153  type NodeManagerNodeRecoveryCompleted struct {
  1154  	EnodeId string
  1155  	OrgId   string
  1156  	Raw     types.Log // Blockchain specific contextual infos
  1157  }
  1158  
  1159  // FilterNodeRecoveryCompleted is a free log retrieval operation binding the contract event 0x787d7bc525e7c4658c64e3e456d974a1be21cc196e8162a4bf1337a12cb38dac.
  1160  //
  1161  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _orgId)
  1162  func (_NodeManager *NodeManagerFilterer) FilterNodeRecoveryCompleted(opts *bind.FilterOpts) (*NodeManagerNodeRecoveryCompletedIterator, error) {
  1163  
  1164  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeRecoveryCompleted")
  1165  	if err != nil {
  1166  		return nil, err
  1167  	}
  1168  	return &NodeManagerNodeRecoveryCompletedIterator{contract: _NodeManager.contract, event: "NodeRecoveryCompleted", logs: logs, sub: sub}, nil
  1169  }
  1170  
  1171  var NodeRecoveryCompletedTopicHash = "0x787d7bc525e7c4658c64e3e456d974a1be21cc196e8162a4bf1337a12cb38dac"
  1172  
  1173  // WatchNodeRecoveryCompleted is a free log subscription operation binding the contract event 0x787d7bc525e7c4658c64e3e456d974a1be21cc196e8162a4bf1337a12cb38dac.
  1174  //
  1175  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _orgId)
  1176  func (_NodeManager *NodeManagerFilterer) WatchNodeRecoveryCompleted(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeRecoveryCompleted) (event.Subscription, error) {
  1177  
  1178  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeRecoveryCompleted")
  1179  	if err != nil {
  1180  		return nil, err
  1181  	}
  1182  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1183  		defer sub.Unsubscribe()
  1184  		for {
  1185  			select {
  1186  			case log := <-logs:
  1187  				// New log arrived, parse the event and forward to the user
  1188  				event := new(NodeManagerNodeRecoveryCompleted)
  1189  				if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryCompleted", log); err != nil {
  1190  					return err
  1191  				}
  1192  				event.Raw = log
  1193  
  1194  				select {
  1195  				case sink <- event:
  1196  				case err := <-sub.Err():
  1197  					return err
  1198  				case <-quit:
  1199  					return nil
  1200  				}
  1201  			case err := <-sub.Err():
  1202  				return err
  1203  			case <-quit:
  1204  				return nil
  1205  			}
  1206  		}
  1207  	}), nil
  1208  }
  1209  
  1210  // ParseNodeRecoveryCompleted is a log parse operation binding the contract event 0x787d7bc525e7c4658c64e3e456d974a1be21cc196e8162a4bf1337a12cb38dac.
  1211  //
  1212  // Solidity: event NodeRecoveryCompleted(string _enodeId, string _orgId)
  1213  func (_NodeManager *NodeManagerFilterer) ParseNodeRecoveryCompleted(log types.Log) (*NodeManagerNodeRecoveryCompleted, error) {
  1214  	event := new(NodeManagerNodeRecoveryCompleted)
  1215  	if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryCompleted", log); err != nil {
  1216  		return nil, err
  1217  	}
  1218  	return event, nil
  1219  }
  1220  
  1221  // 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.
  1222  type NodeManagerNodeRecoveryInitiatedIterator struct {
  1223  	Event *NodeManagerNodeRecoveryInitiated // Event containing the contract specifics and raw log
  1224  
  1225  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1226  	event    string              // Event name to use for unpacking event data
  1227  
  1228  	logs chan types.Log        // Log channel receiving the found contract events
  1229  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1230  	done bool                  // Whether the subscription completed delivering logs
  1231  	fail error                 // Occurred error to stop iteration
  1232  }
  1233  
  1234  // Next advances the iterator to the subsequent event, returning whether there
  1235  // are any more events found. In case of a retrieval or parsing error, false is
  1236  // returned and Error() can be queried for the exact failure.
  1237  func (it *NodeManagerNodeRecoveryInitiatedIterator) Next() bool {
  1238  	// If the iterator failed, stop iterating
  1239  	if it.fail != nil {
  1240  		return false
  1241  	}
  1242  	// If the iterator completed, deliver directly whatever's available
  1243  	if it.done {
  1244  		select {
  1245  		case log := <-it.logs:
  1246  			it.Event = new(NodeManagerNodeRecoveryInitiated)
  1247  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1248  				it.fail = err
  1249  				return false
  1250  			}
  1251  			it.Event.Raw = log
  1252  			return true
  1253  
  1254  		default:
  1255  			return false
  1256  		}
  1257  	}
  1258  	// Iterator still in progress, wait for either a data or an error event
  1259  	select {
  1260  	case log := <-it.logs:
  1261  		it.Event = new(NodeManagerNodeRecoveryInitiated)
  1262  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1263  			it.fail = err
  1264  			return false
  1265  		}
  1266  		it.Event.Raw = log
  1267  		return true
  1268  
  1269  	case err := <-it.sub.Err():
  1270  		it.done = true
  1271  		it.fail = err
  1272  		return it.Next()
  1273  	}
  1274  }
  1275  
  1276  // Error returns any retrieval or parsing error occurred during filtering.
  1277  func (it *NodeManagerNodeRecoveryInitiatedIterator) Error() error {
  1278  	return it.fail
  1279  }
  1280  
  1281  // Close terminates the iteration process, releasing any pending underlying
  1282  // resources.
  1283  func (it *NodeManagerNodeRecoveryInitiatedIterator) Close() error {
  1284  	it.sub.Unsubscribe()
  1285  	return nil
  1286  }
  1287  
  1288  // NodeManagerNodeRecoveryInitiated represents a NodeRecoveryInitiated event raised by the NodeManager contract.
  1289  type NodeManagerNodeRecoveryInitiated struct {
  1290  	EnodeId string
  1291  	OrgId   string
  1292  	Raw     types.Log // Blockchain specific contextual infos
  1293  }
  1294  
  1295  // FilterNodeRecoveryInitiated is a free log retrieval operation binding the contract event 0xfd385c618a1e89d01fb9a21780846793e282e8bc0b60caf6ccb3e422d543fbfb.
  1296  //
  1297  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _orgId)
  1298  func (_NodeManager *NodeManagerFilterer) FilterNodeRecoveryInitiated(opts *bind.FilterOpts) (*NodeManagerNodeRecoveryInitiatedIterator, error) {
  1299  
  1300  	logs, sub, err := _NodeManager.contract.FilterLogs(opts, "NodeRecoveryInitiated")
  1301  	if err != nil {
  1302  		return nil, err
  1303  	}
  1304  	return &NodeManagerNodeRecoveryInitiatedIterator{contract: _NodeManager.contract, event: "NodeRecoveryInitiated", logs: logs, sub: sub}, nil
  1305  }
  1306  
  1307  var NodeRecoveryInitiatedTopicHash = "0xfd385c618a1e89d01fb9a21780846793e282e8bc0b60caf6ccb3e422d543fbfb"
  1308  
  1309  // WatchNodeRecoveryInitiated is a free log subscription operation binding the contract event 0xfd385c618a1e89d01fb9a21780846793e282e8bc0b60caf6ccb3e422d543fbfb.
  1310  //
  1311  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _orgId)
  1312  func (_NodeManager *NodeManagerFilterer) WatchNodeRecoveryInitiated(opts *bind.WatchOpts, sink chan<- *NodeManagerNodeRecoveryInitiated) (event.Subscription, error) {
  1313  
  1314  	logs, sub, err := _NodeManager.contract.WatchLogs(opts, "NodeRecoveryInitiated")
  1315  	if err != nil {
  1316  		return nil, err
  1317  	}
  1318  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1319  		defer sub.Unsubscribe()
  1320  		for {
  1321  			select {
  1322  			case log := <-logs:
  1323  				// New log arrived, parse the event and forward to the user
  1324  				event := new(NodeManagerNodeRecoveryInitiated)
  1325  				if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryInitiated", log); err != nil {
  1326  					return err
  1327  				}
  1328  				event.Raw = log
  1329  
  1330  				select {
  1331  				case sink <- event:
  1332  				case err := <-sub.Err():
  1333  					return err
  1334  				case <-quit:
  1335  					return nil
  1336  				}
  1337  			case err := <-sub.Err():
  1338  				return err
  1339  			case <-quit:
  1340  				return nil
  1341  			}
  1342  		}
  1343  	}), nil
  1344  }
  1345  
  1346  // ParseNodeRecoveryInitiated is a log parse operation binding the contract event 0xfd385c618a1e89d01fb9a21780846793e282e8bc0b60caf6ccb3e422d543fbfb.
  1347  //
  1348  // Solidity: event NodeRecoveryInitiated(string _enodeId, string _orgId)
  1349  func (_NodeManager *NodeManagerFilterer) ParseNodeRecoveryInitiated(log types.Log) (*NodeManagerNodeRecoveryInitiated, error) {
  1350  	event := new(NodeManagerNodeRecoveryInitiated)
  1351  	if err := _NodeManager.contract.UnpackLog(event, "NodeRecoveryInitiated", log); err != nil {
  1352  		return nil, err
  1353  	}
  1354  	return event, nil
  1355  }