Documentation
¶
Index ¶
- Constants
- Variables
- type GetBlockTime
- type GetEpochHeight
- type GetEpochNum
- type GetTipBlockTime
- type NativeStaking
- type Protocol
- func NewGovernanceChainCommitteeProtocol(cm protocol.ChainManager, electionCommittee committee.Committee, ...) (Protocol, error)
- func NewLifeLongDelegatesProtocol(delegates []genesis.Delegate) Protocol
- func NewStakingCommittee(hu config.HeightUpgrade, gs Protocol, cm protocol.ChainManager, ...) (Protocol, error)
- type VoteTally
Constants ¶
const (
// ProtocolID defines the ID of this protocol
ProtocolID = "poll"
)
Variables ¶
var ( // ErrNoData is an error that there's no data in the contract ErrNoData = errors.New("no data") // ErrEndOfData is an error that reaching end of data in the contract ErrEndOfData = errors.New("end of data") )
var ErrDelegatesNotAsExpected = errors.New("delegates are not as expected")
ErrDelegatesNotAsExpected is an error that the delegates are not as expected
var ErrNoElectionCommittee = errors.New("no election committee specified")
ErrNoElectionCommittee is an error that the election committee is not specified
var ErrProposedDelegatesLength = errors.New("the proposed delegate list length")
ErrProposedDelegatesLength is an error that the proposed delegate list length is not right
var NsAbi = `` /* 12350-byte string literal not displayed */
NsAbi is the ABI of native staking contract
Functions ¶
This section is empty.
Types ¶
type GetBlockTime ¶
GetBlockTime defines a function to get block creation time
type GetEpochHeight ¶
GetEpochHeight defines a function to get the corresponding epoch height given an epoch number
type GetEpochNum ¶
GetEpochNum defines a function to get epoch number given a block height
type GetTipBlockTime ¶ added in v0.8.4
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() (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 ¶
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, getEpochHeight GetEpochHeight, getEpochNum GetEpochNum, staking string, scoreThreshold *big.Int, ) (Protocol, error)
NewStakingCommittee creates a staking committee which fetch result from governance chain and native staking