Documentation ¶
Overview ¶
Package release contains the node service that tracks client releases.
Index ¶
- Constants
- func NewReleaseService(ctx *node.ServiceContext, config Config) (node.Service, error)
- type Config
- type ReleaseOracle
- type ReleaseOracleCaller
- func (_ReleaseOracle *ReleaseOracleCaller) AuthProposals(opts *bind.CallOpts) ([]common.Address, error)
- func (_ReleaseOracle *ReleaseOracleCaller) AuthVotes(opts *bind.CallOpts, user common.Address) (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCaller) CurrentVersion(opts *bind.CallOpts) (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCaller) ProposedVersion(opts *bind.CallOpts) (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCaller) Signers(opts *bind.CallOpts) ([]common.Address, error)
- type ReleaseOracleCallerRaw
- type ReleaseOracleCallerSession
- func (_ReleaseOracle *ReleaseOracleCallerSession) AuthProposals() ([]common.Address, error)
- func (_ReleaseOracle *ReleaseOracleCallerSession) AuthVotes(user common.Address) (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCallerSession) CurrentVersion() (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCallerSession) ProposedVersion() (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleCallerSession) Signers() ([]common.Address, error)
- type ReleaseOracleRaw
- func (_ReleaseOracle *ReleaseOracleRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error
- func (_ReleaseOracle *ReleaseOracleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
- type ReleaseOracleSession
- func (_ReleaseOracle *ReleaseOracleSession) AuthProposals() ([]common.Address, error)
- func (_ReleaseOracle *ReleaseOracleSession) AuthVotes(user common.Address) (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleSession) CurrentVersion() (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleSession) Demote(user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleSession) Nuke() (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleSession) Promote(user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleSession) ProposedVersion() (struct{ ... }, error)
- func (_ReleaseOracle *ReleaseOracleSession) Release(major uint32, minor uint32, patch uint32, commit [20]byte) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleSession) Signers() ([]common.Address, error)
- type ReleaseOracleTransactor
- func (_ReleaseOracle *ReleaseOracleTransactor) Demote(opts *bind.TransactOpts, user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactor) Nuke(opts *bind.TransactOpts) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactor) Promote(opts *bind.TransactOpts, user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactor) Release(opts *bind.TransactOpts, major uint32, minor uint32, patch uint32, ...) (*types.Transaction, error)
- type ReleaseOracleTransactorRaw
- type ReleaseOracleTransactorSession
- func (_ReleaseOracle *ReleaseOracleTransactorSession) Demote(user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactorSession) Nuke() (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactorSession) Promote(user common.Address) (*types.Transaction, error)
- func (_ReleaseOracle *ReleaseOracleTransactorSession) Release(major uint32, minor uint32, patch uint32, commit [20]byte) (*types.Transaction, error)
- type ReleaseService
Constants ¶
const ReleaseOracleABI = `` /* 1530-byte string literal not displayed */
ReleaseOracleABI is the input ABI used to generate the binding from.
const ReleaseOracleBin = `` /* 9896-byte string literal not displayed */
ReleaseOracleBin is the compiled bytecode used for deploying new contracts.
Variables ¶
This section is empty.
Functions ¶
func NewReleaseService ¶
NewReleaseService creates a new service to periodically check for new client releases and notify the user of such.
Types ¶
type Config ¶
type Config struct { Oracle common.Address // Ethereum address of the release oracle Major uint32 // Major version component of the release Minor uint32 // Minor version component of the release Patch uint32 // Patch version component of the release Commit [20]byte // Git SHA1 commit hash of the release }
Config contains the configurations of the release service.
type ReleaseOracle ¶
type ReleaseOracle struct { ReleaseOracleCaller // Read-only binding to the contract ReleaseOracleTransactor // Write-only binding to the contract }
ReleaseOracle is an auto generated Go binding around an Ethereum contract.
func DeployReleaseOracle ¶
func DeployReleaseOracle(auth *bind.TransactOpts, backend bind.ContractBackend, signers []common.Address) (common.Address, *types.Transaction, *ReleaseOracle, error)
DeployReleaseOracle deploys a new Ethereum contract, binding an instance of ReleaseOracle to it.
func NewReleaseOracle ¶
func NewReleaseOracle(address common.Address, backend bind.ContractBackend) (*ReleaseOracle, error)
NewReleaseOracle creates a new instance of ReleaseOracle, bound to a specific deployed contract.
type ReleaseOracleCaller ¶
type ReleaseOracleCaller struct {
// contains filtered or unexported fields
}
ReleaseOracleCaller is an auto generated read-only Go binding around an Ethereum contract.
func NewReleaseOracleCaller ¶
func NewReleaseOracleCaller(address common.Address, caller bind.ContractCaller) (*ReleaseOracleCaller, error)
NewReleaseOracleCaller creates a new read-only instance of ReleaseOracle, bound to a specific deployed contract.
func (*ReleaseOracleCaller) AuthProposals ¶
func (_ReleaseOracle *ReleaseOracleCaller) AuthProposals(opts *bind.CallOpts) ([]common.Address, error)
AuthProposals is a free data retrieval call binding the contract method 0xbf8ecf9c.
Solidity: function authProposals() constant returns(address[])
func (*ReleaseOracleCaller) AuthVotes ¶
func (_ReleaseOracle *ReleaseOracleCaller) AuthVotes(opts *bind.CallOpts, user common.Address) (struct { Promote []common.Address Demote []common.Address }, error)
AuthVotes is a free data retrieval call binding the contract method 0x64ed31fe.
Solidity: function authVotes(user address) constant returns(promote address[], demote address[])
func (*ReleaseOracleCaller) CurrentVersion ¶
func (_ReleaseOracle *ReleaseOracleCaller) CurrentVersion(opts *bind.CallOpts) (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Time *big.Int }, error)
CurrentVersion is a free data retrieval call binding the contract method 0x9d888e86.
Solidity: function currentVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, time uint256)
func (*ReleaseOracleCaller) ProposedVersion ¶
func (_ReleaseOracle *ReleaseOracleCaller) ProposedVersion(opts *bind.CallOpts) (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Pass []common.Address Fail []common.Address }, error)
ProposedVersion is a free data retrieval call binding the contract method 0x26db7648.
Solidity: function proposedVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, pass address[], fail address[])
type ReleaseOracleCallerRaw ¶
type ReleaseOracleCallerRaw struct {
Contract *ReleaseOracleCaller // Generic read-only contract binding to access the raw methods on
}
ReleaseOracleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
func (*ReleaseOracleCallerRaw) Call ¶
func (_ReleaseOracle *ReleaseOracleCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
type ReleaseOracleCallerSession ¶
type ReleaseOracleCallerSession struct { Contract *ReleaseOracleCaller // Generic contract caller binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session }
ReleaseOracleCallerSession is an auto generated read-only Go binding around an Ethereum contract, with pre-set call options.
func (*ReleaseOracleCallerSession) AuthProposals ¶
func (_ReleaseOracle *ReleaseOracleCallerSession) AuthProposals() ([]common.Address, error)
AuthProposals is a free data retrieval call binding the contract method 0xbf8ecf9c.
Solidity: function authProposals() constant returns(address[])
func (*ReleaseOracleCallerSession) AuthVotes ¶
func (_ReleaseOracle *ReleaseOracleCallerSession) AuthVotes(user common.Address) (struct { Promote []common.Address Demote []common.Address }, error)
AuthVotes is a free data retrieval call binding the contract method 0x64ed31fe.
Solidity: function authVotes(user address) constant returns(promote address[], demote address[])
func (*ReleaseOracleCallerSession) CurrentVersion ¶
func (_ReleaseOracle *ReleaseOracleCallerSession) CurrentVersion() (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Time *big.Int }, error)
CurrentVersion is a free data retrieval call binding the contract method 0x9d888e86.
Solidity: function currentVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, time uint256)
func (*ReleaseOracleCallerSession) ProposedVersion ¶
func (_ReleaseOracle *ReleaseOracleCallerSession) ProposedVersion() (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Pass []common.Address Fail []common.Address }, error)
ProposedVersion is a free data retrieval call binding the contract method 0x26db7648.
Solidity: function proposedVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, pass address[], fail address[])
type ReleaseOracleRaw ¶
type ReleaseOracleRaw struct {
Contract *ReleaseOracle // Generic contract binding to access the raw methods on
}
ReleaseOracleRaw is an auto generated low-level Go binding around an Ethereum contract.
func (*ReleaseOracleRaw) Call ¶
func (_ReleaseOracle *ReleaseOracleRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
func (*ReleaseOracleRaw) Transact ¶
func (_ReleaseOracle *ReleaseOracleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*ReleaseOracleRaw) Transfer ¶
func (_ReleaseOracle *ReleaseOracleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type ReleaseOracleSession ¶
type ReleaseOracleSession struct { Contract *ReleaseOracle // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
ReleaseOracleSession is an auto generated Go binding around an Ethereum contract, with pre-set call and transact options.
func (*ReleaseOracleSession) AuthProposals ¶
func (_ReleaseOracle *ReleaseOracleSession) AuthProposals() ([]common.Address, error)
AuthProposals is a free data retrieval call binding the contract method 0xbf8ecf9c.
Solidity: function authProposals() constant returns(address[])
func (*ReleaseOracleSession) AuthVotes ¶
func (_ReleaseOracle *ReleaseOracleSession) AuthVotes(user common.Address) (struct { Promote []common.Address Demote []common.Address }, error)
AuthVotes is a free data retrieval call binding the contract method 0x64ed31fe.
Solidity: function authVotes(user address) constant returns(promote address[], demote address[])
func (*ReleaseOracleSession) CurrentVersion ¶
func (_ReleaseOracle *ReleaseOracleSession) CurrentVersion() (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Time *big.Int }, error)
CurrentVersion is a free data retrieval call binding the contract method 0x9d888e86.
Solidity: function currentVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, time uint256)
func (*ReleaseOracleSession) Demote ¶
func (_ReleaseOracle *ReleaseOracleSession) Demote(user common.Address) (*types.Transaction, error)
Demote is a paid mutator transaction binding the contract method 0x5c3d005d.
Solidity: function demote(user address) returns()
func (*ReleaseOracleSession) Nuke ¶
func (_ReleaseOracle *ReleaseOracleSession) Nuke() (*types.Transaction, error)
Nuke is a paid mutator transaction binding the contract method 0xbc8fbbf8.
Solidity: function nuke() returns()
func (*ReleaseOracleSession) Promote ¶
func (_ReleaseOracle *ReleaseOracleSession) Promote(user common.Address) (*types.Transaction, error)
Promote is a paid mutator transaction binding the contract method 0xd0e0813a.
Solidity: function promote(user address) returns()
func (*ReleaseOracleSession) ProposedVersion ¶
func (_ReleaseOracle *ReleaseOracleSession) ProposedVersion() (struct { Major uint32 Minor uint32 Patch uint32 Commit [20]byte Pass []common.Address Fail []common.Address }, error)
ProposedVersion is a free data retrieval call binding the contract method 0x26db7648.
Solidity: function proposedVersion() constant returns(major uint32, minor uint32, patch uint32, commit bytes20, pass address[], fail address[])
func (*ReleaseOracleSession) Release ¶
func (_ReleaseOracle *ReleaseOracleSession) Release(major uint32, minor uint32, patch uint32, commit [20]byte) (*types.Transaction, error)
Release is a paid mutator transaction binding the contract method 0xd67cbec9.
Solidity: function release(major uint32, minor uint32, patch uint32, commit bytes20) returns()
type ReleaseOracleTransactor ¶
type ReleaseOracleTransactor struct {
// contains filtered or unexported fields
}
ReleaseOracleTransactor is an auto generated write-only Go binding around an Ethereum contract.
func NewReleaseOracleTransactor ¶
func NewReleaseOracleTransactor(address common.Address, transactor bind.ContractTransactor) (*ReleaseOracleTransactor, error)
NewReleaseOracleTransactor creates a new write-only instance of ReleaseOracle, bound to a specific deployed contract.
func (*ReleaseOracleTransactor) Demote ¶
func (_ReleaseOracle *ReleaseOracleTransactor) Demote(opts *bind.TransactOpts, user common.Address) (*types.Transaction, error)
Demote is a paid mutator transaction binding the contract method 0x5c3d005d.
Solidity: function demote(user address) returns()
func (*ReleaseOracleTransactor) Nuke ¶
func (_ReleaseOracle *ReleaseOracleTransactor) Nuke(opts *bind.TransactOpts) (*types.Transaction, error)
Nuke is a paid mutator transaction binding the contract method 0xbc8fbbf8.
Solidity: function nuke() returns()
func (*ReleaseOracleTransactor) Promote ¶
func (_ReleaseOracle *ReleaseOracleTransactor) Promote(opts *bind.TransactOpts, user common.Address) (*types.Transaction, error)
Promote is a paid mutator transaction binding the contract method 0xd0e0813a.
Solidity: function promote(user address) returns()
func (*ReleaseOracleTransactor) Release ¶
func (_ReleaseOracle *ReleaseOracleTransactor) Release(opts *bind.TransactOpts, major uint32, minor uint32, patch uint32, commit [20]byte) (*types.Transaction, error)
Release is a paid mutator transaction binding the contract method 0xd67cbec9.
Solidity: function release(major uint32, minor uint32, patch uint32, commit bytes20) returns()
type ReleaseOracleTransactorRaw ¶
type ReleaseOracleTransactorRaw struct {
Contract *ReleaseOracleTransactor // Generic write-only contract binding to access the raw methods on
}
ReleaseOracleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
func (*ReleaseOracleTransactorRaw) Transact ¶
func (_ReleaseOracle *ReleaseOracleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*ReleaseOracleTransactorRaw) Transfer ¶
func (_ReleaseOracle *ReleaseOracleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type ReleaseOracleTransactorSession ¶
type ReleaseOracleTransactorSession struct { Contract *ReleaseOracleTransactor // Generic contract transactor binding to set the session for TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
ReleaseOracleTransactorSession is an auto generated write-only Go binding around an Ethereum contract, with pre-set transact options.
func (*ReleaseOracleTransactorSession) Demote ¶
func (_ReleaseOracle *ReleaseOracleTransactorSession) Demote(user common.Address) (*types.Transaction, error)
Demote is a paid mutator transaction binding the contract method 0x5c3d005d.
Solidity: function demote(user address) returns()
func (*ReleaseOracleTransactorSession) Nuke ¶
func (_ReleaseOracle *ReleaseOracleTransactorSession) Nuke() (*types.Transaction, error)
Nuke is a paid mutator transaction binding the contract method 0xbc8fbbf8.
Solidity: function nuke() returns()
func (*ReleaseOracleTransactorSession) Promote ¶
func (_ReleaseOracle *ReleaseOracleTransactorSession) Promote(user common.Address) (*types.Transaction, error)
Promote is a paid mutator transaction binding the contract method 0xd0e0813a.
Solidity: function promote(user address) returns()
func (*ReleaseOracleTransactorSession) Release ¶
func (_ReleaseOracle *ReleaseOracleTransactorSession) Release(major uint32, minor uint32, patch uint32, commit [20]byte) (*types.Transaction, error)
Release is a paid mutator transaction binding the contract method 0xd67cbec9.
Solidity: function release(major uint32, minor uint32, patch uint32, commit bytes20) returns()
type ReleaseService ¶
type ReleaseService struct {
// contains filtered or unexported fields
}
ReleaseService is a node service that periodically checks the blockchain for newly released versions of the client being run and issues a warning to the user about it.
func (*ReleaseService) APIs ¶
func (r *ReleaseService) APIs() []rpc.API
APIs returns an empty list of RPC descriptors as the release service does not expose any functioanlity to the outside world.
func (*ReleaseService) Protocols ¶
func (r *ReleaseService) Protocols() []p2p.Protocol
Protocols returns an empty list of P2P protocols as the release service does not have a networking component.
func (*ReleaseService) Start ¶
func (r *ReleaseService) Start(server *p2p.Server) error
Start spawns the periodic version checker goroutine
func (*ReleaseService) Stop ¶
func (r *ReleaseService) Stop() error
Stop terminates all goroutines belonging to the service, blocking until they are all terminated.