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