pub trait StakingInterface {
    type Balance: PartialEq;
    type AccountId;

Show 20 methods fn minimum_nominator_bond() -> Self::Balance; fn minimum_validator_bond() -> Self::Balance; fn stash_by_ctrl(
        controller: &Self::AccountId
    ) -> Result<Self::AccountId, DispatchError>; fn bonding_duration() -> EraIndex; fn current_era() -> EraIndex; fn stake(who: &Self::AccountId) -> Result<Stake<Self>, DispatchError>; fn bond(
        who: &Self::AccountId,
        value: Self::Balance,
        payee: &Self::AccountId
    ) -> DispatchResult; fn nominate(
        who: &Self::AccountId,
        validators: Vec<Self::AccountId>
    ) -> DispatchResult; fn chill(who: &Self::AccountId) -> DispatchResult; fn bond_extra(who: &Self::AccountId, extra: Self::Balance) -> DispatchResult; fn unbond(stash: &Self::AccountId, value: Self::Balance) -> DispatchResult; fn withdraw_unbonded(
        stash: Self::AccountId,
        num_slashing_spans: u32
    ) -> Result<bool, DispatchError>; fn desired_validator_count() -> u32; fn election_ongoing() -> bool; fn force_unstake(who: Self::AccountId) -> DispatchResult; fn is_exposed_in_era(who: &Self::AccountId, era: &EraIndex) -> bool; fn total_stake(
        who: &Self::AccountId
    ) -> Result<Self::Balance, DispatchError> { ... } fn active_stake(
        who: &Self::AccountId
    ) -> Result<Self::Balance, DispatchError> { ... } fn is_unbonding(who: &Self::AccountId) -> Result<bool, DispatchError> { ... } fn fully_unbond(who: &Self::AccountId) -> DispatchResult { ... }
}
Expand description

A generic representation of a staking implementation.

This interface uses the terminology of NPoS, but it is aims to be generic enough to cover other implementations as well.

Required Associated Types§

Balance type used by the staking system.

AccountId type used by the staking system

Required Methods§

The minimum amount required to bond in order to set nomination intentions. This does not necessarily mean the nomination will be counted in an election, but instead just enough to be stored as a nominator. In other words, this is the minimum amount to register the intention to nominate.

The minimum amount required to bond in order to set validation intentions.

Return a stash account that is controlled by a controller.

Note

The controller abstraction is not permanent and might go away. Avoid using this as much as possible.

Number of eras that staked funds must remain bonded for.

The current era index.

This should be the latest planned era that the staking system knows about.

Returns the stake of who.

Bond (lock) value of who’s balance, while forwarding any rewards to payee.

Have who nominate validators.

Chill who.

Bond some extra amount in who’s free balance against the active bonded balance of the account. The amount extra actually bonded will never be more than who’s free balance.

Schedule a portion of the active bonded balance to be unlocked at era Self::current_era + Self::bonding_duration.

Once the unlock era has been reached, Self::withdraw_unbonded can be called to unlock the funds.

The amount of times this can be successfully called is limited based on how many distinct eras funds are schedule to unlock in. Calling Self::withdraw_unbonded after some unlock schedules have reached their unlocking era should allow more calls to this function.

Unlock any funds schedule to unlock before or at the current era.

Returns whether the stash was killed because of this withdraw or not.

The ideal number of active validators.

Whether or not there is an ongoing election.

Force a current staker to become completely unstaked, immediately.

Checks whether an account staker has been exposed in an era.

Provided Methods§

Implementors§