[−][src]Enum pallet_staking::Call
Dispatchable calls.
Each variant of this enum maps to a dispatchable function from the associated module.
Variants
bond(<T::Lookup as StaticLookup>::Source, BalanceOf<T>, RewardDestination)
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
.
- Independent of the arguments. Moderate complexity.
- O(1).
- Three extra DB entries.
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.
bond_extra(BalanceOf<T>)
Add some extra amount that have appeared in the stash free_balance
into the balance up
for staking.
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.
The dispatch origin for this call must be Signed by the stash, not the controller.
Emits Bonded
.
- Independent of the arguments. Insignificant complexity.
- O(1).
- One DB entry.
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.
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).
The dispatch origin for this call must be Signed by the controller, not the stash.
Emits Unbonded
.
See also Call::withdraw_unbonded
.
- Independent of the arguments. Limited but potentially exploitable complexity.
- Contains a limited number of reads.
- Each call (requires the remainder of the bonded balance to be above
minimum_balance
) will cause a new entry to be inserted into a vector (Ledger.unlocking
) kept in storage. The only way to clean the aforementioned storage item is also user-controlled viawithdraw_unbonded
. - One DB entry.
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, not the stash.
Emits Withdrawn
.
See also Call::unbond
.
- Could be dependent on the
origin
argument and how muchunlocking
chunks exist. It impliesconsolidate_unlocked
which loops overLedger.unlocking
, which is indirectly user-controlled. See [unbond
] for more detail. - Contains a limited number of reads, yet the size of which could be large based on
ledger
. - Writes are limited to the
origin
account key.
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.
- Independent of the arguments. Insignificant complexity.
- Contains a limited number of reads.
- Writes are limited to the
origin
account key.
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.
- The transaction's complexity is proportional to the size of
targets
, which is capped atMAX_NOMINATIONS
. - Both the reads and writes follow a similar pattern.
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.
- Independent of the arguments. Insignificant complexity.
- Contains one read.
- Writes are limited to the
origin
account key.
set_payee(RewardDestination)
(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.
- Independent of the arguments. Insignificant complexity.
- Contains a limited number of reads.
- Writes are limited to the
origin
account key.
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.
- Independent of the arguments. Insignificant complexity.
- Contains a limited number of reads.
- Writes are limited to the
origin
account key.
set_validator_count(u32)
The ideal number of validators.
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.
- No arguments.
Set the validators who cannot be slashed (if any).
force_unstake(T::AccountId)
Force a current staker to become completely unstaked, immediately.
Cancel enactment of a deferred slash. Can be called by either the root origin or
the T::SlashCancelOrigin
.
passing the era and indices of the slashes for that era to kill.
- One storage write.
Make one nominator's payout for one era.
who
is the controller account of the nominator to pay out.era
may not be lower than one following the most recently paid era. If it is higher, then it indicates an instruction to skip the payout of all previous eras.validators
is the list of all validators thatwho
had exposure to duringera
, alongside the index ofwho
in the clipped exposure of the validator. I.e. each element is a tuple of(validator, index of
whoin clipped exposure of validator)
. If it is incomplete, then less than the full reward will be paid out. It must not exceedMAX_NOMINATIONS
.
WARNING: once an era is payed for a validator such validator can't claim the payout of previous era.
WARNING: Incorrect arguments here can result in loss of payout. Be very careful.
- Number of storage read of
O(validators)
;validators
is the argument of the call, and is bounded byMAX_NOMINATIONS
. - Each storage read is
O(N)
size and decode complexity;N
is the maximum nominations that can be given to a single validator. - Computation complexity:
O(MAX_NOMINATIONS * logN)
;MAX_NOMINATIONS
is the maximum number of validators that may be nominated by a single nominator, it is bounded only economically (all nominators are required to place a minimum stake).
payout_validator(EraIndex)
Make one validator's payout for one era.
who
is the controller account of the validator to pay out.era
may not be lower than one following the most recently paid era. If it is higher, then it indicates an instruction to skip the payout of all previous eras.
WARNING: once an era is payed for a validator such validator can't claim the payout of previous era.
WARNING: Incorrect arguments here can result in loss of payout. Be very careful.
- Time complexity: O(1).
- Contains a limited number of reads and writes.
rebond(BalanceOf<T>)
Rebond a portion of the stash scheduled to be unlocked.
- Time complexity: O(1). Bounded by
MAX_UNLOCKING_CHUNKS
. - Storage changes: Can't increase storage, only decrease it.
set_history_depth(EraIndex)
Set history_depth value.
Origin must be root.
reap_stash(T::AccountId)
Remove all data structure concerning a staker/stash once its balance is zero.
This is essentially equivalent to withdraw_unbonded
except it can be called by anyone
and the target stash
must have no funds left.
This can be called from any origin.
stash
: The stash account to reap. Its balance must be zero.
Trait Implementations
impl<T: Trait> Clone for Call<T>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Trait> Debug for Call<T>
[src]
impl<T: Trait> Decode for Call<T> where
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
Vec<T::AccountId>: Decode,
Vec<T::AccountId>: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
Vec<(T::AccountId, u32)>: Decode,
Vec<(T::AccountId, u32)>: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
[src]
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
Vec<T::AccountId>: Decode,
Vec<T::AccountId>: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
Vec<(T::AccountId, u32)>: Decode,
Vec<(T::AccountId, u32)>: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
impl<T: Trait> Dispatchable for Call<T>
[src]
type Trait = T
...
type Origin = T::Origin
Every function call from your runtime has an origin, which specifies where the extrinsic was generated from. In the case of a signed extrinsic (transaction), the origin contains an identifier for the caller. The origin can be empty in the case of an inherent extrinsic. Read more
fn dispatch(self, _origin: Self::Origin) -> DispatchResult
[src]
impl<T: Trait> Encode for Call<T> where
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<(T::AccountId, u32)>: Encode,
Vec<(T::AccountId, u32)>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
[src]
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<(T::AccountId, u32)>: Encode,
Vec<(T::AccountId, u32)>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
fn encode_to<EncOut: Output>(&self, dest: &mut EncOut)
[src]
fn size_hint(&self) -> usize
[src]
fn encode(&self) -> Vec<u8>
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
impl<T: Trait> EncodeLike<Call<T>> for Call<T> where
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<(T::AccountId, u32)>: Encode,
Vec<(T::AccountId, u32)>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
[src]
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
Vec<T::AccountId>: Encode,
Vec<T::AccountId>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<(T::AccountId, u32)>: Encode,
Vec<(T::AccountId, u32)>: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
impl<T: Trait> Eq for Call<T>
[src]
impl<T: Trait> GetCallName for Call<T>
[src]
fn get_call_name(&self) -> &'static str
[src]
fn get_call_names() -> &'static [&'static str]
[src]
impl<T: Trait> GetDispatchInfo for Call<T>
[src]
fn get_dispatch_info(&self) -> DispatchInfo
[src]
impl<T: Trait> PartialEq<Call<T>> for Call<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Call<T> where
T: RefUnwindSafe,
<T as Trait>::AccountId: RefUnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: RefUnwindSafe,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: RefUnwindSafe,
T: RefUnwindSafe,
<T as Trait>::AccountId: RefUnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: RefUnwindSafe,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T> Send for Call<T> where
T: Send,
<T as Trait>::AccountId: Send,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Send,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Send,
T: Send,
<T as Trait>::AccountId: Send,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Send,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Send,
impl<T> Sync for Call<T> where
T: Sync,
<T as Trait>::AccountId: Sync,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Sync,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Sync,
T: Sync,
<T as Trait>::AccountId: Sync,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Sync,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Sync,
impl<T> Unpin for Call<T> where
T: Unpin,
<T as Trait>::AccountId: Unpin,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Unpin,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Unpin,
T: Unpin,
<T as Trait>::AccountId: Unpin,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: Unpin,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: Unpin,
impl<T> UnwindSafe for Call<T> where
T: UnwindSafe,
<T as Trait>::AccountId: UnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: UnwindSafe,
T: UnwindSafe,
<T as Trait>::AccountId: UnwindSafe,
<<T as Trait>::Currency as Currency<<T as Trait>::AccountId>>::Balance: UnwindSafe,
<T as Trait>::Currency: Currency<<T as Trait>::AccountId>,
<T as Trait>::Lookup: StaticLookup,
<<T as Trait>::Lookup as StaticLookup>::Source: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<S> Codec for S where
S: Encode + Decode,
[src]
S: Encode + Decode,
impl<T, X> Decode for X where
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
[src]
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
impl<T> DecodeAll for T where
T: Decode,
[src]
T: Decode,
impl<T, X> Encode for X where
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
[src]
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
fn size_hint(&self) -> usize
[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
fn encode(&self) -> Vec<u8>
[src]
fn encode_to<W>(&self, dest: &mut W) where
W: Output,
[src]
W: Output,
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode,
[src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> EncodeLike<Box<T>> for T where
T: Encode,
[src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
T: Encode + ToOwned,
[src]
T: Encode + ToOwned,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode,
[src]
T: Encode,
impl<T> From<T> for T
[src]
impl<S> FullCodec for S where
S: Decode + FullEncode,
[src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
S: Encode + EncodeLike<S>,
[src]
S: Encode + EncodeLike<S>,
impl<T> Hashable for T where
T: Codec,
[src]
T: Codec,
fn blake2_128(&self) -> [u8; 16]
[src]
fn blake2_256(&self) -> [u8; 32]
[src]
fn blake2_128_concat(&self) -> Vec<u8>
[src]
fn twox_128(&self) -> [u8; 16]
[src]
fn twox_256(&self) -> [u8; 32]
[src]
fn twox_64_concat(&self) -> Vec<u8>
[src]
fn identity(&self) -> Vec<u8>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
fn from_ref(outer: &Outer) -> &T
Get a reference to the inner from the outer.
fn from_mut(outer: &mut Outer) -> &mut T
Get a mutable reference to the inner from the outer.
impl<T> KeyedVec for T where
T: Codec,
[src]
T: Codec,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Member for T where
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
[src]
T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug,
impl<T> Parameter for T where
T: Codec + EncodeLike<T> + Clone + Eq + Debug,
[src]
T: Codec + EncodeLike<T> + Clone + Eq + Debug,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Self: UniqueSaturatedInto<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,