pub enum BalancesCall<T, I = ()>where
T: Config<I>,
I: 'static,{
transfer_allow_death {
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance,
},
force_transfer {
source: <<T as Config>::Lookup as StaticLookup>::Source,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance,
},
transfer_keep_alive {
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance,
},
transfer_all {
dest: <<T as Config>::Lookup as StaticLookup>::Source,
keep_alive: bool,
},
force_unreserve {
who: <<T as Config>::Lookup as StaticLookup>::Source,
amount: <T as Config<I>>::Balance,
},
upgrade_accounts {
who: Vec<<T as Config>::AccountId>,
},
force_set_balance {
who: <<T as Config>::Lookup as StaticLookup>::Source,
new_free: <T as Config<I>>::Balance,
},
force_adjust_total_issuance {
direction: AdjustmentDirection,
delta: <T as Config<I>>::Balance,
},
// some variants omitted
}
Expand description
Contains a variant per dispatchable extrinsic that this pallet has.
Variants§
transfer_allow_death
Transfer some liquid free balance to another account.
transfer_allow_death
will set the FreeBalance
of the sender and receiver.
If the sender’s account is below the existential deposit as a result
of the transfer, the account will be reaped.
The dispatch origin for this call must be Signed
by the transactor.
force_transfer
Fields
source: <<T as Config>::Lookup as StaticLookup>::Source
dest: <<T as Config>::Lookup as StaticLookup>::Source
value: <T as Config<I>>::Balance
Exactly as transfer_allow_death
, except the origin must be root and the source account
may be specified.
transfer_keep_alive
Same as the transfer_allow_death
call, but with a check that the transfer will not
kill the origin account.
99% of the time you want transfer_allow_death
instead.
transfer_all
Transfer the entire transferable balance from the caller account.
NOTE: This function only attempts to transfer transferable balances. This means that
any locked, reserved, or existential deposits (when keep_alive
is true
), will not be
transferred by this function. To ensure that this function results in a killed account,
you might need to prepare the account by removing any reference counters, storage
deposits, etc…
The dispatch origin of this call must be Signed.
dest
: The recipient of the transfer.keep_alive
: A boolean to determine if thetransfer_all
operation should send all of the funds the account has, causing the sender account to be killed (false), or transfer everything except at least the existential deposit, which will guarantee to keep the sender account alive (true).
force_unreserve
Unreserve some balance from a user by force.
Can only be called by ROOT.
upgrade_accounts
Upgrade a specified account.
origin
: Must beSigned
.who
: The account to be upgraded.
This will waive the transaction fee if at least all but 10% of the accounts needed to be upgraded. (We let some not have to be upgraded just in order to allow for the possibililty of churn).
force_set_balance
Set the regular balance of a given account.
The dispatch origin for this call is root
.
force_adjust_total_issuance
Adjust the total issuance in a saturating way.
Can only be called by root and always needs a positive delta
.
§Example
#[test]
fn force_adjust_total_issuance_example() {
ExtBuilder::default().build_and_execute_with(|| {
// First we set the TotalIssuance to 64 by giving Alice a balance of 64.
assert_ok!(Balances::force_set_balance(RuntimeOrigin::root(), ALICE, 64));
let old_ti = Balances::total_issuance();
assert_eq!(old_ti, 64, "TI should be 64");
// Now test the increase:
assert_ok!(Balances::force_adjust_total_issuance(RawOrigin::Root.into(), Inc, 32));
let new_ti = Balances::total_issuance();
assert_eq!(old_ti + 32, new_ti, "Should increase by 32");
// If Alice tries to call it, it errors:
assert_noop!(
Balances::force_adjust_total_issuance(RawOrigin::Signed(ALICE).into(), Inc, 32),
BadOrigin,
);
});
}
Implementations§
§impl<T, I> Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Call<T, I>where
T: Config<I>,
I: 'static,
pub fn new_call_variant_transfer_allow_death(
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_transfer_allow_death( dest: <<T as Config>::Lookup as StaticLookup>::Source, value: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant transfer_allow_death
.
pub fn new_call_variant_force_transfer(
source: <<T as Config>::Lookup as StaticLookup>::Source,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_force_transfer( source: <<T as Config>::Lookup as StaticLookup>::Source, dest: <<T as Config>::Lookup as StaticLookup>::Source, value: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant force_transfer
.
pub fn new_call_variant_transfer_keep_alive(
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_transfer_keep_alive( dest: <<T as Config>::Lookup as StaticLookup>::Source, value: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant transfer_keep_alive
.
pub fn new_call_variant_transfer_all(
dest: <<T as Config>::Lookup as StaticLookup>::Source,
keep_alive: bool
) -> Call<T, I>
pub fn new_call_variant_transfer_all( dest: <<T as Config>::Lookup as StaticLookup>::Source, keep_alive: bool ) -> Call<T, I>
Create a call with the variant transfer_all
.
pub fn new_call_variant_force_unreserve(
who: <<T as Config>::Lookup as StaticLookup>::Source,
amount: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_force_unreserve( who: <<T as Config>::Lookup as StaticLookup>::Source, amount: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant force_unreserve
.
pub fn new_call_variant_upgrade_accounts(
who: Vec<<T as Config>::AccountId>
) -> Call<T, I>
pub fn new_call_variant_upgrade_accounts( who: Vec<<T as Config>::AccountId> ) -> Call<T, I>
Create a call with the variant upgrade_accounts
.
pub fn new_call_variant_force_set_balance(
who: <<T as Config>::Lookup as StaticLookup>::Source,
new_free: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_force_set_balance( who: <<T as Config>::Lookup as StaticLookup>::Source, new_free: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant force_set_balance
.
pub fn new_call_variant_force_adjust_total_issuance(
direction: AdjustmentDirection,
delta: <T as Config<I>>::Balance
) -> Call<T, I>
pub fn new_call_variant_force_adjust_total_issuance( direction: AdjustmentDirection, delta: <T as Config<I>>::Balance ) -> Call<T, I>
Create a call with the variant force_adjust_total_issuance
.
Trait Implementations§
§impl<T, I> CheckIfFeeless for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> CheckIfFeeless for Call<T, I>where
T: Config<I>,
I: 'static,
§fn is_feeless(&self, origin: &<Call<T, I> as CheckIfFeeless>::Origin) -> bool
fn is_feeless(&self, origin: &<Call<T, I> as CheckIfFeeless>::Origin) -> bool
#[pallet::feeless_if]
§impl<T, I> Decode for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Decode for Call<T, I>where
T: Config<I>,
I: 'static,
§fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Call<T, I>, Error>where
__CodecInputEdqy: Input,
fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Call<T, I>, Error>where
__CodecInputEdqy: Input,
§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>
§impl<T, I> Encode for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Encode for Call<T, I>where
T: Config<I>,
I: 'static,
§fn encode_to<__CodecOutputEdqy>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)where
__CodecOutputEdqy: Output + ?Sized,
fn encode_to<__CodecOutputEdqy>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)where
__CodecOutputEdqy: Output + ?Sized,
§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
§impl<T, I> GetCallIndex for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> GetCallIndex for Call<T, I>where
T: Config<I>,
I: 'static,
§fn get_call_index(&self) -> u8
fn get_call_index(&self) -> u8
§fn get_call_indices() -> &'static [u8] ⓘ
fn get_call_indices() -> &'static [u8] ⓘ
GetCallName
].§impl<T, I> GetCallName for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> GetCallName for Call<T, I>where
T: Config<I>,
I: 'static,
§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
GetCallIndex
].§impl<T, I> GetDispatchInfo for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> GetDispatchInfo for Call<T, I>where
T: Config<I>,
I: 'static,
§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read more§impl<T, I> PartialEq for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> PartialEq for Call<T, I>where
T: Config<I>,
I: 'static,
§impl<T, I> TypeInfo for Call<T, I>where
T: Config<I> + 'static,
I: 'static,
PhantomData<(T, I)>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
<T as Config<I>>::Balance: HasCompact + TypeInfo + 'static,
Vec<<T as Config>::AccountId>: TypeInfo + 'static,
impl<T, I> TypeInfo for Call<T, I>where
T: Config<I> + 'static,
I: 'static,
PhantomData<(T, I)>: TypeInfo + 'static,
<<T as Config>::Lookup as StaticLookup>::Source: TypeInfo + 'static,
<T as Config<I>>::Balance: HasCompact + TypeInfo + 'static,
Vec<<T as Config>::AccountId>: TypeInfo + 'static,
§impl<T, I> UnfilteredDispatchable for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> UnfilteredDispatchable for Call<T, I>where
T: Config<I>,
I: 'static,
§type RuntimeOrigin = <T as Config>::RuntimeOrigin
type RuntimeOrigin = <T as Config>::RuntimeOrigin
frame_system::Config::RuntimeOrigin
).§fn dispatch_bypass_filter(
self,
origin: <Call<T, I> as UnfilteredDispatchable>::RuntimeOrigin
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
fn dispatch_bypass_filter( self, origin: <Call<T, I> as UnfilteredDispatchable>::RuntimeOrigin ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
impl<T, I> EncodeLike for Call<T, I>where
T: Config<I>,
I: 'static,
impl<T, I> Eq for Call<T, I>where
T: Config<I>,
I: 'static,
Auto Trait Implementations§
impl<T, I> RefUnwindSafe for Call<T, I>where
I: RefUnwindSafe,
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<T as Config<I>>::Balance: RefUnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: RefUnwindSafe,
impl<T, I> Send for Call<T, I>
impl<T, I> Sync for Call<T, I>
impl<T, I> Unpin for Call<T, I>
impl<T, I> UnwindSafe for Call<T, I>where
I: UnwindSafe,
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<T as Config<I>>::Balance: UnwindSafe,
<<T as Config>::Lookup as StaticLookup>::Source: 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>,
§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,
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> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§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> 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<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
.