Skip to main content

StakingQueryApi

Struct StakingQueryApi 

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

Implementations§

Source§

impl<'api> StakingQueryApi<'api>

Source

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

The ideal number of active validators.

Source

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

Minimum number of staking participants before emergency conditions are imposed.

Source

pub async fn invulnerables(&self) -> Result<Vec<AccountId>>

Any validators that may never be slashed or forcibly kicked. It’s a Vec since they’re easy to initialize and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets.

Source

pub async fn bonded(&self, key_0: AccountId) -> Result<Option<AccountId>>

Map from all locked “stash” accounts to the controller account.

TWOX-NOTE: SAFE since AccountId is a secure hash.

Source

pub async fn min_nominator_bond(&self) -> Result<u128>

The minimum active bond to become and maintain the role of a nominator.

Source

pub async fn min_validator_bond(&self) -> Result<u128>

The minimum active bond to become and maintain the role of a validator.

Source

pub async fn minimum_active_stake(&self) -> Result<u128>

The minimum active nominator stake of the last successful election.

Source

pub async fn min_commission(&self) -> Result<Perbill>

The minimum amount of commission that validators can set.

If set to 0, no limit exists.

Source

pub async fn ledger(&self, key_0: AccountId) -> Result<Option<StakingLedger>>

Map from all (unlocked) “controller” accounts to the info regarding the staking.

Note: All the reads and mutations to this storage MUST be done through the methods exposed by [StakingLedger] to ensure data and lock consistency.

Source

pub async fn payee( &self, key_0: AccountId, ) -> Result<Option<RewardDestination<AccountId>>>

Where the reward payment should be made. Keyed by stash.

TWOX-NOTE: SAFE since AccountId is a secure hash.

Source

pub async fn validators(&self, key_0: AccountId) -> Result<ValidatorPrefs>

The map from (wannabe) validator stash key to the preferences of that validator.

TWOX-NOTE: SAFE since AccountId is a secure hash.

Source

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

Counter for the related counted storage map

Source

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

The maximum validator count before we stop allowing new validators to join.

When this value is not set, no limits are enforced.

Source

pub async fn nominators(&self, key_0: AccountId) -> Result<Option<Nominations>>

The map from nominator stash key to their nomination preferences, namely the validators that they wish to support.

