Struct BabeQueryApi

Source
pub struct BabeQueryApi<'api> { /* private fields */ }

Implementations§

Source§

impl<'api> BabeQueryApi<'api>

Source

pub async fn epoch_index(&self) -> Result<u64>

Current epoch index.

Source

pub async fn authorities(&self) -> Result<Vec<(Public, u64)>>

Current epoch authorities.

Source

pub async fn genesis_slot(&self) -> Result<Slot>

The slot at which the first epoch actually started. This is 0 until the first block of the chain.

Source

pub async fn current_slot(&self) -> Result<Slot>

Current slot number.

Source

pub async fn randomness(&self) -> Result<[u8; 32]>

The epoch randomness for the current epoch.

§Security

This MUST NOT be used for gambling, as it can be influenced by a malicious validator in the short term. It MAY be used in many cryptographic protocols, however, so long as one remembers that this (like everything else on-chain) it is public. For example, it can be used where a number is needed that cannot have been chosen by an adversary, for purposes such as public-coin zero-knowledge proofs.

Source

pub async fn pending_epoch_config_change( &self, ) -> Result<Option<NextConfigDescriptor>>

Pending epoch configuration change that will be applied when the next epoch is enacted.

Source

pub async fn next_randomness(&self) -> Result<[u8; 32]>

Next epoch randomness.

Source

pub async fn next_authorities(&self) -> Result<Vec<(Public, u64)>>

Next epoch authorities.

Source

pub async fn segment_index(&self) -> Result<u32>

Randomness under construction.

We make a trade-off between storage accesses and list length. We store the under-construction randomness in segments of up to UNDER_CONSTRUCTION_SEGMENT_LENGTH.

Once a segment reaches this length, we begin the next one. We reset all segments and return to 0 at the beginning of every epoch.

Source

pub async fn under_construction(&self, key_0: u32) -> Result<Vec<[u8; 32]>>

TWOX-NOTE: SegmentIndex is an increasing integer, so this is okay.

Source

pub async fn initialized(&self) -> Result<Option<Option<PreDigest>>>

Temporary value (cleared at block finalization) which is Some if per-block initialization has already been called for current block.

Source

pub async fn author_vrf_randomness(&self) -> Result<Option<[u8; 32]>>

This field should always be populated during block processing unless secondary plain slots are enabled (which don’t contain a VRF output).

It is set in on_finalize, before it will contain the value from the last block.

Source

pub async fn epoch_start(&self) -> Result<(u32, u32)>

The block numbers when the last and current epoch have started, respectively N-1 and N. NOTE: We track this is in order to annotate the block number when a given pool of entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in slots, which may be skipped, the block numbers may not line up with the slot numbers.

Source

pub async fn lateness(&self) -> Result<u32>

How late the current block is compared to its parent.

This entry is populated as part of block execution and is cleaned up on block finalization. Querying this storage entry outside of block execution context should always yield zero.

Source

pub async fn epoch_config(&self) -> Result<Option<BabeEpochConfiguration>>

The configuration for the current epoch. Should never be None as it is initialized in genesis.

Source

pub async fn next_epoch_config(&self) -> Result<Option<BabeEpochConfiguration>>

The configuration for the next epoch, None if the config will not change (you can fallback to EpochConfig instead in that case).

Source

pub async fn skipped_epochs(&self) -> Result<Vec<(u64, u32)>>

A list of the last 100 skipped epochs and the corresponding session index when the epoch was skipped.

This is only used for validating equivocation proofs. An equivocation proof must contains a key-ownership proof for a given session, therefore we need a way to tie together sessions and epoch indices, i.e. we need to validate that a validator was the owner of a given key on a given session, and what the active epoch index was during that session.

Trait Implementations§

Source§

impl<'api> Clone for BabeQueryApi<'api>

Source§

fn clone(&self) -> BabeQueryApi<'api>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<'api> Freeze for BabeQueryApi<'api>

§

impl<'api> !RefUnwindSafe for BabeQueryApi<'api>

§

impl<'api> Send for BabeQueryApi<'api>

§

impl<'api> Sync for BabeQueryApi<'api>

§

impl<'api> Unpin for BabeQueryApi<'api>

§

impl<'api> !UnwindSafe for BabeQueryApi<'api>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedConversion for T

Source§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
Source§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Src, Dest> IntoTuple<Dest> for Src
where Dest: FromTuple<Src>,

Source§

fn into_tuple(self) -> Dest

Source§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

Source§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

Source§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatedConversion for T

Source§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
Source§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

Source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
Source§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

Source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> JsonSchemaMaybe for T

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSendSync for T