Enum pallet_staking::pallet::Call[][src]

pub enum Call<T: Config> {
Show 25 variants bond(<T::Lookup as StaticLookup>::SourceBalanceOf<T>, RewardDestination<T::AccountId>), bond_extra(BalanceOf<T>), unbond(BalanceOf<T>), withdraw_unbonded(u32), validate(ValidatorPrefs), nominate(Vec<<T::Lookup as StaticLookup>::Source>), chill(), set_payee(RewardDestination<T::AccountId>), set_controller(<T::Lookup as StaticLookup>::Source), set_validator_count(u32), increase_validator_count(u32), scale_validator_count(Percent), force_no_eras(), force_new_era(), set_invulnerables(Vec<T::AccountId>), force_unstake(T::AccountIdu32), force_new_era_always(), cancel_deferred_slash(EraIndexVec<u32>), payout_stakers(T::AccountIdEraIndex), rebond(BalanceOf<T>), set_history_depth(EraIndexu32), reap_stash(T::AccountIdu32), kick(Vec<<T::Lookup as StaticLookup>::Source>), set_staking_limits(BalanceOf<T>, BalanceOf<T>, Option<u32>, Option<u32>, Option<Percent>), chill_other(T::AccountId), // some variants omitted
}
Expand description

Contains one variant per dispatchable that can be called by an extrinsic.

Variants

bond(<T::Lookup as StaticLookup>::SourceBalanceOf<T>, RewardDestination<T::AccountId>)

Take the origin account as a stash and lock up value of its balance. controller will be the account that controls it.

value must be more than the minimum_balance specified by T::Currency.

The dispatch origin for this call must be Signed by the stash account.

Emits Bonded.

NOTE: Two of the storage writes (Self::bonded, Self::payee) are never cleaned unless the origin falls below existential deposit and gets removed as dust.

Tuple Fields of bond

0: <T::Lookup as StaticLookup>::Source1: BalanceOf<T>2: RewardDestination<T::AccountId>
bond_extra(BalanceOf<T>)

Add some extra amount that have appeared in the stash free_balance into the balance up for staking.

The dispatch origin for this call must be Signed by the stash, not the controller.

Use this if there are additional funds in your stash account that you wish to bond. Unlike bond or unbond this function does not impose any limitation on the amount that can be added.

Emits Bonded.

Tuple Fields of bond_extra

0: BalanceOf<T>
unbond(BalanceOf<T>)

Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends. If this leaves an amount actively bonded less than T::Currency::minimum_balance(), then it is increased to the full amount.

The dispatch origin for this call must be Signed by the controller, not the stash.

Once the unlock period is done, you can call withdraw_unbonded to actually move the funds out of management ready for transfer.

No more than a limited number of unlocking chunks (see MAX_UNLOCKING_CHUNKS) can co-exists at the same time. In that case, Call::withdraw_unbonded need to be called first to remove some of the chunks (if possible).

If a user encounters the InsufficientBond error when calling this extrinsic, they should call chill first in order to free up their bonded funds.

Emits Unbonded.

See also Call::withdraw_unbonded.

Tuple Fields of unbond

0: BalanceOf<T>
withdraw_unbonded(u32)

Remove any unlocked chunks from the unlocking queue from our management.

This essentially frees up that balance to be used by the stash account to do whatever it wants.

The dispatch origin for this call must be Signed by the controller.

Emits Withdrawn.

See also Call::unbond.

Complexity O(S) where S is the number of slashing spans to remove NOTE: Weight annotation is the kill scenario, we refund otherwise.

Tuple Fields of withdraw_unbonded

0: u32
validate(ValidatorPrefs)

Declare the desire to validate for the origin controller.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

Tuple Fields of validate

0: ValidatorPrefs
nominate(Vec<<T::Lookup as StaticLookup>::Source>)

Declare the desire to nominate targets for the origin controller.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

Tuple Fields of nominate

0: Vec<<T::Lookup as StaticLookup>::Source>
chill()

Declare no desire to either validate or nominate.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

Tuple Fields of chill

set_payee(RewardDestination<T::AccountId>)

(Re-)set the payment target for a controller.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.


Tuple Fields of set_payee

0: RewardDestination<T::AccountId>
set_controller(<T::Lookup as StaticLookup>::Source)

(Re-)set the controller of a stash.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the stash, not the controller.


Weight: O(1) DB Weight:

Tuple Fields of set_controller

0: <T::Lookup as StaticLookup>::Source
set_validator_count(u32)

Sets the ideal number of validators.

The dispatch origin must be Root.

Weight: O(1) Write: Validator Count

Tuple Fields of set_validator_count

0: u32
increase_validator_count(u32)

Increments the ideal number of validators.

The dispatch origin must be Root.

Same as Self::set_validator_count.

Tuple Fields of increase_validator_count

0: u32
scale_validator_count(Percent)

Scale up the ideal number of validators by a factor.

The dispatch origin must be Root.

Same as Self::set_validator_count.

Tuple Fields of scale_validator_count

0: Percent
force_no_eras()

Force there to be no new eras indefinitely.

The dispatch origin must be Root.

Warning

The election process starts multiple blocks before the end of the era. Thus the election process may be ongoing when this is called. In this case the election will continue until the next era is triggered.

