github.com/codingfuture/orig-energi3@v0.8.4/energi/abi/IMasternodeRegistryV2.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 abi
     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  // IMasternodeRegistryV2ABI is the input ABI used to generate the binding from.
    31  const IMasternodeRegistryV2ABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ipv4address\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32[2]\",\"name\":\"enode\",\"type\":\"bytes32[2]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"Announced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"Deactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Denounced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"Invalidation\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"ipv4address\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[2]\",\"name\":\"enode\",\"type\":\"bytes32[2]\"}],\"name\":\"announce\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"canHeartbeat\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"can_heartbeat\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"canInvalidate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"can_invalidate\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"collateralLimits\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"count\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"active\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"active_collateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"total_collateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_of_all_times\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"denounce\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"enumerate\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"masternodes\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"enumerateActive\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"masternodes\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"block_number\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"block_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"name\":\"heartbeat\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"info\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"ipv4address\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[2]\",\"name\":\"enode\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"announced_block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"invalidate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"onCollateralUpdate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ownerInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"ipv4address\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[2]\",\"name\":\"enode\",\"type\":\"bytes32[2]\"},{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"announced_block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token_proxy\",\"outputs\":[{\"internalType\":\"contractIGovernedProxy\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"treasury_proxy\",\"outputs\":[{\"internalType\":\"contractIGovernedProxy\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"masternode\",\"type\":\"address\"}],\"name\":\"validationTarget\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
    32  
    33  // IMasternodeRegistryV2 is an auto generated Go binding around an Ethereum contract.
    34  type IMasternodeRegistryV2 struct {
    35  	IMasternodeRegistryV2Caller     // Read-only binding to the contract
    36  	IMasternodeRegistryV2Transactor // Write-only binding to the contract
    37  	IMasternodeRegistryV2Filterer   // Log filterer for contract events
    38  }
    39  
    40  // IMasternodeRegistryV2Caller is an auto generated read-only Go binding around an Ethereum contract.
    41  type IMasternodeRegistryV2Caller struct {
    42  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    43  }
    44  
    45  // IMasternodeRegistryV2Transactor is an auto generated write-only Go binding around an Ethereum contract.
    46  type IMasternodeRegistryV2Transactor struct {
    47  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    48  }
    49  
    50  // IMasternodeRegistryV2Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    51  type IMasternodeRegistryV2Filterer struct {
    52  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    53  }
    54  
    55  // IMasternodeRegistryV2Session is an auto generated Go binding around an Ethereum contract,
    56  // with pre-set call and transact options.
    57  type IMasternodeRegistryV2Session struct {
    58  	Contract     *IMasternodeRegistryV2 // Generic contract binding to set the session for
    59  	CallOpts     bind.CallOpts          // Call options to use throughout this session
    60  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
    61  }
    62  
    63  // IMasternodeRegistryV2CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    64  // with pre-set call options.
    65  type IMasternodeRegistryV2CallerSession struct {
    66  	Contract *IMasternodeRegistryV2Caller // Generic contract caller binding to set the session for
    67  	CallOpts bind.CallOpts                // Call options to use throughout this session
    68  }
    69  
    70  // IMasternodeRegistryV2TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    71  // with pre-set transact options.
    72  type IMasternodeRegistryV2TransactorSession struct {
    73  	Contract     *IMasternodeRegistryV2Transactor // Generic contract transactor binding to set the session for
    74  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
    75  }
    76  
    77  // IMasternodeRegistryV2Raw is an auto generated low-level Go binding around an Ethereum contract.
    78  type IMasternodeRegistryV2Raw struct {
    79  	Contract *IMasternodeRegistryV2 // Generic contract binding to access the raw methods on
    80  }
    81  
    82  // IMasternodeRegistryV2CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    83  type IMasternodeRegistryV2CallerRaw struct {
    84  	Contract *IMasternodeRegistryV2Caller // Generic read-only contract binding to access the raw methods on
    85  }
    86  
    87  // IMasternodeRegistryV2TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    88  type IMasternodeRegistryV2TransactorRaw struct {
    89  	Contract *IMasternodeRegistryV2Transactor // Generic write-only contract binding to access the raw methods on
    90  }
    91  
    92  // NewIMasternodeRegistryV2 creates a new instance of IMasternodeRegistryV2, bound to a specific deployed contract.
    93  func NewIMasternodeRegistryV2(address common.Address, backend bind.ContractBackend) (*IMasternodeRegistryV2, error) {
    94  	contract, err := bindIMasternodeRegistryV2(address, backend, backend, backend)
    95  	if err != nil {
    96  		return nil, err
    97  	}
    98  	return &IMasternodeRegistryV2{IMasternodeRegistryV2Caller: IMasternodeRegistryV2Caller{contract: contract}, IMasternodeRegistryV2Transactor: IMasternodeRegistryV2Transactor{contract: contract}, IMasternodeRegistryV2Filterer: IMasternodeRegistryV2Filterer{contract: contract}}, nil
    99  }
   100  
   101  // NewIMasternodeRegistryV2Caller creates a new read-only instance of IMasternodeRegistryV2, bound to a specific deployed contract.
   102  func NewIMasternodeRegistryV2Caller(address common.Address, caller bind.ContractCaller) (*IMasternodeRegistryV2Caller, error) {
   103  	contract, err := bindIMasternodeRegistryV2(address, caller, nil, nil)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	return &IMasternodeRegistryV2Caller{contract: contract}, nil
   108  }
   109  
   110  // NewIMasternodeRegistryV2Transactor creates a new write-only instance of IMasternodeRegistryV2, bound to a specific deployed contract.
   111  func NewIMasternodeRegistryV2Transactor(address common.Address, transactor bind.ContractTransactor) (*IMasternodeRegistryV2Transactor, error) {
   112  	contract, err := bindIMasternodeRegistryV2(address, nil, transactor, nil)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &IMasternodeRegistryV2Transactor{contract: contract}, nil
   117  }
   118  
   119  // NewIMasternodeRegistryV2Filterer creates a new log filterer instance of IMasternodeRegistryV2, bound to a specific deployed contract.
   120  func NewIMasternodeRegistryV2Filterer(address common.Address, filterer bind.ContractFilterer) (*IMasternodeRegistryV2Filterer, error) {
   121  	contract, err := bindIMasternodeRegistryV2(address, nil, nil, filterer)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &IMasternodeRegistryV2Filterer{contract: contract}, nil
   126  }
   127  
   128  // bindIMasternodeRegistryV2 binds a generic wrapper to an already deployed contract.
   129  func bindIMasternodeRegistryV2(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   130  	parsed, err := abi.JSON(strings.NewReader(IMasternodeRegistryV2ABI))
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   135  }
   136  
   137  // Call invokes the (constant) contract method with params as input values and
   138  // sets the output to result. The result type might be a single field for simple
   139  // returns, a slice of interfaces for anonymous returns and a struct for named
   140  // returns.
   141  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   142  	return _IMasternodeRegistryV2.Contract.IMasternodeRegistryV2Caller.contract.Call(opts, result, method, params...)
   143  }
   144  
   145  // Transfer initiates a plain transaction to move funds to the contract, calling
   146  // its default method if one is available.
   147  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   148  	return _IMasternodeRegistryV2.Contract.IMasternodeRegistryV2Transactor.contract.Transfer(opts)
   149  }
   150  
   151  // Transact invokes the (paid) contract method with params as input values.
   152  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   153  	return _IMasternodeRegistryV2.Contract.IMasternodeRegistryV2Transactor.contract.Transact(opts, method, params...)
   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 (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   161  	return _IMasternodeRegistryV2.Contract.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 (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   167  	return _IMasternodeRegistryV2.Contract.contract.Transfer(opts)
   168  }
   169  
   170  // Transact invokes the (paid) contract method with params as input values.
   171  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   172  	return _IMasternodeRegistryV2.Contract.contract.Transact(opts, method, params...)
   173  }
   174  
   175  // CanHeartbeat is a free data retrieval call binding the contract method 0xd9966aba.
   176  //
   177  // Solidity: function canHeartbeat(address masternode) constant returns(bool can_heartbeat)
   178  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) CanHeartbeat(opts *bind.CallOpts, masternode common.Address) (bool, error) {
   179  	var (
   180  		ret0 = new(bool)
   181  	)
   182  	out := ret0
   183  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "canHeartbeat", masternode)
   184  	return *ret0, err
   185  }
   186  
   187  // CanHeartbeat is a free data retrieval call binding the contract method 0xd9966aba.
   188  //
   189  // Solidity: function canHeartbeat(address masternode) constant returns(bool can_heartbeat)
   190  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) CanHeartbeat(masternode common.Address) (bool, error) {
   191  	return _IMasternodeRegistryV2.Contract.CanHeartbeat(&_IMasternodeRegistryV2.CallOpts, masternode)
   192  }
   193  
   194  // CanHeartbeat is a free data retrieval call binding the contract method 0xd9966aba.
   195  //
   196  // Solidity: function canHeartbeat(address masternode) constant returns(bool can_heartbeat)
   197  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) CanHeartbeat(masternode common.Address) (bool, error) {
   198  	return _IMasternodeRegistryV2.Contract.CanHeartbeat(&_IMasternodeRegistryV2.CallOpts, masternode)
   199  }
   200  
   201  // CanInvalidate is a free data retrieval call binding the contract method 0xd13ef5a5.
   202  //
   203  // Solidity: function canInvalidate(address masternode) constant returns(bool can_invalidate)
   204  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) CanInvalidate(opts *bind.CallOpts, masternode common.Address) (bool, error) {
   205  	var (
   206  		ret0 = new(bool)
   207  	)
   208  	out := ret0
   209  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "canInvalidate", masternode)
   210  	return *ret0, err
   211  }
   212  
   213  // CanInvalidate is a free data retrieval call binding the contract method 0xd13ef5a5.
   214  //
   215  // Solidity: function canInvalidate(address masternode) constant returns(bool can_invalidate)
   216  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) CanInvalidate(masternode common.Address) (bool, error) {
   217  	return _IMasternodeRegistryV2.Contract.CanInvalidate(&_IMasternodeRegistryV2.CallOpts, masternode)
   218  }
   219  
   220  // CanInvalidate is a free data retrieval call binding the contract method 0xd13ef5a5.
   221  //
   222  // Solidity: function canInvalidate(address masternode) constant returns(bool can_invalidate)
   223  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) CanInvalidate(masternode common.Address) (bool, error) {
   224  	return _IMasternodeRegistryV2.Contract.CanInvalidate(&_IMasternodeRegistryV2.CallOpts, masternode)
   225  }
   226  
   227  // CollateralLimits is a free data retrieval call binding the contract method 0xe2cb2195.
   228  //
   229  // Solidity: function collateralLimits() constant returns(uint256 min, uint256 max)
   230  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) CollateralLimits(opts *bind.CallOpts) (struct {
   231  	Min *big.Int
   232  	Max *big.Int
   233  }, error) {
   234  	ret := new(struct {
   235  		Min *big.Int
   236  		Max *big.Int
   237  	})
   238  	out := ret
   239  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "collateralLimits")
   240  	return *ret, err
   241  }
   242  
   243  // CollateralLimits is a free data retrieval call binding the contract method 0xe2cb2195.
   244  //
   245  // Solidity: function collateralLimits() constant returns(uint256 min, uint256 max)
   246  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) CollateralLimits() (struct {
   247  	Min *big.Int
   248  	Max *big.Int
   249  }, error) {
   250  	return _IMasternodeRegistryV2.Contract.CollateralLimits(&_IMasternodeRegistryV2.CallOpts)
   251  }
   252  
   253  // CollateralLimits is a free data retrieval call binding the contract method 0xe2cb2195.
   254  //
   255  // Solidity: function collateralLimits() constant returns(uint256 min, uint256 max)
   256  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) CollateralLimits() (struct {
   257  	Min *big.Int
   258  	Max *big.Int
   259  }, error) {
   260  	return _IMasternodeRegistryV2.Contract.CollateralLimits(&_IMasternodeRegistryV2.CallOpts)
   261  }
   262  
   263  // Count is a free data retrieval call binding the contract method 0x06661abd.
   264  //
   265  // Solidity: function count() constant returns(uint256 active, uint256 total, uint256 active_collateral, uint256 total_collateral, uint256 max_of_all_times)
   266  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) Count(opts *bind.CallOpts) (struct {
   267  	Active           *big.Int
   268  	Total            *big.Int
   269  	ActiveCollateral *big.Int
   270  	TotalCollateral  *big.Int
   271  	MaxOfAllTimes    *big.Int
   272  }, error) {
   273  	ret := new(struct {
   274  		Active           *big.Int
   275  		Total            *big.Int
   276  		ActiveCollateral *big.Int
   277  		TotalCollateral  *big.Int
   278  		MaxOfAllTimes    *big.Int
   279  	})
   280  	out := ret
   281  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "count")
   282  	return *ret, err
   283  }
   284  
   285  // Count is a free data retrieval call binding the contract method 0x06661abd.
   286  //
   287  // Solidity: function count() constant returns(uint256 active, uint256 total, uint256 active_collateral, uint256 total_collateral, uint256 max_of_all_times)
   288  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Count() (struct {
   289  	Active           *big.Int
   290  	Total            *big.Int
   291  	ActiveCollateral *big.Int
   292  	TotalCollateral  *big.Int
   293  	MaxOfAllTimes    *big.Int
   294  }, error) {
   295  	return _IMasternodeRegistryV2.Contract.Count(&_IMasternodeRegistryV2.CallOpts)
   296  }
   297  
   298  // Count is a free data retrieval call binding the contract method 0x06661abd.
   299  //
   300  // Solidity: function count() constant returns(uint256 active, uint256 total, uint256 active_collateral, uint256 total_collateral, uint256 max_of_all_times)
   301  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) Count() (struct {
   302  	Active           *big.Int
   303  	Total            *big.Int
   304  	ActiveCollateral *big.Int
   305  	TotalCollateral  *big.Int
   306  	MaxOfAllTimes    *big.Int
   307  }, error) {
   308  	return _IMasternodeRegistryV2.Contract.Count(&_IMasternodeRegistryV2.CallOpts)
   309  }
   310  
   311  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   312  //
   313  // Solidity: function enumerate() constant returns(address[] masternodes)
   314  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) Enumerate(opts *bind.CallOpts) ([]common.Address, error) {
   315  	var (
   316  		ret0 = new([]common.Address)
   317  	)
   318  	out := ret0
   319  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "enumerate")
   320  	return *ret0, err
   321  }
   322  
   323  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   324  //
   325  // Solidity: function enumerate() constant returns(address[] masternodes)
   326  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Enumerate() ([]common.Address, error) {
   327  	return _IMasternodeRegistryV2.Contract.Enumerate(&_IMasternodeRegistryV2.CallOpts)
   328  }
   329  
   330  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   331  //
   332  // Solidity: function enumerate() constant returns(address[] masternodes)
   333  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) Enumerate() ([]common.Address, error) {
   334  	return _IMasternodeRegistryV2.Contract.Enumerate(&_IMasternodeRegistryV2.CallOpts)
   335  }
   336  
   337  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   338  //
   339  // Solidity: function enumerateActive() constant returns(address[] masternodes)
   340  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) EnumerateActive(opts *bind.CallOpts) ([]common.Address, error) {
   341  	var (
   342  		ret0 = new([]common.Address)
   343  	)
   344  	out := ret0
   345  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "enumerateActive")
   346  	return *ret0, err
   347  }
   348  
   349  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   350  //
   351  // Solidity: function enumerateActive() constant returns(address[] masternodes)
   352  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) EnumerateActive() ([]common.Address, error) {
   353  	return _IMasternodeRegistryV2.Contract.EnumerateActive(&_IMasternodeRegistryV2.CallOpts)
   354  }
   355  
   356  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   357  //
   358  // Solidity: function enumerateActive() constant returns(address[] masternodes)
   359  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) EnumerateActive() ([]common.Address, error) {
   360  	return _IMasternodeRegistryV2.Contract.EnumerateActive(&_IMasternodeRegistryV2.CallOpts)
   361  }
   362  
   363  // Info is a free data retrieval call binding the contract method 0x0aae7a6b.
   364  //
   365  // Solidity: function info(address masternode) constant returns(address owner, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   366  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) Info(opts *bind.CallOpts, masternode common.Address) (struct {
   367  	Owner          common.Address
   368  	Ipv4address    uint32
   369  	Enode          [2][32]byte
   370  	Collateral     *big.Int
   371  	AnnouncedBlock *big.Int
   372  	SwFeatures     *big.Int
   373  }, error) {
   374  	ret := new(struct {
   375  		Owner          common.Address
   376  		Ipv4address    uint32
   377  		Enode          [2][32]byte
   378  		Collateral     *big.Int
   379  		AnnouncedBlock *big.Int
   380  		SwFeatures     *big.Int
   381  	})
   382  	out := ret
   383  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "info", masternode)
   384  	return *ret, err
   385  }
   386  
   387  // Info is a free data retrieval call binding the contract method 0x0aae7a6b.
   388  //
   389  // Solidity: function info(address masternode) constant returns(address owner, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   390  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Info(masternode common.Address) (struct {
   391  	Owner          common.Address
   392  	Ipv4address    uint32
   393  	Enode          [2][32]byte
   394  	Collateral     *big.Int
   395  	AnnouncedBlock *big.Int
   396  	SwFeatures     *big.Int
   397  }, error) {
   398  	return _IMasternodeRegistryV2.Contract.Info(&_IMasternodeRegistryV2.CallOpts, masternode)
   399  }
   400  
   401  // Info is a free data retrieval call binding the contract method 0x0aae7a6b.
   402  //
   403  // Solidity: function info(address masternode) constant returns(address owner, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   404  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) Info(masternode common.Address) (struct {
   405  	Owner          common.Address
   406  	Ipv4address    uint32
   407  	Enode          [2][32]byte
   408  	Collateral     *big.Int
   409  	AnnouncedBlock *big.Int
   410  	SwFeatures     *big.Int
   411  }, error) {
   412  	return _IMasternodeRegistryV2.Contract.Info(&_IMasternodeRegistryV2.CallOpts, masternode)
   413  }
   414  
   415  // IsActive is a free data retrieval call binding the contract method 0x9f8a13d7.
   416  //
   417  // Solidity: function isActive(address masternode) constant returns(bool)
   418  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) IsActive(opts *bind.CallOpts, masternode common.Address) (bool, error) {
   419  	var (
   420  		ret0 = new(bool)
   421  	)
   422  	out := ret0
   423  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "isActive", masternode)
   424  	return *ret0, err
   425  }
   426  
   427  // IsActive is a free data retrieval call binding the contract method 0x9f8a13d7.
   428  //
   429  // Solidity: function isActive(address masternode) constant returns(bool)
   430  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) IsActive(masternode common.Address) (bool, error) {
   431  	return _IMasternodeRegistryV2.Contract.IsActive(&_IMasternodeRegistryV2.CallOpts, masternode)
   432  }
   433  
   434  // IsActive is a free data retrieval call binding the contract method 0x9f8a13d7.
   435  //
   436  // Solidity: function isActive(address masternode) constant returns(bool)
   437  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) IsActive(masternode common.Address) (bool, error) {
   438  	return _IMasternodeRegistryV2.Contract.IsActive(&_IMasternodeRegistryV2.CallOpts, masternode)
   439  }
   440  
   441  // OwnerInfo is a free data retrieval call binding the contract method 0xb83e1605.
   442  //
   443  // Solidity: function ownerInfo(address owner) constant returns(address masternode, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   444  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) OwnerInfo(opts *bind.CallOpts, owner common.Address) (struct {
   445  	Masternode     common.Address
   446  	Ipv4address    uint32
   447  	Enode          [2][32]byte
   448  	Collateral     *big.Int
   449  	AnnouncedBlock *big.Int
   450  	SwFeatures     *big.Int
   451  }, error) {
   452  	ret := new(struct {
   453  		Masternode     common.Address
   454  		Ipv4address    uint32
   455  		Enode          [2][32]byte
   456  		Collateral     *big.Int
   457  		AnnouncedBlock *big.Int
   458  		SwFeatures     *big.Int
   459  	})
   460  	out := ret
   461  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "ownerInfo", owner)
   462  	return *ret, err
   463  }
   464  
   465  // OwnerInfo is a free data retrieval call binding the contract method 0xb83e1605.
   466  //
   467  // Solidity: function ownerInfo(address owner) constant returns(address masternode, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   468  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) OwnerInfo(owner common.Address) (struct {
   469  	Masternode     common.Address
   470  	Ipv4address    uint32
   471  	Enode          [2][32]byte
   472  	Collateral     *big.Int
   473  	AnnouncedBlock *big.Int
   474  	SwFeatures     *big.Int
   475  }, error) {
   476  	return _IMasternodeRegistryV2.Contract.OwnerInfo(&_IMasternodeRegistryV2.CallOpts, owner)
   477  }
   478  
   479  // OwnerInfo is a free data retrieval call binding the contract method 0xb83e1605.
   480  //
   481  // Solidity: function ownerInfo(address owner) constant returns(address masternode, uint32 ipv4address, bytes32[2] enode, uint256 collateral, uint256 announced_block, uint256 sw_features)
   482  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) OwnerInfo(owner common.Address) (struct {
   483  	Masternode     common.Address
   484  	Ipv4address    uint32
   485  	Enode          [2][32]byte
   486  	Collateral     *big.Int
   487  	AnnouncedBlock *big.Int
   488  	SwFeatures     *big.Int
   489  }, error) {
   490  	return _IMasternodeRegistryV2.Contract.OwnerInfo(&_IMasternodeRegistryV2.CallOpts, owner)
   491  }
   492  
   493  // TokenProxy is a free data retrieval call binding the contract method 0x84afd47f.
   494  //
   495  // Solidity: function token_proxy() constant returns(address)
   496  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) TokenProxy(opts *bind.CallOpts) (common.Address, error) {
   497  	var (
   498  		ret0 = new(common.Address)
   499  	)
   500  	out := ret0
   501  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "token_proxy")
   502  	return *ret0, err
   503  }
   504  
   505  // TokenProxy is a free data retrieval call binding the contract method 0x84afd47f.
   506  //
   507  // Solidity: function token_proxy() constant returns(address)
   508  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) TokenProxy() (common.Address, error) {
   509  	return _IMasternodeRegistryV2.Contract.TokenProxy(&_IMasternodeRegistryV2.CallOpts)
   510  }
   511  
   512  // TokenProxy is a free data retrieval call binding the contract method 0x84afd47f.
   513  //
   514  // Solidity: function token_proxy() constant returns(address)
   515  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) TokenProxy() (common.Address, error) {
   516  	return _IMasternodeRegistryV2.Contract.TokenProxy(&_IMasternodeRegistryV2.CallOpts)
   517  }
   518  
   519  // TreasuryProxy is a free data retrieval call binding the contract method 0xa2731784.
   520  //
   521  // Solidity: function treasury_proxy() constant returns(address)
   522  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) TreasuryProxy(opts *bind.CallOpts) (common.Address, error) {
   523  	var (
   524  		ret0 = new(common.Address)
   525  	)
   526  	out := ret0
   527  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "treasury_proxy")
   528  	return *ret0, err
   529  }
   530  
   531  // TreasuryProxy is a free data retrieval call binding the contract method 0xa2731784.
   532  //
   533  // Solidity: function treasury_proxy() constant returns(address)
   534  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) TreasuryProxy() (common.Address, error) {
   535  	return _IMasternodeRegistryV2.Contract.TreasuryProxy(&_IMasternodeRegistryV2.CallOpts)
   536  }
   537  
   538  // TreasuryProxy is a free data retrieval call binding the contract method 0xa2731784.
   539  //
   540  // Solidity: function treasury_proxy() constant returns(address)
   541  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) TreasuryProxy() (common.Address, error) {
   542  	return _IMasternodeRegistryV2.Contract.TreasuryProxy(&_IMasternodeRegistryV2.CallOpts)
   543  }
   544  
   545  // ValidationTarget is a free data retrieval call binding the contract method 0xc3db74d6.
   546  //
   547  // Solidity: function validationTarget(address masternode) constant returns(address target)
   548  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Caller) ValidationTarget(opts *bind.CallOpts, masternode common.Address) (common.Address, error) {
   549  	var (
   550  		ret0 = new(common.Address)
   551  	)
   552  	out := ret0
   553  	err := _IMasternodeRegistryV2.contract.Call(opts, out, "validationTarget", masternode)
   554  	return *ret0, err
   555  }
   556  
   557  // ValidationTarget is a free data retrieval call binding the contract method 0xc3db74d6.
   558  //
   559  // Solidity: function validationTarget(address masternode) constant returns(address target)
   560  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) ValidationTarget(masternode common.Address) (common.Address, error) {
   561  	return _IMasternodeRegistryV2.Contract.ValidationTarget(&_IMasternodeRegistryV2.CallOpts, masternode)
   562  }
   563  
   564  // ValidationTarget is a free data retrieval call binding the contract method 0xc3db74d6.
   565  //
   566  // Solidity: function validationTarget(address masternode) constant returns(address target)
   567  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2CallerSession) ValidationTarget(masternode common.Address) (common.Address, error) {
   568  	return _IMasternodeRegistryV2.Contract.ValidationTarget(&_IMasternodeRegistryV2.CallOpts, masternode)
   569  }
   570  
   571  // Announce is a paid mutator transaction binding the contract method 0xd70d5c30.
   572  //
   573  // Solidity: function announce(address masternode, uint32 ipv4address, bytes32[2] enode) returns()
   574  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Transactor) Announce(opts *bind.TransactOpts, masternode common.Address, ipv4address uint32, enode [2][32]byte) (*types.Transaction, error) {
   575  	return _IMasternodeRegistryV2.contract.Transact(opts, "announce", masternode, ipv4address, enode)
   576  }
   577  
   578  // Announce is a paid mutator transaction binding the contract method 0xd70d5c30.
   579  //
   580  // Solidity: function announce(address masternode, uint32 ipv4address, bytes32[2] enode) returns()
   581  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Announce(masternode common.Address, ipv4address uint32, enode [2][32]byte) (*types.Transaction, error) {
   582  	return _IMasternodeRegistryV2.Contract.Announce(&_IMasternodeRegistryV2.TransactOpts, masternode, ipv4address, enode)
   583  }
   584  
   585  // Announce is a paid mutator transaction binding the contract method 0xd70d5c30.
   586  //
   587  // Solidity: function announce(address masternode, uint32 ipv4address, bytes32[2] enode) returns()
   588  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorSession) Announce(masternode common.Address, ipv4address uint32, enode [2][32]byte) (*types.Transaction, error) {
   589  	return _IMasternodeRegistryV2.Contract.Announce(&_IMasternodeRegistryV2.TransactOpts, masternode, ipv4address, enode)
   590  }
   591  
   592  // Denounce is a paid mutator transaction binding the contract method 0xca0e551f.
   593  //
   594  // Solidity: function denounce(address masternode) returns()
   595  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Transactor) Denounce(opts *bind.TransactOpts, masternode common.Address) (*types.Transaction, error) {
   596  	return _IMasternodeRegistryV2.contract.Transact(opts, "denounce", masternode)
   597  }
   598  
   599  // Denounce is a paid mutator transaction binding the contract method 0xca0e551f.
   600  //
   601  // Solidity: function denounce(address masternode) returns()
   602  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Denounce(masternode common.Address) (*types.Transaction, error) {
   603  	return _IMasternodeRegistryV2.Contract.Denounce(&_IMasternodeRegistryV2.TransactOpts, masternode)
   604  }
   605  
   606  // Denounce is a paid mutator transaction binding the contract method 0xca0e551f.
   607  //
   608  // Solidity: function denounce(address masternode) returns()
   609  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorSession) Denounce(masternode common.Address) (*types.Transaction, error) {
   610  	return _IMasternodeRegistryV2.Contract.Denounce(&_IMasternodeRegistryV2.TransactOpts, masternode)
   611  }
   612  
   613  // Heartbeat is a paid mutator transaction binding the contract method 0x91ceac96.
   614  //
   615  // Solidity: function heartbeat(uint256 block_number, bytes32 block_hash, uint256 sw_features) returns()
   616  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Transactor) Heartbeat(opts *bind.TransactOpts, block_number *big.Int, block_hash [32]byte, sw_features *big.Int) (*types.Transaction, error) {
   617  	return _IMasternodeRegistryV2.contract.Transact(opts, "heartbeat", block_number, block_hash, sw_features)
   618  }
   619  
   620  // Heartbeat is a paid mutator transaction binding the contract method 0x91ceac96.
   621  //
   622  // Solidity: function heartbeat(uint256 block_number, bytes32 block_hash, uint256 sw_features) returns()
   623  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Heartbeat(block_number *big.Int, block_hash [32]byte, sw_features *big.Int) (*types.Transaction, error) {
   624  	return _IMasternodeRegistryV2.Contract.Heartbeat(&_IMasternodeRegistryV2.TransactOpts, block_number, block_hash, sw_features)
   625  }
   626  
   627  // Heartbeat is a paid mutator transaction binding the contract method 0x91ceac96.
   628  //
   629  // Solidity: function heartbeat(uint256 block_number, bytes32 block_hash, uint256 sw_features) returns()
   630  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorSession) Heartbeat(block_number *big.Int, block_hash [32]byte, sw_features *big.Int) (*types.Transaction, error) {
   631  	return _IMasternodeRegistryV2.Contract.Heartbeat(&_IMasternodeRegistryV2.TransactOpts, block_number, block_hash, sw_features)
   632  }
   633  
   634  // Invalidate is a paid mutator transaction binding the contract method 0x37a3931f.
   635  //
   636  // Solidity: function invalidate(address masternode) returns()
   637  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Transactor) Invalidate(opts *bind.TransactOpts, masternode common.Address) (*types.Transaction, error) {
   638  	return _IMasternodeRegistryV2.contract.Transact(opts, "invalidate", masternode)
   639  }
   640  
   641  // Invalidate is a paid mutator transaction binding the contract method 0x37a3931f.
   642  //
   643  // Solidity: function invalidate(address masternode) returns()
   644  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) Invalidate(masternode common.Address) (*types.Transaction, error) {
   645  	return _IMasternodeRegistryV2.Contract.Invalidate(&_IMasternodeRegistryV2.TransactOpts, masternode)
   646  }
   647  
   648  // Invalidate is a paid mutator transaction binding the contract method 0x37a3931f.
   649  //
   650  // Solidity: function invalidate(address masternode) returns()
   651  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorSession) Invalidate(masternode common.Address) (*types.Transaction, error) {
   652  	return _IMasternodeRegistryV2.Contract.Invalidate(&_IMasternodeRegistryV2.TransactOpts, masternode)
   653  }
   654  
   655  // OnCollateralUpdate is a paid mutator transaction binding the contract method 0xcdc7d4ad.
   656  //
   657  // Solidity: function onCollateralUpdate(address owner) returns()
   658  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Transactor) OnCollateralUpdate(opts *bind.TransactOpts, owner common.Address) (*types.Transaction, error) {
   659  	return _IMasternodeRegistryV2.contract.Transact(opts, "onCollateralUpdate", owner)
   660  }
   661  
   662  // OnCollateralUpdate is a paid mutator transaction binding the contract method 0xcdc7d4ad.
   663  //
   664  // Solidity: function onCollateralUpdate(address owner) returns()
   665  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Session) OnCollateralUpdate(owner common.Address) (*types.Transaction, error) {
   666  	return _IMasternodeRegistryV2.Contract.OnCollateralUpdate(&_IMasternodeRegistryV2.TransactOpts, owner)
   667  }
   668  
   669  // OnCollateralUpdate is a paid mutator transaction binding the contract method 0xcdc7d4ad.
   670  //
   671  // Solidity: function onCollateralUpdate(address owner) returns()
   672  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2TransactorSession) OnCollateralUpdate(owner common.Address) (*types.Transaction, error) {
   673  	return _IMasternodeRegistryV2.Contract.OnCollateralUpdate(&_IMasternodeRegistryV2.TransactOpts, owner)
   674  }
   675  
   676  // IMasternodeRegistryV2AnnouncedIterator is returned from FilterAnnounced and is used to iterate over the raw logs and unpacked data for Announced events raised by the IMasternodeRegistryV2 contract.
   677  type IMasternodeRegistryV2AnnouncedIterator struct {
   678  	Event *IMasternodeRegistryV2Announced // Event containing the contract specifics and raw log
   679  
   680  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   681  	event    string              // Event name to use for unpacking event data
   682  
   683  	logs chan types.Log        // Log channel receiving the found contract events
   684  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   685  	done bool                  // Whether the subscription completed delivering logs
   686  	fail error                 // Occurred error to stop iteration
   687  }
   688  
   689  // Next advances the iterator to the subsequent event, returning whether there
   690  // are any more events found. In case of a retrieval or parsing error, false is
   691  // returned and Error() can be queried for the exact failure.
   692  func (it *IMasternodeRegistryV2AnnouncedIterator) Next() bool {
   693  	// If the iterator failed, stop iterating
   694  	if it.fail != nil {
   695  		return false
   696  	}
   697  	// If the iterator completed, deliver directly whatever's available
   698  	if it.done {
   699  		select {
   700  		case log := <-it.logs:
   701  			it.Event = new(IMasternodeRegistryV2Announced)
   702  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   703  				it.fail = err
   704  				return false
   705  			}
   706  			it.Event.Raw = log
   707  			return true
   708  
   709  		default:
   710  			return false
   711  		}
   712  	}
   713  	// Iterator still in progress, wait for either a data or an error event
   714  	select {
   715  	case log := <-it.logs:
   716  		it.Event = new(IMasternodeRegistryV2Announced)
   717  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   718  			it.fail = err
   719  			return false
   720  		}
   721  		it.Event.Raw = log
   722  		return true
   723  
   724  	case err := <-it.sub.Err():
   725  		it.done = true
   726  		it.fail = err
   727  		return it.Next()
   728  	}
   729  }
   730  
   731  // Error returns any retrieval or parsing error occurred during filtering.
   732  func (it *IMasternodeRegistryV2AnnouncedIterator) Error() error {
   733  	return it.fail
   734  }
   735  
   736  // Close terminates the iteration process, releasing any pending underlying
   737  // resources.
   738  func (it *IMasternodeRegistryV2AnnouncedIterator) Close() error {
   739  	it.sub.Unsubscribe()
   740  	return nil
   741  }
   742  
   743  // IMasternodeRegistryV2Announced represents a Announced event raised by the IMasternodeRegistryV2 contract.
   744  type IMasternodeRegistryV2Announced struct {
   745  	Masternode  common.Address
   746  	Owner       common.Address
   747  	Ipv4address uint32
   748  	Enode       [2][32]byte
   749  	Collateral  *big.Int
   750  	Raw         types.Log // Blockchain specific contextual infos
   751  }
   752  
   753  // FilterAnnounced is a free log retrieval operation binding the contract event 0x935a2f33570c4840d82856d75f5d0aafca32c5e6b31db5627552304a7dc82c09.
   754  //
   755  // Solidity: event Announced(address indexed masternode, address indexed owner, uint32 ipv4address, bytes32[2] enode, uint256 collateral)
   756  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) FilterAnnounced(opts *bind.FilterOpts, masternode []common.Address, owner []common.Address) (*IMasternodeRegistryV2AnnouncedIterator, error) {
   757  
   758  	var masternodeRule []interface{}
   759  	for _, masternodeItem := range masternode {
   760  		masternodeRule = append(masternodeRule, masternodeItem)
   761  	}
   762  	var ownerRule []interface{}
   763  	for _, ownerItem := range owner {
   764  		ownerRule = append(ownerRule, ownerItem)
   765  	}
   766  
   767  	logs, sub, err := _IMasternodeRegistryV2.contract.FilterLogs(opts, "Announced", masternodeRule, ownerRule)
   768  	if err != nil {
   769  		return nil, err
   770  	}
   771  	return &IMasternodeRegistryV2AnnouncedIterator{contract: _IMasternodeRegistryV2.contract, event: "Announced", logs: logs, sub: sub}, nil
   772  }
   773  
   774  // WatchAnnounced is a free log subscription operation binding the contract event 0x935a2f33570c4840d82856d75f5d0aafca32c5e6b31db5627552304a7dc82c09.
   775  //
   776  // Solidity: event Announced(address indexed masternode, address indexed owner, uint32 ipv4address, bytes32[2] enode, uint256 collateral)
   777  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) WatchAnnounced(opts *bind.WatchOpts, sink chan<- *IMasternodeRegistryV2Announced, masternode []common.Address, owner []common.Address) (event.Subscription, error) {
   778  
   779  	var masternodeRule []interface{}
   780  	for _, masternodeItem := range masternode {
   781  		masternodeRule = append(masternodeRule, masternodeItem)
   782  	}
   783  	var ownerRule []interface{}
   784  	for _, ownerItem := range owner {
   785  		ownerRule = append(ownerRule, ownerItem)
   786  	}
   787  
   788  	logs, sub, err := _IMasternodeRegistryV2.contract.WatchLogs(opts, "Announced", masternodeRule, ownerRule)
   789  	if err != nil {
   790  		return nil, err
   791  	}
   792  	return event.NewSubscription(func(quit <-chan struct{}) error {
   793  		defer sub.Unsubscribe()
   794  		for {
   795  			select {
   796  			case log := <-logs:
   797  				// New log arrived, parse the event and forward to the user
   798  				event := new(IMasternodeRegistryV2Announced)
   799  				if err := _IMasternodeRegistryV2.contract.UnpackLog(event, "Announced", log); err != nil {
   800  					return err
   801  				}
   802  				event.Raw = log
   803  
   804  				select {
   805  				case sink <- event:
   806  				case err := <-sub.Err():
   807  					return err
   808  				case <-quit:
   809  					return nil
   810  				}
   811  			case err := <-sub.Err():
   812  				return err
   813  			case <-quit:
   814  				return nil
   815  			}
   816  		}
   817  	}), nil
   818  }
   819  
   820  // IMasternodeRegistryV2DeactivatedIterator is returned from FilterDeactivated and is used to iterate over the raw logs and unpacked data for Deactivated events raised by the IMasternodeRegistryV2 contract.
   821  type IMasternodeRegistryV2DeactivatedIterator struct {
   822  	Event *IMasternodeRegistryV2Deactivated // Event containing the contract specifics and raw log
   823  
   824  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   825  	event    string              // Event name to use for unpacking event data
   826  
   827  	logs chan types.Log        // Log channel receiving the found contract events
   828  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   829  	done bool                  // Whether the subscription completed delivering logs
   830  	fail error                 // Occurred error to stop iteration
   831  }
   832  
   833  // Next advances the iterator to the subsequent event, returning whether there
   834  // are any more events found. In case of a retrieval or parsing error, false is
   835  // returned and Error() can be queried for the exact failure.
   836  func (it *IMasternodeRegistryV2DeactivatedIterator) Next() bool {
   837  	// If the iterator failed, stop iterating
   838  	if it.fail != nil {
   839  		return false
   840  	}
   841  	// If the iterator completed, deliver directly whatever's available
   842  	if it.done {
   843  		select {
   844  		case log := <-it.logs:
   845  			it.Event = new(IMasternodeRegistryV2Deactivated)
   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  		default:
   854  			return false
   855  		}
   856  	}
   857  	// Iterator still in progress, wait for either a data or an error event
   858  	select {
   859  	case log := <-it.logs:
   860  		it.Event = new(IMasternodeRegistryV2Deactivated)
   861  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   862  			it.fail = err
   863  			return false
   864  		}
   865  		it.Event.Raw = log
   866  		return true
   867  
   868  	case err := <-it.sub.Err():
   869  		it.done = true
   870  		it.fail = err
   871  		return it.Next()
   872  	}
   873  }
   874  
   875  // Error returns any retrieval or parsing error occurred during filtering.
   876  func (it *IMasternodeRegistryV2DeactivatedIterator) Error() error {
   877  	return it.fail
   878  }
   879  
   880  // Close terminates the iteration process, releasing any pending underlying
   881  // resources.
   882  func (it *IMasternodeRegistryV2DeactivatedIterator) Close() error {
   883  	it.sub.Unsubscribe()
   884  	return nil
   885  }
   886  
   887  // IMasternodeRegistryV2Deactivated represents a Deactivated event raised by the IMasternodeRegistryV2 contract.
   888  type IMasternodeRegistryV2Deactivated struct {
   889  	Masternode common.Address
   890  	Raw        types.Log // Blockchain specific contextual infos
   891  }
   892  
   893  // FilterDeactivated is a free log retrieval operation binding the contract event 0x749cb6b4c510bc468cf6b9c2086d6f0a54d6b18e25d37bf3200e68eab0880c00.
   894  //
   895  // Solidity: event Deactivated(address indexed masternode)
   896  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) FilterDeactivated(opts *bind.FilterOpts, masternode []common.Address) (*IMasternodeRegistryV2DeactivatedIterator, error) {
   897  
   898  	var masternodeRule []interface{}
   899  	for _, masternodeItem := range masternode {
   900  		masternodeRule = append(masternodeRule, masternodeItem)
   901  	}
   902  
   903  	logs, sub, err := _IMasternodeRegistryV2.contract.FilterLogs(opts, "Deactivated", masternodeRule)
   904  	if err != nil {
   905  		return nil, err
   906  	}
   907  	return &IMasternodeRegistryV2DeactivatedIterator{contract: _IMasternodeRegistryV2.contract, event: "Deactivated", logs: logs, sub: sub}, nil
   908  }
   909  
   910  // WatchDeactivated is a free log subscription operation binding the contract event 0x749cb6b4c510bc468cf6b9c2086d6f0a54d6b18e25d37bf3200e68eab0880c00.
   911  //
   912  // Solidity: event Deactivated(address indexed masternode)
   913  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) WatchDeactivated(opts *bind.WatchOpts, sink chan<- *IMasternodeRegistryV2Deactivated, masternode []common.Address) (event.Subscription, error) {
   914  
   915  	var masternodeRule []interface{}
   916  	for _, masternodeItem := range masternode {
   917  		masternodeRule = append(masternodeRule, masternodeItem)
   918  	}
   919  
   920  	logs, sub, err := _IMasternodeRegistryV2.contract.WatchLogs(opts, "Deactivated", masternodeRule)
   921  	if err != nil {
   922  		return nil, err
   923  	}
   924  	return event.NewSubscription(func(quit <-chan struct{}) error {
   925  		defer sub.Unsubscribe()
   926  		for {
   927  			select {
   928  			case log := <-logs:
   929  				// New log arrived, parse the event and forward to the user
   930  				event := new(IMasternodeRegistryV2Deactivated)
   931  				if err := _IMasternodeRegistryV2.contract.UnpackLog(event, "Deactivated", log); err != nil {
   932  					return err
   933  				}
   934  				event.Raw = log
   935  
   936  				select {
   937  				case sink <- event:
   938  				case err := <-sub.Err():
   939  					return err
   940  				case <-quit:
   941  					return nil
   942  				}
   943  			case err := <-sub.Err():
   944  				return err
   945  			case <-quit:
   946  				return nil
   947  			}
   948  		}
   949  	}), nil
   950  }
   951  
   952  // IMasternodeRegistryV2DenouncedIterator is returned from FilterDenounced and is used to iterate over the raw logs and unpacked data for Denounced events raised by the IMasternodeRegistryV2 contract.
   953  type IMasternodeRegistryV2DenouncedIterator struct {
   954  	Event *IMasternodeRegistryV2Denounced // Event containing the contract specifics and raw log
   955  
   956  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   957  	event    string              // Event name to use for unpacking event data
   958  
   959  	logs chan types.Log        // Log channel receiving the found contract events
   960  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   961  	done bool                  // Whether the subscription completed delivering logs
   962  	fail error                 // Occurred error to stop iteration
   963  }
   964  
   965  // Next advances the iterator to the subsequent event, returning whether there
   966  // are any more events found. In case of a retrieval or parsing error, false is
   967  // returned and Error() can be queried for the exact failure.
   968  func (it *IMasternodeRegistryV2DenouncedIterator) Next() bool {
   969  	// If the iterator failed, stop iterating
   970  	if it.fail != nil {
   971  		return false
   972  	}
   973  	// If the iterator completed, deliver directly whatever's available
   974  	if it.done {
   975  		select {
   976  		case log := <-it.logs:
   977  			it.Event = new(IMasternodeRegistryV2Denounced)
   978  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   979  				it.fail = err
   980  				return false
   981  			}
   982  			it.Event.Raw = log
   983  			return true
   984  
   985  		default:
   986  			return false
   987  		}
   988  	}
   989  	// Iterator still in progress, wait for either a data or an error event
   990  	select {
   991  	case log := <-it.logs:
   992  		it.Event = new(IMasternodeRegistryV2Denounced)
   993  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   994  			it.fail = err
   995  			return false
   996  		}
   997  		it.Event.Raw = log
   998  		return true
   999  
  1000  	case err := <-it.sub.Err():
  1001  		it.done = true
  1002  		it.fail = err
  1003  		return it.Next()
  1004  	}
  1005  }
  1006  
  1007  // Error returns any retrieval or parsing error occurred during filtering.
  1008  func (it *IMasternodeRegistryV2DenouncedIterator) Error() error {
  1009  	return it.fail
  1010  }
  1011  
  1012  // Close terminates the iteration process, releasing any pending underlying
  1013  // resources.
  1014  func (it *IMasternodeRegistryV2DenouncedIterator) Close() error {
  1015  	it.sub.Unsubscribe()
  1016  	return nil
  1017  }
  1018  
  1019  // IMasternodeRegistryV2Denounced represents a Denounced event raised by the IMasternodeRegistryV2 contract.
  1020  type IMasternodeRegistryV2Denounced struct {
  1021  	Masternode common.Address
  1022  	Owner      common.Address
  1023  	Raw        types.Log // Blockchain specific contextual infos
  1024  }
  1025  
  1026  // FilterDenounced is a free log retrieval operation binding the contract event 0x55faf8e51ab442f8d8510476317b2e313144c3db60adc284affef64140fe8552.
  1027  //
  1028  // Solidity: event Denounced(address indexed masternode, address indexed owner)
  1029  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) FilterDenounced(opts *bind.FilterOpts, masternode []common.Address, owner []common.Address) (*IMasternodeRegistryV2DenouncedIterator, error) {
  1030  
  1031  	var masternodeRule []interface{}
  1032  	for _, masternodeItem := range masternode {
  1033  		masternodeRule = append(masternodeRule, masternodeItem)
  1034  	}
  1035  	var ownerRule []interface{}
  1036  	for _, ownerItem := range owner {
  1037  		ownerRule = append(ownerRule, ownerItem)
  1038  	}
  1039  
  1040  	logs, sub, err := _IMasternodeRegistryV2.contract.FilterLogs(opts, "Denounced", masternodeRule, ownerRule)
  1041  	if err != nil {
  1042  		return nil, err
  1043  	}
  1044  	return &IMasternodeRegistryV2DenouncedIterator{contract: _IMasternodeRegistryV2.contract, event: "Denounced", logs: logs, sub: sub}, nil
  1045  }
  1046  
  1047  // WatchDenounced is a free log subscription operation binding the contract event 0x55faf8e51ab442f8d8510476317b2e313144c3db60adc284affef64140fe8552.
  1048  //
  1049  // Solidity: event Denounced(address indexed masternode, address indexed owner)
  1050  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) WatchDenounced(opts *bind.WatchOpts, sink chan<- *IMasternodeRegistryV2Denounced, masternode []common.Address, owner []common.Address) (event.Subscription, error) {
  1051  
  1052  	var masternodeRule []interface{}
  1053  	for _, masternodeItem := range masternode {
  1054  		masternodeRule = append(masternodeRule, masternodeItem)
  1055  	}
  1056  	var ownerRule []interface{}
  1057  	for _, ownerItem := range owner {
  1058  		ownerRule = append(ownerRule, ownerItem)
  1059  	}
  1060  
  1061  	logs, sub, err := _IMasternodeRegistryV2.contract.WatchLogs(opts, "Denounced", masternodeRule, ownerRule)
  1062  	if err != nil {
  1063  		return nil, err
  1064  	}
  1065  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1066  		defer sub.Unsubscribe()
  1067  		for {
  1068  			select {
  1069  			case log := <-logs:
  1070  				// New log arrived, parse the event and forward to the user
  1071  				event := new(IMasternodeRegistryV2Denounced)
  1072  				if err := _IMasternodeRegistryV2.contract.UnpackLog(event, "Denounced", log); err != nil {
  1073  					return err
  1074  				}
  1075  				event.Raw = log
  1076  
  1077  				select {
  1078  				case sink <- event:
  1079  				case err := <-sub.Err():
  1080  					return err
  1081  				case <-quit:
  1082  					return nil
  1083  				}
  1084  			case err := <-sub.Err():
  1085  				return err
  1086  			case <-quit:
  1087  				return nil
  1088  			}
  1089  		}
  1090  	}), nil
  1091  }
  1092  
  1093  // IMasternodeRegistryV2InvalidationIterator is returned from FilterInvalidation and is used to iterate over the raw logs and unpacked data for Invalidation events raised by the IMasternodeRegistryV2 contract.
  1094  type IMasternodeRegistryV2InvalidationIterator struct {
  1095  	Event *IMasternodeRegistryV2Invalidation // Event containing the contract specifics and raw log
  1096  
  1097  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1098  	event    string              // Event name to use for unpacking event data
  1099  
  1100  	logs chan types.Log        // Log channel receiving the found contract events
  1101  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1102  	done bool                  // Whether the subscription completed delivering logs
  1103  	fail error                 // Occurred error to stop iteration
  1104  }
  1105  
  1106  // Next advances the iterator to the subsequent event, returning whether there
  1107  // are any more events found. In case of a retrieval or parsing error, false is
  1108  // returned and Error() can be queried for the exact failure.
  1109  func (it *IMasternodeRegistryV2InvalidationIterator) Next() bool {
  1110  	// If the iterator failed, stop iterating
  1111  	if it.fail != nil {
  1112  		return false
  1113  	}
  1114  	// If the iterator completed, deliver directly whatever's available
  1115  	if it.done {
  1116  		select {
  1117  		case log := <-it.logs:
  1118  			it.Event = new(IMasternodeRegistryV2Invalidation)
  1119  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1120  				it.fail = err
  1121  				return false
  1122  			}
  1123  			it.Event.Raw = log
  1124  			return true
  1125  
  1126  		default:
  1127  			return false
  1128  		}
  1129  	}
  1130  	// Iterator still in progress, wait for either a data or an error event
  1131  	select {
  1132  	case log := <-it.logs:
  1133  		it.Event = new(IMasternodeRegistryV2Invalidation)
  1134  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1135  			it.fail = err
  1136  			return false
  1137  		}
  1138  		it.Event.Raw = log
  1139  		return true
  1140  
  1141  	case err := <-it.sub.Err():
  1142  		it.done = true
  1143  		it.fail = err
  1144  		return it.Next()
  1145  	}
  1146  }
  1147  
  1148  // Error returns any retrieval or parsing error occurred during filtering.
  1149  func (it *IMasternodeRegistryV2InvalidationIterator) Error() error {
  1150  	return it.fail
  1151  }
  1152  
  1153  // Close terminates the iteration process, releasing any pending underlying
  1154  // resources.
  1155  func (it *IMasternodeRegistryV2InvalidationIterator) Close() error {
  1156  	it.sub.Unsubscribe()
  1157  	return nil
  1158  }
  1159  
  1160  // IMasternodeRegistryV2Invalidation represents a Invalidation event raised by the IMasternodeRegistryV2 contract.
  1161  type IMasternodeRegistryV2Invalidation struct {
  1162  	Masternode common.Address
  1163  	Validator  common.Address
  1164  	Raw        types.Log // Blockchain specific contextual infos
  1165  }
  1166  
  1167  // FilterInvalidation is a free log retrieval operation binding the contract event 0x389d58799d7eca76264c556a007ffbc7c60caa4e3c8ea0564e791af3a1b9d331.
  1168  //
  1169  // Solidity: event Invalidation(address indexed masternode, address indexed validator)
  1170  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) FilterInvalidation(opts *bind.FilterOpts, masternode []common.Address, validator []common.Address) (*IMasternodeRegistryV2InvalidationIterator, error) {
  1171  
  1172  	var masternodeRule []interface{}
  1173  	for _, masternodeItem := range masternode {
  1174  		masternodeRule = append(masternodeRule, masternodeItem)
  1175  	}
  1176  	var validatorRule []interface{}
  1177  	for _, validatorItem := range validator {
  1178  		validatorRule = append(validatorRule, validatorItem)
  1179  	}
  1180  
  1181  	logs, sub, err := _IMasternodeRegistryV2.contract.FilterLogs(opts, "Invalidation", masternodeRule, validatorRule)
  1182  	if err != nil {
  1183  		return nil, err
  1184  	}
  1185  	return &IMasternodeRegistryV2InvalidationIterator{contract: _IMasternodeRegistryV2.contract, event: "Invalidation", logs: logs, sub: sub}, nil
  1186  }
  1187  
  1188  // WatchInvalidation is a free log subscription operation binding the contract event 0x389d58799d7eca76264c556a007ffbc7c60caa4e3c8ea0564e791af3a1b9d331.
  1189  //
  1190  // Solidity: event Invalidation(address indexed masternode, address indexed validator)
  1191  func (_IMasternodeRegistryV2 *IMasternodeRegistryV2Filterer) WatchInvalidation(opts *bind.WatchOpts, sink chan<- *IMasternodeRegistryV2Invalidation, masternode []common.Address, validator []common.Address) (event.Subscription, error) {
  1192  
  1193  	var masternodeRule []interface{}
  1194  	for _, masternodeItem := range masternode {
  1195  		masternodeRule = append(masternodeRule, masternodeItem)
  1196  	}
  1197  	var validatorRule []interface{}
  1198  	for _, validatorItem := range validator {
  1199  		validatorRule = append(validatorRule, validatorItem)
  1200  	}
  1201  
  1202  	logs, sub, err := _IMasternodeRegistryV2.contract.WatchLogs(opts, "Invalidation", masternodeRule, validatorRule)
  1203  	if err != nil {
  1204  		return nil, err
  1205  	}
  1206  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1207  		defer sub.Unsubscribe()
  1208  		for {
  1209  			select {
  1210  			case log := <-logs:
  1211  				// New log arrived, parse the event and forward to the user
  1212  				event := new(IMasternodeRegistryV2Invalidation)
  1213  				if err := _IMasternodeRegistryV2.contract.UnpackLog(event, "Invalidation", log); err != nil {
  1214  					return err
  1215  				}
  1216  				event.Raw = log
  1217  
  1218  				select {
  1219  				case sink <- event:
  1220  				case err := <-sub.Err():
  1221  					return err
  1222  				case <-quit:
  1223  					return nil
  1224  				}
  1225  			case err := <-sub.Err():
  1226  				return err
  1227  			case <-quit:
  1228  				return nil
  1229  			}
  1230  		}
  1231  	}), nil
  1232  }