Note that the keys of this storage map might become non-decodable in case the account’s [NominationsQuota::MaxNominations] configuration is decreased. In this rare case, these nominators are still existent in storage, their key is correct and retrievable (i.e. contains_key indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable nominators will effectively not-exist, until they re-submit their preferences such that it is within the bounds of the newly set Config::MaxNominations.

This implies that ::iter_keys().count() and ::iter().count() might return different values for this map. Moreover, the main ::count() is aligned with the former, namely the number of keys that exist.

Lastly, if any of the nominators become non-decodable, they can be chilled immediately via [Call::chill_other] dispatchable by anyone.

TWOX-NOTE: SAFE since AccountId is a secure hash.

Source

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

Counter for the related counted storage map

Source

pub async fn virtual_stakers(&self, key_0: AccountId) -> Result<Option<()>>

Stakers whose funds are managed by other pallets.

This pallet does not apply any locks on them, therefore they are only virtually bonded. They are expected to be keyless accounts and hence should not be allowed to mutate their ledger directly via this pallet. Instead, these accounts are managed by other pallets and accessed via low level apis. We keep track of them to do minimal integrity checks.

Source

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

Counter for the related counted storage map

Source

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

The maximum nominator count before we stop allowing new validators to join.

When this value is not set, no limits are enforced.

Source

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

The current era index.

This is the latest planned era, depending on how the Session pallet queues the validator set, it might be active or not.

Source

pub async fn active_era(&self) -> Result<Option<ActiveEraInfo>>

The active era information, it holds index and start.

The active era is the era being currently rewarded. Validator set of this era must be equal to [SessionInterface::validators].

Source

pub async fn eras_start_session_index(&self, key_0: u32) -> Result<Option<u32>>

The session index at which the era start for the last [Config::HistoryDepth] eras.

Note: This tracks the starting session (i.e. session index when era start being active) for the eras in [CurrentEra - HISTORY_DEPTH, CurrentEra].

Source

pub async fn eras_stakers( &self, key_0: u32, key_1: AccountId, ) -> Result<Exposure<AccountId, u128>>

Exposure of validator at era.

This is keyed first by the era index to allow bulk deletion and then the stash account.

Is it removed after [Config::HistoryDepth] eras. If stakers hasn’t been set or has been removed then empty exposure is returned.

Note: Deprecated since v14. Use EraInfo instead to work with exposures.

Source

pub async fn eras_stakers_overview( &self, key_0: u32, key_1: AccountId, ) -> Result<Option<PagedExposureMetadata<u128>>>

Summary of validator exposure at a given era.

This contains the total stake in support of the validator and their own stake. In addition, it can also be used to get the number of nominators backing this validator and the number of exposure pages they are divided into. The page count is useful to determine the number of pages of rewards that needs to be claimed.

This is keyed first by the era index to allow bulk deletion and then the stash account. Should only be accessed through EraInfo.

Is it removed after [Config::HistoryDepth] eras. If stakers hasn’t been set or has been removed then empty overview is returned.

Source

pub async fn eras_stakers_clipped( &self, key_0: u32, key_1: AccountId, ) -> Result<Exposure<AccountId, u128>>

Clipped Exposure of validator at era.

Note: This is deprecated, should be used as read-only and will be removed in the future. New Exposures are stored in a paged manner in ErasStakersPaged instead.

This is similar to [ErasStakers] but number of nominators exposed is reduced to the T::MaxExposurePageSize biggest stakers. (Note: the field total and own of the exposure remains unchanged). This is used to limit the i/o cost for the nominator payout.

This is keyed fist by the era index to allow bulk deletion and then the stash account.

It is removed after [Config::HistoryDepth] eras. If stakers hasn’t been set or has been removed then empty exposure is returned.

Note: Deprecated since v14. Use EraInfo instead to work with exposures.

Source

pub async fn eras_stakers_paged( &self, key_0: u32, key_1: AccountId, key_2: u32, ) -> Result<Option<ExposurePage<AccountId, u128>>>

Paginated exposure of a validator at given era.

This is keyed first by the era index to allow bulk deletion, then stash account and finally the page. Should only be accessed through EraInfo.

This is cleared after [Config::HistoryDepth] eras.

Source

pub async fn claimed_rewards( &self, key_0: u32, key_1: AccountId, ) -> Result<Vec<u32>>

History of claimed paged rewards by era and validator.

This is keyed by era and validator stash which maps to the set of page indexes which have been claimed.

It is removed after [Config::HistoryDepth] eras.

Source

pub async fn eras_validator_prefs( &self, key_0: u32, key_1: AccountId, ) -> Result<ValidatorPrefs>

Similar to ErasStakers, this holds the preferences of validators.

This is keyed first by the era index to allow bulk deletion and then the stash account.

Is it removed after [Config::HistoryDepth] eras.

Source

pub async fn eras_validator_reward(&self, key_0: u32) -> Result<Option<u128>>

The total validator era payout for the last [Config::HistoryDepth] eras.

Eras that haven’t finished yet or has been removed doesn’t have reward.

Source

pub async fn eras_reward_points( &self, key_0: u32, ) -> Result<EraRewardPoints<AccountId>>

Rewards for the last [Config::HistoryDepth] eras. If reward hasn’t been set or has been removed then 0 reward is returned.

Source

pub async fn eras_total_stake(&self, key_0: u32) -> Result<u128>

The total amount staked for the last [Config::HistoryDepth] eras. If total hasn’t been set or has been removed then 0 stake is returned.

Source

pub async fn force_era(&self) -> Result<Forcing>

Mode of era forcing.

Source

pub async fn max_staked_rewards(&self) -> Result<Option<Percent>>

Maximum staked rewards, i.e. the percentage of the era inflation that is used for stake rewards. See Era payout.

Source

pub async fn slash_reward_fraction(&self) -> Result<Perbill>

The percentage of the slash that is distributed to reporters.

The rest of the slashed value is handled by the Slash.

Source

pub async fn canceled_slash_payout(&self) -> Result<u128>

The amount of currency given to reporters of a slash event which was canceled by extraordinary circumstances (e.g. governance).

Source

pub async fn unapplied_slashes( &self, key_0: u32, ) -> Result<Vec<UnappliedSlash<AccountId, u128>>>

All unapplied slashes that are queued for later.

Source

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

A mapping from still-bonded eras to the first session index of that era.

Must contains information for eras for the range: [active_era - bounding_duration; active_era]

Source

pub async fn validator_slash_in_era( &self, key_0: u32, key_1: AccountId, ) -> Result<Option<(Perbill, u128)>>

All slashing events on validators, mapped by era to the highest slash proportion and slash value of the era.

Source

pub async fn nominator_slash_in_era( &self, key_0: u32, key_1: AccountId, ) -> Result<Option<u128>>

All slashing events on nominators, mapped by era to the highest slash value of the era.

Source

pub async fn slashing_spans( &self, key_0: AccountId, ) -> Result<Option<SlashingSpans>>

Slashing spans for stash accounts.

Source

pub async fn span_slash( &self, key_0: (AccountId, u32), ) -> Result<SpanRecord<u128>>

Records information about the maximum slash of a stash within a slashing span, as well as how much reward has been paid out.

Source

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

The last planned session scheduled by the session pallet.

This is basically in sync with the call to [pallet_session::SessionManager::new_session].

Source

pub async fn chill_threshold(&self) -> Result<Option<Percent>>

The threshold for when users can start calling chill_other for other validators / nominators. The threshold is compared to the actual number of validators / nominators (CountFor*) in the system compared to the configured max (Max*Count).

Trait Implementations§

Source§

impl<'api> Clone for StakingQueryApi<'api>

Source§

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

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<'api> Freeze for StakingQueryApi<'api>

§

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

§

impl<'api> Send for StakingQueryApi<'api>

§

impl<'api> Sync for StakingQueryApi<'api>

§

impl<'api> Unpin for StakingQueryApi<'api>

§

impl<'api> UnsafeUnpin for StakingQueryApi<'api>

§

impl<'api> !UnwindSafe for StakingQueryApi<'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> JsonSchemaMaybe for T

Source§

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