diff --git a/controls/bind/permission_binding.go b/controls/bind/permission_binding.go index 62ad95edf..8788d03e9 100644 --- a/controls/bind/permission_binding.go +++ b/controls/bind/permission_binding.go @@ -16,7 +16,7 @@ import ( ) // PermissionsABI is the input ABI used to generate the binding from. -const PermissionsABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"getVoteCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getVoteStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"activateNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"approveNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"acctIndex\",\"type\":\"uint256\"}],\"name\":\"getAccountDetails\",\"outputs\":[{\"name\":\"_acct\",\"type\":\"address\"},{\"name\":\"_acctAccess\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfAccounts\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"getNodeStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"enodeId\",\"type\":\"string\"}],\"name\":\"getNodeDetails\",\"outputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"},{\"name\":\"_nodeStatus\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"deactivateNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updateNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"proposeDeactivation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"blacklistNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initAccounts\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"proposeNodeBlacklisting\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getEnodeId\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"removeVoter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"nodeIndex\",\"type\":\"uint256\"}],\"name\":\"getNodeDetailsFromIndex\",\"outputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"},{\"name\":\"_nodeStatus\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_acctid\",\"type\":\"address\"}],\"name\":\"isVoter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfNodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"},{\"name\":\"_accountAccess\",\"type\":\"uint8\"}],\"name\":\"updateAccountAccess\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"proposeNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getVoter\",\"outputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getAccountAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"proposeNodeActivation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"addVoter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodeProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_accountAddress\",\"type\":\"address\"}],\"name\":\"VoteNodeApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingDeactivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_accountAddress\",\"type\":\"address\"}],\"name\":\"VoteNodeDeactivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingActivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_accountAddress\",\"type\":\"address\"}],\"name\":\"VoteNodeActivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_accountAddress\",\"type\":\"address\"}],\"name\":\"VoteNodeBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_address\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_access\",\"type\":\"uint8\"}],\"name\":\"AccountAccessModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"NoVotingAccount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"VoterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"VoterRemoved\",\"type\":\"event\"}]" +const PermissionsABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"activateNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"approveNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"acctIndex\",\"type\":\"uint256\"}],\"name\":\"getAccountDetails\",\"outputs\":[{\"name\":\"_acct\",\"type\":\"address\"},{\"name\":\"_acctAccess\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfAccounts\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"getNodeStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"enodeId\",\"type\":\"string\"}],\"name\":\"getNodeDetails\",\"outputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"},{\"name\":\"_nodeStatus\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"deactivateNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updateNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"proposeDeactivation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"blacklistNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initAccounts\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"proposeNodeBlacklisting\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"removeVoter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"nodeIndex\",\"type\":\"uint256\"}],\"name\":\"getNodeDetailsFromIndex\",\"outputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"},{\"name\":\"_nodeStatus\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_acctid\",\"type\":\"address\"}],\"name\":\"isVoter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfNodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"},{\"name\":\"_accountAccess\",\"type\":\"uint8\"}],\"name\":\"updateAccountAccess\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"name\":\"_discPort\",\"type\":\"string\"},{\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"proposeNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getVoter\",\"outputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"proposeNodeActivation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"addVoter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodeProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingDeactivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingActivation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"NodePendingBlacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_enodeId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_ipAddrPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_discPort\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_raftPort\",\"type\":\"string\"}],\"name\":\"NodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_address\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_access\",\"type\":\"uint8\"}],\"name\":\"AccountAccessModified\",\"type\":\"event\"}]" // Permissions is an auto generated Go binding around an Ethereum contract. type Permissions struct { @@ -160,32 +160,6 @@ func (_Permissions *PermissionsTransactorRaw) Transact(opts *bind.TransactOpts, return _Permissions.Contract.contract.Transact(opts, method, params...) } -// GetAccountAddress is a free data retrieval call binding the contract method 0xdb4cf8e6. -// -// Solidity: function getAccountAddress(_index uint256) constant returns(address) -func (_Permissions *PermissionsCaller) GetAccountAddress(opts *bind.CallOpts, _index *big.Int) (common.Address, error) { - var ( - ret0 = new(common.Address) - ) - out := ret0 - err := _Permissions.contract.Call(opts, out, "getAccountAddress", _index) - return *ret0, err -} - -// GetAccountAddress is a free data retrieval call binding the contract method 0xdb4cf8e6. -// -// Solidity: function getAccountAddress(_index uint256) constant returns(address) -func (_Permissions *PermissionsSession) GetAccountAddress(_index *big.Int) (common.Address, error) { - return _Permissions.Contract.GetAccountAddress(&_Permissions.CallOpts, _index) -} - -// GetAccountAddress is a free data retrieval call binding the contract method 0xdb4cf8e6. -// -// Solidity: function getAccountAddress(_index uint256) constant returns(address) -func (_Permissions *PermissionsCallerSession) GetAccountAddress(_index *big.Int) (common.Address, error) { - return _Permissions.Contract.GetAccountAddress(&_Permissions.CallOpts, _index) -} - // GetAccountDetails is a free data retrieval call binding the contract method 0x2a0b2617. // // Solidity: function getAccountDetails(acctIndex uint256) constant returns(_acct address, _acctAccess uint8) @@ -222,32 +196,6 @@ func (_Permissions *PermissionsCallerSession) GetAccountDetails(acctIndex *big.I return _Permissions.Contract.GetAccountDetails(&_Permissions.CallOpts, acctIndex) } -// GetEnodeId is a free data retrieval call binding the contract method 0x769b24f2. -// -// Solidity: function getEnodeId(_index uint256) constant returns(string) -func (_Permissions *PermissionsCaller) GetEnodeId(opts *bind.CallOpts, _index *big.Int) (string, error) { - var ( - ret0 = new(string) - ) - out := ret0 - err := _Permissions.contract.Call(opts, out, "getEnodeId", _index) - return *ret0, err -} - -// GetEnodeId is a free data retrieval call binding the contract method 0x769b24f2. -// -// Solidity: function getEnodeId(_index uint256) constant returns(string) -func (_Permissions *PermissionsSession) GetEnodeId(_index *big.Int) (string, error) { - return _Permissions.Contract.GetEnodeId(&_Permissions.CallOpts, _index) -} - -// GetEnodeId is a free data retrieval call binding the contract method 0x769b24f2. -// -// Solidity: function getEnodeId(_index uint256) constant returns(string) -func (_Permissions *PermissionsCallerSession) GetEnodeId(_index *big.Int) (string, error) { - return _Permissions.Contract.GetEnodeId(&_Permissions.CallOpts, _index) -} - // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e. // // Solidity: function getNetworkBootStatus() constant returns(bool) @@ -474,58 +422,6 @@ func (_Permissions *PermissionsCallerSession) GetNumberOfVoters() (*big.Int, err return _Permissions.Contract.GetNumberOfVoters(&_Permissions.CallOpts) } -// GetVoteCount is a free data retrieval call binding the contract method 0x069953a7. -// -// Solidity: function getVoteCount(_enodeId string) constant returns(uint256) -func (_Permissions *PermissionsCaller) GetVoteCount(opts *bind.CallOpts, _enodeId string) (*big.Int, error) { - var ( - ret0 = new(*big.Int) - ) - out := ret0 - err := _Permissions.contract.Call(opts, out, "getVoteCount", _enodeId) - return *ret0, err -} - -// GetVoteCount is a free data retrieval call binding the contract method 0x069953a7. -// -// Solidity: function getVoteCount(_enodeId string) constant returns(uint256) -func (_Permissions *PermissionsSession) GetVoteCount(_enodeId string) (*big.Int, error) { - return _Permissions.Contract.GetVoteCount(&_Permissions.CallOpts, _enodeId) -} - -// GetVoteCount is a free data retrieval call binding the contract method 0x069953a7. -// -// Solidity: function getVoteCount(_enodeId string) constant returns(uint256) -func (_Permissions *PermissionsCallerSession) GetVoteCount(_enodeId string) (*big.Int, error) { - return _Permissions.Contract.GetVoteCount(&_Permissions.CallOpts, _enodeId) -} - -// GetVoteStatus is a free data retrieval call binding the contract method 0x0fdc2150. -// -// Solidity: function getVoteStatus(_enodeId string, _voter address) constant returns(bool) -func (_Permissions *PermissionsCaller) GetVoteStatus(opts *bind.CallOpts, _enodeId string, _voter common.Address) (bool, error) { - var ( - ret0 = new(bool) - ) - out := ret0 - err := _Permissions.contract.Call(opts, out, "getVoteStatus", _enodeId, _voter) - return *ret0, err -} - -// GetVoteStatus is a free data retrieval call binding the contract method 0x0fdc2150. -// -// Solidity: function getVoteStatus(_enodeId string, _voter address) constant returns(bool) -func (_Permissions *PermissionsSession) GetVoteStatus(_enodeId string, _voter common.Address) (bool, error) { - return _Permissions.Contract.GetVoteStatus(&_Permissions.CallOpts, _enodeId, _voter) -} - -// GetVoteStatus is a free data retrieval call binding the contract method 0x0fdc2150. -// -// Solidity: function getVoteStatus(_enodeId string, _voter address) constant returns(bool) -func (_Permissions *PermissionsCallerSession) GetVoteStatus(_enodeId string, _voter common.Address) (bool, error) { - return _Permissions.Contract.GetVoteStatus(&_Permissions.CallOpts, _enodeId, _voter) -} - // GetVoter is a free data retrieval call binding the contract method 0xd07bff0c. // // Solidity: function getVoter(i uint256) constant returns(_addr address) @@ -974,127 +870,6 @@ func (_Permissions *PermissionsFilterer) WatchAccountAccessModified(opts *bind.W }), nil } -// PermissionsNoVotingAccountIterator is returned from FilterNoVotingAccount and is used to iterate over the raw logs and unpacked data for NoVotingAccount events raised by the Permissions contract. -type PermissionsNoVotingAccountIterator struct { - Event *PermissionsNoVotingAccount // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsNoVotingAccountIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsNoVotingAccount) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsNoVotingAccount) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsNoVotingAccountIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsNoVotingAccountIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsNoVotingAccount represents a NoVotingAccount event raised by the Permissions contract. -type PermissionsNoVotingAccount struct { - Raw types.Log // Blockchain specific contextual infos -} - -// FilterNoVotingAccount is a free log retrieval operation binding the contract event 0x4b3dfc3b006eb0d5d60b3f275b4796aa31ed21a75d2e91fe750fc7549b426f67. -// -// Solidity: e NoVotingAccount() -func (_Permissions *PermissionsFilterer) FilterNoVotingAccount(opts *bind.FilterOpts) (*PermissionsNoVotingAccountIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "NoVotingAccount") - if err != nil { - return nil, err - } - return &PermissionsNoVotingAccountIterator{contract: _Permissions.contract, event: "NoVotingAccount", logs: logs, sub: sub}, nil -} - -// WatchNoVotingAccount is a free log subscription operation binding the contract event 0x4b3dfc3b006eb0d5d60b3f275b4796aa31ed21a75d2e91fe750fc7549b426f67. -// -// Solidity: e NoVotingAccount() -func (_Permissions *PermissionsFilterer) WatchNoVotingAccount(opts *bind.WatchOpts, sink chan<- *PermissionsNoVotingAccount) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "NoVotingAccount") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsNoVotingAccount) - if err := _Permissions.contract.UnpackLog(event, "NoVotingAccount", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - // PermissionsNodeActivatedIterator is returned from FilterNodeActivated and is used to iterate over the raw logs and unpacked data for NodeActivated events raised by the Permissions contract. type PermissionsNodeActivatedIterator struct { Event *PermissionsNodeActivated // Event containing the contract specifics and raw log @@ -2082,739 +1857,3 @@ func (_Permissions *PermissionsFilterer) WatchNodeProposed(opts *bind.WatchOpts, } }), nil } - -// PermissionsVoteNodeActivationIterator is returned from FilterVoteNodeActivation and is used to iterate over the raw logs and unpacked data for VoteNodeActivation events raised by the Permissions contract. -type PermissionsVoteNodeActivationIterator struct { - Event *PermissionsVoteNodeActivation // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoteNodeActivationIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeActivation) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeActivation) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoteNodeActivationIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoteNodeActivationIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoteNodeActivation represents a VoteNodeActivation event raised by the Permissions contract. -type PermissionsVoteNodeActivation struct { - EnodeId string - AccountAddress common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoteNodeActivation is a free log retrieval operation binding the contract event 0x1cf770e10629548fcb2a5fe2dd517d3bc91741232bdf659a90582852224478c3. -// -// Solidity: e VoteNodeActivation(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) FilterVoteNodeActivation(opts *bind.FilterOpts) (*PermissionsVoteNodeActivationIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoteNodeActivation") - if err != nil { - return nil, err - } - return &PermissionsVoteNodeActivationIterator{contract: _Permissions.contract, event: "VoteNodeActivation", logs: logs, sub: sub}, nil -} - -// WatchVoteNodeActivation is a free log subscription operation binding the contract event 0x1cf770e10629548fcb2a5fe2dd517d3bc91741232bdf659a90582852224478c3. -// -// Solidity: e VoteNodeActivation(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) WatchVoteNodeActivation(opts *bind.WatchOpts, sink chan<- *PermissionsVoteNodeActivation) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoteNodeActivation") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoteNodeActivation) - if err := _Permissions.contract.UnpackLog(event, "VoteNodeActivation", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// PermissionsVoteNodeApprovalIterator is returned from FilterVoteNodeApproval and is used to iterate over the raw logs and unpacked data for VoteNodeApproval events raised by the Permissions contract. -type PermissionsVoteNodeApprovalIterator struct { - Event *PermissionsVoteNodeApproval // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoteNodeApprovalIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeApproval) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeApproval) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoteNodeApprovalIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoteNodeApprovalIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoteNodeApproval represents a VoteNodeApproval event raised by the Permissions contract. -type PermissionsVoteNodeApproval struct { - EnodeId string - AccountAddress common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoteNodeApproval is a free log retrieval operation binding the contract event 0xffbebd8cfb97304c3b16b9139a3f06e547af483cc4b5111bdbb66ccdf2aa43f3. -// -// Solidity: e VoteNodeApproval(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) FilterVoteNodeApproval(opts *bind.FilterOpts) (*PermissionsVoteNodeApprovalIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoteNodeApproval") - if err != nil { - return nil, err - } - return &PermissionsVoteNodeApprovalIterator{contract: _Permissions.contract, event: "VoteNodeApproval", logs: logs, sub: sub}, nil -} - -// WatchVoteNodeApproval is a free log subscription operation binding the contract event 0xffbebd8cfb97304c3b16b9139a3f06e547af483cc4b5111bdbb66ccdf2aa43f3. -// -// Solidity: e VoteNodeApproval(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) WatchVoteNodeApproval(opts *bind.WatchOpts, sink chan<- *PermissionsVoteNodeApproval) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoteNodeApproval") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoteNodeApproval) - if err := _Permissions.contract.UnpackLog(event, "VoteNodeApproval", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// PermissionsVoteNodeBlacklistIterator is returned from FilterVoteNodeBlacklist and is used to iterate over the raw logs and unpacked data for VoteNodeBlacklist events raised by the Permissions contract. -type PermissionsVoteNodeBlacklistIterator struct { - Event *PermissionsVoteNodeBlacklist // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoteNodeBlacklistIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeBlacklist) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeBlacklist) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoteNodeBlacklistIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoteNodeBlacklistIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoteNodeBlacklist represents a VoteNodeBlacklist event raised by the Permissions contract. -type PermissionsVoteNodeBlacklist struct { - EnodeId string - AccountAddress common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoteNodeBlacklist is a free log retrieval operation binding the contract event 0xe5db3c593cd193882142dc86075a90f3b5075cbe3df4f433517393e29aa7327f. -// -// Solidity: e VoteNodeBlacklist(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) FilterVoteNodeBlacklist(opts *bind.FilterOpts) (*PermissionsVoteNodeBlacklistIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoteNodeBlacklist") - if err != nil { - return nil, err - } - return &PermissionsVoteNodeBlacklistIterator{contract: _Permissions.contract, event: "VoteNodeBlacklist", logs: logs, sub: sub}, nil -} - -// WatchVoteNodeBlacklist is a free log subscription operation binding the contract event 0xe5db3c593cd193882142dc86075a90f3b5075cbe3df4f433517393e29aa7327f. -// -// Solidity: e VoteNodeBlacklist(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) WatchVoteNodeBlacklist(opts *bind.WatchOpts, sink chan<- *PermissionsVoteNodeBlacklist) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoteNodeBlacklist") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoteNodeBlacklist) - if err := _Permissions.contract.UnpackLog(event, "VoteNodeBlacklist", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// PermissionsVoteNodeDeactivationIterator is returned from FilterVoteNodeDeactivation and is used to iterate over the raw logs and unpacked data for VoteNodeDeactivation events raised by the Permissions contract. -type PermissionsVoteNodeDeactivationIterator struct { - Event *PermissionsVoteNodeDeactivation // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoteNodeDeactivationIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeDeactivation) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoteNodeDeactivation) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoteNodeDeactivationIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoteNodeDeactivationIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoteNodeDeactivation represents a VoteNodeDeactivation event raised by the Permissions contract. -type PermissionsVoteNodeDeactivation struct { - EnodeId string - AccountAddress common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoteNodeDeactivation is a free log retrieval operation binding the contract event 0xa5243abad84fa64b3ca3ab0b45c7954a089a38bd40d0797fc3c0e8ee304229e1. -// -// Solidity: e VoteNodeDeactivation(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) FilterVoteNodeDeactivation(opts *bind.FilterOpts) (*PermissionsVoteNodeDeactivationIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoteNodeDeactivation") - if err != nil { - return nil, err - } - return &PermissionsVoteNodeDeactivationIterator{contract: _Permissions.contract, event: "VoteNodeDeactivation", logs: logs, sub: sub}, nil -} - -// WatchVoteNodeDeactivation is a free log subscription operation binding the contract event 0xa5243abad84fa64b3ca3ab0b45c7954a089a38bd40d0797fc3c0e8ee304229e1. -// -// Solidity: e VoteNodeDeactivation(_enodeId string, _accountAddress address) -func (_Permissions *PermissionsFilterer) WatchVoteNodeDeactivation(opts *bind.WatchOpts, sink chan<- *PermissionsVoteNodeDeactivation) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoteNodeDeactivation") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoteNodeDeactivation) - if err := _Permissions.contract.UnpackLog(event, "VoteNodeDeactivation", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// PermissionsVoterAddedIterator is returned from FilterVoterAdded and is used to iterate over the raw logs and unpacked data for VoterAdded events raised by the Permissions contract. -type PermissionsVoterAddedIterator struct { - Event *PermissionsVoterAdded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoterAddedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoterAdded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoterAdded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoterAddedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoterAddedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoterAdded represents a VoterAdded event raised by the Permissions contract. -type PermissionsVoterAdded struct { - Address common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoterAdded is a free log retrieval operation binding the contract event 0xa636f4a11e2d3ba7f89d042ecb0a6b886716e98cd49d8fd876ee0f73bced42b8. -// -// Solidity: e VoterAdded(_address address) -func (_Permissions *PermissionsFilterer) FilterVoterAdded(opts *bind.FilterOpts) (*PermissionsVoterAddedIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoterAdded") - if err != nil { - return nil, err - } - return &PermissionsVoterAddedIterator{contract: _Permissions.contract, event: "VoterAdded", logs: logs, sub: sub}, nil -} - -// WatchVoterAdded is a free log subscription operation binding the contract event 0xa636f4a11e2d3ba7f89d042ecb0a6b886716e98cd49d8fd876ee0f73bced42b8. -// -// Solidity: e VoterAdded(_address address) -func (_Permissions *PermissionsFilterer) WatchVoterAdded(opts *bind.WatchOpts, sink chan<- *PermissionsVoterAdded) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoterAdded") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoterAdded) - if err := _Permissions.contract.UnpackLog(event, "VoterAdded", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// PermissionsVoterRemovedIterator is returned from FilterVoterRemoved and is used to iterate over the raw logs and unpacked data for VoterRemoved events raised by the Permissions contract. -type PermissionsVoterRemovedIterator struct { - Event *PermissionsVoterRemoved // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *PermissionsVoterRemovedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(PermissionsVoterRemoved) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(PermissionsVoterRemoved) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *PermissionsVoterRemovedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *PermissionsVoterRemovedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// PermissionsVoterRemoved represents a VoterRemoved event raised by the Permissions contract. -type PermissionsVoterRemoved struct { - Address common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterVoterRemoved is a free log retrieval operation binding the contract event 0xa14a79af012d1756818f9bd59ccfc9ad185a71df86b9392d9059d9e6faf6d644. -// -// Solidity: e VoterRemoved(_address address) -func (_Permissions *PermissionsFilterer) FilterVoterRemoved(opts *bind.FilterOpts) (*PermissionsVoterRemovedIterator, error) { - - logs, sub, err := _Permissions.contract.FilterLogs(opts, "VoterRemoved") - if err != nil { - return nil, err - } - return &PermissionsVoterRemovedIterator{contract: _Permissions.contract, event: "VoterRemoved", logs: logs, sub: sub}, nil -} - -// WatchVoterRemoved is a free log subscription operation binding the contract event 0xa14a79af012d1756818f9bd59ccfc9ad185a71df86b9392d9059d9e6faf6d644. -// -// Solidity: e VoterRemoved(_address address) -func (_Permissions *PermissionsFilterer) WatchVoterRemoved(opts *bind.WatchOpts, sink chan<- *PermissionsVoterRemoved) (event.Subscription, error) { - - logs, sub, err := _Permissions.contract.WatchLogs(opts, "VoterRemoved") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(PermissionsVoterRemoved) - if err := _Permissions.contract.UnpackLog(event, "VoterRemoved", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} diff --git a/controls/permission/Permission.sol b/controls/permission/Permission.sol index 893762eee..c7dfaf6c4 100644 --- a/controls/permission/Permission.sol +++ b/controls/permission/Permission.sol @@ -12,7 +12,6 @@ contract Permissions { NodeStatus status; } - enum AccountAccess { FullAccess, ReadOnly, Transact, ContractDeploy } struct AccountAccessDetails { address acctId; @@ -29,7 +28,6 @@ contract Permissions { AccountAccessDetails[] private acctAccessList; - mapping (address => uint) private acctToIndex; uint private numberOfAccts; // use an array to store account details @@ -47,31 +45,22 @@ contract Permissions { // node permission events for new node propose event NodeProposed(string _enodeId); event NodeApproved(string _enodeId, string _ipAddrPort, string _discPort, string _raftPort); - event VoteNodeApproval(string _enodeId, address _accountAddress); // node permission events for node decativation event NodePendingDeactivation (string _enodeId); event NodeDeactivated(string _enodeId, string _ipAddrPort, string _discPort, string _raftPort); - event VoteNodeDeactivation(string _enodeId, address _accountAddress); // node permission events for node activation event NodePendingActivation(string _enodeId); event NodeActivated(string _enodeId, string _ipAddrPort, string _discPort, string _raftPort); - event VoteNodeActivation(string _enodeId, address _accountAddress); // node permission events for node blacklist event NodePendingBlacklist(string _enodeId); event NodeBlacklisted(string _enodeId, string _ipAddrPort, string _discPort, string _raftPort); - event VoteNodeBlacklist(string _enodeId, address _accountAddress); // account permission events event AccountAccessModified(address _address, AccountAccess _access); - // events related to voting accounts for majority voting - event NoVotingAccount(); - event VoterAdded(address _address); - event VoterRemoved(address _address); - // Checks if the given enode exists modifier enodeInList(string _enodeId) { @@ -139,10 +128,10 @@ contract Permissions { } // Get account details given index - function getAccountDetails(uint acctIndex) public view returns (address _acct, AccountAccess _acctAccess) - { - return (acctAccessList[acctIndex].acctId, acctAccessList[acctIndex].acctAccess); - } + function getAccountDetails(uint acctIndex) public view returns (address _acct, AccountAccess _acctAccess) + { + return (acctAccessList[acctIndex].acctId, acctAccessList[acctIndex].acctAccess); + } // Get number of accounts and voting accounts function getNumberOfAccounts() public view returns (uint) @@ -154,16 +143,7 @@ contract Permissions { { return nodeList[getNodeIndex(_enodeId)].status; } - // Get vote count by enode id - function getVoteCount(string _enodeId) public view enodeInList(_enodeId) returns (uint) - { - return voteCount[getNodeIndex(_enodeId)]; - } - // Get vote status by enode id and voter address - function getVoteStatus(string _enodeId, address _voter) public view enodeInList(_enodeId) returns (bool) - { - return voteStatus[getNodeIndex(_enodeId)][_voter]; - } + function isVoter(address _acctid) external view returns (bool) { bool flag = false; @@ -175,27 +155,7 @@ contract Permissions { } return flag; } - // for potential external use - // Get enode id by index - function getEnodeId(uint _index) external view returns (string) - { - if (_index <= numberOfNodes){ - return nodeList[_index].enodeId; - } else { - return ""; - } - } - // Get account address by index - function getAccountAddress(uint _index) external view returns (address) - { - if (_index <= voterAcctList.length){ - return voterAcctList[_index]; - } else { - return address(0); - } - } - // state change functions // update the networ boot status as true function updateNetworkBootStatus() external returns (bool) { @@ -256,7 +216,6 @@ contract Permissions { // vote node updateVoteStatus(nodeIndex); // emit event - emit VoteNodeApproval(_enodeId, msg.sender); // check if node vote reach majority if (checkEnoughVotes(nodeIndex)) { nodeList[nodeIndex].status = NodeStatus.Approved; @@ -287,7 +246,6 @@ contract Permissions { // vote node updateVoteStatus(nodeIndex); // emit event - emit VoteNodeDeactivation(_enodeId, msg.sender); // check if node vote reach majority if (checkEnoughVotes(nodeIndex)) { nodeList[nodeIndex].status = NodeStatus.Deactivated; @@ -318,7 +276,6 @@ contract Permissions { // vote node updateVoteStatus(nodeIndex); // emit event - emit VoteNodeDeactivation(_enodeId, msg.sender); // check if node vote reach majority if (checkEnoughVotes(nodeIndex)) { nodeList[nodeIndex].status = NodeStatus.Approved; @@ -360,7 +317,6 @@ contract Permissions { voteStatus[nodeIndex][msg.sender] = true; voteCount[nodeIndex]++; // emit event - emit VoteNodeBlacklist(_enodeId, msg.sender); // check if node vote reach majority if (checkEnoughVotes(nodeIndex)) { nodeList[nodeIndex].status = NodeStatus.Blacklisted; @@ -368,50 +324,20 @@ contract Permissions { } } - - // validate if the sender can set the access. - // Accounts with Full Access can assign any access - // Accounts with Contract access can assign contract or transact - // Account with transact can assign transact only - function checkOpAllowed(address _from, AccountAccess _accountAccess) internal view returns (bool) { - if (!(networkBoot)){ - return true; - } - uint acctIndex = getAcctIndex(_from); - if (acctToIndex[_from] == 0){ - return false; - } - AccountAccess senderAccess = acctAccessList[acctIndex].acctAccess; - if (senderAccess == AccountAccess.FullAccess){ - return true; - } - else if ((senderAccess == AccountAccess.ContractDeploy) && (_accountAccess != AccountAccess.FullAccess)){ - return true; - } - else if ((senderAccess == AccountAccess.Transact) && (_accountAccess == AccountAccess.Transact || _accountAccess == AccountAccess.ReadOnly)){ - return true; - } - else { - return false; + function initAccounts() external + { + require(networkBoot == false, "network accounts already boot up"); + for (uint i=0; i