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, ec committee.Committee, gs Protocol, ...) (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) (*NativeStaking, error)
NewNativeStaking creates a NativeStaking instance
func (*NativeStaking) SetContract ¶ added in v0.9.0
func (ns *NativeStaking) SetContract(contract string)
SetContract sets the contract address
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) // SetContract sets the native staking contract address SetNativeStakingContract(string) }
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, ec committee.Committee, gs Protocol, cm protocol.ChainManager, getTipBlockTime GetTipBlockTime, getEpochHeight GetEpochHeight, getEpochNum GetEpochNum, nativeStakingContractAddress string, nativeStakingContractCode string, rp *rolldpos.Protocol, scoreThreshold *big.Int, ) (Protocol, error)
NewStakingCommittee creates a staking committee which fetch result from governance chain and native staking