release

package
v0.0.0-...-d5477c9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2019 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package release contains the node service that tracks client releases.

Index

Constants

View Source
const ReleaseOracleABI = `` /* 1530-byte string literal not displayed */

ReleaseOracleABI is the input ABI used to generate the binding from.

View Source
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

func NewReleaseService(ctx *node.ServiceContext, config Config) (node.Service, error)

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[])

func (*ReleaseOracleCaller) Signers

func (_ReleaseOracle *ReleaseOracleCaller) Signers(opts *bind.CallOpts) ([]common.Address, error)

Signers is a free data retrieval call binding the contract method 0x46f0975a.

Solidity: function signers() constant returns(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[])

func (*ReleaseOracleCallerSession) Signers

func (_ReleaseOracle *ReleaseOracleCallerSession) Signers() ([]common.Address, error)

Signers is a free data retrieval call binding the contract method 0x46f0975a.

Solidity: function signers() constant returns(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()

func (*ReleaseOracleSession) Signers

func (_ReleaseOracle *ReleaseOracleSession) Signers() ([]common.Address, error)

Signers is a free data retrieval call binding the contract method 0x46f0975a.

Solidity: function signers() constant returns(address[])

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL