poll

package
v0.8.4 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2019 License: Apache-2.0 Imports: 25 Imported by: 11

Documentation

Index

Constants

View Source
const (
	// ProtocolID defines the ID of this protocol
	ProtocolID = "poll"
)

Variables

View Source
var ErrDelegatesNotAsExpected = errors.New("delegates are not as expected")

ErrDelegatesNotAsExpected is an error that the delegates are not as expected

View Source
var (

	// ErrNoData is an error that there's no data in the contract
	ErrNoData = errors.New("no data")
)
View Source
var ErrNoElectionCommittee = errors.New("no election committee specified")

ErrNoElectionCommittee is an error that the election committee is not specified

View Source
var ErrProposedDelegatesLength = errors.New("the proposed delegate list length")

ErrProposedDelegatesLength is an error that the proposed delegate list length is not right

View Source
var NsAbi = `` /* 12350-byte string literal not displayed */

NsAbi is the ABI of native staking contract

Functions

This section is empty.

Types

type GetBlockTime

type GetBlockTime func(uint64) (time.Time, error)

GetBlockTime defines a function to get block creation time

type GetEpochHeight

type GetEpochHeight func(uint64) uint64

GetEpochHeight defines a function to get the corresponding epoch height given an epoch number

type GetEpochNum

type GetEpochNum func(uint64) uint64

GetEpochNum defines a function to get epoch number given a block height

type GetTipBlockTime added in v0.8.4

type GetTipBlockTime func() (time.Time, error)

GetTipBlockTime defines a function to get tip block creation time

type NativeStaking added in v0.8.4

type NativeStaking struct {
	// contains filtered or unexported fields
}

NativeStaking represents native staking struct

func NewNativeStaking added in v0.8.4

func NewNativeStaking(cm protocol.ChainManager, getTipBlockTime GetTipBlockTime, staking string) (*NativeStaking, error)

NewNativeStaking creates a NativeStaking instance

func (*NativeStaking) Votes added in v0.8.4

func (ns *NativeStaking) Votes(height uint64) (VoteTally, error)

Votes returns the votes on height

type Protocol

type Protocol interface {
	// Initialize fetches the poll result for genesis block
	Initialize(context.Context, protocol.StateManager) error
	// Handle handles a vote
	Handle(context.Context, action.Action, protocol.StateManager) (*action.Receipt, error)
	// Validate validates a vote
	Validate(context.Context, action.Action) error
	// DelegatesByHeight returns the delegates by chain height
	DelegatesByHeight(uint64) (state.CandidateList, error)
	// ReadState read the state on blockchain via protocol
	ReadState(context.Context, protocol.StateManager, []byte, ...[]byte) ([]byte, error)
}

Protocol defines the protocol of handling votes

func NewGovernanceChainCommitteeProtocol

func NewGovernanceChainCommitteeProtocol(
	cm protocol.ChainManager,
	electionCommittee committee.Committee,
	initGravityChainHeight uint64,
	getBlockTime GetBlockTime,
	getEpochHeight GetEpochHeight,
	getEpochNum GetEpochNum,
	numCandidateDelegates uint64,
	numDelegates uint64,
	initialCandidatesInterval time.Duration,
) (Protocol, error)

NewGovernanceChainCommitteeProtocol creates a Poll Protocol which fetch result from governance chain

func NewLifeLongDelegatesProtocol

func NewLifeLongDelegatesProtocol(delegates []genesis.Delegate) Protocol

NewLifeLongDelegatesProtocol creates a poll protocol with life long delegates

func NewStakingCommittee added in v0.8.4

func NewStakingCommittee(
	hu config.HeightUpgrade,
	gs Protocol,
	cm protocol.ChainManager,
	getTipBlockTime GetTipBlockTime,
	staking string,
	scoreThreshold *big.Int,
) (Protocol, error)

NewStakingCommittee creates a staking committee which fetch result from governance chain and native staking

type VoteTally added in v0.8.4

type VoteTally map[[12]byte]*state.Candidate

VoteTally is a map of candidates on native chain

Jump to

Keyboard shortcuts

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