github.com/Night-mk/quorum@v21.1.0+incompatible/extension/extensionContracts/contract_extender.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 extensionContracts
     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  // ContractExtenderABI is the input ABI used to generate the binding from.
    31  const ContractExtenderABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contractToExtend\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"checkIfExtensionFinished\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalNumberOfVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"walletAddressesToVote\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFinished\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"nextuuid\",\"type\":\"string\"}],\"name\":\"setUuid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"sharedDataHash\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hash\",\"type\":\"string\"}],\"name\":\"setSharedStateHash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updatePartyMembers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voteOutcome\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"checkIfVoted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"finish\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"votes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"vote\",\"type\":\"bool\"},{\"name\":\"nextuuid\",\"type\":\"string\"}],\"name\":\"doVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"targetRecipientPTMKey\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"haveAllNodesVoted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"contractAddress\",\"type\":\"address\"},{\"name\":\"recipientAddress\",\"type\":\"address\"},{\"name\":\"recipientPTMKey\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"toExtend\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"recipientPTMKey\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"recipientAddress\",\"type\":\"address\"}],\"name\":\"NewContractExtensionContractCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"outcome\",\"type\":\"bool\"}],\"name\":\"AllNodesHaveAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"CanPerformStateShare\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ExtensionFinished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"vote\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"NewVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"toExtend\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"tesserahash\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"uuid\",\"type\":\"string\"}],\"name\":\"StateShared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"toExtend\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"uuid\",\"type\":\"string\"}],\"name\":\"UpdateMembers\",\"type\":\"event\"}]"
    32  
    33  var ContractExtenderParsedABI, _ = abi.JSON(strings.NewReader(ContractExtenderABI))
    34  
    35  // ContractExtenderBin is the compiled bytecode used for deploying new contracts.
    36  var ContractExtenderBin = "0x60806040523480156200001157600080fd5b506040516200135738038062001357833981018060405260608110156200003757600080fd5b81516020830151604084018051929491938201926401000000008111156200005e57600080fd5b820160208101848111156200007257600080fd5b81516401000000008111828201871017156200008d57600080fd5b5050600080546001600160a01b031916331790558051909350620000bb92506001915060208401906200028d565b50600280546001600160a01b038086166001600160a01b031992831617909255600380546001818101835560008381527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b92830180548616331790558354918201909355018054938616939092169290921790556040805160208101918290528290526200014d91600a91906200028d565b506009805460ff19166001179055600060068190555b600354811015620001c1576001600560006003848154811015156200018457fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905560010162000163565b50600354600455604080516001600160a01b0380861682528416918101919091526060602080830182815284519284019290925283517f04576ede6057794ada68966eebc285c98a2726cbc4929ffd1ad9900336728d9393879386938893608084019186019080838360005b83811015620002475781810151838201526020016200022d565b50505050905090810190601f168015620002755780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505062000332565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002d057805160ff191683800117855562000300565b8280016001018555821562000300579182015b8281111562000300578251825591602001919060010190620002e3565b506200030e92915062000312565b5090565b6200032f91905b808211156200030e576000815560010162000319565b90565b61101580620003426000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063893971ba116100a2578063d56b288911610071578063d56b28891461037a578063d8bff5a514610382578063de5828cb146103a8578063e5af0f3014610457578063f57077d81461045f5761010b565b8063893971ba146102bc578063ac8b920514610362578063b5da45bb1461036a578063cb2805ec146103725761010b565b806379d41b8f116100de57806379d41b8f146101725780637b3529621461018f578063821e93da1461019757806388f520a01461023f5761010b565b806302d05d3f1461011057806315e56a6a146101345780631962cb9b1461013c5780633852772714610158575b600080fd5b610118610467565b604080516001600160a01b039092168252519081900360200190f35b610118610476565b610144610485565b604080519115158252519081900360200190f35b61016061048f565b60408051918252519081900360200190f35b6101186004803603602081101561018857600080fd5b5035610495565b6101446104bd565b61023d600480360360208110156101ad57600080fd5b8101906020810181356401000000008111156101c857600080fd5b8201836020820111156101da57600080fd5b803590602001918460018302840111640100000000831117156101fc57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104c6945050505050565b005b610247610554565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610281578181015183820152602001610269565b50505050905090810190601f1680156102ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023d600480360360208110156102d257600080fd5b8101906020810181356401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105e2945050505050565b61023d61094c565b610144610a47565b610144610a50565b61023d610a66565b6101446004803603602081101561039857600080fd5b50356001600160a01b0316610b01565b61023d600480360360408110156103be57600080fd5b8135151591908101906040810160208201356401000000008111156103e257600080fd5b8201836020820111156103f457600080fd5b8035906020019184600183028401116401000000008311171561041657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b16945050505050565b610247610bbb565b610144610c15565b6000546001600160a01b031681565b6002546001600160a01b031681565b600c5460ff165b90565b60045481565b60038054829081106104a357fe5b6000918252602090912001546001600160a01b0316905081565b600c5460ff1681565b600c5460ff161561050b57604051600160e51b62461bcd028152600401808060200182810382526025815260200180610fc56025913960400191505060405180910390fd5b600b805460018101808355600092909252825161054f917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db901906020850190610ee1565b505050565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105da5780601f106105af576101008083540402835291602001916105da565b820191906000526020600020905b8154815290600101906020018083116105bd57829003601f168201915b505050505081565b6000546001600160a01b0316331461062e57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610fa26023913960400191505060405180910390fd5b600c5460ff161561067357604051600160e51b62461bcd028152600401808060200182810382526025815260200180610fc56025913960400191505060405180910390fd5b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505085519394508593151592506107639150505760408051600160e51b62461bcd02815260206004820152601860248201527f6e657720686173682063616e6e6f7420626520656d7074790000000000000000604482015290519081900360640190fd5b8151156107ba5760408051600160e51b62461bcd02815260206004820152601660248201527f7374617465206861736820616c72656164792073657400000000000000000000604482015290519081900360640190fd5b82516107cd90600a906020860190610ee1565b5060005b600b5481101561094357600254600b80547f67a92539f3cbd7c5a9b36c23c0e2beceb27d2e1b3cd8eda02c623689267ae71e926001600160a01b031691600a918590811061081b57fe5b6000918252602091829020604080516001600160a01b038716815260609481018581528654600260001961010060018416150201909116049582018690529290930193908301906080840190869080156108b65780601f1061088b576101008083540402835291602001916108b6565b820191906000526020600020905b81548152906001019060200180831161089957829003601f168201915b505083810382528454600260001961010060018416150201909116048082526020909101908590801561092a5780601f106108ff5761010080835404028352916020019161092a565b820191906000526020600020905b81548152906001019060200180831161090d57829003601f168201915b50509550505050505060405180910390a16001016107d1565b5061054f610a66565b60005b600b54811015610a4457600254600b80547f8adc4573f947f9930560525736f61b116be55049125cb63a36887a40f92f3b44926001600160a01b031691908490811061099757fe5b6000918252602091829020604080516001600160a01b0386168152938401818152919092018054600260001961010060018416150201909116049284018390529291606083019084908015610a2d5780601f10610a0257610100808354040283529160200191610a2d565b820191906000526020600020905b815481529060010190602001808311610a1057829003601f168201915b5050935050505060405180910390a160010161094f565b50565b60095460ff1681565b3360009081526007602052604090205460ff1690565b600c5460ff1615610aab57604051600160e51b62461bcd028152600401808060200182810382526025815260200180610fc56025913960400191505060405180910390fd5b6000546001600160a01b03163314610af757604051600160e51b62461bcd028152600401808060200182810382526023815260200180610fa26023913960400191505060405180910390fd5b610aff610c1f565b565b60086020526000908152604090205460ff1681565b600c5460ff1615610b5b57604051600160e51b62461bcd028152600401808060200182810382526025815260200180610fc56025913960400191505060405180910390fd5b610b6482610c57565b8115610b7357610b73816104c6565b610b7b610e28565b60408051831515815233602082015281517f225708d30006b0cc86d855ab91047edb5fe9c2e416412f36c18c6e90fe4e461f929181900390910190a15050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105da5780601f106105af576101008083540402835291602001916105da565b6006546003541490565b600c805460ff191660011790556040517f79c47b570b18a8a814b785800e5fcbf104e067663589cef1bba07756e3c6ede990600090a1565b600c5460ff1615610c9c57604051600160e51b62461bcd028152600401808060200182810382526028815260200180610f7a6028913960400191505060405180910390fd5b3360009081526005602052604090205460ff161515610d055760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7420616c6c6f77656420746f20766f746500000000000000000000000000604482015290519081900360640190fd5b3360009081526007602052604090205460ff1615610d6d5760408051600160e51b62461bcd02815260206004820152600d60248201527f616c726561647920766f74656400000000000000000000000000000000000000604482015290519081900360640190fd5b60095460ff161515610dc95760408051600160e51b62461bcd02815260206004820152601760248201527f766f74696e6720616c7265616479206465636c696e6564000000000000000000604482015290519081900360640190fd5b3360009081526007602090815260408083208054600160ff19918216811790925560089093529220805490911683151517905560068054909101905560095460ff168015610e145750805b6009805460ff191691151591909117905550565b60095460ff161515610e7557604080516000815290517ff20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd369181900360200190a1610e70610c1f565b610aff565b610e7d610c15565b15610aff57604080516001815290517ff20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd369181900360200190a16040517ffd46cafaa71d87561071b8095703a7f081265fad232945049f5cf2d2c39b3d2890600090a1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f2257805160ff1916838001178555610f4f565b82800160010185558215610f4f579182015b82811115610f4f578251825591602001919060010190610f34565b50610f5b929150610f5f565b5090565b61048c91905b80821115610f5b5760008155600101610f6556fe657874656e73696f6e2070726f6365737320636f6d706c657465642e2063616e6e6f7420766f74656f6e6c79206c6561646572206d617920706572666f726d207468697320616374696f6e657874656e73696f6e20686173206265656e206d61726b65642061732066696e6973686564a165627a7a723058201430571f2ddc1fc4db18fbe992d5cb9955a993fb01a34d163aebb1b5d891a6f00029"
    37  
    38  // DeployContractExtender deploys a new Ethereum contract, binding an instance of ContractExtender to it.
    39  func DeployContractExtender(auth *bind.TransactOpts, backend bind.ContractBackend, contractAddress common.Address, recipientAddress common.Address, recipientPTMKey string) (common.Address, *types.Transaction, *ContractExtender, error) {
    40  	parsed, err := abi.JSON(strings.NewReader(ContractExtenderABI))
    41  	if err != nil {
    42  		return common.Address{}, nil, nil, err
    43  	}
    44  
    45  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ContractExtenderBin), backend, contractAddress, recipientAddress, recipientPTMKey)
    46  	if err != nil {
    47  		return common.Address{}, nil, nil, err
    48  	}
    49  	return address, tx, &ContractExtender{ContractExtenderCaller: ContractExtenderCaller{contract: contract}, ContractExtenderTransactor: ContractExtenderTransactor{contract: contract}, ContractExtenderFilterer: ContractExtenderFilterer{contract: contract}}, nil
    50  }
    51  
    52  // ContractExtender is an auto generated Go binding around an Ethereum contract.
    53  type ContractExtender struct {
    54  	ContractExtenderCaller     // Read-only binding to the contract
    55  	ContractExtenderTransactor // Write-only binding to the contract
    56  	ContractExtenderFilterer   // Log filterer for contract events
    57  }
    58  
    59  // ContractExtenderCaller is an auto generated read-only Go binding around an Ethereum contract.
    60  type ContractExtenderCaller struct {
    61  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    62  }
    63  
    64  // ContractExtenderTransactor is an auto generated write-only Go binding around an Ethereum contract.
    65  type ContractExtenderTransactor struct {
    66  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    67  }
    68  
    69  // ContractExtenderFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    70  type ContractExtenderFilterer struct {
    71  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    72  }
    73  
    74  // ContractExtenderSession is an auto generated Go binding around an Ethereum contract,
    75  // with pre-set call and transact options.
    76  type ContractExtenderSession struct {
    77  	Contract     *ContractExtender // Generic contract binding to set the session for
    78  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    79  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    80  }
    81  
    82  // ContractExtenderCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    83  // with pre-set call options.
    84  type ContractExtenderCallerSession struct {
    85  	Contract *ContractExtenderCaller // Generic contract caller binding to set the session for
    86  	CallOpts bind.CallOpts           // Call options to use throughout this session
    87  }
    88  
    89  // ContractExtenderTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    90  // with pre-set transact options.
    91  type ContractExtenderTransactorSession struct {
    92  	Contract     *ContractExtenderTransactor // Generic contract transactor binding to set the session for
    93  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
    94  }
    95  
    96  // ContractExtenderRaw is an auto generated low-level Go binding around an Ethereum contract.
    97  type ContractExtenderRaw struct {
    98  	Contract *ContractExtender // Generic contract binding to access the raw methods on
    99  }
   100  
   101  // ContractExtenderCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   102  type ContractExtenderCallerRaw struct {
   103  	Contract *ContractExtenderCaller // Generic read-only contract binding to access the raw methods on
   104  }
   105  
   106  // ContractExtenderTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   107  type ContractExtenderTransactorRaw struct {
   108  	Contract *ContractExtenderTransactor // Generic write-only contract binding to access the raw methods on
   109  }
   110  
   111  // NewContractExtender creates a new instance of ContractExtender, bound to a specific deployed contract.
   112  func NewContractExtender(address common.Address, backend bind.ContractBackend) (*ContractExtender, error) {
   113  	contract, err := bindContractExtender(address, backend, backend, backend)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	return &ContractExtender{ContractExtenderCaller: ContractExtenderCaller{contract: contract}, ContractExtenderTransactor: ContractExtenderTransactor{contract: contract}, ContractExtenderFilterer: ContractExtenderFilterer{contract: contract}}, nil
   118  }
   119  
   120  // NewContractExtenderCaller creates a new read-only instance of ContractExtender, bound to a specific deployed contract.
   121  func NewContractExtenderCaller(address common.Address, caller bind.ContractCaller) (*ContractExtenderCaller, error) {
   122  	contract, err := bindContractExtender(address, caller, nil, nil)
   123  	if err != nil {
   124  		return nil, err
   125  	}
   126  	return &ContractExtenderCaller{contract: contract}, nil
   127  }
   128  
   129  // NewContractExtenderTransactor creates a new write-only instance of ContractExtender, bound to a specific deployed contract.
   130  func NewContractExtenderTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractExtenderTransactor, error) {
   131  	contract, err := bindContractExtender(address, nil, transactor, nil)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return &ContractExtenderTransactor{contract: contract}, nil
   136  }
   137  
   138  // NewContractExtenderFilterer creates a new log filterer instance of ContractExtender, bound to a specific deployed contract.
   139  func NewContractExtenderFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractExtenderFilterer, error) {
   140  	contract, err := bindContractExtender(address, nil, nil, filterer)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &ContractExtenderFilterer{contract: contract}, nil
   145  }
   146  
   147  // bindContractExtender binds a generic wrapper to an already deployed contract.
   148  func bindContractExtender(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   149  	parsed, err := abi.JSON(strings.NewReader(ContractExtenderABI))
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   154  }
   155  
   156  // Call invokes the (constant) contract method with params as input values and
   157  // sets the output to result. The result type might be a single field for simple
   158  // returns, a slice of interfaces for anonymous returns and a struct for named
   159  // returns.
   160  func (_ContractExtender *ContractExtenderRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   161  	return _ContractExtender.Contract.ContractExtenderCaller.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 (_ContractExtender *ContractExtenderRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   167  	return _ContractExtender.Contract.ContractExtenderTransactor.contract.Transfer(opts)
   168  }
   169  
   170  // Transact invokes the (paid) contract method with params as input values.
   171  func (_ContractExtender *ContractExtenderRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   172  	return _ContractExtender.Contract.ContractExtenderTransactor.contract.Transact(opts, method, params...)
   173  }
   174  
   175  // Call invokes the (constant) contract method with params as input values and
   176  // sets the output to result. The result type might be a single field for simple
   177  // returns, a slice of interfaces for anonymous returns and a struct for named
   178  // returns.
   179  func (_ContractExtender *ContractExtenderCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   180  	return _ContractExtender.Contract.contract.Call(opts, result, method, params...)
   181  }
   182  
   183  // Transfer initiates a plain transaction to move funds to the contract, calling
   184  // its default method if one is available.
   185  func (_ContractExtender *ContractExtenderTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   186  	return _ContractExtender.Contract.contract.Transfer(opts)
   187  }
   188  
   189  // Transact invokes the (paid) contract method with params as input values.
   190  func (_ContractExtender *ContractExtenderTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   191  	return _ContractExtender.Contract.contract.Transact(opts, method, params...)
   192  }
   193  
   194  // CheckIfExtensionFinished is a free data retrieval call binding the contract method 0x1962cb9b.
   195  //
   196  // Solidity: function checkIfExtensionFinished() constant returns(bool)
   197  func (_ContractExtender *ContractExtenderCaller) CheckIfExtensionFinished(opts *bind.CallOpts) (bool, error) {
   198  	var (
   199  		ret0 = new(bool)
   200  	)
   201  	out := ret0
   202  	err := _ContractExtender.contract.Call(opts, out, "checkIfExtensionFinished")
   203  	return *ret0, err
   204  }
   205  
   206  // CheckIfExtensionFinished is a free data retrieval call binding the contract method 0x1962cb9b.
   207  //
   208  // Solidity: function checkIfExtensionFinished() constant returns(bool)
   209  func (_ContractExtender *ContractExtenderSession) CheckIfExtensionFinished() (bool, error) {
   210  	return _ContractExtender.Contract.CheckIfExtensionFinished(&_ContractExtender.CallOpts)
   211  }
   212  
   213  // CheckIfExtensionFinished is a free data retrieval call binding the contract method 0x1962cb9b.
   214  //
   215  // Solidity: function checkIfExtensionFinished() constant returns(bool)
   216  func (_ContractExtender *ContractExtenderCallerSession) CheckIfExtensionFinished() (bool, error) {
   217  	return _ContractExtender.Contract.CheckIfExtensionFinished(&_ContractExtender.CallOpts)
   218  }
   219  
   220  // CheckIfVoted is a free data retrieval call binding the contract method 0xcb2805ec.
   221  //
   222  // Solidity: function checkIfVoted() constant returns(bool)
   223  func (_ContractExtender *ContractExtenderCaller) CheckIfVoted(opts *bind.CallOpts) (bool, error) {
   224  	var (
   225  		ret0 = new(bool)
   226  	)
   227  	out := ret0
   228  	err := _ContractExtender.contract.Call(opts, out, "checkIfVoted")
   229  	return *ret0, err
   230  }
   231  
   232  // CheckIfVoted is a free data retrieval call binding the contract method 0xcb2805ec.
   233  //
   234  // Solidity: function checkIfVoted() constant returns(bool)
   235  func (_ContractExtender *ContractExtenderSession) CheckIfVoted() (bool, error) {
   236  	return _ContractExtender.Contract.CheckIfVoted(&_ContractExtender.CallOpts)
   237  }
   238  
   239  // CheckIfVoted is a free data retrieval call binding the contract method 0xcb2805ec.
   240  //
   241  // Solidity: function checkIfVoted() constant returns(bool)
   242  func (_ContractExtender *ContractExtenderCallerSession) CheckIfVoted() (bool, error) {
   243  	return _ContractExtender.Contract.CheckIfVoted(&_ContractExtender.CallOpts)
   244  }
   245  
   246  // ContractToExtend is a free data retrieval call binding the contract method 0x15e56a6a.
   247  //
   248  // Solidity: function contractToExtend() constant returns(address)
   249  func (_ContractExtender *ContractExtenderCaller) ContractToExtend(opts *bind.CallOpts) (common.Address, error) {
   250  	var (
   251  		ret0 = new(common.Address)
   252  	)
   253  	out := ret0
   254  	err := _ContractExtender.contract.Call(opts, out, "contractToExtend")
   255  	return *ret0, err
   256  }
   257  
   258  // ContractToExtend is a free data retrieval call binding the contract method 0x15e56a6a.
   259  //
   260  // Solidity: function contractToExtend() constant returns(address)
   261  func (_ContractExtender *ContractExtenderSession) ContractToExtend() (common.Address, error) {
   262  	return _ContractExtender.Contract.ContractToExtend(&_ContractExtender.CallOpts)
   263  }
   264  
   265  // ContractToExtend is a free data retrieval call binding the contract method 0x15e56a6a.
   266  //
   267  // Solidity: function contractToExtend() constant returns(address)
   268  func (_ContractExtender *ContractExtenderCallerSession) ContractToExtend() (common.Address, error) {
   269  	return _ContractExtender.Contract.ContractToExtend(&_ContractExtender.CallOpts)
   270  }
   271  
   272  // Creator is a free data retrieval call binding the contract method 0x02d05d3f.
   273  //
   274  // Solidity: function creator() constant returns(address)
   275  func (_ContractExtender *ContractExtenderCaller) Creator(opts *bind.CallOpts) (common.Address, error) {
   276  	var (
   277  		ret0 = new(common.Address)
   278  	)
   279  	out := ret0
   280  	err := _ContractExtender.contract.Call(opts, out, "creator")
   281  	return *ret0, err
   282  }
   283  
   284  // Creator is a free data retrieval call binding the contract method 0x02d05d3f.
   285  //
   286  // Solidity: function creator() constant returns(address)
   287  func (_ContractExtender *ContractExtenderSession) Creator() (common.Address, error) {
   288  	return _ContractExtender.Contract.Creator(&_ContractExtender.CallOpts)
   289  }
   290  
   291  // Creator is a free data retrieval call binding the contract method 0x02d05d3f.
   292  //
   293  // Solidity: function creator() constant returns(address)
   294  func (_ContractExtender *ContractExtenderCallerSession) Creator() (common.Address, error) {
   295  	return _ContractExtender.Contract.Creator(&_ContractExtender.CallOpts)
   296  }
   297  
   298  // HaveAllNodesVoted is a free data retrieval call binding the contract method 0xf57077d8.
   299  //
   300  // Solidity: function haveAllNodesVoted() constant returns(bool)
   301  func (_ContractExtender *ContractExtenderCaller) HaveAllNodesVoted(opts *bind.CallOpts) (bool, error) {
   302  	var (
   303  		ret0 = new(bool)
   304  	)
   305  	out := ret0
   306  	err := _ContractExtender.contract.Call(opts, out, "haveAllNodesVoted")
   307  	return *ret0, err
   308  }
   309  
   310  // HaveAllNodesVoted is a free data retrieval call binding the contract method 0xf57077d8.
   311  //
   312  // Solidity: function haveAllNodesVoted() constant returns(bool)
   313  func (_ContractExtender *ContractExtenderSession) HaveAllNodesVoted() (bool, error) {
   314  	return _ContractExtender.Contract.HaveAllNodesVoted(&_ContractExtender.CallOpts)
   315  }
   316  
   317  // HaveAllNodesVoted is a free data retrieval call binding the contract method 0xf57077d8.
   318  //
   319  // Solidity: function haveAllNodesVoted() constant returns(bool)
   320  func (_ContractExtender *ContractExtenderCallerSession) HaveAllNodesVoted() (bool, error) {
   321  	return _ContractExtender.Contract.HaveAllNodesVoted(&_ContractExtender.CallOpts)
   322  }
   323  
   324  // IsFinished is a free data retrieval call binding the contract method 0x7b352962.
   325  //
   326  // Solidity: function isFinished() constant returns(bool)
   327  func (_ContractExtender *ContractExtenderCaller) IsFinished(opts *bind.CallOpts) (bool, error) {
   328  	var (
   329  		ret0 = new(bool)
   330  	)
   331  	out := ret0
   332  	err := _ContractExtender.contract.Call(opts, out, "isFinished")
   333  	return *ret0, err
   334  }
   335  
   336  // IsFinished is a free data retrieval call binding the contract method 0x7b352962.
   337  //
   338  // Solidity: function isFinished() constant returns(bool)
   339  func (_ContractExtender *ContractExtenderSession) IsFinished() (bool, error) {
   340  	return _ContractExtender.Contract.IsFinished(&_ContractExtender.CallOpts)
   341  }
   342  
   343  // IsFinished is a free data retrieval call binding the contract method 0x7b352962.
   344  //
   345  // Solidity: function isFinished() constant returns(bool)
   346  func (_ContractExtender *ContractExtenderCallerSession) IsFinished() (bool, error) {
   347  	return _ContractExtender.Contract.IsFinished(&_ContractExtender.CallOpts)
   348  }
   349  
   350  // SharedDataHash is a free data retrieval call binding the contract method 0x88f520a0.
   351  //
   352  // Solidity: function sharedDataHash() constant returns(string)
   353  func (_ContractExtender *ContractExtenderCaller) SharedDataHash(opts *bind.CallOpts) (string, error) {
   354  	var (
   355  		ret0 = new(string)
   356  	)
   357  	out := ret0
   358  	err := _ContractExtender.contract.Call(opts, out, "sharedDataHash")
   359  	return *ret0, err
   360  }
   361  
   362  // SharedDataHash is a free data retrieval call binding the contract method 0x88f520a0.
   363  //
   364  // Solidity: function sharedDataHash() constant returns(string)
   365  func (_ContractExtender *ContractExtenderSession) SharedDataHash() (string, error) {
   366  	return _ContractExtender.Contract.SharedDataHash(&_ContractExtender.CallOpts)
   367  }
   368  
   369  // SharedDataHash is a free data retrieval call binding the contract method 0x88f520a0.
   370  //
   371  // Solidity: function sharedDataHash() constant returns(string)
   372  func (_ContractExtender *ContractExtenderCallerSession) SharedDataHash() (string, error) {
   373  	return _ContractExtender.Contract.SharedDataHash(&_ContractExtender.CallOpts)
   374  }
   375  
   376  // TargetRecipientPTMKey is a free data retrieval call binding the contract method 0xe5af0f30.
   377  //
   378  // Solidity: function targetRecipientPTMKey() constant returns(string)
   379  func (_ContractExtender *ContractExtenderCaller) TargetRecipientPTMKey(opts *bind.CallOpts) (string, error) {
   380  	var (
   381  		ret0 = new(string)
   382  	)
   383  	out := ret0
   384  	err := _ContractExtender.contract.Call(opts, out, "targetRecipientPTMKey")
   385  	return *ret0, err
   386  }
   387  
   388  // TargetRecipientPTMKey is a free data retrieval call binding the contract method 0xe5af0f30.
   389  //
   390  // Solidity: function targetRecipientPTMKey() constant returns(string)
   391  func (_ContractExtender *ContractExtenderSession) TargetRecipientPTMKey() (string, error) {
   392  	return _ContractExtender.Contract.TargetRecipientPTMKey(&_ContractExtender.CallOpts)
   393  }
   394  
   395  // TargetRecipientPTMKey is a free data retrieval call binding the contract method 0xe5af0f30.
   396  //
   397  // Solidity: function targetRecipientPTMKey() constant returns(string)
   398  func (_ContractExtender *ContractExtenderCallerSession) TargetRecipientPTMKey() (string, error) {
   399  	return _ContractExtender.Contract.TargetRecipientPTMKey(&_ContractExtender.CallOpts)
   400  }
   401  
   402  // TotalNumberOfVoters is a free data retrieval call binding the contract method 0x38527727.
   403  //
   404  // Solidity: function totalNumberOfVoters() constant returns(uint256)
   405  func (_ContractExtender *ContractExtenderCaller) TotalNumberOfVoters(opts *bind.CallOpts) (*big.Int, error) {
   406  	var (
   407  		ret0 = new(*big.Int)
   408  	)
   409  	out := ret0
   410  	err := _ContractExtender.contract.Call(opts, out, "totalNumberOfVoters")
   411  	return *ret0, err
   412  }
   413  
   414  // TotalNumberOfVoters is a free data retrieval call binding the contract method 0x38527727.
   415  //
   416  // Solidity: function totalNumberOfVoters() constant returns(uint256)
   417  func (_ContractExtender *ContractExtenderSession) TotalNumberOfVoters() (*big.Int, error) {
   418  	return _ContractExtender.Contract.TotalNumberOfVoters(&_ContractExtender.CallOpts)
   419  }
   420  
   421  // TotalNumberOfVoters is a free data retrieval call binding the contract method 0x38527727.
   422  //
   423  // Solidity: function totalNumberOfVoters() constant returns(uint256)
   424  func (_ContractExtender *ContractExtenderCallerSession) TotalNumberOfVoters() (*big.Int, error) {
   425  	return _ContractExtender.Contract.TotalNumberOfVoters(&_ContractExtender.CallOpts)
   426  }
   427  
   428  // VoteOutcome is a free data retrieval call binding the contract method 0xb5da45bb.
   429  //
   430  // Solidity: function voteOutcome() constant returns(bool)
   431  func (_ContractExtender *ContractExtenderCaller) VoteOutcome(opts *bind.CallOpts) (bool, error) {
   432  	var (
   433  		ret0 = new(bool)
   434  	)
   435  	out := ret0
   436  	err := _ContractExtender.contract.Call(opts, out, "voteOutcome")
   437  	return *ret0, err
   438  }
   439  
   440  // VoteOutcome is a free data retrieval call binding the contract method 0xb5da45bb.
   441  //
   442  // Solidity: function voteOutcome() constant returns(bool)
   443  func (_ContractExtender *ContractExtenderSession) VoteOutcome() (bool, error) {
   444  	return _ContractExtender.Contract.VoteOutcome(&_ContractExtender.CallOpts)
   445  }
   446  
   447  // VoteOutcome is a free data retrieval call binding the contract method 0xb5da45bb.
   448  //
   449  // Solidity: function voteOutcome() constant returns(bool)
   450  func (_ContractExtender *ContractExtenderCallerSession) VoteOutcome() (bool, error) {
   451  	return _ContractExtender.Contract.VoteOutcome(&_ContractExtender.CallOpts)
   452  }
   453  
   454  // Votes is a free data retrieval call binding the contract method 0xd8bff5a5.
   455  //
   456  // Solidity: function votes(address ) constant returns(bool)
   457  func (_ContractExtender *ContractExtenderCaller) Votes(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
   458  	var (
   459  		ret0 = new(bool)
   460  	)
   461  	out := ret0
   462  	err := _ContractExtender.contract.Call(opts, out, "votes", arg0)
   463  	return *ret0, err
   464  }
   465  
   466  // Votes is a free data retrieval call binding the contract method 0xd8bff5a5.
   467  //
   468  // Solidity: function votes(address ) constant returns(bool)
   469  func (_ContractExtender *ContractExtenderSession) Votes(arg0 common.Address) (bool, error) {
   470  	return _ContractExtender.Contract.Votes(&_ContractExtender.CallOpts, arg0)
   471  }
   472  
   473  // Votes is a free data retrieval call binding the contract method 0xd8bff5a5.
   474  //
   475  // Solidity: function votes(address ) constant returns(bool)
   476  func (_ContractExtender *ContractExtenderCallerSession) Votes(arg0 common.Address) (bool, error) {
   477  	return _ContractExtender.Contract.Votes(&_ContractExtender.CallOpts, arg0)
   478  }
   479  
   480  // WalletAddressesToVote is a free data retrieval call binding the contract method 0x79d41b8f.
   481  //
   482  // Solidity: function walletAddressesToVote(uint256 ) constant returns(address)
   483  func (_ContractExtender *ContractExtenderCaller) WalletAddressesToVote(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
   484  	var (
   485  		ret0 = new(common.Address)
   486  	)
   487  	out := ret0
   488  	err := _ContractExtender.contract.Call(opts, out, "walletAddressesToVote", arg0)
   489  	return *ret0, err
   490  }
   491  
   492  // WalletAddressesToVote is a free data retrieval call binding the contract method 0x79d41b8f.
   493  //
   494  // Solidity: function walletAddressesToVote(uint256 ) constant returns(address)
   495  func (_ContractExtender *ContractExtenderSession) WalletAddressesToVote(arg0 *big.Int) (common.Address, error) {
   496  	return _ContractExtender.Contract.WalletAddressesToVote(&_ContractExtender.CallOpts, arg0)
   497  }
   498  
   499  // WalletAddressesToVote is a free data retrieval call binding the contract method 0x79d41b8f.
   500  //
   501  // Solidity: function walletAddressesToVote(uint256 ) constant returns(address)
   502  func (_ContractExtender *ContractExtenderCallerSession) WalletAddressesToVote(arg0 *big.Int) (common.Address, error) {
   503  	return _ContractExtender.Contract.WalletAddressesToVote(&_ContractExtender.CallOpts, arg0)
   504  }
   505  
   506  // DoVote is a paid mutator transaction binding the contract method 0xde5828cb.
   507  //
   508  // Solidity: function doVote(bool vote, string nextuuid) returns()
   509  func (_ContractExtender *ContractExtenderTransactor) DoVote(opts *bind.TransactOpts, vote bool, nextuuid string) (*types.Transaction, error) {
   510  	return _ContractExtender.contract.Transact(opts, "doVote", vote, nextuuid)
   511  }
   512  
   513  // DoVote is a paid mutator transaction binding the contract method 0xde5828cb.
   514  //
   515  // Solidity: function doVote(bool vote, string nextuuid) returns()
   516  func (_ContractExtender *ContractExtenderSession) DoVote(vote bool, nextuuid string) (*types.Transaction, error) {
   517  	return _ContractExtender.Contract.DoVote(&_ContractExtender.TransactOpts, vote, nextuuid)
   518  }
   519  
   520  // DoVote is a paid mutator transaction binding the contract method 0xde5828cb.
   521  //
   522  // Solidity: function doVote(bool vote, string nextuuid) returns()
   523  func (_ContractExtender *ContractExtenderTransactorSession) DoVote(vote bool, nextuuid string) (*types.Transaction, error) {
   524  	return _ContractExtender.Contract.DoVote(&_ContractExtender.TransactOpts, vote, nextuuid)
   525  }
   526  
   527  // Finish is a paid mutator transaction binding the contract method 0xd56b2889.
   528  //
   529  // Solidity: function finish() returns()
   530  func (_ContractExtender *ContractExtenderTransactor) Finish(opts *bind.TransactOpts) (*types.Transaction, error) {
   531  	return _ContractExtender.contract.Transact(opts, "finish")
   532  }
   533  
   534  // Finish is a paid mutator transaction binding the contract method 0xd56b2889.
   535  //
   536  // Solidity: function finish() returns()
   537  func (_ContractExtender *ContractExtenderSession) Finish() (*types.Transaction, error) {
   538  	return _ContractExtender.Contract.Finish(&_ContractExtender.TransactOpts)
   539  }
   540  
   541  // Finish is a paid mutator transaction binding the contract method 0xd56b2889.
   542  //
   543  // Solidity: function finish() returns()
   544  func (_ContractExtender *ContractExtenderTransactorSession) Finish() (*types.Transaction, error) {
   545  	return _ContractExtender.Contract.Finish(&_ContractExtender.TransactOpts)
   546  }
   547  
   548  // SetSharedStateHash is a paid mutator transaction binding the contract method 0x893971ba.
   549  //
   550  // Solidity: function setSharedStateHash(string hash) returns()
   551  func (_ContractExtender *ContractExtenderTransactor) SetSharedStateHash(opts *bind.TransactOpts, hash string) (*types.Transaction, error) {
   552  	return _ContractExtender.contract.Transact(opts, "setSharedStateHash", hash)
   553  }
   554  
   555  // SetSharedStateHash is a paid mutator transaction binding the contract method 0x893971ba.
   556  //
   557  // Solidity: function setSharedStateHash(string hash) returns()
   558  func (_ContractExtender *ContractExtenderSession) SetSharedStateHash(hash string) (*types.Transaction, error) {
   559  	return _ContractExtender.Contract.SetSharedStateHash(&_ContractExtender.TransactOpts, hash)
   560  }
   561  
   562  // SetSharedStateHash is a paid mutator transaction binding the contract method 0x893971ba.
   563  //
   564  // Solidity: function setSharedStateHash(string hash) returns()
   565  func (_ContractExtender *ContractExtenderTransactorSession) SetSharedStateHash(hash string) (*types.Transaction, error) {
   566  	return _ContractExtender.Contract.SetSharedStateHash(&_ContractExtender.TransactOpts, hash)
   567  }
   568  
   569  // SetUuid is a paid mutator transaction binding the contract method 0x821e93da.
   570  //
   571  // Solidity: function setUuid(string nextuuid) returns()
   572  func (_ContractExtender *ContractExtenderTransactor) SetUuid(opts *bind.TransactOpts, nextuuid string) (*types.Transaction, error) {
   573  	return _ContractExtender.contract.Transact(opts, "setUuid", nextuuid)
   574  }
   575  
   576  // SetUuid is a paid mutator transaction binding the contract method 0x821e93da.
   577  //
   578  // Solidity: function setUuid(string nextuuid) returns()
   579  func (_ContractExtender *ContractExtenderSession) SetUuid(nextuuid string) (*types.Transaction, error) {
   580  	return _ContractExtender.Contract.SetUuid(&_ContractExtender.TransactOpts, nextuuid)
   581  }
   582  
   583  // SetUuid is a paid mutator transaction binding the contract method 0x821e93da.
   584  //
   585  // Solidity: function setUuid(string nextuuid) returns()
   586  func (_ContractExtender *ContractExtenderTransactorSession) SetUuid(nextuuid string) (*types.Transaction, error) {
   587  	return _ContractExtender.Contract.SetUuid(&_ContractExtender.TransactOpts, nextuuid)
   588  }
   589  
   590  // UpdatePartyMembers is a paid mutator transaction binding the contract method 0xac8b9205.
   591  //
   592  // Solidity: function updatePartyMembers() returns()
   593  func (_ContractExtender *ContractExtenderTransactor) UpdatePartyMembers(opts *bind.TransactOpts) (*types.Transaction, error) {
   594  	return _ContractExtender.contract.Transact(opts, "updatePartyMembers")
   595  }
   596  
   597  // UpdatePartyMembers is a paid mutator transaction binding the contract method 0xac8b9205.
   598  //
   599  // Solidity: function updatePartyMembers() returns()
   600  func (_ContractExtender *ContractExtenderSession) UpdatePartyMembers() (*types.Transaction, error) {
   601  	return _ContractExtender.Contract.UpdatePartyMembers(&_ContractExtender.TransactOpts)
   602  }
   603  
   604  // UpdatePartyMembers is a paid mutator transaction binding the contract method 0xac8b9205.
   605  //
   606  // Solidity: function updatePartyMembers() returns()
   607  func (_ContractExtender *ContractExtenderTransactorSession) UpdatePartyMembers() (*types.Transaction, error) {
   608  	return _ContractExtender.Contract.UpdatePartyMembers(&_ContractExtender.TransactOpts)
   609  }
   610  
   611  // ContractExtenderAllNodesHaveAcceptedIterator is returned from FilterAllNodesHaveAccepted and is used to iterate over the raw logs and unpacked data for AllNodesHaveAccepted events raised by the ContractExtender contract.
   612  type ContractExtenderAllNodesHaveAcceptedIterator struct {
   613  	Event *ContractExtenderAllNodesHaveAccepted // Event containing the contract specifics and raw log
   614  
   615  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   616  	event    string              // Event name to use for unpacking event data
   617  
   618  	logs chan types.Log        // Log channel receiving the found contract events
   619  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   620  	done bool                  // Whether the subscription completed delivering logs
   621  	fail error                 // Occurred error to stop iteration
   622  }
   623  
   624  // Next advances the iterator to the subsequent event, returning whether there
   625  // are any more events found. In case of a retrieval or parsing error, false is
   626  // returned and Error() can be queried for the exact failure.
   627  func (it *ContractExtenderAllNodesHaveAcceptedIterator) Next() bool {
   628  	// If the iterator failed, stop iterating
   629  	if it.fail != nil {
   630  		return false
   631  	}
   632  	// If the iterator completed, deliver directly whatever's available
   633  	if it.done {
   634  		select {
   635  		case log := <-it.logs:
   636  			it.Event = new(ContractExtenderAllNodesHaveAccepted)
   637  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   638  				it.fail = err
   639  				return false
   640  			}
   641  			it.Event.Raw = log
   642  			return true
   643  
   644  		default:
   645  			return false
   646  		}
   647  	}
   648  	// Iterator still in progress, wait for either a data or an error event
   649  	select {
   650  	case log := <-it.logs:
   651  		it.Event = new(ContractExtenderAllNodesHaveAccepted)
   652  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   653  			it.fail = err
   654  			return false
   655  		}
   656  		it.Event.Raw = log
   657  		return true
   658  
   659  	case err := <-it.sub.Err():
   660  		it.done = true
   661  		it.fail = err
   662  		return it.Next()
   663  	}
   664  }
   665  
   666  // Error returns any retrieval or parsing error occurred during filtering.
   667  func (it *ContractExtenderAllNodesHaveAcceptedIterator) Error() error {
   668  	return it.fail
   669  }
   670  
   671  // Close terminates the iteration process, releasing any pending underlying
   672  // resources.
   673  func (it *ContractExtenderAllNodesHaveAcceptedIterator) Close() error {
   674  	it.sub.Unsubscribe()
   675  	return nil
   676  }
   677  
   678  // ContractExtenderAllNodesHaveAccepted represents a AllNodesHaveAccepted event raised by the ContractExtender contract.
   679  type ContractExtenderAllNodesHaveAccepted struct {
   680  	Outcome bool
   681  	Raw     types.Log // Blockchain specific contextual infos
   682  }
   683  
   684  // FilterAllNodesHaveAccepted is a free log retrieval operation binding the contract event 0xf20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd36.
   685  //
   686  // Solidity: event AllNodesHaveAccepted(bool outcome)
   687  func (_ContractExtender *ContractExtenderFilterer) FilterAllNodesHaveAccepted(opts *bind.FilterOpts) (*ContractExtenderAllNodesHaveAcceptedIterator, error) {
   688  
   689  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "AllNodesHaveAccepted")
   690  	if err != nil {
   691  		return nil, err
   692  	}
   693  	return &ContractExtenderAllNodesHaveAcceptedIterator{contract: _ContractExtender.contract, event: "AllNodesHaveAccepted", logs: logs, sub: sub}, nil
   694  }
   695  
   696  var AllNodesHaveAcceptedTopicHash = "0xf20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd36"
   697  
   698  // WatchAllNodesHaveAccepted is a free log subscription operation binding the contract event 0xf20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd36.
   699  //
   700  // Solidity: event AllNodesHaveAccepted(bool outcome)
   701  func (_ContractExtender *ContractExtenderFilterer) WatchAllNodesHaveAccepted(opts *bind.WatchOpts, sink chan<- *ContractExtenderAllNodesHaveAccepted) (event.Subscription, error) {
   702  
   703  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "AllNodesHaveAccepted")
   704  	if err != nil {
   705  		return nil, err
   706  	}
   707  	return event.NewSubscription(func(quit <-chan struct{}) error {
   708  		defer sub.Unsubscribe()
   709  		for {
   710  			select {
   711  			case log := <-logs:
   712  				// New log arrived, parse the event and forward to the user
   713  				event := new(ContractExtenderAllNodesHaveAccepted)
   714  				if err := _ContractExtender.contract.UnpackLog(event, "AllNodesHaveAccepted", log); err != nil {
   715  					return err
   716  				}
   717  				event.Raw = log
   718  
   719  				select {
   720  				case sink <- event:
   721  				case err := <-sub.Err():
   722  					return err
   723  				case <-quit:
   724  					return nil
   725  				}
   726  			case err := <-sub.Err():
   727  				return err
   728  			case <-quit:
   729  				return nil
   730  			}
   731  		}
   732  	}), nil
   733  }
   734  
   735  // ParseAllNodesHaveAccepted is a log parse operation binding the contract event 0xf20540914db019dd7c8d05ed165316a58d1583642772ac46f3d0c29b8644bd36.
   736  //
   737  // Solidity: event AllNodesHaveAccepted(bool outcome)
   738  func (_ContractExtender *ContractExtenderFilterer) ParseAllNodesHaveAccepted(log types.Log) (*ContractExtenderAllNodesHaveAccepted, error) {
   739  	event := new(ContractExtenderAllNodesHaveAccepted)
   740  	if err := _ContractExtender.contract.UnpackLog(event, "AllNodesHaveAccepted", log); err != nil {
   741  		return nil, err
   742  	}
   743  	return event, nil
   744  }
   745  
   746  // ContractExtenderCanPerformStateShareIterator is returned from FilterCanPerformStateShare and is used to iterate over the raw logs and unpacked data for CanPerformStateShare events raised by the ContractExtender contract.
   747  type ContractExtenderCanPerformStateShareIterator struct {
   748  	Event *ContractExtenderCanPerformStateShare // Event containing the contract specifics and raw log
   749  
   750  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   751  	event    string              // Event name to use for unpacking event data
   752  
   753  	logs chan types.Log        // Log channel receiving the found contract events
   754  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   755  	done bool                  // Whether the subscription completed delivering logs
   756  	fail error                 // Occurred error to stop iteration
   757  }
   758  
   759  // Next advances the iterator to the subsequent event, returning whether there
   760  // are any more events found. In case of a retrieval or parsing error, false is
   761  // returned and Error() can be queried for the exact failure.
   762  func (it *ContractExtenderCanPerformStateShareIterator) Next() bool {
   763  	// If the iterator failed, stop iterating
   764  	if it.fail != nil {
   765  		return false
   766  	}
   767  	// If the iterator completed, deliver directly whatever's available
   768  	if it.done {
   769  		select {
   770  		case log := <-it.logs:
   771  			it.Event = new(ContractExtenderCanPerformStateShare)
   772  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   773  				it.fail = err
   774  				return false
   775  			}
   776  			it.Event.Raw = log
   777  			return true
   778  
   779  		default:
   780  			return false
   781  		}
   782  	}
   783  	// Iterator still in progress, wait for either a data or an error event
   784  	select {
   785  	case log := <-it.logs:
   786  		it.Event = new(ContractExtenderCanPerformStateShare)
   787  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   788  			it.fail = err
   789  			return false
   790  		}
   791  		it.Event.Raw = log
   792  		return true
   793  
   794  	case err := <-it.sub.Err():
   795  		it.done = true
   796  		it.fail = err
   797  		return it.Next()
   798  	}
   799  }
   800  
   801  // Error returns any retrieval or parsing error occurred during filtering.
   802  func (it *ContractExtenderCanPerformStateShareIterator) Error() error {
   803  	return it.fail
   804  }
   805  
   806  // Close terminates the iteration process, releasing any pending underlying
   807  // resources.
   808  func (it *ContractExtenderCanPerformStateShareIterator) Close() error {
   809  	it.sub.Unsubscribe()
   810  	return nil
   811  }
   812  
   813  // ContractExtenderCanPerformStateShare represents a CanPerformStateShare event raised by the ContractExtender contract.
   814  type ContractExtenderCanPerformStateShare struct {
   815  	Raw types.Log // Blockchain specific contextual infos
   816  }
   817  
   818  // FilterCanPerformStateShare is a free log retrieval operation binding the contract event 0xfd46cafaa71d87561071b8095703a7f081265fad232945049f5cf2d2c39b3d28.
   819  //
   820  // Solidity: event CanPerformStateShare()
   821  func (_ContractExtender *ContractExtenderFilterer) FilterCanPerformStateShare(opts *bind.FilterOpts) (*ContractExtenderCanPerformStateShareIterator, error) {
   822  
   823  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "CanPerformStateShare")
   824  	if err != nil {
   825  		return nil, err
   826  	}
   827  	return &ContractExtenderCanPerformStateShareIterator{contract: _ContractExtender.contract, event: "CanPerformStateShare", logs: logs, sub: sub}, nil
   828  }
   829  
   830  var CanPerformStateShareTopicHash = "0xfd46cafaa71d87561071b8095703a7f081265fad232945049f5cf2d2c39b3d28"
   831  
   832  // WatchCanPerformStateShare is a free log subscription operation binding the contract event 0xfd46cafaa71d87561071b8095703a7f081265fad232945049f5cf2d2c39b3d28.
   833  //
   834  // Solidity: event CanPerformStateShare()
   835  func (_ContractExtender *ContractExtenderFilterer) WatchCanPerformStateShare(opts *bind.WatchOpts, sink chan<- *ContractExtenderCanPerformStateShare) (event.Subscription, error) {
   836  
   837  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "CanPerformStateShare")
   838  	if err != nil {
   839  		return nil, err
   840  	}
   841  	return event.NewSubscription(func(quit <-chan struct{}) error {
   842  		defer sub.Unsubscribe()
   843  		for {
   844  			select {
   845  			case log := <-logs:
   846  				// New log arrived, parse the event and forward to the user
   847  				event := new(ContractExtenderCanPerformStateShare)
   848  				if err := _ContractExtender.contract.UnpackLog(event, "CanPerformStateShare", log); err != nil {
   849  					return err
   850  				}
   851  				event.Raw = log
   852  
   853  				select {
   854  				case sink <- event:
   855  				case err := <-sub.Err():
   856  					return err
   857  				case <-quit:
   858  					return nil
   859  				}
   860  			case err := <-sub.Err():
   861  				return err
   862  			case <-quit:
   863  				return nil
   864  			}
   865  		}
   866  	}), nil
   867  }
   868  
   869  // ParseCanPerformStateShare is a log parse operation binding the contract event 0xfd46cafaa71d87561071b8095703a7f081265fad232945049f5cf2d2c39b3d28.
   870  //
   871  // Solidity: event CanPerformStateShare()
   872  func (_ContractExtender *ContractExtenderFilterer) ParseCanPerformStateShare(log types.Log) (*ContractExtenderCanPerformStateShare, error) {
   873  	event := new(ContractExtenderCanPerformStateShare)
   874  	if err := _ContractExtender.contract.UnpackLog(event, "CanPerformStateShare", log); err != nil {
   875  		return nil, err
   876  	}
   877  	return event, nil
   878  }
   879  
   880  // ContractExtenderExtensionFinishedIterator is returned from FilterExtensionFinished and is used to iterate over the raw logs and unpacked data for ExtensionFinished events raised by the ContractExtender contract.
   881  type ContractExtenderExtensionFinishedIterator struct {
   882  	Event *ContractExtenderExtensionFinished // Event containing the contract specifics and raw log
   883  
   884  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   885  	event    string              // Event name to use for unpacking event data
   886  
   887  	logs chan types.Log        // Log channel receiving the found contract events
   888  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   889  	done bool                  // Whether the subscription completed delivering logs
   890  	fail error                 // Occurred error to stop iteration
   891  }
   892  
   893  // Next advances the iterator to the subsequent event, returning whether there
   894  // are any more events found. In case of a retrieval or parsing error, false is
   895  // returned and Error() can be queried for the exact failure.
   896  func (it *ContractExtenderExtensionFinishedIterator) Next() bool {
   897  	// If the iterator failed, stop iterating
   898  	if it.fail != nil {
   899  		return false
   900  	}
   901  	// If the iterator completed, deliver directly whatever's available
   902  	if it.done {
   903  		select {
   904  		case log := <-it.logs:
   905  			it.Event = new(ContractExtenderExtensionFinished)
   906  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   907  				it.fail = err
   908  				return false
   909  			}
   910  			it.Event.Raw = log
   911  			return true
   912  
   913  		default:
   914  			return false
   915  		}
   916  	}
   917  	// Iterator still in progress, wait for either a data or an error event
   918  	select {
   919  	case log := <-it.logs:
   920  		it.Event = new(ContractExtenderExtensionFinished)
   921  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   922  			it.fail = err
   923  			return false
   924  		}
   925  		it.Event.Raw = log
   926  		return true
   927  
   928  	case err := <-it.sub.Err():
   929  		it.done = true
   930  		it.fail = err
   931  		return it.Next()
   932  	}
   933  }
   934  
   935  // Error returns any retrieval or parsing error occurred during filtering.
   936  func (it *ContractExtenderExtensionFinishedIterator) Error() error {
   937  	return it.fail
   938  }
   939  
   940  // Close terminates the iteration process, releasing any pending underlying
   941  // resources.
   942  func (it *ContractExtenderExtensionFinishedIterator) Close() error {
   943  	it.sub.Unsubscribe()
   944  	return nil
   945  }
   946  
   947  // ContractExtenderExtensionFinished represents a ExtensionFinished event raised by the ContractExtender contract.
   948  type ContractExtenderExtensionFinished struct {
   949  	Raw types.Log // Blockchain specific contextual infos
   950  }
   951  
   952  // FilterExtensionFinished is a free log retrieval operation binding the contract event 0x79c47b570b18a8a814b785800e5fcbf104e067663589cef1bba07756e3c6ede9.
   953  //
   954  // Solidity: event ExtensionFinished()
   955  func (_ContractExtender *ContractExtenderFilterer) FilterExtensionFinished(opts *bind.FilterOpts) (*ContractExtenderExtensionFinishedIterator, error) {
   956  
   957  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "ExtensionFinished")
   958  	if err != nil {
   959  		return nil, err
   960  	}
   961  	return &ContractExtenderExtensionFinishedIterator{contract: _ContractExtender.contract, event: "ExtensionFinished", logs: logs, sub: sub}, nil
   962  }
   963  
   964  var ExtensionFinishedTopicHash = "0x79c47b570b18a8a814b785800e5fcbf104e067663589cef1bba07756e3c6ede9"
   965  
   966  // WatchExtensionFinished is a free log subscription operation binding the contract event 0x79c47b570b18a8a814b785800e5fcbf104e067663589cef1bba07756e3c6ede9.
   967  //
   968  // Solidity: event ExtensionFinished()
   969  func (_ContractExtender *ContractExtenderFilterer) WatchExtensionFinished(opts *bind.WatchOpts, sink chan<- *ContractExtenderExtensionFinished) (event.Subscription, error) {
   970  
   971  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "ExtensionFinished")
   972  	if err != nil {
   973  		return nil, err
   974  	}
   975  	return event.NewSubscription(func(quit <-chan struct{}) error {
   976  		defer sub.Unsubscribe()
   977  		for {
   978  			select {
   979  			case log := <-logs:
   980  				// New log arrived, parse the event and forward to the user
   981  				event := new(ContractExtenderExtensionFinished)
   982  				if err := _ContractExtender.contract.UnpackLog(event, "ExtensionFinished", log); err != nil {
   983  					return err
   984  				}
   985  				event.Raw = log
   986  
   987  				select {
   988  				case sink <- event:
   989  				case err := <-sub.Err():
   990  					return err
   991  				case <-quit:
   992  					return nil
   993  				}
   994  			case err := <-sub.Err():
   995  				return err
   996  			case <-quit:
   997  				return nil
   998  			}
   999  		}
  1000  	}), nil
  1001  }
  1002  
  1003  // ParseExtensionFinished is a log parse operation binding the contract event 0x79c47b570b18a8a814b785800e5fcbf104e067663589cef1bba07756e3c6ede9.
  1004  //
  1005  // Solidity: event ExtensionFinished()
  1006  func (_ContractExtender *ContractExtenderFilterer) ParseExtensionFinished(log types.Log) (*ContractExtenderExtensionFinished, error) {
  1007  	event := new(ContractExtenderExtensionFinished)
  1008  	if err := _ContractExtender.contract.UnpackLog(event, "ExtensionFinished", log); err != nil {
  1009  		return nil, err
  1010  	}
  1011  	return event, nil
  1012  }
  1013  
  1014  // ContractExtenderNewContractExtensionContractCreatedIterator is returned from FilterNewContractExtensionContractCreated and is used to iterate over the raw logs and unpacked data for NewContractExtensionContractCreated events raised by the ContractExtender contract.
  1015  type ContractExtenderNewContractExtensionContractCreatedIterator struct {
  1016  	Event *ContractExtenderNewContractExtensionContractCreated // Event containing the contract specifics and raw log
  1017  
  1018  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1019  	event    string              // Event name to use for unpacking event data
  1020  
  1021  	logs chan types.Log        // Log channel receiving the found contract events
  1022  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1023  	done bool                  // Whether the subscription completed delivering logs
  1024  	fail error                 // Occurred error to stop iteration
  1025  }
  1026  
  1027  // Next advances the iterator to the subsequent event, returning whether there
  1028  // are any more events found. In case of a retrieval or parsing error, false is
  1029  // returned and Error() can be queried for the exact failure.
  1030  func (it *ContractExtenderNewContractExtensionContractCreatedIterator) Next() bool {
  1031  	// If the iterator failed, stop iterating
  1032  	if it.fail != nil {
  1033  		return false
  1034  	}
  1035  	// If the iterator completed, deliver directly whatever's available
  1036  	if it.done {
  1037  		select {
  1038  		case log := <-it.logs:
  1039  			it.Event = new(ContractExtenderNewContractExtensionContractCreated)
  1040  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1041  				it.fail = err
  1042  				return false
  1043  			}
  1044  			it.Event.Raw = log
  1045  			return true
  1046  
  1047  		default:
  1048  			return false
  1049  		}
  1050  	}
  1051  	// Iterator still in progress, wait for either a data or an error event
  1052  	select {
  1053  	case log := <-it.logs:
  1054  		it.Event = new(ContractExtenderNewContractExtensionContractCreated)
  1055  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1056  			it.fail = err
  1057  			return false
  1058  		}
  1059  		it.Event.Raw = log
  1060  		return true
  1061  
  1062  	case err := <-it.sub.Err():
  1063  		it.done = true
  1064  		it.fail = err
  1065  		return it.Next()
  1066  	}
  1067  }
  1068  
  1069  // Error returns any retrieval or parsing error occurred during filtering.
  1070  func (it *ContractExtenderNewContractExtensionContractCreatedIterator) Error() error {
  1071  	return it.fail
  1072  }
  1073  
  1074  // Close terminates the iteration process, releasing any pending underlying
  1075  // resources.
  1076  func (it *ContractExtenderNewContractExtensionContractCreatedIterator) Close() error {
  1077  	it.sub.Unsubscribe()
  1078  	return nil
  1079  }
  1080  
  1081  // ContractExtenderNewContractExtensionContractCreated represents a NewContractExtensionContractCreated event raised by the ContractExtender contract.
  1082  type ContractExtenderNewContractExtensionContractCreated struct {
  1083  	ToExtend         common.Address
  1084  	RecipientPTMKey  string
  1085  	RecipientAddress common.Address
  1086  	Raw              types.Log // Blockchain specific contextual infos
  1087  }
  1088  
  1089  // FilterNewContractExtensionContractCreated is a free log retrieval operation binding the contract event 0x04576ede6057794ada68966eebc285c98a2726cbc4929ffd1ad9900336728d93.
  1090  //
  1091  // Solidity: event NewContractExtensionContractCreated(address toExtend, string recipientPTMKey, address recipientAddress)
  1092  func (_ContractExtender *ContractExtenderFilterer) FilterNewContractExtensionContractCreated(opts *bind.FilterOpts) (*ContractExtenderNewContractExtensionContractCreatedIterator, error) {
  1093  
  1094  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "NewContractExtensionContractCreated")
  1095  	if err != nil {
  1096  		return nil, err
  1097  	}
  1098  	return &ContractExtenderNewContractExtensionContractCreatedIterator{contract: _ContractExtender.contract, event: "NewContractExtensionContractCreated", logs: logs, sub: sub}, nil
  1099  }
  1100  
  1101  var NewContractExtensionContractCreatedTopicHash = "0x04576ede6057794ada68966eebc285c98a2726cbc4929ffd1ad9900336728d93"
  1102  
  1103  // WatchNewContractExtensionContractCreated is a free log subscription operation binding the contract event 0x04576ede6057794ada68966eebc285c98a2726cbc4929ffd1ad9900336728d93.
  1104  //
  1105  // Solidity: event NewContractExtensionContractCreated(address toExtend, string recipientPTMKey, address recipientAddress)
  1106  func (_ContractExtender *ContractExtenderFilterer) WatchNewContractExtensionContractCreated(opts *bind.WatchOpts, sink chan<- *ContractExtenderNewContractExtensionContractCreated) (event.Subscription, error) {
  1107  
  1108  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "NewContractExtensionContractCreated")
  1109  	if err != nil {
  1110  		return nil, err
  1111  	}
  1112  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1113  		defer sub.Unsubscribe()
  1114  		for {
  1115  			select {
  1116  			case log := <-logs:
  1117  				// New log arrived, parse the event and forward to the user
  1118  				event := new(ContractExtenderNewContractExtensionContractCreated)
  1119  				if err := _ContractExtender.contract.UnpackLog(event, "NewContractExtensionContractCreated", log); err != nil {
  1120  					return err
  1121  				}
  1122  				event.Raw = log
  1123  
  1124  				select {
  1125  				case sink <- event:
  1126  				case err := <-sub.Err():
  1127  					return err
  1128  				case <-quit:
  1129  					return nil
  1130  				}
  1131  			case err := <-sub.Err():
  1132  				return err
  1133  			case <-quit:
  1134  				return nil
  1135  			}
  1136  		}
  1137  	}), nil
  1138  }
  1139  
  1140  // ParseNewContractExtensionContractCreated is a log parse operation binding the contract event 0x04576ede6057794ada68966eebc285c98a2726cbc4929ffd1ad9900336728d93.
  1141  //
  1142  // Solidity: event NewContractExtensionContractCreated(address toExtend, string recipientPTMKey, address recipientAddress)
  1143  func (_ContractExtender *ContractExtenderFilterer) ParseNewContractExtensionContractCreated(log types.Log) (*ContractExtenderNewContractExtensionContractCreated, error) {
  1144  	event := new(ContractExtenderNewContractExtensionContractCreated)
  1145  	if err := _ContractExtender.contract.UnpackLog(event, "NewContractExtensionContractCreated", log); err != nil {
  1146  		return nil, err
  1147  	}
  1148  	return event, nil
  1149  }
  1150  
  1151  // ContractExtenderNewVoteIterator is returned from FilterNewVote and is used to iterate over the raw logs and unpacked data for NewVote events raised by the ContractExtender contract.
  1152  type ContractExtenderNewVoteIterator struct {
  1153  	Event *ContractExtenderNewVote // Event containing the contract specifics and raw log
  1154  
  1155  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1156  	event    string              // Event name to use for unpacking event data
  1157  
  1158  	logs chan types.Log        // Log channel receiving the found contract events
  1159  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1160  	done bool                  // Whether the subscription completed delivering logs
  1161  	fail error                 // Occurred error to stop iteration
  1162  }
  1163  
  1164  // Next advances the iterator to the subsequent event, returning whether there
  1165  // are any more events found. In case of a retrieval or parsing error, false is
  1166  // returned and Error() can be queried for the exact failure.
  1167  func (it *ContractExtenderNewVoteIterator) Next() bool {
  1168  	// If the iterator failed, stop iterating
  1169  	if it.fail != nil {
  1170  		return false
  1171  	}
  1172  	// If the iterator completed, deliver directly whatever's available
  1173  	if it.done {
  1174  		select {
  1175  		case log := <-it.logs:
  1176  			it.Event = new(ContractExtenderNewVote)
  1177  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1178  				it.fail = err
  1179  				return false
  1180  			}
  1181  			it.Event.Raw = log
  1182  			return true
  1183  
  1184  		default:
  1185  			return false
  1186  		}
  1187  	}
  1188  	// Iterator still in progress, wait for either a data or an error event
  1189  	select {
  1190  	case log := <-it.logs:
  1191  		it.Event = new(ContractExtenderNewVote)
  1192  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1193  			it.fail = err
  1194  			return false
  1195  		}
  1196  		it.Event.Raw = log
  1197  		return true
  1198  
  1199  	case err := <-it.sub.Err():
  1200  		it.done = true
  1201  		it.fail = err
  1202  		return it.Next()
  1203  	}
  1204  }
  1205  
  1206  // Error returns any retrieval or parsing error occurred during filtering.
  1207  func (it *ContractExtenderNewVoteIterator) Error() error {
  1208  	return it.fail
  1209  }
  1210  
  1211  // Close terminates the iteration process, releasing any pending underlying
  1212  // resources.
  1213  func (it *ContractExtenderNewVoteIterator) Close() error {
  1214  	it.sub.Unsubscribe()
  1215  	return nil
  1216  }
  1217  
  1218  // ContractExtenderNewVote represents a NewVote event raised by the ContractExtender contract.
  1219  type ContractExtenderNewVote struct {
  1220  	Vote  bool
  1221  	Voter common.Address
  1222  	Raw   types.Log // Blockchain specific contextual infos
  1223  }
  1224  
  1225  // FilterNewVote is a free log retrieval operation binding the contract event 0x225708d30006b0cc86d855ab91047edb5fe9c2e416412f36c18c6e90fe4e461f.
  1226  //
  1227  // Solidity: event NewVote(bool vote, address voter)
  1228  func (_ContractExtender *ContractExtenderFilterer) FilterNewVote(opts *bind.FilterOpts) (*ContractExtenderNewVoteIterator, error) {
  1229  
  1230  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "NewVote")
  1231  	if err != nil {
  1232  		return nil, err
  1233  	}
  1234  	return &ContractExtenderNewVoteIterator{contract: _ContractExtender.contract, event: "NewVote", logs: logs, sub: sub}, nil
  1235  }
  1236  
  1237  var NewVoteTopicHash = "0x225708d30006b0cc86d855ab91047edb5fe9c2e416412f36c18c6e90fe4e461f"
  1238  
  1239  // WatchNewVote is a free log subscription operation binding the contract event 0x225708d30006b0cc86d855ab91047edb5fe9c2e416412f36c18c6e90fe4e461f.
  1240  //
  1241  // Solidity: event NewVote(bool vote, address voter)
  1242  func (_ContractExtender *ContractExtenderFilterer) WatchNewVote(opts *bind.WatchOpts, sink chan<- *ContractExtenderNewVote) (event.Subscription, error) {
  1243  
  1244  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "NewVote")
  1245  	if err != nil {
  1246  		return nil, err
  1247  	}
  1248  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1249  		defer sub.Unsubscribe()
  1250  		for {
  1251  			select {
  1252  			case log := <-logs:
  1253  				// New log arrived, parse the event and forward to the user
  1254  				event := new(ContractExtenderNewVote)
  1255  				if err := _ContractExtender.contract.UnpackLog(event, "NewVote", log); err != nil {
  1256  					return err
  1257  				}
  1258  				event.Raw = log
  1259  
  1260  				select {
  1261  				case sink <- event:
  1262  				case err := <-sub.Err():
  1263  					return err
  1264  				case <-quit:
  1265  					return nil
  1266  				}
  1267  			case err := <-sub.Err():
  1268  				return err
  1269  			case <-quit:
  1270  				return nil
  1271  			}
  1272  		}
  1273  	}), nil
  1274  }
  1275  
  1276  // ParseNewVote is a log parse operation binding the contract event 0x225708d30006b0cc86d855ab91047edb5fe9c2e416412f36c18c6e90fe4e461f.
  1277  //
  1278  // Solidity: event NewVote(bool vote, address voter)
  1279  func (_ContractExtender *ContractExtenderFilterer) ParseNewVote(log types.Log) (*ContractExtenderNewVote, error) {
  1280  	event := new(ContractExtenderNewVote)
  1281  	if err := _ContractExtender.contract.UnpackLog(event, "NewVote", log); err != nil {
  1282  		return nil, err
  1283  	}
  1284  	return event, nil
  1285  }
  1286  
  1287  // ContractExtenderStateSharedIterator is returned from FilterStateShared and is used to iterate over the raw logs and unpacked data for StateShared events raised by the ContractExtender contract.
  1288  type ContractExtenderStateSharedIterator struct {
  1289  	Event *ContractExtenderStateShared // Event containing the contract specifics and raw log
  1290  
  1291  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1292  	event    string              // Event name to use for unpacking event data
  1293  
  1294  	logs chan types.Log        // Log channel receiving the found contract events
  1295  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1296  	done bool                  // Whether the subscription completed delivering logs
  1297  	fail error                 // Occurred error to stop iteration
  1298  }
  1299  
  1300  // Next advances the iterator to the subsequent event, returning whether there
  1301  // are any more events found. In case of a retrieval or parsing error, false is
  1302  // returned and Error() can be queried for the exact failure.
  1303  func (it *ContractExtenderStateSharedIterator) Next() bool {
  1304  	// If the iterator failed, stop iterating
  1305  	if it.fail != nil {
  1306  		return false
  1307  	}
  1308  	// If the iterator completed, deliver directly whatever's available
  1309  	if it.done {
  1310  		select {
  1311  		case log := <-it.logs:
  1312  			it.Event = new(ContractExtenderStateShared)
  1313  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1314  				it.fail = err
  1315  				return false
  1316  			}
  1317  			it.Event.Raw = log
  1318  			return true
  1319  
  1320  		default:
  1321  			return false
  1322  		}
  1323  	}
  1324  	// Iterator still in progress, wait for either a data or an error event
  1325  	select {
  1326  	case log := <-it.logs:
  1327  		it.Event = new(ContractExtenderStateShared)
  1328  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1329  			it.fail = err
  1330  			return false
  1331  		}
  1332  		it.Event.Raw = log
  1333  		return true
  1334  
  1335  	case err := <-it.sub.Err():
  1336  		it.done = true
  1337  		it.fail = err
  1338  		return it.Next()
  1339  	}
  1340  }
  1341  
  1342  // Error returns any retrieval or parsing error occurred during filtering.
  1343  func (it *ContractExtenderStateSharedIterator) Error() error {
  1344  	return it.fail
  1345  }
  1346  
  1347  // Close terminates the iteration process, releasing any pending underlying
  1348  // resources.
  1349  func (it *ContractExtenderStateSharedIterator) Close() error {
  1350  	it.sub.Unsubscribe()
  1351  	return nil
  1352  }
  1353  
  1354  // ContractExtenderStateShared represents a StateShared event raised by the ContractExtender contract.
  1355  type ContractExtenderStateShared struct {
  1356  	ToExtend    common.Address
  1357  	Tesserahash string
  1358  	Uuid        string
  1359  	Raw         types.Log // Blockchain specific contextual infos
  1360  }
  1361  
  1362  // FilterStateShared is a free log retrieval operation binding the contract event 0x67a92539f3cbd7c5a9b36c23c0e2beceb27d2e1b3cd8eda02c623689267ae71e.
  1363  //
  1364  // Solidity: event StateShared(address toExtend, string tesserahash, string uuid)
  1365  func (_ContractExtender *ContractExtenderFilterer) FilterStateShared(opts *bind.FilterOpts) (*ContractExtenderStateSharedIterator, error) {
  1366  
  1367  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "StateShared")
  1368  	if err != nil {
  1369  		return nil, err
  1370  	}
  1371  	return &ContractExtenderStateSharedIterator{contract: _ContractExtender.contract, event: "StateShared", logs: logs, sub: sub}, nil
  1372  }
  1373  
  1374  var StateSharedTopicHash = "0x67a92539f3cbd7c5a9b36c23c0e2beceb27d2e1b3cd8eda02c623689267ae71e"
  1375  
  1376  // WatchStateShared is a free log subscription operation binding the contract event 0x67a92539f3cbd7c5a9b36c23c0e2beceb27d2e1b3cd8eda02c623689267ae71e.
  1377  //
  1378  // Solidity: event StateShared(address toExtend, string tesserahash, string uuid)
  1379  func (_ContractExtender *ContractExtenderFilterer) WatchStateShared(opts *bind.WatchOpts, sink chan<- *ContractExtenderStateShared) (event.Subscription, error) {
  1380  
  1381  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "StateShared")
  1382  	if err != nil {
  1383  		return nil, err
  1384  	}
  1385  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1386  		defer sub.Unsubscribe()
  1387  		for {
  1388  			select {
  1389  			case log := <-logs:
  1390  				// New log arrived, parse the event and forward to the user
  1391  				event := new(ContractExtenderStateShared)
  1392  				if err := _ContractExtender.contract.UnpackLog(event, "StateShared", log); err != nil {
  1393  					return err
  1394  				}
  1395  				event.Raw = log
  1396  
  1397  				select {
  1398  				case sink <- event:
  1399  				case err := <-sub.Err():
  1400  					return err
  1401  				case <-quit:
  1402  					return nil
  1403  				}
  1404  			case err := <-sub.Err():
  1405  				return err
  1406  			case <-quit:
  1407  				return nil
  1408  			}
  1409  		}
  1410  	}), nil
  1411  }
  1412  
  1413  // ParseStateShared is a log parse operation binding the contract event 0x67a92539f3cbd7c5a9b36c23c0e2beceb27d2e1b3cd8eda02c623689267ae71e.
  1414  //
  1415  // Solidity: event StateShared(address toExtend, string tesserahash, string uuid)
  1416  func (_ContractExtender *ContractExtenderFilterer) ParseStateShared(log types.Log) (*ContractExtenderStateShared, error) {
  1417  	event := new(ContractExtenderStateShared)
  1418  	if err := _ContractExtender.contract.UnpackLog(event, "StateShared", log); err != nil {
  1419  		return nil, err
  1420  	}
  1421  	return event, nil
  1422  }
  1423  
  1424  // ContractExtenderUpdateMembersIterator is returned from FilterUpdateMembers and is used to iterate over the raw logs and unpacked data for UpdateMembers events raised by the ContractExtender contract.
  1425  type ContractExtenderUpdateMembersIterator struct {
  1426  	Event *ContractExtenderUpdateMembers // Event containing the contract specifics and raw log
  1427  
  1428  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1429  	event    string              // Event name to use for unpacking event data
  1430  
  1431  	logs chan types.Log        // Log channel receiving the found contract events
  1432  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1433  	done bool                  // Whether the subscription completed delivering logs
  1434  	fail error                 // Occurred error to stop iteration
  1435  }
  1436  
  1437  // Next advances the iterator to the subsequent event, returning whether there
  1438  // are any more events found. In case of a retrieval or parsing error, false is
  1439  // returned and Error() can be queried for the exact failure.
  1440  func (it *ContractExtenderUpdateMembersIterator) Next() bool {
  1441  	// If the iterator failed, stop iterating
  1442  	if it.fail != nil {
  1443  		return false
  1444  	}
  1445  	// If the iterator completed, deliver directly whatever's available
  1446  	if it.done {
  1447  		select {
  1448  		case log := <-it.logs:
  1449  			it.Event = new(ContractExtenderUpdateMembers)
  1450  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1451  				it.fail = err
  1452  				return false
  1453  			}
  1454  			it.Event.Raw = log
  1455  			return true
  1456  
  1457  		default:
  1458  			return false
  1459  		}
  1460  	}
  1461  	// Iterator still in progress, wait for either a data or an error event
  1462  	select {
  1463  	case log := <-it.logs:
  1464  		it.Event = new(ContractExtenderUpdateMembers)
  1465  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1466  			it.fail = err
  1467  			return false
  1468  		}
  1469  		it.Event.Raw = log
  1470  		return true
  1471  
  1472  	case err := <-it.sub.Err():
  1473  		it.done = true
  1474  		it.fail = err
  1475  		return it.Next()
  1476  	}
  1477  }
  1478  
  1479  // Error returns any retrieval or parsing error occurred during filtering.
  1480  func (it *ContractExtenderUpdateMembersIterator) Error() error {
  1481  	return it.fail
  1482  }
  1483  
  1484  // Close terminates the iteration process, releasing any pending underlying
  1485  // resources.
  1486  func (it *ContractExtenderUpdateMembersIterator) Close() error {
  1487  	it.sub.Unsubscribe()
  1488  	return nil
  1489  }
  1490  
  1491  // ContractExtenderUpdateMembers represents a UpdateMembers event raised by the ContractExtender contract.
  1492  type ContractExtenderUpdateMembers struct {
  1493  	ToExtend common.Address
  1494  	Uuid     string
  1495  	Raw      types.Log // Blockchain specific contextual infos
  1496  }
  1497  
  1498  // FilterUpdateMembers is a free log retrieval operation binding the contract event 0x8adc4573f947f9930560525736f61b116be55049125cb63a36887a40f92f3b44.
  1499  //
  1500  // Solidity: event UpdateMembers(address toExtend, string uuid)
  1501  func (_ContractExtender *ContractExtenderFilterer) FilterUpdateMembers(opts *bind.FilterOpts) (*ContractExtenderUpdateMembersIterator, error) {
  1502  
  1503  	logs, sub, err := _ContractExtender.contract.FilterLogs(opts, "UpdateMembers")
  1504  	if err != nil {
  1505  		return nil, err
  1506  	}
  1507  	return &ContractExtenderUpdateMembersIterator{contract: _ContractExtender.contract, event: "UpdateMembers", logs: logs, sub: sub}, nil
  1508  }
  1509  
  1510  var UpdateMembersTopicHash = "0x8adc4573f947f9930560525736f61b116be55049125cb63a36887a40f92f3b44"
  1511  
  1512  // WatchUpdateMembers is a free log subscription operation binding the contract event 0x8adc4573f947f9930560525736f61b116be55049125cb63a36887a40f92f3b44.
  1513  //
  1514  // Solidity: event UpdateMembers(address toExtend, string uuid)
  1515  func (_ContractExtender *ContractExtenderFilterer) WatchUpdateMembers(opts *bind.WatchOpts, sink chan<- *ContractExtenderUpdateMembers) (event.Subscription, error) {
  1516  
  1517  	logs, sub, err := _ContractExtender.contract.WatchLogs(opts, "UpdateMembers")
  1518  	if err != nil {
  1519  		return nil, err
  1520  	}
  1521  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1522  		defer sub.Unsubscribe()
  1523  		for {
  1524  			select {
  1525  			case log := <-logs:
  1526  				// New log arrived, parse the event and forward to the user
  1527  				event := new(ContractExtenderUpdateMembers)
  1528  				if err := _ContractExtender.contract.UnpackLog(event, "UpdateMembers", log); err != nil {
  1529  					return err
  1530  				}
  1531  				event.Raw = log
  1532  
  1533  				select {
  1534  				case sink <- event:
  1535  				case err := <-sub.Err():
  1536  					return err
  1537  				case <-quit:
  1538  					return nil
  1539  				}
  1540  			case err := <-sub.Err():
  1541  				return err
  1542  			case <-quit:
  1543  				return nil
  1544  			}
  1545  		}
  1546  	}), nil
  1547  }
  1548  
  1549  // ParseUpdateMembers is a log parse operation binding the contract event 0x8adc4573f947f9930560525736f61b116be55049125cb63a36887a40f92f3b44.
  1550  //
  1551  // Solidity: event UpdateMembers(address toExtend, string uuid)
  1552  func (_ContractExtender *ContractExtenderFilterer) ParseUpdateMembers(log types.Log) (*ContractExtenderUpdateMembers, error) {
  1553  	event := new(ContractExtenderUpdateMembers)
  1554  	if err := _ContractExtender.contract.UnpackLog(event, "UpdateMembers", log); err != nil {
  1555  		return nil, err
  1556  	}
  1557  	return event, nil
  1558  }