Struct polymesh_api::polymesh::api::staking::StakingQueryApi
source · pub struct StakingQueryApi<'api> { /* private fields */ }
Implementations§
source§impl<'api> StakingQueryApi<'api>
impl<'api> StakingQueryApi<'api>
sourcepub async fn history_depth(&self) -> Result<u32>
pub async fn history_depth(&self) -> Result<u32>
Number of eras to keep in history.
Information is kept for eras in [current_era - history_depth; current_era]
.
Must be more than the number of eras delayed by session otherwise. I.e. active era must
always be in history. I.e. active_era > current_era - history_depth
must be
guaranteed.
sourcepub async fn validator_count(&self) -> Result<u32>
pub async fn validator_count(&self) -> Result<u32>
The ideal number of staking participants.
sourcepub async fn minimum_validator_count(&self) -> Result<u32>
pub async fn minimum_validator_count(&self) -> Result<u32>
Minimum number of staking participants before emergency conditions are imposed.
sourcepub async fn invulnerables(&self) -> Result<Vec<AccountId>>
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.
sourcepub async fn bonded(&self, key_0: AccountId) -> Result<Option<AccountId>>
pub async fn bonded(&self, key_0: AccountId) -> Result<Option<AccountId>>
Map from all locked “stash” accounts to the controller account.
sourcepub async fn ledger(
&self,
key_0: AccountId
) -> Result<Option<StakingLedger<AccountId, u128>>>
pub async fn ledger( &self, key_0: AccountId ) -> Result<Option<StakingLedger<AccountId, u128>>>
Map from all (unlocked) “controller” accounts to the info regarding the staking.
sourcepub async fn payee(
&self,
key_0: AccountId
) -> Result<RewardDestination<AccountId>>
pub async fn payee( &self, key_0: AccountId ) -> Result<RewardDestination<AccountId>>
Where the reward payment should be made. Keyed by stash.
sourcepub async fn validators(&self, key_0: AccountId) -> Result<ValidatorPrefs>
pub async fn validators(&self, key_0: AccountId) -> Result<ValidatorPrefs>
The map from (wannabe) validator stash key to the preferences of that validator.
sourcepub async fn nominators(
&self,
key_0: AccountId
) -> Result<Option<Nominations<AccountId>>>
pub async fn nominators( &self, key_0: AccountId ) -> Result<Option<Nominations<AccountId>>>
The map from nominator stash key to the set of stash keys of all validators to nominate.
sourcepub async fn current_era(&self) -> Result<Option<u32>>
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.
sourcepub async fn active_era(&self) -> Result<Option<ActiveEraInfo>>
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
].
sourcepub async fn eras_start_session_index(&self, key_0: u32) -> Result<Option<u32>>
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 HISTORY_DEPTH
eras.
Note: This tracks the starting session (i.e. session index when era start being active)
for the eras in [CurrentEra - HISTORY_DEPTH, CurrentEra]
.
sourcepub async fn eras_stakers(
&self,
key_0: u32,
key_1: AccountId
) -> Result<Exposure<AccountId, u128>>
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 HISTORY_DEPTH
eras.
If stakers hasn’t been set or has been removed then empty exposure is returned.
sourcepub async fn eras_stakers_clipped(
&self,
key_0: u32,
key_1: AccountId
) -> Result<Exposure<AccountId, u128>>
pub async fn eras_stakers_clipped( &self, key_0: u32, key_1: AccountId ) -> Result<Exposure<AccountId, u128>>
Clipped Exposure of validator at era.
This is similar to [ErasStakers
] but number of nominators exposed is reduced to the
T::MaxNominatorRewardedPerValidator
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.
Is it removed after HISTORY_DEPTH
eras.
If stakers hasn’t been set or has been removed then empty exposure is returned.
sourcepub async fn eras_validator_prefs(
&self,
key_0: u32,
key_1: AccountId
) -> Result<ValidatorPrefs>
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 HISTORY_DEPTH
eras.
sourcepub async fn eras_validator_reward(&self, key_0: u32) -> Result<Option<u128>>
pub async fn eras_validator_reward(&self, key_0: u32) -> Result<Option<u128>>
The total validator era payout for the last HISTORY_DEPTH
eras.
Eras that haven’t finished yet or has been removed doesn’t have reward.
sourcepub async fn eras_reward_points(
&self,
key_0: u32
) -> Result<EraRewardPoints<AccountId>>
pub async fn eras_reward_points( &self, key_0: u32 ) -> Result<EraRewardPoints<AccountId>>
Rewards for the last HISTORY_DEPTH
eras.
If reward hasn’t been set or has been removed then 0 reward is returned.
sourcepub async fn eras_total_stake(&self, key_0: u32) -> Result<u128>
pub async fn eras_total_stake(&self, key_0: u32) -> Result<u128>
The total amount staked for the last HISTORY_DEPTH
eras.
If total hasn’t been set or has been removed then 0 stake is returned.
sourcepub async fn slash_reward_fraction(&self) -> Result<Perbill>
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
.
sourcepub async fn canceled_slash_payout(&self) -> Result<u128>
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).
sourcepub async fn unapplied_slashes(
&self,
key_0: u32
) -> Result<Vec<UnappliedSlash<AccountId, u128>>>
pub async fn unapplied_slashes( &self, key_0: u32 ) -> Result<Vec<UnappliedSlash<AccountId, u128>>>
All unapplied slashes that are queued for later.
sourcepub async fn bonded_eras(&self) -> Result<Vec<(u32, u32)>>
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]
sourcepub async fn validator_slash_in_era(
&self,
key_0: u32,
key_1: AccountId
) -> Result<Option<(Perbill, u128)>>
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.
sourcepub async fn nominator_slash_in_era(
&self,
key_0: u32,
key_1: AccountId
) -> Result<Option<u128>>
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.
sourcepub async fn slashing_spans(
&self,
key_0: AccountId
) -> Result<Option<SlashingSpans>>
pub async fn slashing_spans( &self, key_0: AccountId ) -> Result<Option<SlashingSpans>>
Slashing spans for stash accounts.
sourcepub async fn span_slash(
&self,
key_0: (AccountId, u32)
) -> Result<SpanRecord<u128>>
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.
sourcepub async fn earliest_unapplied_slash(&self) -> Result<Option<u32>>
pub async fn earliest_unapplied_slash(&self) -> Result<Option<u32>>
The earliest era for which we have a pending, unapplied slash.
sourcepub async fn offending_validators(&self) -> Result<Vec<(u32, bool)>>
pub async fn offending_validators(&self) -> Result<Vec<(u32, bool)>>
Indices of validators that have offended in the active era and whether they are currently disabled.
This value should be a superset of disabled validators since not all offences lead to the
validator being disabled (if there was no slash). This is needed to track the percentage of
validators that have offended in the current era, ensuring a new era is forced if
OffendingValidatorsThreshold
is reached. The vec is always kept sorted so that we can find
whether a given validator has previously offended using binary search. It gets cleared when
the era ends.
sourcepub async fn snapshot_validators(&self) -> Result<Option<Vec<AccountId>>>
pub async fn snapshot_validators(&self) -> Result<Option<Vec<AccountId>>>
Snapshot of validators at the beginning of the current election window. This should only
have a value when [EraElectionStatus
] == ElectionStatus::Open(_)
.
sourcepub async fn snapshot_nominators(&self) -> Result<Option<Vec<AccountId>>>
pub async fn snapshot_nominators(&self) -> Result<Option<Vec<AccountId>>>
Snapshot of nominators at the beginning of the current election window. This should only
have a value when [EraElectionStatus
] == ElectionStatus::Open(_)
.
sourcepub async fn queued_elected(
&self
) -> Result<Option<ElectionResult<AccountId, u128>>>
pub async fn queued_elected( &self ) -> Result<Option<ElectionResult<AccountId, u128>>>
The next validator set. At the end of an era, if this is available (potentially from the result of an offchain worker), it is immediately used. Otherwise, the on-chain election is executed.
sourcepub async fn queued_score(&self) -> Result<Option<ElectionScore>>
pub async fn queued_score(&self) -> Result<Option<ElectionScore>>
The score of the current [QueuedElected
].
sourcepub async fn era_election_status(&self) -> Result<ElectionStatus<u32>>
pub async fn era_election_status(&self) -> Result<ElectionStatus<u32>>
Flag to control the execution of the offchain election. When Open(_)
, we accept
solutions to be submitted.
sourcepub async fn is_current_session_final(&self) -> Result<bool>
pub async fn is_current_session_final(&self) -> Result<bool>
True if the current planned session is final. Note that this does not take era forcing into account.
sourcepub async fn permissioned_identity(
&self,
key_0: IdentityId
) -> Result<Option<PermissionedIdentityPrefs>>
pub async fn permissioned_identity( &self, key_0: IdentityId ) -> Result<Option<PermissionedIdentityPrefs>>
Entities that are allowed to run operator/validator nodes.
sourcepub async fn validator_commission_cap(&self) -> Result<Perbill>
pub async fn validator_commission_cap(&self) -> Result<Perbill>
Every validator has commission that should be in the range [0, Cap].
sourcepub async fn minimum_bond_threshold(&self) -> Result<u128>
pub async fn minimum_bond_threshold(&self) -> Result<u128>
The minimum amount with which a validator can bond.
pub async fn slashing_allowed_for(&self) -> Result<SlashingSwitch>
sourcepub async fn storage_version(&self) -> Result<Releases>
pub async fn storage_version(&self) -> Result<Releases>
True if network has been upgraded to this version. Storage version of the pallet.
This is set to v6.0.1 for new networks.
sourcepub async fn polymesh_storage_version(&self) -> Result<Version>
pub async fn polymesh_storage_version(&self) -> Result<Version>
Polymesh Storage version.
Trait Implementations§
source§impl<'api> Clone for StakingQueryApi<'api>
impl<'api> Clone for StakingQueryApi<'api>
source§fn clone(&self) -> StakingQueryApi<'api>
fn clone(&self) -> StakingQueryApi<'api>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
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> !UnwindSafe for StakingQueryApi<'api>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.