Enum pallet_nomination_pools::pallet::Call
source · pub enum Call<T: Config> {
Show 26 variants
join {
amount: BalanceOf<T>,
pool_id: PoolId,
},
bond_extra {
extra: BondExtra<BalanceOf<T>>,
},
claim_payout {},
unbond {
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
unbonding_points: BalanceOf<T>,
},
pool_withdraw_unbonded {
pool_id: PoolId,
num_slashing_spans: u32,
},
withdraw_unbonded {
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
num_slashing_spans: u32,
},
create {
amount: BalanceOf<T>,
root: <<T as Config>::Lookup as StaticLookup>::Source,
nominator: <<T as Config>::Lookup as StaticLookup>::Source,
bouncer: <<T as Config>::Lookup as StaticLookup>::Source,
},
create_with_pool_id {
amount: BalanceOf<T>,
root: <<T as Config>::Lookup as StaticLookup>::Source,
nominator: <<T as Config>::Lookup as StaticLookup>::Source,
bouncer: <<T as Config>::Lookup as StaticLookup>::Source,
pool_id: PoolId,
},
nominate {
pool_id: PoolId,
validators: Vec<T::AccountId>,
},
set_state {
pool_id: PoolId,
state: PoolState,
},
set_metadata {
pool_id: PoolId,
metadata: Vec<u8>,
},
set_configs {
min_join_bond: ConfigOp<BalanceOf<T>>,
min_create_bond: ConfigOp<BalanceOf<T>>,
max_pools: ConfigOp<u32>,
max_members: ConfigOp<u32>,
max_members_per_pool: ConfigOp<u32>,
global_max_commission: ConfigOp<Perbill>,
},
update_roles {
pool_id: PoolId,
new_root: ConfigOp<T::AccountId>,
new_nominator: ConfigOp<T::AccountId>,
new_bouncer: ConfigOp<T::AccountId>,
},
chill {
pool_id: PoolId,
},
bond_extra_other {
member: <<T as Config>::Lookup as StaticLookup>::Source,
extra: BondExtra<BalanceOf<T>>,
},
set_claim_permission {
permission: ClaimPermission,
},
claim_payout_other {
other: T::AccountId,
},
set_commission {
pool_id: PoolId,
new_commission: Option<(Perbill, T::AccountId)>,
},
set_commission_max {
pool_id: PoolId,
max_commission: Perbill,
},
set_commission_change_rate {
pool_id: PoolId,
change_rate: CommissionChangeRate<BlockNumberFor<T>>,
},
claim_commission {
pool_id: PoolId,
},
adjust_pool_deposit {
pool_id: PoolId,
},
set_commission_claim_permission {
pool_id: PoolId,
permission: Option<CommissionClaimPermission<T::AccountId>>,
},
apply_slash {
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
},
migrate_delegation {
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
},
migrate_pool_to_delegate_stake {
pool_id: PoolId,
},
// some variants omitted
}
Expand description
Contains a variant per dispatchable extrinsic that this pallet has.
Variants§
join
Stake funds with a pool. The amount to bond is transferred from the member to the pool account and immediately increases the pools bond.
The method of transferring the amount to the pool account is determined by
adapter::StakeStrategyType
. If the pool is configured to use
adapter::StakeStrategyType::Delegate
, the funds remain in the account of
the origin
, while the pool gains the right to use these funds for staking.
§Note
- An account can only be a member of a single pool.
- An account cannot join the same pool multiple times.
- This call will not dust the member account, so the member must have at least
existential deposit + amount
in their account. - Only a pool with
PoolState::Open
can be joined
bond_extra
Bond extra
more funds from origin
into the pool to which they already belong.
Additional funds can come from either the free balance of the account, of from the
accumulated rewards, see BondExtra
.
Bonding extra funds implies an automatic payout of all pending rewards as well.
See bond_extra_other
to bond pending rewards of other
members.
claim_payout
A bonded member can use this to claim their payout based on the rewards that the pool has accumulated since their last claimed payout (OR since joining if this is their first time claiming rewards). The payout will be transferred to the member’s account.
The member will earn rewards pro rata based on the members stake vs the sum of the members in the pools stake. Rewards do not “expire”.
See claim_payout_other
to claim rewards on behalf of some other
pool member.
unbond
Unbond up to unbonding_points
of the member_account
’s funds from the pool. It
implicitly collects the rewards one last time, since not doing so would mean some
rewards would be forfeited.
Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
§Conditions for a permissionless dispatch.
- The pool is blocked and the caller is either the root or bouncer. This is refereed to as a kick.
- The pool is destroying and the member is not the depositor.
- The pool is destroying, the member is the depositor and no other members are in the pool.
§Conditions for permissioned dispatch (i.e. the caller is also the
member_account
):
- The caller is not the depositor.
- The caller is the depositor, the pool is destroying and no other members are in the pool.
§Note
If there are too many unlocking chunks to unbond with the pool account,
Call::pool_withdraw_unbonded
can be called to try and minimize unlocking chunks.
The [StakingInterface::unbond
] will implicitly call Call::pool_withdraw_unbonded
to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks
are available). However, it may not be possible to release the current unlocking chunks,
in which case, the result of this call will likely be the NoMoreChunks
error from the
staking system.
Fields
member_account: <<T as Config>::Lookup as StaticLookup>::Source
pool_withdraw_unbonded
Call withdraw_unbonded
for the pools account. This call can be made by any account.
This is useful if there are too many unlocking chunks to call unbond
, and some
can be cleared by withdrawing. In the case there are too many unlocking chunks, the user
would probably see an error like NoMoreChunks
emitted from the staking system when
they attempt to unbond.
withdraw_unbonded
Withdraw unbonded funds from member_account
. If no bonded funds can be unbonded, an
error is returned.
Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
§Conditions for a permissionless dispatch
- The pool is in destroy mode and the target is not the depositor.
- The target is the depositor and they are the only member in the sub pools.
- The pool is blocked and the caller is either the root or bouncer.
§Conditions for permissioned dispatch
- The caller is the target and they are not the depositor.
§Note
- If the target is the depositor, the pool will be destroyed.
- If the pool has any pending slash, we also try to slash the member before letting them
withdraw. This calculation adds some weight overhead and is only defensive. In reality,
pool slashes must have been already applied via permissionless
Call::apply_slash
.
create
Create a new delegation pool.
§Arguments
amount
- The amount of funds to delegate to the pool. This also acts of a sort of deposit since the pools creator cannot fully unbond funds until the pool is being destroyed.index
- A disambiguation index for creating the account. Likely only useful when creating multiple pools in the same extrinsic.root
- The account to set asPoolRoles::root
.nominator
- The account to set as thePoolRoles::nominator
.bouncer
- The account to set as thePoolRoles::bouncer
.
§Note
In addition to amount
, the caller will transfer the existential deposit; so the caller
needs at have at least amount + existential_deposit
transferable.
Fields
root: <<T as Config>::Lookup as StaticLookup>::Source
nominator: <<T as Config>::Lookup as StaticLookup>::Source
bouncer: <<T as Config>::Lookup as StaticLookup>::Source
create_with_pool_id
Create a new delegation pool with a previously used pool id
§Arguments
same as create
with the inclusion of
pool_id
- `A valid PoolId.
Fields
root: <<T as Config>::Lookup as StaticLookup>::Source
nominator: <<T as Config>::Lookup as StaticLookup>::Source
bouncer: <<T as Config>::Lookup as StaticLookup>::Source
nominate
Nominate on behalf of the pool.
The dispatch origin of this call must be signed by the pool nominator or the pool root role.
This directly forward the call to the staking pallet, on behalf of the pool bonded account.
§Note
In addition to a root
or nominator
role of origin
, pool’s depositor needs to have
at least depositor_min_bond
in the pool to start nominating.
set_state
Set a new state for the pool.
If a pool is already in the Destroying
state, then under no condition can its state
change again.
The dispatch origin of this call must be either:
- signed by the bouncer, or the root role of the pool,
- if the pool conditions to be open are NOT met (as described by
ok_to_be_open
), and then the state of the pool can be permissionlessly changed toDestroying
.
set_metadata
Set a new metadata for the pool.
The dispatch origin of this call must be signed by the bouncer, or the root role of the pool.
set_configs
Update configurations for the nomination pools. The origin for this call must be
Config::AdminOrigin
.
§Arguments
min_join_bond
- SetMinJoinBond
.min_create_bond
- SetMinCreateBond
.max_pools
- SetMaxPools
.max_members
- SetMaxPoolMembers
.max_members_per_pool
- SetMaxPoolMembersPerPool
.global_max_commission
- SetGlobalMaxCommission
.
Fields
update_roles
Update the roles of the pool.
The root is the only entity that can change any of the roles, including itself, excluding the depositor, who can never change.
It emits an event, notifying UIs of the role change. This event is quite relevant to most pool members and they should be informed of changes to pool roles.
Fields
chill
Chill on behalf of the pool.
The dispatch origin of this call can be signed by the pool nominator or the pool
root role, same as Pallet::nominate
.
Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
§Conditions for a permissionless dispatch:
- When pool depositor has less than
MinNominatorBond
staked, otherwise pool members are unable to unbond.
§Conditions for permissioned dispatch:
- The caller has a nominator or root role of the pool. This directly forward the call to the staking pallet, on behalf of the pool bonded account.
bond_extra_other
origin
bonds funds from extra
for some pool member member
into their respective
pools.
origin
can bond extra funds from free balance or pending rewards when origin == other
.
In the case of origin != other
, origin
can only bond extra pending rewards of
other
members assuming set_claim_permission for the given member is
PermissionlessCompound
or PermissionlessAll
.
set_claim_permission
Allows a pool member to set a claim permission to allow or disallow permissionless bonding and withdrawing.
§Arguments
origin
- Member of a pool.permission
- The permission to be applied.
Fields
permission: ClaimPermission
claim_payout_other
origin
can claim payouts on some pool member other
’s behalf.
Pool member other
must have a PermissionlessWithdraw
or PermissionlessAll
claim
permission for this call to be successful.
Fields
other: T::AccountId
set_commission
Set the commission of a pool.
Both a commission percentage and a commission payee must be provided in the current
tuple. Where a current
of None
is provided, any current commission will be removed.
- If a
None
is supplied tonew_commission
, existing commission will be removed.
set_commission_max
Set the maximum commission of a pool.
- Initial max can be set to any
Perbill
, and only smaller values thereafter. - Current commission will be lowered in the event it is higher than a new max commission.
set_commission_change_rate
Set the commission change rate for a pool.
Initial change rate is not bounded, whereas subsequent updates can only be more restrictive than the current.
claim_commission
Claim pending commission.
The dispatch origin of this call must be signed by the root
role of the pool. Pending
commission is paid out and added to total claimed commission`. Total pending commission
is reset to zero. the current.
adjust_pool_deposit
Top up the deficit or withdraw the excess ED from the pool.
When a pool is created, the pool depositor transfers ED to the reward account of the pool. ED is subject to change and over time, the deposit in the reward account may be insufficient to cover the ED deficit of the pool or vice-versa where there is excess deposit to the pool. This call allows anyone to adjust the ED deposit of the pool by either topping up the deficit or claiming the excess.
set_commission_claim_permission
Set or remove a pool’s commission claim permission.
Determines who can claim the pool’s pending commission. Only the Root
role of the pool
is able to configure commission claim permissions.
apply_slash
Apply a pending slash on a member.
Fails unless crate::pallet::Config::StakeAdapter
is of strategy type:
adapter::StakeStrategyType::Delegate
.
The pending slash amount of the member must be equal or more than ExistentialDeposit
.
This call can be dispatched permissionlessly (i.e. by any account). If the execution
is successful, fee is refunded and caller may be rewarded with a part of the slash
based on the crate::pallet::Config::StakeAdapter
configuration.
Fields
member_account: <<T as Config>::Lookup as StaticLookup>::Source
migrate_delegation
Migrates delegated funds from the pool account to the member_account
.
Fails unless crate::pallet::Config::StakeAdapter
is of strategy type:
adapter::StakeStrategyType::Delegate
.
This is a permission-less call and refunds any fee if claim is successful.
If the pool has migrated to delegation based staking, the staked tokens of pool members
can be moved and held in their own account. See adapter::DelegateStake
Fields
member_account: <<T as Config>::Lookup as StaticLookup>::Source
migrate_pool_to_delegate_stake
Migrate pool from adapter::StakeStrategyType::Transfer
to
adapter::StakeStrategyType::Delegate
.
Fails unless crate::pallet::Config::StakeAdapter
is of strategy type:
adapter::StakeStrategyType::Delegate
.
This call can be dispatched permissionlessly, and refunds any fee if successful.
If the pool has already migrated to delegation based staking, this call will fail.
Implementations§
source§impl<T: Config> Call<T>
impl<T: Config> Call<T>
sourcepub fn new_call_variant_join(amount: BalanceOf<T>, pool_id: PoolId) -> Self
pub fn new_call_variant_join(amount: BalanceOf<T>, pool_id: PoolId) -> Self
Create a call with the variant join
.
sourcepub fn new_call_variant_bond_extra(extra: BondExtra<BalanceOf<T>>) -> Self
pub fn new_call_variant_bond_extra(extra: BondExtra<BalanceOf<T>>) -> Self
Create a call with the variant bond_extra
.
sourcepub fn new_call_variant_claim_payout() -> Self
pub fn new_call_variant_claim_payout() -> Self
Create a call with the variant claim_payout
.
sourcepub fn new_call_variant_unbond(
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
unbonding_points: BalanceOf<T>,
) -> Self
pub fn new_call_variant_unbond( member_account: <<T as Config>::Lookup as StaticLookup>::Source, unbonding_points: BalanceOf<T>, ) -> Self
Create a call with the variant unbond
.
sourcepub fn new_call_variant_pool_withdraw_unbonded(
pool_id: PoolId,
num_slashing_spans: u32,
) -> Self
pub fn new_call_variant_pool_withdraw_unbonded( pool_id: PoolId, num_slashing_spans: u32, ) -> Self
Create a call with the variant pool_withdraw_unbonded
.
sourcepub fn new_call_variant_withdraw_unbonded(
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
num_slashing_spans: u32,
) -> Self
pub fn new_call_variant_withdraw_unbonded( member_account: <<T as Config>::Lookup as StaticLookup>::Source, num_slashing_spans: u32, ) -> Self
Create a call with the variant withdraw_unbonded
.
sourcepub fn new_call_variant_create(
amount: BalanceOf<T>,
root: <<T as Config>::Lookup as StaticLookup>::Source,
nominator: <<T as Config>::Lookup as StaticLookup>::Source,
bouncer: <<T as Config>::Lookup as StaticLookup>::Source,
) -> Self
pub fn new_call_variant_create( amount: BalanceOf<T>, root: <<T as Config>::Lookup as StaticLookup>::Source, nominator: <<T as Config>::Lookup as StaticLookup>::Source, bouncer: <<T as Config>::Lookup as StaticLookup>::Source, ) -> Self
Create a call with the variant create
.
sourcepub fn new_call_variant_create_with_pool_id(
amount: BalanceOf<T>,
root: <<T as Config>::Lookup as StaticLookup>::Source,
nominator: <<T as Config>::Lookup as StaticLookup>::Source,
bouncer: <<T as Config>::Lookup as StaticLookup>::Source,
pool_id: PoolId,
) -> Self
pub fn new_call_variant_create_with_pool_id( amount: BalanceOf<T>, root: <<T as Config>::Lookup as StaticLookup>::Source, nominator: <<T as Config>::Lookup as StaticLookup>::Source, bouncer: <<T as Config>::Lookup as StaticLookup>::Source, pool_id: PoolId, ) -> Self
Create a call with the variant create_with_pool_id
.
sourcepub fn new_call_variant_nominate(
pool_id: PoolId,
validators: Vec<T::AccountId>,
) -> Self
pub fn new_call_variant_nominate( pool_id: PoolId, validators: Vec<T::AccountId>, ) -> Self
Create a call with the variant nominate
.
sourcepub fn new_call_variant_set_state(pool_id: PoolId, state: PoolState) -> Self
pub fn new_call_variant_set_state(pool_id: PoolId, state: PoolState) -> Self
Create a call with the variant set_state
.
sourcepub fn new_call_variant_set_metadata(pool_id: PoolId, metadata: Vec<u8>) -> Self
pub fn new_call_variant_set_metadata(pool_id: PoolId, metadata: Vec<u8>) -> Self
Create a call with the variant set_metadata
.
sourcepub fn new_call_variant_set_configs(
min_join_bond: ConfigOp<BalanceOf<T>>,
min_create_bond: ConfigOp<BalanceOf<T>>,
max_pools: ConfigOp<u32>,
max_members: ConfigOp<u32>,
max_members_per_pool: ConfigOp<u32>,
global_max_commission: ConfigOp<Perbill>,
) -> Self
pub fn new_call_variant_set_configs( min_join_bond: ConfigOp<BalanceOf<T>>, min_create_bond: ConfigOp<BalanceOf<T>>, max_pools: ConfigOp<u32>, max_members: ConfigOp<u32>, max_members_per_pool: ConfigOp<u32>, global_max_commission: ConfigOp<Perbill>, ) -> Self
Create a call with the variant set_configs
.
sourcepub fn new_call_variant_update_roles(
pool_id: PoolId,
new_root: ConfigOp<T::AccountId>,
new_nominator: ConfigOp<T::AccountId>,
new_bouncer: ConfigOp<T::AccountId>,
) -> Self
pub fn new_call_variant_update_roles( pool_id: PoolId, new_root: ConfigOp<T::AccountId>, new_nominator: ConfigOp<T::AccountId>, new_bouncer: ConfigOp<T::AccountId>, ) -> Self
Create a call with the variant update_roles
.
sourcepub fn new_call_variant_chill(pool_id: PoolId) -> Self
pub fn new_call_variant_chill(pool_id: PoolId) -> Self
Create a call with the variant chill
.
sourcepub fn new_call_variant_bond_extra_other(
member: <<T as Config>::Lookup as StaticLookup>::Source,
extra: BondExtra<BalanceOf<T>>,
) -> Self
pub fn new_call_variant_bond_extra_other( member: <<T as Config>::Lookup as StaticLookup>::Source, extra: BondExtra<BalanceOf<T>>, ) -> Self
Create a call with the variant bond_extra_other
.
sourcepub fn new_call_variant_set_claim_permission(
permission: ClaimPermission,
) -> Self
pub fn new_call_variant_set_claim_permission( permission: ClaimPermission, ) -> Self
Create a call with the variant set_claim_permission
.
sourcepub fn new_call_variant_claim_payout_other(other: T::AccountId) -> Self
pub fn new_call_variant_claim_payout_other(other: T::AccountId) -> Self
Create a call with the variant claim_payout_other
.
sourcepub fn new_call_variant_set_commission(
pool_id: PoolId,
new_commission: Option<(Perbill, T::AccountId)>,
) -> Self
pub fn new_call_variant_set_commission( pool_id: PoolId, new_commission: Option<(Perbill, T::AccountId)>, ) -> Self
Create a call with the variant set_commission
.
sourcepub fn new_call_variant_set_commission_max(
pool_id: PoolId,
max_commission: Perbill,
) -> Self
pub fn new_call_variant_set_commission_max( pool_id: PoolId, max_commission: Perbill, ) -> Self
Create a call with the variant set_commission_max
.
sourcepub fn new_call_variant_set_commission_change_rate(
pool_id: PoolId,
change_rate: CommissionChangeRate<BlockNumberFor<T>>,
) -> Self
pub fn new_call_variant_set_commission_change_rate( pool_id: PoolId, change_rate: CommissionChangeRate<BlockNumberFor<T>>, ) -> Self
Create a call with the variant set_commission_change_rate
.
sourcepub fn new_call_variant_claim_commission(pool_id: PoolId) -> Self
pub fn new_call_variant_claim_commission(pool_id: PoolId) -> Self
Create a call with the variant claim_commission
.
sourcepub fn new_call_variant_adjust_pool_deposit(pool_id: PoolId) -> Self
pub fn new_call_variant_adjust_pool_deposit(pool_id: PoolId) -> Self
Create a call with the variant adjust_pool_deposit
.
sourcepub fn new_call_variant_set_commission_claim_permission(
pool_id: PoolId,
permission: Option<CommissionClaimPermission<T::AccountId>>,
) -> Self
pub fn new_call_variant_set_commission_claim_permission( pool_id: PoolId, permission: Option<CommissionClaimPermission<T::AccountId>>, ) -> Self
Create a call with the variant set_commission_claim_permission
.
sourcepub fn new_call_variant_apply_slash(
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
) -> Self
pub fn new_call_variant_apply_slash( member_account: <<T as Config>::Lookup as StaticLookup>::Source, ) -> Self
Create a call with the variant apply_slash
.
sourcepub fn new_call_variant_migrate_delegation(
member_account: <<T as Config>::Lookup as StaticLookup>::Source,
) -> Self
pub fn new_call_variant_migrate_delegation( member_account: <<T as Config>::Lookup as StaticLookup>::Source, ) -> Self
Create a call with the variant migrate_delegation
.
sourcepub fn new_call_variant_migrate_pool_to_delegate_stake(pool_id: PoolId) -> Self
pub fn new_call_variant_migrate_pool_to_delegate_stake(pool_id: PoolId) -> Self
Create a call with the variant migrate_pool_to_delegate_stake
.
Trait Implementations§
source§impl<T: Config> CheckIfFeeless for Call<T>
impl<T: Config> CheckIfFeeless for Call<T>
source§fn is_feeless(&self, origin: &Self::Origin) -> bool
fn is_feeless(&self, origin: &Self::Origin) -> bool
#[pallet::feeless_if]
source§impl<T: Config> Decode for Call<T>
impl<T: Config> Decode for Call<T>
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<T: Config> Encode for Call<T>
impl<T: Config> Encode for Call<T>
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T: Config> GetCallIndex for Call<T>
impl<T: Config> GetCallIndex for Call<T>
source§fn get_call_index(&self) -> u8
fn get_call_index(&self) -> u8
source§fn get_call_indices() -> &'static [u8] ⓘ
fn get_call_indices() -> &'static [u8] ⓘ
GetCallName
].source§impl<T: Config> GetCallName for Call<T>
impl<T: Config> GetCallName for Call<T>
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
GetCallIndex
].source§impl<T: Config> GetDispatchInfo for Call<T>
impl<T: Config> GetDispatchInfo for Call<T>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T: Config> PartialEq for Call<T>
impl<T: Config> PartialEq for Call<T>
source§impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
BalanceOf<T>: HasCompact,
BondExtra<BalanceOf<T>>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
ConfigOp<BalanceOf<T>>: TypeInfo + 'static,
ConfigOp<T::AccountId>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
Option<(Perbill, T::AccountId)>: TypeInfo + 'static,
CommissionChangeRate<BlockNumberFor<T>>: TypeInfo + 'static,
Option<CommissionClaimPermission<T::AccountId>>: TypeInfo + 'static,
T: Config + 'static,
impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
BalanceOf<T>: HasCompact,
BondExtra<BalanceOf<T>>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
ConfigOp<BalanceOf<T>>: TypeInfo + 'static,
ConfigOp<T::AccountId>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
Option<(Perbill, T::AccountId)>: TypeInfo + 'static,
CommissionChangeRate<BlockNumberFor<T>>: TypeInfo + 'static,
Option<CommissionClaimPermission<T::AccountId>>: TypeInfo + 'static,
T: Config + 'static,
source§impl<T: Config> UnfilteredDispatchable for Call<T>
impl<T: Config> UnfilteredDispatchable for Call<T>
§type RuntimeOrigin = <T as Config>::RuntimeOrigin
type RuntimeOrigin = <T as Config>::RuntimeOrigin
frame_system::Config::RuntimeOrigin
).source§fn dispatch_bypass_filter(
self,
origin: Self::RuntimeOrigin,
) -> DispatchResultWithPostInfo
fn dispatch_bypass_filter( self, origin: Self::RuntimeOrigin, ) -> DispatchResultWithPostInfo
impl<T: Config> EncodeLike for Call<T>
impl<T: Config> Eq for Call<T>
Auto Trait Implementations§
impl<T> Freeze for Call<T>
impl<T> RefUnwindSafe for Call<T>where
<<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<<<T as Config>::Block as Block>::Header as Header>::Number: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Call<T>
impl<T> Sync for Call<T>
impl<T> Unpin for Call<T>
impl<T> UnwindSafe for Call<T>where
<<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<<<T as Config>::Block as Block>::Header as Header>::Number: UnwindSafe,
T: UnwindSafe,
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>,
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Conv for T
impl<T> Conv for T
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
§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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§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
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.