Documentation ¶
Index ¶
- Constants
- Variables
- func AccuVerifiers(blockHash common.Hash, proposalID common.Hash, verifierList []discover.NodeID) error
- func AddActiveNode(blockHash common.Hash, proposalID common.Hash, nodeID discover.NodeID) error
- func AddActiveVersion(activeVersion uint32, activeBlock uint64, state xcom.StateDB) error
- func AddPIPID(pipID string, state xcom.StateDB) error
- func AddVoteValue(proposalID common.Hash, voter discover.NodeID, option VoteOption, ...) error
- func AddVotingProposalID(blockHash common.Hash, proposalID common.Hash) error
- func ClearActiveNodes(blockHash common.Hash, proposalID common.Hash) error
- func ClearVoteValue(proposalID common.Hash, blockHash common.Hash) error
- func DeclareVersion(from common.Address, declaredNodeID discover.NodeID, declaredVersion uint32, ...) error
- func GetActiveNodeList(blockHash common.Hash, proposalID common.Hash) ([]discover.NodeID, error)
- func GetCurrentActiveVersion(state xcom.StateDB) uint32
- func GetGovernParamValue(module, name string, blockNumber uint64, blockHash common.Hash) (string, error)
- func GetMaxEndVotingBlock(nodeID discover.NodeID, blockHash common.Hash, state xcom.StateDB) (uint64, error)
- func GetPreActiveProposalID(blockHash common.Hash) (common.Hash, error)
- func GetPreActiveVersion(state xcom.StateDB) uint32
- func GetVersionForStaking(state xcom.StateDB) uint32
- func GetVotedVerifierMap(proposalID common.Hash, blockHash common.Hash) (map[discover.NodeID]struct{}, error)
- func GovernDuplicateSignReportReward(blockNumber uint64, blockHash common.Hash) (uint32, error)
- func GovernMaxBlockGasLimit(blockNumber uint64, blockHash common.Hash) (int, error)
- func GovernMaxEvidenceAge(blockNumber uint64, blockHash common.Hash) (uint32, error)
- func GovernMaxValidators(blockNumber uint64, blockHash common.Hash) (uint64, error)
- func GovernOperatingThreshold(blockNumber uint64, blockHash common.Hash) (*big.Int, error)
- func GovernSlashBlocksReward(blockNumber uint64, blockHash common.Hash) (uint32, error)
- func GovernSlashFractionDuplicateSign(blockNumber uint64, blockHash common.Hash) (uint32, error)
- func GovernStakeThreshold(blockNumber uint64, blockHash common.Hash) (*big.Int, error)
- func GovernUnStakeFreezeDuration(blockNumber uint64, blockHash common.Hash) (uint64, error)
- func InitGenesisGovernParam(snapDB snapshotdb.DB) error
- func KeyAccuVerifier(proposalID common.Hash) []byte
- func KeyActiveNodes(proposalID common.Hash) []byte
- func KeyActiveVersions() []byte
- func KeyEndProposals() []byte
- func KeyPIPIDs() []byte
- func KeyParamItems() []byte
- func KeyParamValue(module, name string) []byte
- func KeyPreActiveProposal() []byte
- func KeyPreActiveVersion() []byte
- func KeyProposal(proposalID common.Hash) []byte
- func KeyTallyResult(proposalID common.Hash) []byte
- func KeyVote(proposalID common.Hash) []byte
- func KeyVotingProposals() []byte
- func ListAccuVerifier(blockHash common.Hash, proposalID common.Hash) ([]discover.NodeID, error)
- func ListEndProposalID(blockHash common.Hash) ([]common.Hash, error)
- func ListPIPID(state xcom.StateDB) ([]string, error)
- func ListVotingProposal(blockHash common.Hash) ([]common.Hash, error)
- func ListVotingProposalID(blockHash common.Hash) ([]common.Hash, error)
- func MovePreActiveProposalIDToEnd(blockHash common.Hash, proposalID common.Hash) error
- func MoveVotingProposalIDToEnd(proposalID common.Hash, blockHash common.Hash) error
- func MoveVotingProposalIDToPreActive(blockHash common.Hash, proposalID common.Hash) error
- func NotifyPunishedVerifiers(blockHash common.Hash, punishedVerifierMap map[discover.NodeID]struct{}, ...) error
- func RegGovernParamVerifier(module, name string, callback ParamVerifier)
- func RegisterGovernParamVerifiers()
- func SetGovernParam(module, name, desc, initValue string, activeBlockNumber uint64, ...) error
- func SetPreActiveVersion(preActiveVersion uint32, state xcom.StateDB) error
- func SetProposal(proposal Proposal, state xcom.StateDB) error
- func SetTallyResult(tallyResult TallyResult, state xcom.StateDB) error
- func Submit(from common.Address, proposal Proposal, blockHash common.Hash, ...) error
- func TallyVoteValue(proposalID common.Hash, blockHash common.Hash) (yeas, nays, abstentions uint16, e error)
- func UpdateGovernParamValue(module, name string, newValue string, activeBlock uint64, ...) error
- func UpdateVoteValue(proposalID common.Hash, voteValueList []VoteValue, blockHash common.Hash) error
- func Vote(from common.Address, vote VoteInfo, blockHash common.Hash, blockNumber uint64, ...) error
- type ActiveVersionValue
- type CancelProposal
- func (cp *CancelProposal) GetEndVotingBlock() uint64
- func (cp *CancelProposal) GetPIPID() string
- func (cp *CancelProposal) GetProposalID() common.Hash
- func (cp *CancelProposal) GetProposalType() ProposalType
- func (cp *CancelProposal) GetProposer() discover.NodeID
- func (cp *CancelProposal) GetSubmitBlock() uint64
- func (cp *CancelProposal) GetTallyResult() TallyResult
- func (cp *CancelProposal) String() string
- func (cp *CancelProposal) Verify(submitBlock uint64, blockHash common.Hash, state xcom.StateDB) error
- type GovernParam
- type ParamItem
- type ParamProposal
- func (pp *ParamProposal) GetEndVotingBlock() uint64
- func (pp *ParamProposal) GetPIPID() string
- func (pp *ParamProposal) GetProposalID() common.Hash
- func (pp *ParamProposal) GetProposalType() ProposalType
- func (pp *ParamProposal) GetProposer() discover.NodeID
- func (pp *ParamProposal) GetSubmitBlock() uint64
- func (pp *ParamProposal) GetTallyResult() TallyResult
- func (pp *ParamProposal) String() string
- func (pp *ParamProposal) Verify(submitBlock uint64, blockHash common.Hash, state xcom.StateDB) error
- type ParamValue
- type ParamVerifier
- type Proposal
- func FindVotingProposal(blockHash common.Hash, state xcom.StateDB, proposalTypes ...ProposalType) (Proposal, error)
- func GetExistProposal(proposalID common.Hash, state xcom.StateDB) (Proposal, error)
- func GetProposal(proposalID common.Hash, state xcom.StateDB) (Proposal, error)
- func GetProposalList(blockHash common.Hash, state xcom.StateDB) ([]Proposal, error)
- func ListProposal(blockHash common.Hash, state xcom.StateDB) ([]Proposal, error)
- type ProposalStatus
- type ProposalType
- type Staking
- type TallyResult
- type TextProposal
- func (tp *TextProposal) GetEndVotingBlock() uint64
- func (tp *TextProposal) GetPIPID() string
- func (tp *TextProposal) GetProposalID() common.Hash
- func (tp *TextProposal) GetProposalType() ProposalType
- func (tp *TextProposal) GetProposer() discover.NodeID
- func (tp *TextProposal) GetSubmitBlock() uint64
- func (tp *TextProposal) GetTallyResult() TallyResult
- func (tp *TextProposal) String() string
- func (tp *TextProposal) Verify(submitBlock uint64, blockHash common.Hash, state xcom.StateDB) error
- type VersionProposal
- func (vp *VersionProposal) GetActiveBlock() uint64
- func (vp *VersionProposal) GetEndVotingBlock() uint64
- func (vp *VersionProposal) GetNewVersion() uint32
- func (vp *VersionProposal) GetPIPID() string
- func (vp *VersionProposal) GetProposalID() common.Hash
- func (vp *VersionProposal) GetProposalType() ProposalType
- func (vp *VersionProposal) GetProposer() discover.NodeID
- func (vp *VersionProposal) GetSubmitBlock() uint64
- func (vp *VersionProposal) GetTallyResult() TallyResult
- func (vp *VersionProposal) String() string
- func (vp *VersionProposal) Verify(submitBlock uint64, blockHash common.Hash, state xcom.StateDB) error
- type VoteInfo
- type VoteOption
- type VoteValue
Constants ¶
const ( ModuleStaking = "staking" ModuleSlashing = "slashing" ModuleBlock = "block" ModuleTxPool = "txPool" )
const ( KeyStakeThreshold = "stakeThreshold" KeyOperatingThreshold = "operatingThreshold" KeyMaxValidators = "maxValidators" KeyUnStakeFreezeDuration = "unStakeFreezeDuration" KeySlashFractionDuplicateSign = "slashFractionDuplicateSign" KeyDuplicateSignReportReward = "duplicateSignReportReward" KeyMaxEvidenceAge = "maxEvidenceAge" KeySlashBlocksReward = "slashBlocksReward" KeyMaxBlockGasLimit = "maxBlockGasLimit" KeyMaxTxDataLimit = "maxTxDataLimit" )
Variables ¶
var ( ActiveVersionError = common.NewBizError(302001, "current active version not found") VoteOptionError = common.NewBizError(302002, "vote option error") ProposalTypeError = common.NewBizError(302003, "proposal type error") ProposalIDEmpty = common.NewBizError(302004, "proposal ID is empty") ProposalIDExist = common.NewBizError(302005, "proposal ID already exists") ProposalNotFound = common.NewBizError(302006, "proposal not found") PIPIDEmpty = common.NewBizError(302007, "PIPID is empty") PIPIDExist = common.NewBizError(302008, "PIPID already exists") EndVotingRoundsTooSmall = common.NewBizError(302009, "endVotingRounds too small") EndVotingRoundsTooLarge = common.NewBizError(302010, "endVotingRounds too large") NewVersionError = common.NewBizError(302011, "newVersion should larger than current active version") VotingVersionProposalExist = common.NewBizError(302012, "another version proposal at voting stage") PreActiveVersionProposalExist = common.NewBizError(302013, "another version proposal at pre-active stage") VotingCancelProposalExist = common.NewBizError(302014, "another cancel proposal at voting stage") TobeCanceledProposalNotFound = common.NewBizError(302015, "to be canceled proposal not found") TobeCanceledProposalTypeError = common.NewBizError(302016, "to be canceled proposal not version type") TobeCanceledProposalNotAtVoting = common.NewBizError(302017, "to be canceled proposal not at voting stage") ProposerEmpty = common.NewBizError(302018, "proposer is empty") VerifierInfoNotFound = common.NewBizError(302019, "verifier detail info not found") VerifierStatusInvalid = common.NewBizError(302020, "verifier status is invalid") TxSenderDifferFromStaking = common.NewBizError(302021, "Tx caller differ from staking") TxSenderIsNotVerifier = common.NewBizError(302022, "Tx caller is not verifier") TxSenderIsNotCandidate = common.NewBizError(302023, "Tx caller is not candidate") VersionSignError = common.NewBizError(302024, "version sign error") VerifierNotUpgraded = common.NewBizError(302025, "verifier not upgraded") ProposalNotAtVoting = common.NewBizError(302026, "proposal not at voting stage") VoteDuplicated = common.NewBizError(302027, "vote duplicated") DeclareVersionError = common.NewBizError(302028, "declared version error") NotifyStakingDeclaredVersionError = common.NewBizError(302029, "notify staking declared version error") TallyResultNotFound = common.NewBizError(302030, "tally result not found") UnsupportedGovernParam = common.NewBizError(302031, "unsupported govern parameter") VotingParamProposalExist = common.NewBizError(302032, "another param proposal at voting stage") GovernParamValueError = common.NewBizError(302033, "govern parameter value error") ParamProposalIsSameValue = common.NewBizError(302034, "the new value of the parameter proposal is the same as the old value") )
var (
KeyDelimiter = []byte(":")
)
var ParamVerifierMap = make(map[string]ParamVerifier)
var (
ValueDelimiter = []byte(":")
)
Functions ¶
func AccuVerifiers ¶
func AccuVerifiers(blockHash common.Hash, proposalID common.Hash, verifierList []discover.NodeID) error
AccuVerifiers accumulates all distinct verifiers those can vote this proposal ID
func AddActiveNode ¶
Add the node that has made a new version declare or vote during voting period
func AddActiveVersion ¶
Set active version record
func AddVoteValue ¶ added in v0.7.3
func AddVoteValue(proposalID common.Hash, voter discover.NodeID, option VoteOption, blockHash common.Hash) error
Add the Vote detail
func AddVotingProposalID ¶
func ClearActiveNodes ¶
Clear the version declaration records after upgrade
func ClearVoteValue ¶ added in v0.7.4
func DeclareVersion ¶
func DeclareVersion(from common.Address, declaredNodeID discover.NodeID, declaredVersion uint32, programVersionSign common.VersionSign, blockHash common.Hash, blockNumber uint64, stk Staking, state xcom.StateDB) error
node declares it's version
func GetActiveNodeList ¶
Get the node list that have made a new version declare or vote during voting period
func GetCurrentActiveVersion ¶
Get current active version record
func GetGovernParamValue ¶ added in v0.7.4
func GetMaxEndVotingBlock ¶
func GetMaxEndVotingBlock(nodeID discover.NodeID, blockHash common.Hash, state xcom.StateDB) (uint64, error)
GetMaxEndVotingBlock returns the max endVotingBlock of proposals those are at voting stage, and the nodeID has voted for those proposals. or returns 0 if there's no proposal at voting stage, or nodeID didn't voted for any proposal. if any error happened, return 0 and the error
func GetPreActiveProposalID ¶
func GetPreActiveVersion ¶
Get pre-active version
func GetVersionForStaking ¶
func GetVotedVerifierMap ¶ added in v0.7.3
func GovernDuplicateSignReportReward ¶ added in v0.7.4
func GovernMaxBlockGasLimit ¶ added in v0.7.4
func GovernMaxEvidenceAge ¶ added in v0.7.4
func GovernMaxValidators ¶ added in v0.7.4
func GovernOperatingThreshold ¶ added in v0.7.4
func GovernSlashBlocksReward ¶ added in v0.7.4
func GovernSlashFractionDuplicateSign ¶ added in v0.7.4
func GovernStakeThreshold ¶ added in v0.7.4
func GovernUnStakeFreezeDuration ¶ added in v0.7.4
func InitGenesisGovernParam ¶ added in v0.7.4
func InitGenesisGovernParam(snapDB snapshotdb.DB) error
func KeyAccuVerifier ¶
func KeyActiveNodes ¶
func KeyActiveVersions ¶
func KeyActiveVersions() []byte
func KeyEndProposals ¶
func KeyEndProposals() []byte
func KeyParamItems ¶ added in v0.7.4
func KeyParamItems() []byte
func KeyParamValue ¶ added in v0.7.4
func KeyPreActiveProposal ¶
func KeyPreActiveProposal() []byte
func KeyPreActiveVersion ¶
func KeyPreActiveVersion() []byte
func KeyProposal ¶
func KeyTallyResult ¶
func KeyVotingProposals ¶
func KeyVotingProposals() []byte
func ListAccuVerifier ¶
Get the total number of all voting verifiers
func ListVotingProposal ¶
Get voting proposal
func ListVotingProposalID ¶
list all proposal IDs at voting stage
func NotifyPunishedVerifiers ¶
func NotifyPunishedVerifiers(blockHash common.Hash, punishedVerifierMap map[discover.NodeID]struct{}, state xcom.StateDB) error
NotifyPunishedVerifiers receives punished verifies notification from Staking
func RegGovernParamVerifier ¶ added in v0.7.4
func RegGovernParamVerifier(module, name string, callback ParamVerifier)
func RegisterGovernParamVerifiers ¶ added in v0.7.4
func RegisterGovernParamVerifiers()
func SetGovernParam ¶ added in v0.7.4
func SetPreActiveVersion ¶
Set pre-active version
func SetTallyResult ¶
func SetTallyResult(tallyResult TallyResult, state xcom.StateDB) error
func Submit ¶
func Submit(from common.Address, proposal Proposal, blockHash common.Hash, blockNumber uint64, stk Staking, state xcom.StateDB) error
submit a proposal
func TallyVoteValue ¶
func TallyVoteValue(proposalID common.Hash, blockHash common.Hash) (yeas, nays, abstentions uint16, e error)
TallyVoteValue statistics vote option for a proposal
func UpdateGovernParamValue ¶ added in v0.7.4
func UpdateVoteValue ¶ added in v0.7.3
Types ¶
type ActiveVersionValue ¶
type ActiveVersionValue struct { ActiveVersion uint32 `json:"ActiveVersion"` ActiveBlock uint64 `json:"ActiveBlock"` }
func ListActiveVersion ¶
func ListActiveVersion(state xcom.StateDB) ([]ActiveVersionValue, error)
type CancelProposal ¶
type CancelProposal struct { ProposalID common.Hash ProposalType ProposalType PIPID string SubmitBlock uint64 EndVotingRounds uint64 EndVotingBlock uint64 Proposer discover.NodeID TobeCanceled common.Hash Result TallyResult `json:"-"` }
func (*CancelProposal) GetEndVotingBlock ¶
func (cp *CancelProposal) GetEndVotingBlock() uint64
func (*CancelProposal) GetPIPID ¶
func (cp *CancelProposal) GetPIPID() string
func (*CancelProposal) GetProposalID ¶
func (cp *CancelProposal) GetProposalID() common.Hash
func (*CancelProposal) GetProposalType ¶
func (cp *CancelProposal) GetProposalType() ProposalType
func (*CancelProposal) GetProposer ¶
func (cp *CancelProposal) GetProposer() discover.NodeID
func (*CancelProposal) GetSubmitBlock ¶
func (cp *CancelProposal) GetSubmitBlock() uint64
func (*CancelProposal) GetTallyResult ¶
func (cp *CancelProposal) GetTallyResult() TallyResult
func (*CancelProposal) String ¶
func (cp *CancelProposal) String() string
type GovernParam ¶ added in v0.7.4
type GovernParam struct { ParamItem *ParamItem ParamValue *ParamValue ParamVerifier ParamVerifier `json:"-"` }
func FindGovernParam ¶ added in v0.7.4
func FindGovernParam(module, name string, blockHash common.Hash) (*GovernParam, error)
func ListGovernParam ¶ added in v0.7.4
func ListGovernParam(module string, blockHash common.Hash) ([]*GovernParam, error)
type ParamProposal ¶ added in v0.7.4
type ParamProposal struct { ProposalID common.Hash ProposalType ProposalType PIPID string SubmitBlock uint64 EndVotingBlock uint64 Proposer discover.NodeID Result TallyResult `json:"-"` Module string Name string NewValue string }
func (*ParamProposal) GetEndVotingBlock ¶ added in v0.7.4
func (pp *ParamProposal) GetEndVotingBlock() uint64
func (*ParamProposal) GetPIPID ¶ added in v0.7.4
func (pp *ParamProposal) GetPIPID() string
func (*ParamProposal) GetProposalID ¶ added in v0.7.4
func (pp *ParamProposal) GetProposalID() common.Hash
func (*ParamProposal) GetProposalType ¶ added in v0.7.4
func (pp *ParamProposal) GetProposalType() ProposalType
func (*ParamProposal) GetProposer ¶ added in v0.7.4
func (pp *ParamProposal) GetProposer() discover.NodeID
func (*ParamProposal) GetSubmitBlock ¶ added in v0.7.4
func (pp *ParamProposal) GetSubmitBlock() uint64
func (*ParamProposal) GetTallyResult ¶ added in v0.7.4
func (pp *ParamProposal) GetTallyResult() TallyResult
func (*ParamProposal) String ¶ added in v0.7.4
func (pp *ParamProposal) String() string
type ParamValue ¶
type ParamVerifier ¶ added in v0.7.4
type Proposal ¶
type Proposal interface { GetProposalID() common.Hash GetProposalType() ProposalType GetPIPID() string GetSubmitBlock() uint64 GetEndVotingBlock() uint64 GetProposer() discover.NodeID GetTallyResult() TallyResult Verify(blockNumber uint64, blockHash common.Hash, state xcom.StateDB) error String() string }
func FindVotingProposal ¶ added in v0.7.4
func FindVotingProposal(blockHash common.Hash, state xcom.StateDB, proposalTypes ...ProposalType) (Proposal, error)
find a proposal at voting stage
func GetExistProposal ¶
func GetProposalList ¶
Select proposal id list from snapshot database ,then get proposal detail from statedb one by one
type ProposalStatus ¶
type ProposalStatus uint8
const ( Voting ProposalStatus = 0x01 Pass ProposalStatus = 0x02 Failed ProposalStatus = 0x03 PreActive ProposalStatus = 0x04 Active ProposalStatus = 0x05 Canceled ProposalStatus = 0x06 )
func (ProposalStatus) ToString ¶
func (status ProposalStatus) ToString() string
type ProposalType ¶
type ProposalType uint8
const ( Text ProposalType = 0x01 Version ProposalType = 0x02 Param ProposalType = 0x03 Cancel ProposalType = 0x04 )
type Staking ¶
type Staking interface { GetVerifierList(blockHash common.Hash, blockNumber uint64, isCommit bool) (staking.ValidatorExQueue, error) ListVerifierNodeID(blockHash common.Hash, blockNumber uint64) ([]discover.NodeID, error) GetCanBaseList(blockHash common.Hash, blockNumber uint64) (staking.CandidateBaseQueue, error) GetCandidateInfo(blockHash common.Hash, addr common.Address) (*staking.Candidate, error) GetCanBase(blockHash common.Hash, addr common.Address) (*staking.CandidateBase, error) GetCanMutable(blockHash common.Hash, addr common.Address) (*staking.CandidateMutable, error) DeclarePromoteNotify(blockHash common.Hash, blockNumber uint64, nodeId discover.NodeID, programVersion uint32) error }
type TallyResult ¶
type TallyResult struct { ProposalID common.Hash `json:"proposalID"` Yeas uint16 `json:"yeas"` Nays uint16 `json:"nays"` Abstentions uint16 `json:"abstentions"` AccuVerifiers uint16 `json:"accuVerifiers"` Status ProposalStatus `json:"status"` CanceledBy common.Hash `json:"canceledBy"` }
func GetTallyResult ¶
type TextProposal ¶
type TextProposal struct { ProposalID common.Hash ProposalType ProposalType PIPID string SubmitBlock uint64 EndVotingBlock uint64 Proposer discover.NodeID Result TallyResult `json:"-"` }
func (*TextProposal) GetEndVotingBlock ¶
func (tp *TextProposal) GetEndVotingBlock() uint64
func (*TextProposal) GetPIPID ¶
func (tp *TextProposal) GetPIPID() string
func (*TextProposal) GetProposalID ¶
func (tp *TextProposal) GetProposalID() common.Hash
func (*TextProposal) GetProposalType ¶
func (tp *TextProposal) GetProposalType() ProposalType
func (*TextProposal) GetProposer ¶
func (tp *TextProposal) GetProposer() discover.NodeID
func (*TextProposal) GetSubmitBlock ¶
func (tp *TextProposal) GetSubmitBlock() uint64
func (*TextProposal) GetTallyResult ¶
func (tp *TextProposal) GetTallyResult() TallyResult
func (*TextProposal) String ¶
func (tp *TextProposal) String() string
type VersionProposal ¶
type VersionProposal struct { ProposalID common.Hash ProposalType ProposalType PIPID string SubmitBlock uint64 EndVotingRounds uint64 EndVotingBlock uint64 Proposer discover.NodeID Result TallyResult `json:"-"` NewVersion uint32 ActiveBlock uint64 }
func (*VersionProposal) GetActiveBlock ¶
func (vp *VersionProposal) GetActiveBlock() uint64
func (*VersionProposal) GetEndVotingBlock ¶
func (vp *VersionProposal) GetEndVotingBlock() uint64
func (*VersionProposal) GetNewVersion ¶
func (vp *VersionProposal) GetNewVersion() uint32
func (*VersionProposal) GetPIPID ¶
func (vp *VersionProposal) GetPIPID() string
func (*VersionProposal) GetProposalID ¶
func (vp *VersionProposal) GetProposalID() common.Hash
func (*VersionProposal) GetProposalType ¶
func (vp *VersionProposal) GetProposalType() ProposalType
func (*VersionProposal) GetProposer ¶
func (vp *VersionProposal) GetProposer() discover.NodeID
func (*VersionProposal) GetSubmitBlock ¶
func (vp *VersionProposal) GetSubmitBlock() uint64
func (*VersionProposal) GetTallyResult ¶
func (vp *VersionProposal) GetTallyResult() TallyResult
func (*VersionProposal) String ¶
func (vp *VersionProposal) String() string
type VoteInfo ¶
type VoteInfo struct { ProposalID common.Hash `json:"proposalID"` VoteNodeID discover.NodeID `json:"voteNodeID"` VoteOption VoteOption `json:"voteOption"` }
type VoteOption ¶
type VoteOption uint8
const ( Yes VoteOption = 0x01 No VoteOption = 0x02 Abstention VoteOption = 0x03 )
func ParseVoteOption ¶
func ParseVoteOption(option uint8) VoteOption