github.com/vantum/vantum@v0.0.0-20180815184342-fe37d5f7a990/contracts/masternode/contract/masternode.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 contract
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	"github.com/vantum/vantum"
    11  	"github.com/vantum/vantum/accounts/abi"
    12  	"github.com/vantum/vantum/accounts/abi/bind"
    13  	"github.com/vantum/vantum/common"
    14  	"github.com/vantum/vantum/core/types"
    15  	"github.com/vantum/vantum/event"
    16  )
    17  
    18  // ContractABI is the input ABI used to generate the binding from.
    19  const ContractABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"count\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"id\",\"type\":\"bytes8\"}],\"name\":\"has\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalPeriod\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"id1\",\"type\":\"bytes32\"},{\"name\":\"id2\",\"type\":\"bytes32\"}],\"name\":\"register\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getId\",\"outputs\":[{\"name\":\"id\",\"type\":\"bytes8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"governanceAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastId\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalFee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"id\",\"type\":\"bytes8\"}],\"name\":\"getInfo\",\"outputs\":[{\"name\":\"id1\",\"type\":\"bytes32\"},{\"name\":\"id2\",\"type\":\"bytes32\"},{\"name\":\"preId\",\"type\":\"bytes8\"},{\"name\":\"nextId\",\"type\":\"bytes8\"},{\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"blockOnlineAcc\",\"type\":\"uint256\"},{\"name\":\"blockLastPing\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"etzMin\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getVoteInfo\",\"outputs\":[{\"name\":\"voteCount\",\"type\":\"uint256\"},{\"name\":\"startBlock\",\"type\":\"uint256\"},{\"name\":\"stopBlock\",\"type\":\"uint256\"},{\"name\":\"creator\",\"type\":\"address\"},{\"name\":\"lastAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blockPingTimeout\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastProposalAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"voteForGovernanceAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"createGovernanceAddressVote\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"etzPerNode\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"id\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"join\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"id\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"quit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"id\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"blockOnlineAcc\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"blockLastPing\",\"type\":\"uint256\"}],\"name\":\"ping\",\"type\":\"event\"}]"
    20  
    21  // ContractBin is the compiled bytecode used for deploying new contracts.
    22  const ContractBin = `608060405234801561001057600080fd5b5060007801000000000000000000000000000000000000000000000000026000806101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060006001819055506127048061007e6000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd14610dab57806316e7f17114610dd65780632c103c7914610e365780632f92673214610e6157806365f68c8914610e93578063795053d314610f20578063c1292cc314610f77578063c27cabb514610fd8578063c4e3ed9314611003578063c808021c14611138578063dc1e30da14611163578063e3596ce01461122e578063e7b895b614611259578063e8c74af2146112b0578063f834f524146112f3578063ff5ecad214611329575b6000806000806100f4612693565b6100fc6126b5565b6000806000803414151561010f57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90047801000000000000000000000000000000000000000000000000029850600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168977ffffffffffffffffffffffffffffffffffffffffffffffff1916141580156101dd57506101dc89611354565b5b1561041b57600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060060154975060008811156102fc578743039650610e108711156102a0576000600260008b77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600501819055506102fb565b86600260008b77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600501600082825401925050819055505b5b43600260008b77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600601819055507fb620b17a993c1ab2769ca9e6d72d178499b0cd9b800d62e9b3d502e01bca76c289600260008c77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206005015443604051808477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001838152602001828152602001935050505060405180910390a1610da0565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90047801000000000000000000000000000000000000000000000000029850600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060000154955060003414801561053357508877ffffffffffffffffffffffffffffffffffffffffffffffff1916600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff191614155b801561054b5750856000191660006001026000191614155b80156105805750662386f26fc100006801158e460913d00000033073ffffffffffffffffffffffffffffffffffffffff163110155b801561058e57506000600154115b151561059957600080fd5b858560006002811015156105a957fe5b60200201906000191690816000191681525050600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206001015485600160028110151561061857fe5b602002019060001916908160001916815250506020846080876000600b600019f1151561064457600080fd5b83600060018110151561065357fe5b60200201516001900492506000780100000000000000000000000000000000000000000000000002600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff0219169083780100000000000000000000000000000000000000000000000090040217905550600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160009054906101000a90047801000000000000000000000000000000000000000000000000029150600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160089054906101000a90047801000000000000000000000000000000000000000000000000029050600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168277ffffffffffffffffffffffffffffffffffffffffffffffff19161415156108bb5780600260008477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160086101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055505b600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168177ffffffffffffffffffffffffffffffffffffffffffffffff19161415156109a05781600260008377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160006101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055506109db565b816000806101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055505b6101006040519081016040528060006001026000191681526020016000600102600019168152602001600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815250600260008b77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060608201518160020160086101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060808201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816004015560c0820151816005015560e082015181600601559050506000780100000000000000000000000000000000000000000000000002600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff0219169083780100000000000000000000000000000000000000000000000090040217905550600180600082825403925050819055507f86d1ab9dbf33cb06567fbeb4b47a6a365cf66f632380589591255187f5ca09cd8933604051808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc662386f26fc100006801158e460913d00000039081150290604051600060405180830381858888f19350505050158015610d9e573d6000803e3d6000fd5b505b505050505050505050005b348015610db757600080fd5b50610dc06113b8565b6040518082815260200191505060405180910390f35b348015610de257600080fd5b50610e1c600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611354565b604051808215151515815260200191505060405180910390f35b348015610e4257600080fd5b50610e4b6113be565b6040518082815260200191505060405180910390f35b610e91600480360381019080803560001916906020019092919080356000191690602001909291905050506113c5565b005b348015610e9f57600080fd5b50610ed4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bde565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610f2c57600080fd5b50610f35611c4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f8357600080fd5b50610f8c611c72565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b348015610fe457600080fd5b50610fed611c9c565b6040518082815260200191505060405180910390f35b34801561100f57600080fd5b50611049600480360381019080803577ffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050611ca8565b60405180896000191660001916815260200188600019166000191681526020018777ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018677ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019850505050505050505060405180910390f35b34801561114457600080fd5b5061114d611fa1565b6040518082815260200191505060405180910390f35b34801561116f57600080fd5b506111a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fac565b604051808681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b34801561123a57600080fd5b50611243612156565b6040518082815260200191505060405180910390f35b34801561126557600080fd5b5061126e61215c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156112bc57600080fd5b506112f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612182565b005b611327600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612467565b005b34801561133557600080fd5b5061133e612686565b6040518082815260200191505060405180910390f35b60008060010260001916600260008477ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600001546000191614159050919050565b60015481565b62124f8081565b60006113cf612693565b6113d76126b5565b60008593508560001916600060010260001916141580156114045750846000191660006001026000191614155b801561146257508377ffffffffffffffffffffffffffffffffffffffffffffffff1916600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff191614155b80156115235750600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900478010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff1916600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff1916145b80156115865750600260008577ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206000015460001916600060010260001916145b801561159a57506801158e460913d0000034145b15156115a557600080fd5b858360006002811015156115b557fe5b60200201906000191690816000191681525050848360016002811015156115d857fe5b602002019060001916908160001916815250506020826080856000600b600019f1151561160457600080fd5b81600060018110151561161357fe5b6020020151600190049050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561165a57600080fd5b83600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055506101006040519081016040528087600019168152602001866000191681526020016000809054906101000a900478010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001438152602001600081526020016000815250600260008677ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600082015181600001906000191690556020820151816001019060001916905560408201518160020160006101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060608201518160020160086101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555060808201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a0820151816004015560c0820151816005015560e08201518160060155905050600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19166000809054906101000a900478010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff1916141515611a255783600260008060009054906101000a900478010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160086101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055505b836000806101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055506001806000828254019250508190555083600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548167ffffffffffffffff02191690837801000000000000000000000000000000000000000000000000900402179055508073ffffffffffffffffffffffffffffffffffffffff166108fc662386f26fc100009081150290604051600060405180830381858888f19350505050158015611b34573d6000803e3d6000fd5b507ff19f694d42048723a415f5eed7c402ce2c2e5dc0c41580c3f80e220db85ac3898433604051808377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90047801000000000000000000000000000000000000000000000000029050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900478010000000000000000000000000000000000000000000000000281565b678ac7230489e8000081565b600080600080600080600080600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600001549750600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600101549650600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160009054906101000a90047801000000000000000000000000000000000000000000000000029550600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060020160089054906101000a90047801000000000000000000000000000000000000000000000000029450600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600401549350600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600501549150600260008a77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600601549050919395975091939597565b662386f26fc1000081565b6000806000806000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549450600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549350600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549250600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905091939590929450565b610e1081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091506121cf33611bde565b9050600082600101541180156121e85750816001015443115b80156121f75750816002015443105b80156122555750600078010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff19168177ffffffffffffffffffffffffffffffffffffffffffffffff191614155b80156122b1575062124f80600260008377ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020600401544303115b801561234a575060001515600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561235557600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018260000160008282540192505081905550600260015481151561240b57fe5b04826000015411156124625743826002018190555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541480156124fb57506000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154145b801561250e5750678ac7230489e8000034145b151561251957600080fd5b60a0604051908101604052806000815260200143815260200162124f80430181526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505050565b6801158e460913d0000081565b6040805190810160405280600290602082028038833980820191505090505090565b6020604051908101604052806001906020820280388339808201915050905050905600a165627a7a72305820404e2868f2203a2d8fc30cc0ca3d80fbd3b1c3ad8e4078fcf1dccbd36e744bbf0029`
    23  
    24  // DeployContract deploys a new Ethereum contract, binding an instance of Contract to it.
    25  func DeployContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Contract, error) {
    26  	parsed, err := abi.JSON(strings.NewReader(ContractABI))
    27  	if err != nil {
    28  		return common.Address{}, nil, nil, err
    29  	}
    30  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ContractBin), backend)
    31  	if err != nil {
    32  		return common.Address{}, nil, nil, err
    33  	}
    34  	return address, tx, &Contract{ContractCaller: ContractCaller{contract: contract}, ContractTransactor: ContractTransactor{contract: contract}, ContractFilterer: ContractFilterer{contract: contract}}, nil
    35  }
    36  
    37  // Contract is an auto generated Go binding around an Ethereum contract.
    38  type Contract struct {
    39  	ContractCaller     // Read-only binding to the contract
    40  	ContractTransactor // Write-only binding to the contract
    41  	ContractFilterer   // Log filterer for contract events
    42  }
    43  
    44  // ContractCaller is an auto generated read-only Go binding around an Ethereum contract.
    45  type ContractCaller struct {
    46  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    47  }
    48  
    49  // ContractTransactor is an auto generated write-only Go binding around an Ethereum contract.
    50  type ContractTransactor struct {
    51  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    52  }
    53  
    54  // ContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    55  type ContractFilterer struct {
    56  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    57  }
    58  
    59  // ContractSession is an auto generated Go binding around an Ethereum contract,
    60  // with pre-set call and transact options.
    61  type ContractSession struct {
    62  	Contract     *Contract         // Generic contract binding to set the session for
    63  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    64  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    65  }
    66  
    67  // ContractCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    68  // with pre-set call options.
    69  type ContractCallerSession struct {
    70  	Contract *ContractCaller // Generic contract caller binding to set the session for
    71  	CallOpts bind.CallOpts   // Call options to use throughout this session
    72  }
    73  
    74  // ContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    75  // with pre-set transact options.
    76  type ContractTransactorSession struct {
    77  	Contract     *ContractTransactor // Generic contract transactor binding to set the session for
    78  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
    79  }
    80  
    81  // ContractRaw is an auto generated low-level Go binding around an Ethereum contract.
    82  type ContractRaw struct {
    83  	Contract *Contract // Generic contract binding to access the raw methods on
    84  }
    85  
    86  // ContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    87  type ContractCallerRaw struct {
    88  	Contract *ContractCaller // Generic read-only contract binding to access the raw methods on
    89  }
    90  
    91  // ContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    92  type ContractTransactorRaw struct {
    93  	Contract *ContractTransactor // Generic write-only contract binding to access the raw methods on
    94  }
    95  
    96  // NewContract creates a new instance of Contract, bound to a specific deployed contract.
    97  func NewContract(address common.Address, backend bind.ContractBackend) (*Contract, error) {
    98  	contract, err := bindContract(address, backend, backend, backend)
    99  	if err != nil {
   100  		return nil, err
   101  	}
   102  	return &Contract{ContractCaller: ContractCaller{contract: contract}, ContractTransactor: ContractTransactor{contract: contract}, ContractFilterer: ContractFilterer{contract: contract}}, nil
   103  }
   104  
   105  // NewContractCaller creates a new read-only instance of Contract, bound to a specific deployed contract.
   106  func NewContractCaller(address common.Address, caller bind.ContractCaller) (*ContractCaller, error) {
   107  	contract, err := bindContract(address, caller, nil, nil)
   108  	if err != nil {
   109  		return nil, err
   110  	}
   111  	return &ContractCaller{contract: contract}, nil
   112  }
   113  
   114  // NewContractTransactor creates a new write-only instance of Contract, bound to a specific deployed contract.
   115  func NewContractTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractTransactor, error) {
   116  	contract, err := bindContract(address, nil, transactor, nil)
   117  	if err != nil {
   118  		return nil, err
   119  	}
   120  	return &ContractTransactor{contract: contract}, nil
   121  }
   122  
   123  // NewContractFilterer creates a new log filterer instance of Contract, bound to a specific deployed contract.
   124  func NewContractFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractFilterer, error) {
   125  	contract, err := bindContract(address, nil, nil, filterer)
   126  	if err != nil {
   127  		return nil, err
   128  	}
   129  	return &ContractFilterer{contract: contract}, nil
   130  }
   131  
   132  // bindContract binds a generic wrapper to an already deployed contract.
   133  func bindContract(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   134  	parsed, err := abi.JSON(strings.NewReader(ContractABI))
   135  	if err != nil {
   136  		return nil, err
   137  	}
   138  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   139  }
   140  
   141  // Call invokes the (constant) contract method with params as input values and
   142  // sets the output to result. The result type might be a single field for simple
   143  // returns, a slice of interfaces for anonymous returns and a struct for named
   144  // returns.
   145  func (_Contract *ContractRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   146  	return _Contract.Contract.ContractCaller.contract.Call(opts, result, method, params...)
   147  }
   148  
   149  // Transfer initiates a plain transaction to move funds to the contract, calling
   150  // its default method if one is available.
   151  func (_Contract *ContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   152  	return _Contract.Contract.ContractTransactor.contract.Transfer(opts)
   153  }
   154  
   155  // Transact invokes the (paid) contract method with params as input values.
   156  func (_Contract *ContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   157  	return _Contract.Contract.ContractTransactor.contract.Transact(opts, method, params...)
   158  }
   159  
   160  // Call invokes the (constant) contract method with params as input values and
   161  // sets the output to result. The result type might be a single field for simple
   162  // returns, a slice of interfaces for anonymous returns and a struct for named
   163  // returns.
   164  func (_Contract *ContractCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   165  	return _Contract.Contract.contract.Call(opts, result, method, params...)
   166  }
   167  
   168  // Transfer initiates a plain transaction to move funds to the contract, calling
   169  // its default method if one is available.
   170  func (_Contract *ContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   171  	return _Contract.Contract.contract.Transfer(opts)
   172  }
   173  
   174  // Transact invokes the (paid) contract method with params as input values.
   175  func (_Contract *ContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   176  	return _Contract.Contract.contract.Transact(opts, method, params...)
   177  }
   178  
   179  // BlockPingTimeout is a free data retrieval call binding the contract method 0xe3596ce0.
   180  //
   181  // Solidity: function blockPingTimeout() constant returns(uint256)
   182  func (_Contract *ContractCaller) BlockPingTimeout(opts *bind.CallOpts) (*big.Int, error) {
   183  	var (
   184  		ret0 = new(*big.Int)
   185  	)
   186  	out := ret0
   187  	err := _Contract.contract.Call(opts, out, "blockPingTimeout")
   188  	return *ret0, err
   189  }
   190  
   191  // BlockPingTimeout is a free data retrieval call binding the contract method 0xe3596ce0.
   192  //
   193  // Solidity: function blockPingTimeout() constant returns(uint256)
   194  func (_Contract *ContractSession) BlockPingTimeout() (*big.Int, error) {
   195  	return _Contract.Contract.BlockPingTimeout(&_Contract.CallOpts)
   196  }
   197  
   198  // BlockPingTimeout is a free data retrieval call binding the contract method 0xe3596ce0.
   199  //
   200  // Solidity: function blockPingTimeout() constant returns(uint256)
   201  func (_Contract *ContractCallerSession) BlockPingTimeout() (*big.Int, error) {
   202  	return _Contract.Contract.BlockPingTimeout(&_Contract.CallOpts)
   203  }
   204  
   205  // Count is a free data retrieval call binding the contract method 0x06661abd.
   206  //
   207  // Solidity: function count() constant returns(uint256)
   208  func (_Contract *ContractCaller) Count(opts *bind.CallOpts) (*big.Int, error) {
   209  	var (
   210  		ret0 = new(*big.Int)
   211  	)
   212  	out := ret0
   213  	err := _Contract.contract.Call(opts, out, "count")
   214  	return *ret0, err
   215  }
   216  
   217  // Count is a free data retrieval call binding the contract method 0x06661abd.
   218  //
   219  // Solidity: function count() constant returns(uint256)
   220  func (_Contract *ContractSession) Count() (*big.Int, error) {
   221  	return _Contract.Contract.Count(&_Contract.CallOpts)
   222  }
   223  
   224  // Count is a free data retrieval call binding the contract method 0x06661abd.
   225  //
   226  // Solidity: function count() constant returns(uint256)
   227  func (_Contract *ContractCallerSession) Count() (*big.Int, error) {
   228  	return _Contract.Contract.Count(&_Contract.CallOpts)
   229  }
   230  
   231  // EtzMin is a free data retrieval call binding the contract method 0xc808021c.
   232  //
   233  // Solidity: function etzMin() constant returns(uint256)
   234  func (_Contract *ContractCaller) EtzMin(opts *bind.CallOpts) (*big.Int, error) {
   235  	var (
   236  		ret0 = new(*big.Int)
   237  	)
   238  	out := ret0
   239  	err := _Contract.contract.Call(opts, out, "etzMin")
   240  	return *ret0, err
   241  }
   242  
   243  // EtzMin is a free data retrieval call binding the contract method 0xc808021c.
   244  //
   245  // Solidity: function etzMin() constant returns(uint256)
   246  func (_Contract *ContractSession) EtzMin() (*big.Int, error) {
   247  	return _Contract.Contract.EtzMin(&_Contract.CallOpts)
   248  }
   249  
   250  // EtzMin is a free data retrieval call binding the contract method 0xc808021c.
   251  //
   252  // Solidity: function etzMin() constant returns(uint256)
   253  func (_Contract *ContractCallerSession) EtzMin() (*big.Int, error) {
   254  	return _Contract.Contract.EtzMin(&_Contract.CallOpts)
   255  }
   256  
   257  // EtzPerNode is a free data retrieval call binding the contract method 0xff5ecad2.
   258  //
   259  // Solidity: function etzPerNode() constant returns(uint256)
   260  func (_Contract *ContractCaller) EtzPerNode(opts *bind.CallOpts) (*big.Int, error) {
   261  	var (
   262  		ret0 = new(*big.Int)
   263  	)
   264  	out := ret0
   265  	err := _Contract.contract.Call(opts, out, "etzPerNode")
   266  	return *ret0, err
   267  }
   268  
   269  // EtzPerNode is a free data retrieval call binding the contract method 0xff5ecad2.
   270  //
   271  // Solidity: function etzPerNode() constant returns(uint256)
   272  func (_Contract *ContractSession) EtzPerNode() (*big.Int, error) {
   273  	return _Contract.Contract.EtzPerNode(&_Contract.CallOpts)
   274  }
   275  
   276  // EtzPerNode is a free data retrieval call binding the contract method 0xff5ecad2.
   277  //
   278  // Solidity: function etzPerNode() constant returns(uint256)
   279  func (_Contract *ContractCallerSession) EtzPerNode() (*big.Int, error) {
   280  	return _Contract.Contract.EtzPerNode(&_Contract.CallOpts)
   281  }
   282  
   283  // GetId is a free data retrieval call binding the contract method 0x65f68c89.
   284  //
   285  // Solidity: function getId(addr address) constant returns(id bytes8)
   286  func (_Contract *ContractCaller) GetId(opts *bind.CallOpts, addr common.Address) ([8]byte, error) {
   287  	var (
   288  		ret0 = new([8]byte)
   289  	)
   290  	out := ret0
   291  	err := _Contract.contract.Call(opts, out, "getId", addr)
   292  	return *ret0, err
   293  }
   294  
   295  // GetId is a free data retrieval call binding the contract method 0x65f68c89.
   296  //
   297  // Solidity: function getId(addr address) constant returns(id bytes8)
   298  func (_Contract *ContractSession) GetId(addr common.Address) ([8]byte, error) {
   299  	return _Contract.Contract.GetId(&_Contract.CallOpts, addr)
   300  }
   301  
   302  // GetId is a free data retrieval call binding the contract method 0x65f68c89.
   303  //
   304  // Solidity: function getId(addr address) constant returns(id bytes8)
   305  func (_Contract *ContractCallerSession) GetId(addr common.Address) ([8]byte, error) {
   306  	return _Contract.Contract.GetId(&_Contract.CallOpts, addr)
   307  }
   308  
   309  // GetInfo is a free data retrieval call binding the contract method 0xc4e3ed93.
   310  //
   311  // Solidity: function getInfo(id bytes8) constant returns(id1 bytes32, id2 bytes32, preId bytes8, nextId bytes8, blockNumber uint256, account address, blockOnlineAcc uint256, blockLastPing uint256)
   312  func (_Contract *ContractCaller) GetInfo(opts *bind.CallOpts, id [8]byte) (struct {
   313  	Id1            [32]byte
   314  	Id2            [32]byte
   315  	PreId          [8]byte
   316  	NextId         [8]byte
   317  	BlockNumber    *big.Int
   318  	Account        common.Address
   319  	BlockOnlineAcc *big.Int
   320  	BlockLastPing  *big.Int
   321  }, error) {
   322  	ret := new(struct {
   323  		Id1            [32]byte
   324  		Id2            [32]byte
   325  		PreId          [8]byte
   326  		NextId         [8]byte
   327  		BlockNumber    *big.Int
   328  		Account        common.Address
   329  		BlockOnlineAcc *big.Int
   330  		BlockLastPing  *big.Int
   331  	})
   332  	out := ret
   333  	err := _Contract.contract.Call(opts, out, "getInfo", id)
   334  	return *ret, err
   335  }
   336  
   337  // GetInfo is a free data retrieval call binding the contract method 0xc4e3ed93.
   338  //
   339  // Solidity: function getInfo(id bytes8) constant returns(id1 bytes32, id2 bytes32, preId bytes8, nextId bytes8, blockNumber uint256, account address, blockOnlineAcc uint256, blockLastPing uint256)
   340  func (_Contract *ContractSession) GetInfo(id [8]byte) (struct {
   341  	Id1            [32]byte
   342  	Id2            [32]byte
   343  	PreId          [8]byte
   344  	NextId         [8]byte
   345  	BlockNumber    *big.Int
   346  	Account        common.Address
   347  	BlockOnlineAcc *big.Int
   348  	BlockLastPing  *big.Int
   349  }, error) {
   350  	return _Contract.Contract.GetInfo(&_Contract.CallOpts, id)
   351  }
   352  
   353  // GetInfo is a free data retrieval call binding the contract method 0xc4e3ed93.
   354  //
   355  // Solidity: function getInfo(id bytes8) constant returns(id1 bytes32, id2 bytes32, preId bytes8, nextId bytes8, blockNumber uint256, account address, blockOnlineAcc uint256, blockLastPing uint256)
   356  func (_Contract *ContractCallerSession) GetInfo(id [8]byte) (struct {
   357  	Id1            [32]byte
   358  	Id2            [32]byte
   359  	PreId          [8]byte
   360  	NextId         [8]byte
   361  	BlockNumber    *big.Int
   362  	Account        common.Address
   363  	BlockOnlineAcc *big.Int
   364  	BlockLastPing  *big.Int
   365  }, error) {
   366  	return _Contract.Contract.GetInfo(&_Contract.CallOpts, id)
   367  }
   368  
   369  // GetVoteInfo is a free data retrieval call binding the contract method 0xdc1e30da.
   370  //
   371  // Solidity: function getVoteInfo(addr address) constant returns(voteCount uint256, startBlock uint256, stopBlock uint256, creator address, lastAddress address)
   372  func (_Contract *ContractCaller) GetVoteInfo(opts *bind.CallOpts, addr common.Address) (struct {
   373  	VoteCount   *big.Int
   374  	StartBlock  *big.Int
   375  	StopBlock   *big.Int
   376  	Creator     common.Address
   377  	LastAddress common.Address
   378  }, error) {
   379  	ret := new(struct {
   380  		VoteCount   *big.Int
   381  		StartBlock  *big.Int
   382  		StopBlock   *big.Int
   383  		Creator     common.Address
   384  		LastAddress common.Address
   385  	})
   386  	out := ret
   387  	err := _Contract.contract.Call(opts, out, "getVoteInfo", addr)
   388  	return *ret, err
   389  }
   390  
   391  // GetVoteInfo is a free data retrieval call binding the contract method 0xdc1e30da.
   392  //
   393  // Solidity: function getVoteInfo(addr address) constant returns(voteCount uint256, startBlock uint256, stopBlock uint256, creator address, lastAddress address)
   394  func (_Contract *ContractSession) GetVoteInfo(addr common.Address) (struct {
   395  	VoteCount   *big.Int
   396  	StartBlock  *big.Int
   397  	StopBlock   *big.Int
   398  	Creator     common.Address
   399  	LastAddress common.Address
   400  }, error) {
   401  	return _Contract.Contract.GetVoteInfo(&_Contract.CallOpts, addr)
   402  }
   403  
   404  // GetVoteInfo is a free data retrieval call binding the contract method 0xdc1e30da.
   405  //
   406  // Solidity: function getVoteInfo(addr address) constant returns(voteCount uint256, startBlock uint256, stopBlock uint256, creator address, lastAddress address)
   407  func (_Contract *ContractCallerSession) GetVoteInfo(addr common.Address) (struct {
   408  	VoteCount   *big.Int
   409  	StartBlock  *big.Int
   410  	StopBlock   *big.Int
   411  	Creator     common.Address
   412  	LastAddress common.Address
   413  }, error) {
   414  	return _Contract.Contract.GetVoteInfo(&_Contract.CallOpts, addr)
   415  }
   416  
   417  // GovernanceAddress is a free data retrieval call binding the contract method 0x795053d3.
   418  //
   419  // Solidity: function governanceAddress() constant returns(address)
   420  func (_Contract *ContractCaller) GovernanceAddress(opts *bind.CallOpts) (common.Address, error) {
   421  	var (
   422  		ret0 = new(common.Address)
   423  	)
   424  	out := ret0
   425  	err := _Contract.contract.Call(opts, out, "governanceAddress")
   426  	return *ret0, err
   427  }
   428  
   429  // GovernanceAddress is a free data retrieval call binding the contract method 0x795053d3.
   430  //
   431  // Solidity: function governanceAddress() constant returns(address)
   432  func (_Contract *ContractSession) GovernanceAddress() (common.Address, error) {
   433  	return _Contract.Contract.GovernanceAddress(&_Contract.CallOpts)
   434  }
   435  
   436  // GovernanceAddress is a free data retrieval call binding the contract method 0x795053d3.
   437  //
   438  // Solidity: function governanceAddress() constant returns(address)
   439  func (_Contract *ContractCallerSession) GovernanceAddress() (common.Address, error) {
   440  	return _Contract.Contract.GovernanceAddress(&_Contract.CallOpts)
   441  }
   442  
   443  // Has is a free data retrieval call binding the contract method 0x16e7f171.
   444  //
   445  // Solidity: function has(id bytes8) constant returns(bool)
   446  func (_Contract *ContractCaller) Has(opts *bind.CallOpts, id [8]byte) (bool, error) {
   447  	var (
   448  		ret0 = new(bool)
   449  	)
   450  	out := ret0
   451  	err := _Contract.contract.Call(opts, out, "has", id)
   452  	return *ret0, err
   453  }
   454  
   455  // Has is a free data retrieval call binding the contract method 0x16e7f171.
   456  //
   457  // Solidity: function has(id bytes8) constant returns(bool)
   458  func (_Contract *ContractSession) Has(id [8]byte) (bool, error) {
   459  	return _Contract.Contract.Has(&_Contract.CallOpts, id)
   460  }
   461  
   462  // Has is a free data retrieval call binding the contract method 0x16e7f171.
   463  //
   464  // Solidity: function has(id bytes8) constant returns(bool)
   465  func (_Contract *ContractCallerSession) Has(id [8]byte) (bool, error) {
   466  	return _Contract.Contract.Has(&_Contract.CallOpts, id)
   467  }
   468  
   469  // LastId is a free data retrieval call binding the contract method 0xc1292cc3.
   470  //
   471  // Solidity: function lastId() constant returns(bytes8)
   472  func (_Contract *ContractCaller) LastId(opts *bind.CallOpts) ([8]byte, error) {
   473  	var (
   474  		ret0 = new([8]byte)
   475  	)
   476  	out := ret0
   477  	err := _Contract.contract.Call(opts, out, "lastId")
   478  	return *ret0, err
   479  }
   480  
   481  // LastId is a free data retrieval call binding the contract method 0xc1292cc3.
   482  //
   483  // Solidity: function lastId() constant returns(bytes8)
   484  func (_Contract *ContractSession) LastId() ([8]byte, error) {
   485  	return _Contract.Contract.LastId(&_Contract.CallOpts)
   486  }
   487  
   488  // LastId is a free data retrieval call binding the contract method 0xc1292cc3.
   489  //
   490  // Solidity: function lastId() constant returns(bytes8)
   491  func (_Contract *ContractCallerSession) LastId() ([8]byte, error) {
   492  	return _Contract.Contract.LastId(&_Contract.CallOpts)
   493  }
   494  
   495  // LastProposalAddress is a free data retrieval call binding the contract method 0xe7b895b6.
   496  //
   497  // Solidity: function lastProposalAddress() constant returns(address)
   498  func (_Contract *ContractCaller) LastProposalAddress(opts *bind.CallOpts) (common.Address, error) {
   499  	var (
   500  		ret0 = new(common.Address)
   501  	)
   502  	out := ret0
   503  	err := _Contract.contract.Call(opts, out, "lastProposalAddress")
   504  	return *ret0, err
   505  }
   506  
   507  // LastProposalAddress is a free data retrieval call binding the contract method 0xe7b895b6.
   508  //
   509  // Solidity: function lastProposalAddress() constant returns(address)
   510  func (_Contract *ContractSession) LastProposalAddress() (common.Address, error) {
   511  	return _Contract.Contract.LastProposalAddress(&_Contract.CallOpts)
   512  }
   513  
   514  // LastProposalAddress is a free data retrieval call binding the contract method 0xe7b895b6.
   515  //
   516  // Solidity: function lastProposalAddress() constant returns(address)
   517  func (_Contract *ContractCallerSession) LastProposalAddress() (common.Address, error) {
   518  	return _Contract.Contract.LastProposalAddress(&_Contract.CallOpts)
   519  }
   520  
   521  // ProposalFee is a free data retrieval call binding the contract method 0xc27cabb5.
   522  //
   523  // Solidity: function proposalFee() constant returns(uint256)
   524  func (_Contract *ContractCaller) ProposalFee(opts *bind.CallOpts) (*big.Int, error) {
   525  	var (
   526  		ret0 = new(*big.Int)
   527  	)
   528  	out := ret0
   529  	err := _Contract.contract.Call(opts, out, "proposalFee")
   530  	return *ret0, err
   531  }
   532  
   533  // ProposalFee is a free data retrieval call binding the contract method 0xc27cabb5.
   534  //
   535  // Solidity: function proposalFee() constant returns(uint256)
   536  func (_Contract *ContractSession) ProposalFee() (*big.Int, error) {
   537  	return _Contract.Contract.ProposalFee(&_Contract.CallOpts)
   538  }
   539  
   540  // ProposalFee is a free data retrieval call binding the contract method 0xc27cabb5.
   541  //
   542  // Solidity: function proposalFee() constant returns(uint256)
   543  func (_Contract *ContractCallerSession) ProposalFee() (*big.Int, error) {
   544  	return _Contract.Contract.ProposalFee(&_Contract.CallOpts)
   545  }
   546  
   547  // ProposalPeriod is a free data retrieval call binding the contract method 0x2c103c79.
   548  //
   549  // Solidity: function proposalPeriod() constant returns(uint256)
   550  func (_Contract *ContractCaller) ProposalPeriod(opts *bind.CallOpts) (*big.Int, error) {
   551  	var (
   552  		ret0 = new(*big.Int)
   553  	)
   554  	out := ret0
   555  	err := _Contract.contract.Call(opts, out, "proposalPeriod")
   556  	return *ret0, err
   557  }
   558  
   559  // ProposalPeriod is a free data retrieval call binding the contract method 0x2c103c79.
   560  //
   561  // Solidity: function proposalPeriod() constant returns(uint256)
   562  func (_Contract *ContractSession) ProposalPeriod() (*big.Int, error) {
   563  	return _Contract.Contract.ProposalPeriod(&_Contract.CallOpts)
   564  }
   565  
   566  // ProposalPeriod is a free data retrieval call binding the contract method 0x2c103c79.
   567  //
   568  // Solidity: function proposalPeriod() constant returns(uint256)
   569  func (_Contract *ContractCallerSession) ProposalPeriod() (*big.Int, error) {
   570  	return _Contract.Contract.ProposalPeriod(&_Contract.CallOpts)
   571  }
   572  
   573  // CreateGovernanceAddressVote is a paid mutator transaction binding the contract method 0xf834f524.
   574  //
   575  // Solidity: function createGovernanceAddressVote(addr address) returns()
   576  func (_Contract *ContractTransactor) CreateGovernanceAddressVote(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) {
   577  	return _Contract.contract.Transact(opts, "createGovernanceAddressVote", addr)
   578  }
   579  
   580  // CreateGovernanceAddressVote is a paid mutator transaction binding the contract method 0xf834f524.
   581  //
   582  // Solidity: function createGovernanceAddressVote(addr address) returns()
   583  func (_Contract *ContractSession) CreateGovernanceAddressVote(addr common.Address) (*types.Transaction, error) {
   584  	return _Contract.Contract.CreateGovernanceAddressVote(&_Contract.TransactOpts, addr)
   585  }
   586  
   587  // CreateGovernanceAddressVote is a paid mutator transaction binding the contract method 0xf834f524.
   588  //
   589  // Solidity: function createGovernanceAddressVote(addr address) returns()
   590  func (_Contract *ContractTransactorSession) CreateGovernanceAddressVote(addr common.Address) (*types.Transaction, error) {
   591  	return _Contract.Contract.CreateGovernanceAddressVote(&_Contract.TransactOpts, addr)
   592  }
   593  
   594  // Register is a paid mutator transaction binding the contract method 0x2f926732.
   595  //
   596  // Solidity: function register(id1 bytes32, id2 bytes32) returns()
   597  func (_Contract *ContractTransactor) Register(opts *bind.TransactOpts, id1 [32]byte, id2 [32]byte) (*types.Transaction, error) {
   598  	return _Contract.contract.Transact(opts, "register", id1, id2)
   599  }
   600  
   601  // Register is a paid mutator transaction binding the contract method 0x2f926732.
   602  //
   603  // Solidity: function register(id1 bytes32, id2 bytes32) returns()
   604  func (_Contract *ContractSession) Register(id1 [32]byte, id2 [32]byte) (*types.Transaction, error) {
   605  	return _Contract.Contract.Register(&_Contract.TransactOpts, id1, id2)
   606  }
   607  
   608  // Register is a paid mutator transaction binding the contract method 0x2f926732.
   609  //
   610  // Solidity: function register(id1 bytes32, id2 bytes32) returns()
   611  func (_Contract *ContractTransactorSession) Register(id1 [32]byte, id2 [32]byte) (*types.Transaction, error) {
   612  	return _Contract.Contract.Register(&_Contract.TransactOpts, id1, id2)
   613  }
   614  
   615  // VoteForGovernanceAddress is a paid mutator transaction binding the contract method 0xe8c74af2.
   616  //
   617  // Solidity: function voteForGovernanceAddress(addr address) returns()
   618  func (_Contract *ContractTransactor) VoteForGovernanceAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) {
   619  	return _Contract.contract.Transact(opts, "voteForGovernanceAddress", addr)
   620  }
   621  
   622  // VoteForGovernanceAddress is a paid mutator transaction binding the contract method 0xe8c74af2.
   623  //
   624  // Solidity: function voteForGovernanceAddress(addr address) returns()
   625  func (_Contract *ContractSession) VoteForGovernanceAddress(addr common.Address) (*types.Transaction, error) {
   626  	return _Contract.Contract.VoteForGovernanceAddress(&_Contract.TransactOpts, addr)
   627  }
   628  
   629  // VoteForGovernanceAddress is a paid mutator transaction binding the contract method 0xe8c74af2.
   630  //
   631  // Solidity: function voteForGovernanceAddress(addr address) returns()
   632  func (_Contract *ContractTransactorSession) VoteForGovernanceAddress(addr common.Address) (*types.Transaction, error) {
   633  	return _Contract.Contract.VoteForGovernanceAddress(&_Contract.TransactOpts, addr)
   634  }
   635  
   636  // ContractJoinIterator is returned from FilterJoin and is used to iterate over the raw logs and unpacked data for Join events raised by the Contract contract.
   637  type ContractJoinIterator struct {
   638  	Event *ContractJoin // Event containing the contract specifics and raw log
   639  
   640  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   641  	event    string              // Event name to use for unpacking event data
   642  
   643  	logs chan types.Log        // Log channel receiving the found contract events
   644  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   645  	done bool                  // Whether the subscription completed delivering logs
   646  	fail error                 // Occurred error to stop iteration
   647  }
   648  
   649  // Next advances the iterator to the subsequent event, returning whether there
   650  // are any more events found. In case of a retrieval or parsing error, false is
   651  // returned and Error() can be queried for the exact failure.
   652  func (it *ContractJoinIterator) Next() bool {
   653  	// If the iterator failed, stop iterating
   654  	if it.fail != nil {
   655  		return false
   656  	}
   657  	// If the iterator completed, deliver directly whatever's available
   658  	if it.done {
   659  		select {
   660  		case log := <-it.logs:
   661  			it.Event = new(ContractJoin)
   662  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   663  				it.fail = err
   664  				return false
   665  			}
   666  			it.Event.Raw = log
   667  			return true
   668  
   669  		default:
   670  			return false
   671  		}
   672  	}
   673  	// Iterator still in progress, wait for either a data or an error event
   674  	select {
   675  	case log := <-it.logs:
   676  		it.Event = new(ContractJoin)
   677  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   678  			it.fail = err
   679  			return false
   680  		}
   681  		it.Event.Raw = log
   682  		return true
   683  
   684  	case err := <-it.sub.Err():
   685  		it.done = true
   686  		it.fail = err
   687  		return it.Next()
   688  	}
   689  }
   690  
   691  // Error returns any retrieval or parsing error occurred during filtering.
   692  func (it *ContractJoinIterator) Error() error {
   693  	return it.fail
   694  }
   695  
   696  // Close terminates the iteration process, releasing any pending underlying
   697  // resources.
   698  func (it *ContractJoinIterator) Close() error {
   699  	it.sub.Unsubscribe()
   700  	return nil
   701  }
   702  
   703  // ContractJoin represents a Join event raised by the Contract contract.
   704  type ContractJoin struct {
   705  	Id   [8]byte
   706  	Addr common.Address
   707  	Raw  types.Log // Blockchain specific contextual infos
   708  }
   709  
   710  // FilterJoin is a free log retrieval operation binding the contract event 0xf19f694d42048723a415f5eed7c402ce2c2e5dc0c41580c3f80e220db85ac389.
   711  //
   712  // Solidity: e join(id bytes8, addr address)
   713  func (_Contract *ContractFilterer) FilterJoin(opts *bind.FilterOpts) (*ContractJoinIterator, error) {
   714  
   715  	logs, sub, err := _Contract.contract.FilterLogs(opts, "join")
   716  	if err != nil {
   717  		return nil, err
   718  	}
   719  	return &ContractJoinIterator{contract: _Contract.contract, event: "join", logs: logs, sub: sub}, nil
   720  }
   721  
   722  // WatchJoin is a free log subscription operation binding the contract event 0xf19f694d42048723a415f5eed7c402ce2c2e5dc0c41580c3f80e220db85ac389.
   723  //
   724  // Solidity: e join(id bytes8, addr address)
   725  func (_Contract *ContractFilterer) WatchJoin(opts *bind.WatchOpts, sink chan<- *ContractJoin) (event.Subscription, error) {
   726  
   727  	logs, sub, err := _Contract.contract.WatchLogs(opts, "join")
   728  	if err != nil {
   729  		return nil, err
   730  	}
   731  	return event.NewSubscription(func(quit <-chan struct{}) error {
   732  		defer sub.Unsubscribe()
   733  		for {
   734  			select {
   735  			case log := <-logs:
   736  				// New log arrived, parse the event and forward to the user
   737  				event := new(ContractJoin)
   738  				if err := _Contract.contract.UnpackLog(event, "join", log); err != nil {
   739  					return err
   740  				}
   741  				event.Raw = log
   742  
   743  				select {
   744  				case sink <- event:
   745  				case err := <-sub.Err():
   746  					return err
   747  				case <-quit:
   748  					return nil
   749  				}
   750  			case err := <-sub.Err():
   751  				return err
   752  			case <-quit:
   753  				return nil
   754  			}
   755  		}
   756  	}), nil
   757  }
   758  
   759  // ContractPingIterator is returned from FilterPing and is used to iterate over the raw logs and unpacked data for Ping events raised by the Contract contract.
   760  type ContractPingIterator struct {
   761  	Event *ContractPing // Event containing the contract specifics and raw log
   762  
   763  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   764  	event    string              // Event name to use for unpacking event data
   765  
   766  	logs chan types.Log        // Log channel receiving the found contract events
   767  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   768  	done bool                  // Whether the subscription completed delivering logs
   769  	fail error                 // Occurred error to stop iteration
   770  }
   771  
   772  // Next advances the iterator to the subsequent event, returning whether there
   773  // are any more events found. In case of a retrieval or parsing error, false is
   774  // returned and Error() can be queried for the exact failure.
   775  func (it *ContractPingIterator) Next() bool {
   776  	// If the iterator failed, stop iterating
   777  	if it.fail != nil {
   778  		return false
   779  	}
   780  	// If the iterator completed, deliver directly whatever's available
   781  	if it.done {
   782  		select {
   783  		case log := <-it.logs:
   784  			it.Event = new(ContractPing)
   785  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   786  				it.fail = err
   787  				return false
   788  			}
   789  			it.Event.Raw = log
   790  			return true
   791  
   792  		default:
   793  			return false
   794  		}
   795  	}
   796  	// Iterator still in progress, wait for either a data or an error event
   797  	select {
   798  	case log := <-it.logs:
   799  		it.Event = new(ContractPing)
   800  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   801  			it.fail = err
   802  			return false
   803  		}
   804  		it.Event.Raw = log
   805  		return true
   806  
   807  	case err := <-it.sub.Err():
   808  		it.done = true
   809  		it.fail = err
   810  		return it.Next()
   811  	}
   812  }
   813  
   814  // Error returns any retrieval or parsing error occurred during filtering.
   815  func (it *ContractPingIterator) Error() error {
   816  	return it.fail
   817  }
   818  
   819  // Close terminates the iteration process, releasing any pending underlying
   820  // resources.
   821  func (it *ContractPingIterator) Close() error {
   822  	it.sub.Unsubscribe()
   823  	return nil
   824  }
   825  
   826  // ContractPing represents a Ping event raised by the Contract contract.
   827  type ContractPing struct {
   828  	Id             [8]byte
   829  	BlockOnlineAcc *big.Int
   830  	BlockLastPing  *big.Int
   831  	Raw            types.Log // Blockchain specific contextual infos
   832  }
   833  
   834  // FilterPing is a free log retrieval operation binding the contract event 0xb620b17a993c1ab2769ca9e6d72d178499b0cd9b800d62e9b3d502e01bca76c2.
   835  //
   836  // Solidity: e ping(id bytes8, blockOnlineAcc uint256, blockLastPing uint256)
   837  func (_Contract *ContractFilterer) FilterPing(opts *bind.FilterOpts) (*ContractPingIterator, error) {
   838  
   839  	logs, sub, err := _Contract.contract.FilterLogs(opts, "ping")
   840  	if err != nil {
   841  		return nil, err
   842  	}
   843  	return &ContractPingIterator{contract: _Contract.contract, event: "ping", logs: logs, sub: sub}, nil
   844  }
   845  
   846  // WatchPing is a free log subscription operation binding the contract event 0xb620b17a993c1ab2769ca9e6d72d178499b0cd9b800d62e9b3d502e01bca76c2.
   847  //
   848  // Solidity: e ping(id bytes8, blockOnlineAcc uint256, blockLastPing uint256)
   849  func (_Contract *ContractFilterer) WatchPing(opts *bind.WatchOpts, sink chan<- *ContractPing) (event.Subscription, error) {
   850  
   851  	logs, sub, err := _Contract.contract.WatchLogs(opts, "ping")
   852  	if err != nil {
   853  		return nil, err
   854  	}
   855  	return event.NewSubscription(func(quit <-chan struct{}) error {
   856  		defer sub.Unsubscribe()
   857  		for {
   858  			select {
   859  			case log := <-logs:
   860  				// New log arrived, parse the event and forward to the user
   861  				event := new(ContractPing)
   862  				if err := _Contract.contract.UnpackLog(event, "ping", log); err != nil {
   863  					return err
   864  				}
   865  				event.Raw = log
   866  
   867  				select {
   868  				case sink <- event:
   869  				case err := <-sub.Err():
   870  					return err
   871  				case <-quit:
   872  					return nil
   873  				}
   874  			case err := <-sub.Err():
   875  				return err
   876  			case <-quit:
   877  				return nil
   878  			}
   879  		}
   880  	}), nil
   881  }
   882  
   883  // ContractQuitIterator is returned from FilterQuit and is used to iterate over the raw logs and unpacked data for Quit events raised by the Contract contract.
   884  type ContractQuitIterator struct {
   885  	Event *ContractQuit // Event containing the contract specifics and raw log
   886  
   887  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   888  	event    string              // Event name to use for unpacking event data
   889  
   890  	logs chan types.Log        // Log channel receiving the found contract events
   891  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   892  	done bool                  // Whether the subscription completed delivering logs
   893  	fail error                 // Occurred error to stop iteration
   894  }
   895  
   896  // Next advances the iterator to the subsequent event, returning whether there
   897  // are any more events found. In case of a retrieval or parsing error, false is
   898  // returned and Error() can be queried for the exact failure.
   899  func (it *ContractQuitIterator) Next() bool {
   900  	// If the iterator failed, stop iterating
   901  	if it.fail != nil {
   902  		return false
   903  	}
   904  	// If the iterator completed, deliver directly whatever's available
   905  	if it.done {
   906  		select {
   907  		case log := <-it.logs:
   908  			it.Event = new(ContractQuit)
   909  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   910  				it.fail = err
   911  				return false
   912  			}
   913  			it.Event.Raw = log
   914  			return true
   915  
   916  		default:
   917  			return false
   918  		}
   919  	}
   920  	// Iterator still in progress, wait for either a data or an error event
   921  	select {
   922  	case log := <-it.logs:
   923  		it.Event = new(ContractQuit)
   924  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   925  			it.fail = err
   926  			return false
   927  		}
   928  		it.Event.Raw = log
   929  		return true
   930  
   931  	case err := <-it.sub.Err():
   932  		it.done = true
   933  		it.fail = err
   934  		return it.Next()
   935  	}
   936  }
   937  
   938  // Error returns any retrieval or parsing error occurred during filtering.
   939  func (it *ContractQuitIterator) Error() error {
   940  	return it.fail
   941  }
   942  
   943  // Close terminates the iteration process, releasing any pending underlying
   944  // resources.
   945  func (it *ContractQuitIterator) Close() error {
   946  	it.sub.Unsubscribe()
   947  	return nil
   948  }
   949  
   950  // ContractQuit represents a Quit event raised by the Contract contract.
   951  type ContractQuit struct {
   952  	Id   [8]byte
   953  	Addr common.Address
   954  	Raw  types.Log // Blockchain specific contextual infos
   955  }
   956  
   957  // FilterQuit is a free log retrieval operation binding the contract event 0x86d1ab9dbf33cb06567fbeb4b47a6a365cf66f632380589591255187f5ca09cd.
   958  //
   959  // Solidity: e quit(id bytes8, addr address)
   960  func (_Contract *ContractFilterer) FilterQuit(opts *bind.FilterOpts) (*ContractQuitIterator, error) {
   961  
   962  	logs, sub, err := _Contract.contract.FilterLogs(opts, "quit")
   963  	if err != nil {
   964  		return nil, err
   965  	}
   966  	return &ContractQuitIterator{contract: _Contract.contract, event: "quit", logs: logs, sub: sub}, nil
   967  }
   968  
   969  // WatchQuit is a free log subscription operation binding the contract event 0x86d1ab9dbf33cb06567fbeb4b47a6a365cf66f632380589591255187f5ca09cd.
   970  //
   971  // Solidity: e quit(id bytes8, addr address)
   972  func (_Contract *ContractFilterer) WatchQuit(opts *bind.WatchOpts, sink chan<- *ContractQuit) (event.Subscription, error) {
   973  
   974  	logs, sub, err := _Contract.contract.WatchLogs(opts, "quit")
   975  	if err != nil {
   976  		return nil, err
   977  	}
   978  	return event.NewSubscription(func(quit <-chan struct{}) error {
   979  		defer sub.Unsubscribe()
   980  		for {
   981  			select {
   982  			case log := <-logs:
   983  				// New log arrived, parse the event and forward to the user
   984  				event := new(ContractQuit)
   985  				if err := _Contract.contract.UnpackLog(event, "quit", log); err != nil {
   986  					return err
   987  				}
   988  				event.Raw = log
   989  
   990  				select {
   991  				case sink <- event:
   992  				case err := <-sub.Err():
   993  					return err
   994  				case <-quit:
   995  					return nil
   996  				}
   997  			case err := <-sub.Err():
   998  				return err
   999  			case <-quit:
  1000  				return nil
  1001  			}
  1002  		}
  1003  	}), nil
  1004  }