Tuple Fields of force_no_eras

force_new_era()

Force there to be a new era at the end of the next session. After this, it will be reset to normal (non-forced) behaviour.

The dispatch origin must be Root.

Warning

The election process starts multiple blocks before the end of the era. If this is called just before a new era is triggered, the election process may not have enough blocks to get a result.

Tuple Fields of force_new_era

set_invulnerables(Vec<T::AccountId>)

Set the validators who cannot be slashed (if any).

The dispatch origin must be Root.

Tuple Fields of set_invulnerables

0: Vec<T::AccountId>
force_unstake(T::AccountIdu32)

Force a current staker to become completely unstaked, immediately.

The dispatch origin must be Root.

O(S) where S is the number of slashing spans to be removed Reads: Bonded, Slashing Spans, Account, Locks Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks Writes Each: SpanSlash * S

Tuple Fields of force_unstake

0: T::AccountId1: u32
force_new_era_always()

Force there to be a new era at the end of sessions indefinitely.

The dispatch origin must be Root.

Warning

The election process starts multiple blocks before the end of the era. If this is called just before a new era is triggered, the election process may not have enough blocks to get a result.

Tuple Fields of force_new_era_always

cancel_deferred_slash(EraIndexVec<u32>)

Cancel enactment of a deferred slash.

Can be called by the T::SlashCancelOrigin.

Parameters: era and indices of the slashes for that era to kill.

Complexity: O(U + S) with U unapplied slashes weighted with U=1000 and S is the number of slash indices to be canceled.

Tuple Fields of cancel_deferred_slash

0: EraIndex1: Vec<u32>
payout_stakers(T::AccountIdEraIndex)

Pay out all the stakers behind a single validator for a single era.

The origin of this call must be Signed. Any account can call this function, even if it is not one of the stakers.


N is the Number of payouts for the validator (including the validator) Weight:

Tuple Fields of payout_stakers

0: T::AccountId1: EraIndex
rebond(BalanceOf<T>)

Rebond a portion of the stash scheduled to be unlocked.

The dispatch origin must be signed by the controller.

Tuple Fields of rebond

0: BalanceOf<T>
set_history_depth(EraIndexu32)

Set HistoryDepth value. This function will delete any history information when HistoryDepth is reduced.

Parameters:

Origin must be root.

Tuple Fields of set_history_depth

0: EraIndex1: u32
reap_stash(T::AccountIdu32)

Remove all data structure concerning a staker/stash once its balance is at the minimum. This is essentially equivalent to withdraw_unbonded except it can be called by anyone and the target stash must have no funds left beyond the ED.

This can be called from any origin.

Complexity: O(S) where S is the number of slashing spans on the account. DB Weight:

Tuple Fields of reap_stash

0: T::AccountId1: u32
kick(Vec<<T::Lookup as StaticLookup>::Source>)

Remove the given nominations from the calling validator.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed by the controller, not the stash.

Note: Making this call only makes sense if you first set the validator preferences to block any further nominations.

Tuple Fields of kick

0: Vec<<T::Lookup as StaticLookup>::Source>
set_staking_limits(BalanceOf<T>, BalanceOf<T>, Option<u32>, Option<u32>, Option<Percent>)

Update the various staking limits this pallet.

Origin must be Root to call this function.

NOTE: Existing nominators and validators will not be affected by this update. to kick people under the new limits, chill_other should be called.

Tuple Fields of set_staking_limits

0: BalanceOf<T>1: BalanceOf<T>2: Option<u32>3: Option<u32>4: Option<Percent>
chill_other(T::AccountId)

Declare a controller to stop participating as either a validator or nominator.

Effects will be felt at the beginning of the next era.

The dispatch origin for this call must be Signed, but can be called by anyone.

If the caller is the same as the controller being targeted, then no further checks are enforced, and this function behaves just like chill.

If the caller is different than the controller being targeted, the following conditions must be met:

This can be helpful if bond requirements are updated, and we need to remove old users who do not satisfy these requirements.

Tuple Fields of chill_other

0: T::AccountId

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Attempt to deserialise the value from input.

Attempt to skip the encoded value from input. Read more

Returns the fixed encoded size of the type. Read more

Convert self to a slice and append it to the destination.

If possible give a hint of expected size of the encoding. Read more

Convert self to an owned vector.

Convert self to a slice and then invoke the given closure with it.

Calculates the encoded size. Read more

Return the function name of the Call.

Return all function names.

Return a DispatchInfo, containing relevant information of this dispatch. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

The origin type of the runtime, (i.e. frame_system::Config::Origin).

Dispatch this call but do not check the filter in origin.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

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

Decode Self and consume all of the given input data. Read more

Decode Self and consume all of the given input data. Read more

Decode Self with the given maximum recursion depth. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Performs the conversion.

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

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

Performs the conversion.

Cast reference.

Cast reference.

Cast mutable reference.

Cast mutable reference.

Get a reference to the inner from the outer.

Get a mutable reference to the inner from the outer.

Return an encoding of Self prepended by given slice.

Should always be Self

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

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

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

Checks if self is actually part of its subset T (and can be converted to it).

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

The inclusion map: converts self to the equivalent element of its superset.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The counterpart to unchecked_from.

Consume self to return an equivalent value of T.