pub struct Round<Id: Ord + Eq, H: Ord + Eq, N, Signature> { /* private fields */ }
Expand description

Stores data for a round.

Implementations§

source§

impl<Id, H, N, Signature> Round<Id, H, N, Signature>where Id: Ord + Clone + Eq + Debug, H: Ord + Clone + Eq + Debug, N: Copy + Debug + BlockNumberOps, Signature: Eq + Clone,

source

pub fn new(round_params: RoundParams<Id, H, N>) -> Self

Create a new round accumulator for given round number and with given weight.

source

pub fn number(&self) -> u64

Return the round number.

source

pub fn state(&self) -> State<H, N>

Return the current state.

source

pub fn precommit_ghost(&mut self) -> Option<(H, N)>

Compute and cache the precommit-GHOST.

source

pub fn finalizing_precommits<'a, C: 'a + Chain<H, N>>( &'a mut self, chain: &'a C ) -> Option<impl Iterator<Item = SignedPrecommit<H, N, Signature, Id>> + 'a>

Returns an iterator of all precommits targeting the finalized hash.

Only returns None if no block has been finalized in this round.

source

pub fn estimate(&self) -> Option<&(H, N)>

Fetch the “round-estimate”: the best block which might have been finalized in this round.

Returns None when new new blocks could have been finalized in this round, according to our estimate.

source

pub fn finalized(&self) -> Option<&(H, N)>

Fetch the most recently finalized block.

source

pub fn completable(&self) -> bool

Returns true when the round is completable.

This is the case when the round-estimate is an ancestor of the prevote-ghost head, or when they are the same block and none of its children could possibly have enough precommits.

source

pub fn threshold(&self) -> VoterWeight

Threshold weight for supermajority.

source

pub fn base(&self) -> (H, N)

Return the round base.

source

pub fn voters(&self) -> &VoterSet<Id>

Return the round voters and weights.

source

pub fn primary_voter(&self) -> (&Id, &VoterInfo)

Return the primary voter of the round.

source

pub fn prevote_participation(&self) -> (VoteWeight, usize)

Get the current weight and number of voters who have participated in prevoting.

source

pub fn precommit_participation(&self) -> (VoteWeight, usize)

Get the current weight and number of voters who have participated in precommitting.

source

pub fn prevotes(&self) -> Vec<(Id, Prevote<H, N>, Signature)>

Return all imported prevotes.

source

pub fn precommits(&self) -> Vec<(Id, Precommit<H, N>, Signature)>

Return all imported precommits.

source

pub fn historical_votes(&self) -> &HistoricalVotes<H, N, Signature, Id>

Return all votes for the round (prevotes and precommits), sorted by imported order and indicating the indices where we voted. At most two prevotes and two precommits per voter are present, further equivocations are not stored (as they are redundant).

source

pub fn set_prevoted_index(&mut self)

Set the number of prevotes and precommits received at the moment of prevoting. It should be called inmediatly after prevoting.

source

pub fn set_precommitted_index(&mut self)

Set the number of prevotes and precommits received at the moment of precommiting. It should be called inmediatly after precommiting.

source

pub fn prevoted_index(&self) -> Option<u64>

Get the number of prevotes and precommits received at the moment of prevoting. Returns None if the prevote wasn’t realized.

source

pub fn precommitted_index(&self) -> Option<u64>

Get the number of prevotes and precommits received at the moment of precommiting. Returns None if the precommit wasn’t realized.

Auto Trait Implementations§

§

impl<Id, H, N, Signature> RefUnwindSafe for Round<Id, H, N, Signature>where H: RefUnwindSafe, Id: RefUnwindSafe, N: RefUnwindSafe, Signature: RefUnwindSafe,

§

impl<Id, H, N, Signature> Send for Round<Id, H, N, Signature>where H: Send, Id: Send, N: Send, Signature: Send,

§

impl<Id, H, N, Signature> Sync for Round<Id, H, N, Signature>where H: Sync, Id: Sync, N: Sync, Signature: Sync,

§

impl<Id, H, N, Signature> Unpin for Round<Id, H, N, Signature>where H: Unpin, Id: Unpin, N: Unpin,

§

impl<Id, H, N, Signature> UnwindSafe for Round<Id, H, N, Signature>where H: UnwindSafe + RefUnwindSafe, Id: UnwindSafe + RefUnwindSafe, N: UnwindSafe + RefUnwindSafe, Signature: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.