pub trait AggregatableVote<TYPES: NodeType, VOTE: Vote<TYPES>, CERT: Certificate<TYPES, Voteable = VOTE::Commitment>> {
    // Required methods
    fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey;
    fn make_cert_event(
        certificate: CERT,
        key: &TYPES::SignatureKey
    ) -> HotShotEvent<TYPES>;
}
Expand description

Describes the functions a vote must implement for it to be aggregatable by the generic vote collection task

Required Methods§

source

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

return the leader for this votes

source

fn make_cert_event( certificate: CERT, key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

return the Hotshot event for the completion of this CERT

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, DaData>, SimpleCertificate<TYPES, DaData, SuccessThreshold>> for DaVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: DaCertificate<TYPES>, key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, QuorumData<TYPES>>, SimpleCertificate<TYPES, QuorumData<TYPES>, SuccessThreshold>> for QuorumVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: QuorumCertificate<TYPES>, _key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, TimeoutData<TYPES>>, SimpleCertificate<TYPES, TimeoutData<TYPES>, SuccessThreshold>> for TimeoutVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: TimeoutCertificate<TYPES>, _key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, UpgradeProposalData<TYPES>>, SimpleCertificate<TYPES, UpgradeProposalData<TYPES>, UpgradeThreshold>> for UpgradeVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: UpgradeCertificate<TYPES>, _key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, ViewSyncCommitData<TYPES>>, SimpleCertificate<TYPES, ViewSyncCommitData<TYPES>, SuccessThreshold>> for ViewSyncCommitVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: ViewSyncCommitCertificate2<TYPES>, key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, ViewSyncFinalizeData<TYPES>>, SimpleCertificate<TYPES, ViewSyncFinalizeData<TYPES>, SuccessThreshold>> for ViewSyncFinalizeVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: ViewSyncFinalizeCertificate2<TYPES>, key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

source§

impl<TYPES: NodeType> AggregatableVote<TYPES, SimpleVote<TYPES, ViewSyncPreCommitData<TYPES>>, SimpleCertificate<TYPES, ViewSyncPreCommitData<TYPES>, OneHonestThreshold>> for ViewSyncPreCommitVote<TYPES>

source§

fn leader(&self, membership: &TYPES::Membership) -> TYPES::SignatureKey

source§

fn make_cert_event( certificate: ViewSyncPreCommitCertificate2<TYPES>, key: &TYPES::SignatureKey ) -> HotShotEvent<TYPES>

Implementors§