Enum pallet_staking::Call [−][src]
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<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
.
- 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.
Weight: O(1) DB Weight:
- Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks
- Write: Bonded, Payee, [Origin Account], Locks, Ledger
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 and
it can be only called when EraElectionStatus
is Closed
.
Emits Bonded
.
- Independent of the arguments. Insignificant complexity.
- O(1).
- One DB entry.
DB Weight:
- Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks
- Write: [Origin Account], Locks, Ledger
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.
And, it can be only called when EraElectionStatus
is Closed
.
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.
Weight: O(1) DB Weight:
- Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,
- Write: Locks, Ledger, BalanceOf Stash,
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, not the stash.
And, it can be only called when EraElectionStatus
is Closed
.
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.
Complexity O(S) where S is the number of slashing spans to remove Update:
- Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]
- Writes: [Origin Account], Locks, Ledger Kill:
- Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin Account], Locks, BalanceOf stash
- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, [Origin Account], Locks, BalanceOf stash.
- Writes Each: SpanSlash * S NOTE: Weight annotation is the kill scenario, we refund otherwise.
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.
And, it can be only called when EraElectionStatus
is Closed
.
- Independent of the arguments. Insignificant complexity.
- Contains a limited number of reads.
- Writes are limited to the
origin
account key.
Weight: O(1) DB Weight:
- Read: Era Election Status, Ledger
- Write: Nominators, Validators
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. This can only be called when
EraElectionStatus
is Closed
.
The dispatch origin for this call must be Signed by the controller, not the stash.
And, it can be only called when EraElectionStatus
is Closed
.
- The transaction's complexity is proportional to the size of
targets
(N) which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS). - Both the reads and writes follow a similar pattern.
Weight: O(N) where N is the number of targets DB Weight:
- Reads: Era Election Status, Ledger, Current Era
- Writes: Validators, Nominators
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.
And, it can be only called when EraElectionStatus
is Closed
.
- Independent of the arguments. Insignificant complexity.
- Contains one read.
- Writes are limited to the
origin
account key.
Weight: O(1) DB Weight:
- Read: EraElectionStatus, Ledger
- Write: Validators, Nominators
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.
- Independent of the arguments. Insignificant complexity.
- Contains a limited number of reads.
- Writes are limited to the
origin
account key.
- Weight: O(1)
- DB Weight:
- Read: Ledger
- Write: Payee
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.
Weight: O(1) DB Weight:
- Read: Bonded, Ledger New Controller, Ledger Old Controller
- Write: Bonded, Ledger New Controller, Ledger Old Controller
set_validator_count(u32)
Sets the ideal number of validators.
The dispatch origin must be Root.
Weight: O(1) Write: Validator Count
increase_validator_count(u32)
Increments the ideal number of validators.
The dispatch origin must be Root.
Same as [set_validator_count
].
Scale up the ideal number of validators by a factor.
The dispatch origin must be Root.
Same as [set_validator_count
].
Force there to be no new eras indefinitely.
The dispatch origin must be Root.
- No arguments.
- Weight: O(1)
- Write: ForceEra
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.
- No arguments.
- Weight: O(1)
- Write ForceEra
Set the validators who cannot be slashed (if any).
The dispatch origin must be Root.
- O(V)
- Write: Invulnerables
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
Force there to be a new era at the end of sessions indefinitely.
The dispatch origin must be Root.
- Weight: O(1)
- Write: ForceEra
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.
- Read: Unapplied Slashes
- Write: Unapplied Slashes
Pay out all the stakers behind a single validator for a single era.
validator_stash
is the stash account of the validator. Their nominators, up toT::MaxNominatorRewardedPerValidator
, will also receive their rewards.era
may be any era between[current_era - history_depth; current_era]
.
The origin of this call must be Signed. Any account can call this function, even if it is not one of the stakers.
This can only be called when EraElectionStatus
is Closed
.
- Time complexity: at most O(MaxNominatorRewardedPerValidator).
- Contains a limited number of reads and writes.
N is the Number of payouts for the validator (including the validator) Weight:
-
Reward Destination Staked: O(N)
-
Reward Destination Controller (Creating): O(N) DB Weight:
-
Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward, ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)
-
Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)
-
Write Each: System Account, Locks, Ledger (3 items)
NOTE: weights are assuming that payouts are made to alive stash account (Staked). Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.
rebond(BalanceOf<T>)
Rebond a portion of the stash scheduled to be unlocked.
The dispatch origin must be signed by the controller, and it can be only called when
EraElectionStatus
is Closed
.
- Time complexity: O(L), where L is unlocking chunks
- Bounded by
MAX_UNLOCKING_CHUNKS
. - Storage changes: Can't increase storage, only decrease it.
- DB Weight:
- Reads: EraElectionStatus, Ledger, Locks, [Origin Account]
- Writes: [Origin Account], Locks, Ledger
Set HistoryDepth
value. This function will delete any history information
when HistoryDepth
is reduced.
Parameters:
new_history_depth
: The new history depth you would like to set.era_items_deleted
: The number of items that will be deleted by this dispatch. This should report all the storage items that will be deleted by clearing old era history. Needed to report an accurate weight for the dispatch. Trusted byRoot
to report an accurate number.
Origin must be root.
- E: Number of history depths removed, i.e. 10 -> 7 = 3
- Weight: O(E)
- DB Weight:
- Reads: Current Era, History Depth
- Writes: History Depth
- Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs
- Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex
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.
stash
: The stash account to reap. Its balance must be zero.
Complexity: O(S) where S is the number of slashing spans on the account. DB Weight:
- Reads: Stash Account, Bonded, Slashing Spans, Locks
- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks
- Writes Each: SpanSlash * S
submit_election_solution(Vec<ValidatorIndex>, CompactAssignments, ElectionScore, EraIndex, ElectionSize)
Submit an election result to the chain. If the solution:
- is valid.
- has a better score than a potentially existing solution on chain.
then, it will be put on chain.
A solution consists of two pieces of data:
winners
: a flat vector of all the winners of the round.assignments
: the compact version of an assignment vector that encodes the edge weights.
Both of which may be computed using phragmen, or any other algorithm.
Additionally, the submitter must provide:
- The
score
that they claim their solution has.
Both validators and nominators will be represented by indices in the solution. The
indices should respect the corresponding types (ValidatorIndex
and
NominatorIndex
). Moreover, they should be valid when used to index into
SnapshotValidators
and SnapshotNominators
. Any invalid index will cause the
solution to be rejected. These two storage items are set during the election window and
may be used to determine the indices.
A solution is valid if:
- It is submitted when
EraElectionStatus
isOpen
. - Its claimed score is equal to the score computed on-chain.
- Presents the correct number of winners.
- All indexes must be value according to the snapshot vectors. All edge values must also be correct and should not overflow the granularity of the ratio type (i.e. 256 or billion).
- For each edge, all targets are actually nominated by the voter.
- Has correct self-votes.
A solutions score is consisted of 3 parameters:
min { support.total }
for each support of a winner. This value should be maximized.sum { support.total }
for each support of a winner. This value should be minimized.sum { support.total^2 }
for each support of a winner. This value should be minimized (to ensure less variance)
The transaction is assumed to be the longest path, a better solution.
- Initial solution is almost the same.
- Worse solution is retraced in pre-dispatch-checks which sets its own weight.
submit_election_solution_unsigned(Vec<ValidatorIndex>, CompactAssignments, ElectionScore, EraIndex, ElectionSize)
Unsigned version of submit_election_solution
.
Note that this must pass the [ValidateUnsigned
] check which only allows transactions
from the local node to be included. In other words, only the block author can include a
transaction in the block.
See [submit_election_solution
].
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.
And, it can be only called when EraElectionStatus
is Closed
. The controller
account should represent a validator.
who
: A list of nominator stash accounts who are nominating this validator which should no longer be nominating this validator.
Note: Making this call only makes sense if you first set the validator preferences to block any further nominations.
Trait Implementations
impl<T: Config> Clone for Call<T>
[src]
fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Config> Debug for Call<T>
[src]
impl<T: Config> Decode for Call<T> where
<T::Lookup as StaticLookup>::Source: Decode,
<T::Lookup as StaticLookup>::Source: Decode,
RewardDestination<T::AccountId>: Decode,
RewardDestination<T::AccountId>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
RewardDestination<T::AccountId>: Decode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: 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,
RewardDestination<T::AccountId>: Decode,
RewardDestination<T::AccountId>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
RewardDestination<T::AccountId>: Decode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
T::AccountId: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
Vec<<T::Lookup as StaticLookup>::Source>: Decode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
[src]
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
pub fn skip<I>(input: &mut I) -> Result<(), Error> where
I: Input,
[src]
I: Input,
pub fn encoded_fixed_size() -> Option<usize>
[src]
impl<T: Config> Encode for Call<T> where
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: 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,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
[src]
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
pub fn size_hint(&self) -> usize
[src]
pub fn encode(&self) -> Vec<u8, Global>
[src]
pub fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
[src]
F: FnOnce(&[u8]) -> R,
pub fn encoded_size(&self) -> usize
[src]
impl<T: Config> EncodeLike<Call<T>> for Call<T> where
<T::Lookup as StaticLookup>::Source: Encode,
<T::Lookup as StaticLookup>::Source: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: 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,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
RewardDestination<T::AccountId>: Encode,
RewardDestination<T::AccountId>: 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,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
T::AccountId: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
Vec<<T::Lookup as StaticLookup>::Source>: Encode,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
BalanceOf<T>: HasCompact,
impl<T: Config> Eq for Call<T>
[src]
impl<T: Config> GetCallName for Call<T>
[src]
fn get_call_name(&self) -> &'static str
[src]
fn get_call_names() -> &'static [&'static str]
[src]
impl<T: Config> GetDispatchInfo for Call<T>
[src]
fn get_dispatch_info(&self) -> DispatchInfo
[src]
impl<T: Config> PartialEq<Call<T>> for Call<T>
[src]
impl<T: Config> UnfilteredDispatchable for Call<T>
[src]
type Origin = T::Origin
The origin type of the runtime, (i.e. frame_system::Config::Origin
).
fn dispatch_bypass_filter(
self,
_origin: Self::Origin
) -> DispatchResultWithPostInfo
[src]
self,
_origin: Self::Origin
) -> DispatchResultWithPostInfo
Auto Trait Implementations
impl<T> RefUnwindSafe for Call<T> where
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
[src]
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T> Send for Call<T> where
T: Send,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<<T as Config>::Lookup as StaticLookup>::Source: Send,
[src]
T: Send,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Send,
<<T as Config>::Lookup as StaticLookup>::Source: Send,
impl<T> Sync for Call<T> where
T: Sync,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<<T as Config>::Lookup as StaticLookup>::Source: Sync,
[src]
T: Sync,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Sync,
<<T as Config>::Lookup as StaticLookup>::Source: Sync,
impl<T> Unpin for Call<T> where
T: Unpin,
<T as Config>::AccountId: Unpin,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<<T as Config>::Lookup as StaticLookup>::Source: Unpin,
[src]
T: Unpin,
<T as Config>::AccountId: Unpin,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin,
<<T as Config>::Lookup as StaticLookup>::Source: Unpin,
impl<T> UnwindSafe for Call<T> where
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe,
[src]
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
<<T as Config>::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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub 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> DecodeAll for T where
T: Decode,
[src]
T: Decode,
impl<T> DecodeLimit for T where
T: Decode,
[src]
T: Decode,
pub fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
pub fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>
[src]
impl<T> DynClone for T where
T: Clone,
[src]
T: Clone,
pub fn __clone_box(&self, Private) -> *mut ()
[src]
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, Global>> 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,
pub fn blake2_128(&self) -> [u8; 16]
[src]
pub fn blake2_256(&self) -> [u8; 32]
[src]
pub fn blake2_128_concat(&self) -> Vec<u8, Global>
[src]
pub fn twox_128(&self) -> [u8; 16]
[src]
pub fn twox_256(&self) -> [u8; 32]
[src]
pub fn twox_64_concat(&self) -> Vec<u8, Global>
[src]
pub fn identity(&self) -> Vec<u8, Global>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
pub fn from_ref(t: &T) -> &T
[src]
pub fn into_ref(&self) -> &T
[src]
pub fn from_mut(t: &mut T) -> &mut T
[src]
pub fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
Get a reference to the inner from the outer.
pub 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
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
pub 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.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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.
pub 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>,
pub fn unchecked_into(self) -> T
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,