Struct pallet_balances::pallet::Pallet
source · pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);Expand description
The Pallet struct, the main type that implements traits and standalone
functions within the pallet.
Tuple Fields§
§0: PhantomData<(T, I)>Implementations§
source§impl<T: Config<I>, I: 'static> Pallet<T, I>
impl<T: Config<I>, I: 'static> Pallet<T, I>
sourcepub fn transfer_allow_death(
origin: OriginFor<T>,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: T::Balance,
) -> DispatchResult
pub fn transfer_allow_death( origin: OriginFor<T>, dest: <<T as Config>::Lookup as StaticLookup>::Source, value: T::Balance, ) -> DispatchResult
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.
sourcepub fn force_transfer(
origin: OriginFor<T>,
source: <<T as Config>::Lookup as StaticLookup>::Source,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: T::Balance,
) -> DispatchResult
pub fn force_transfer( origin: OriginFor<T>, source: <<T as Config>::Lookup as StaticLookup>::Source, dest: <<T as Config>::Lookup as StaticLookup>::Source, value: T::Balance, ) -> DispatchResult
Exactly as transfer_allow_death, except the origin must be root and the source account
may be specified.
sourcepub fn transfer_keep_alive(
origin: OriginFor<T>,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
value: T::Balance,
) -> DispatchResult
pub fn transfer_keep_alive( origin: OriginFor<T>, dest: <<T as Config>::Lookup as StaticLookup>::Source, value: T::Balance, ) -> DispatchResult
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.
sourcepub fn transfer_all(
origin: OriginFor<T>,
dest: <<T as Config>::Lookup as StaticLookup>::Source,
keep_alive: bool,
) -> DispatchResult
pub fn transfer_all( origin: OriginFor<T>, dest: <<T as Config>::Lookup as StaticLookup>::Source, keep_alive: bool, ) -> DispatchResult
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_alloperation 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).
sourcepub fn force_unreserve(
origin: OriginFor<T>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
amount: T::Balance,
) -> DispatchResult
pub fn force_unreserve( origin: OriginFor<T>, who: <<T as Config>::Lookup as StaticLookup>::Source, amount: T::Balance, ) -> DispatchResult
Unreserve some balance from a user by force.
Can only be called by ROOT.
sourcepub fn force_set_balance(
origin: OriginFor<T>,
who: <<T as Config>::Lookup as StaticLookup>::Source,
new_free: T::Balance,
) -> DispatchResult
pub fn force_set_balance( origin: OriginFor<T>, who: <<T as Config>::Lookup as StaticLookup>::Source, new_free: T::Balance, ) -> DispatchResult
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 possibility of churn). Set the regular balance of a given account.
The dispatch origin for this call is root.
sourcepub fn force_adjust_total_issuance(
origin: OriginFor<T>,
direction: AdjustmentDirection,
delta: T::Balance,
) -> DispatchResult
pub fn force_adjust_total_issuance( origin: OriginFor<T>, direction: AdjustmentDirection, delta: T::Balance, ) -> DispatchResult
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 = pallet_balances::TotalIssuance::<Test>::get();
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 = pallet_balances::TotalIssuance::<Test>::get();
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,
);
});
}sourcepub fn burn(
origin: OriginFor<T>,
value: T::Balance,
keep_alive: bool,
) -> DispatchResult
pub fn burn( origin: OriginFor<T>, value: T::Balance, keep_alive: bool, ) -> DispatchResult
Burn the specified liquid free balance from the origin account.
If the origin’s account ends up below the existential deposit as a result
of the burn and keep_alive is false, the account will be reaped.
Unlike sending funds to a burn address, which merely makes the funds inaccessible,
this burn operation will reduce total issuance by the amount burned.
source§impl<T: Config<I>, I: 'static> Pallet<T, I>
impl<T: Config<I>, I: 'static> Pallet<T, I>
sourcepub fn total_issuance() -> T::Balance
pub fn total_issuance() -> T::Balance
Public function to get the total issuance.
sourcepub fn inactive_issuance() -> T::Balance
pub fn inactive_issuance() -> T::Balance
Public function to get the inactive issuance.
sourcepub fn locks(
who: &T::AccountId,
) -> WeakBoundedVec<BalanceLock<T::Balance>, T::MaxLocks>
pub fn locks( who: &T::AccountId, ) -> WeakBoundedVec<BalanceLock<T::Balance>, T::MaxLocks>
Public function to access the Locks storage.
sourcepub fn reserves(
who: &T::AccountId,
) -> BoundedVec<ReserveData<T::ReserveIdentifier, T::Balance>, T::MaxReserves>
pub fn reserves( who: &T::AccountId, ) -> BoundedVec<ReserveData<T::ReserveIdentifier, T::Balance>, T::MaxReserves>
Public function to access the reserves storage.
fn ed() -> T::Balance
sourcepub fn ensure_upgraded(who: &T::AccountId) -> bool
pub fn ensure_upgraded(who: &T::AccountId) -> bool
Ensure the account who is using the new logic.
Returns true if the account did get upgraded, false if it didn’t need upgrading.
sourcepub fn free_balance(who: impl Borrow<T::AccountId>) -> T::Balance
pub fn free_balance(who: impl Borrow<T::AccountId>) -> T::Balance
Get the free balance of an account.
sourcepub fn usable_balance(who: impl Borrow<T::AccountId>) -> T::Balance
pub fn usable_balance(who: impl Borrow<T::AccountId>) -> T::Balance
Get the balance of an account that can be used for transfers, reservations, or any other
non-locking, non-transaction-fee activity. Will be at most free_balance.
sourcepub fn usable_balance_for_fees(who: impl Borrow<T::AccountId>) -> T::Balance
pub fn usable_balance_for_fees(who: impl Borrow<T::AccountId>) -> T::Balance
Get the balance of an account that can be used for paying transaction fees (not tipping,
or any other kind of fees, though). Will be at most free_balance.
This requires that the account stays alive.
sourcepub fn reserved_balance(who: impl Borrow<T::AccountId>) -> T::Balance
pub fn reserved_balance(who: impl Borrow<T::AccountId>) -> T::Balance
Get the reserved balance of an account.
sourcepub(crate) fn account(who: &T::AccountId) -> AccountData<T::Balance>
pub(crate) fn account(who: &T::AccountId) -> AccountData<T::Balance>
Get both the free and reserved balances of an account.
sourcepub(crate) fn mutate_account_handling_dust<R>(
who: &T::AccountId,
f: impl FnOnce(&mut AccountData<T::Balance>) -> R,
) -> Result<R, DispatchError>
pub(crate) fn mutate_account_handling_dust<R>( who: &T::AccountId, f: impl FnOnce(&mut AccountData<T::Balance>) -> R, ) -> Result<R, DispatchError>
Mutate an account to some new value, or delete it entirely with None. Will enforce
ExistentialDeposit law, annulling the account as needed.
It returns the result from the closure. Any dust is handled through the low-level
fungible::Unbalanced trap-door for legacy dust management.
NOTE: Doesn’t do any preparatory work for creating a new account, so should only be used when it is known that the account already exists.
NOTE: LOW-LEVEL: This will not attempt to maintain total issuance. It is expected that the caller will do this.
sourcepub(crate) fn try_mutate_account_handling_dust<R, E: From<DispatchError>>(
who: &T::AccountId,
f: impl FnOnce(&mut AccountData<T::Balance>, bool) -> Result<R, E>,
) -> Result<R, E>
pub(crate) fn try_mutate_account_handling_dust<R, E: From<DispatchError>>( who: &T::AccountId, f: impl FnOnce(&mut AccountData<T::Balance>, bool) -> Result<R, E>, ) -> Result<R, E>
Mutate an account to some new value, or delete it entirely with None. Will enforce
ExistentialDeposit law, annulling the account as needed.
It returns the result from the closure. Any dust is handled through the low-level
fungible::Unbalanced trap-door for legacy dust management.
NOTE: Doesn’t do any preparatory work for creating a new account, so should only be used when it is known that the account already exists.
NOTE: LOW-LEVEL: This will not attempt to maintain total issuance. It is expected that the caller will do this.
sourcepub(crate) fn mutate_account<R>(
who: &T::AccountId,
f: impl FnOnce(&mut AccountData<T::Balance>) -> R,
) -> Result<(R, Option<T::Balance>), DispatchError>
pub(crate) fn mutate_account<R>( who: &T::AccountId, f: impl FnOnce(&mut AccountData<T::Balance>) -> R, ) -> Result<(R, Option<T::Balance>), DispatchError>
Mutate an account to some new value, or delete it entirely with None. Will enforce
ExistentialDeposit law, annulling the account as needed.
It returns both the result from the closure, and an optional amount of dust which should be handled once it is known that all nested mutates that could affect storage items what the dust handler touches have completed.
NOTE: Doesn’t do any preparatory work for creating a new account, so should only be used when it is known that the account already exists.
NOTE: LOW-LEVEL: This will not attempt to maintain total issuance. It is expected that the caller will do this.
sourcefn have_providers_or_no_zero_ed(_: &T::AccountId) -> bool
fn have_providers_or_no_zero_ed(_: &T::AccountId) -> bool
Returns true when who has some providers or insecure_zero_ed feature is disabled.
Returns false otherwise.
sourcepub(crate) fn try_mutate_account<R, E: From<DispatchError>>(
who: &T::AccountId,
f: impl FnOnce(&mut AccountData<T::Balance>, bool) -> Result<R, E>,
) -> Result<(R, Option<T::Balance>), E>
pub(crate) fn try_mutate_account<R, E: From<DispatchError>>( who: &T::AccountId, f: impl FnOnce(&mut AccountData<T::Balance>, bool) -> Result<R, E>, ) -> Result<(R, Option<T::Balance>), E>
Mutate an account to some new value, or delete it entirely with None. Will enforce
ExistentialDeposit law, annulling the account as needed. This will do nothing if the
result of f is an Err.
It returns both the result from the closure, and an optional amount of dust which should be handled once it is known that all nested mutates that could affect storage items what the dust handler touches have completed.
NOTE: Doesn’t do any preparatory work for creating a new account, so should only be used when it is known that the account already exists.
NOTE: LOW-LEVEL: This will not attempt to maintain total issuance. It is expected that the caller will do this.
sourcepub(crate) fn update_locks(
who: &T::AccountId,
locks: &[BalanceLock<T::Balance>],
)
pub(crate) fn update_locks( who: &T::AccountId, locks: &[BalanceLock<T::Balance>], )
Update the account entry for who, given the locks.
sourcepub(crate) fn update_freezes(
who: &T::AccountId,
freezes: BoundedSlice<'_, IdAmount<T::FreezeIdentifier, T::Balance>, T::MaxFreezes>,
) -> DispatchResult
pub(crate) fn update_freezes( who: &T::AccountId, freezes: BoundedSlice<'_, IdAmount<T::FreezeIdentifier, T::Balance>, T::MaxFreezes>, ) -> DispatchResult
Update the account entry for who, given the locks.
sourcepub(crate) fn do_transfer_reserved(
slashed: &T::AccountId,
beneficiary: &T::AccountId,
value: T::Balance,
precision: Precision,
fortitude: Fortitude,
status: Status,
) -> Result<T::Balance, DispatchError>
pub(crate) fn do_transfer_reserved( slashed: &T::AccountId, beneficiary: &T::AccountId, value: T::Balance, precision: Precision, fortitude: Fortitude, status: Status, ) -> Result<T::Balance, DispatchError>
Move the reserved balance of one account into the balance of another, according to
status. This will respect freezes/locks only if fortitude is Polite.
Is a no-op if the value to be moved is zero.
NOTE: returns actual amount of transferred value in Ok case.
Trait Implementations§
source§impl<T: Config<I>, I: 'static> AccountTouch<(), <T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> AccountTouch<(), <T as Config>::AccountId> for Pallet<T, I>
source§fn deposit_required(_: ()) -> Self::Balance
fn deposit_required(_: ()) -> Self::Balance
asset.source§fn should_touch(_: (), _: &T::AccountId) -> bool
fn should_touch(_: (), _: &T::AccountId) -> bool
source§impl<T: Config<I>, I: 'static> Balanced<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Balanced<<T as Config>::AccountId> for Pallet<T, I>
§type OnDropCredit = DecreaseIssuance<<T as Config>::AccountId, Pallet<T, I>>
type OnDropCredit = DecreaseIssuance<<T as Config>::AccountId, Pallet<T, I>>
Credit is dropped without being
used.§type OnDropDebt = IncreaseIssuance<<T as Config>::AccountId, Pallet<T, I>>
type OnDropDebt = IncreaseIssuance<<T as Config>::AccountId, Pallet<T, I>>
Debt is dropped without being used.fn done_deposit(who: &T::AccountId, amount: Self::Balance)
fn done_withdraw(who: &T::AccountId, amount: Self::Balance)
fn done_issue(amount: Self::Balance)
fn done_rescind(amount: Self::Balance)
§fn rescind(
amount: Self::Balance,
) -> Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>
fn rescind( amount: Self::Balance, ) -> Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>
amount and return the according imbalance. The imbalance will
typically be used to reduce an account by the same amount with e.g. [Balanced::settle]. Read more§fn issue(
amount: Self::Balance,
) -> Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>
fn issue( amount: Self::Balance, ) -> Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>
amount and return the according imbalance. The imbalance
will typically be used to increase an account by the same amount with e.g.
[Balanced::resolve]. Read more§fn pair(
amount: Self::Balance,
) -> Result<(Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>), DispatchError>
fn pair( amount: Self::Balance, ) -> Result<(Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>), DispatchError>
§fn deposit(
who: &AccountId,
value: Self::Balance,
precision: Precision,
) -> Result<Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, DispatchError>
fn deposit( who: &AccountId, value: Self::Balance, precision: Precision, ) -> Result<Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, DispatchError>
§fn withdraw(
who: &AccountId,
value: Self::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, DispatchError>
fn withdraw( who: &AccountId, value: Self::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, DispatchError>
§fn resolve(
who: &AccountId,
credit: Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>,
) -> Result<(), Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>>
fn resolve( who: &AccountId, credit: Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, ) -> Result<(), Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>>
who is increased in order to counter credit. If the whole of credit
cannot be countered, then nothing is changed and the original credit is returned in an
Err. Read more§fn settle(
who: &AccountId,
debt: Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>,
preservation: Preservation,
) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>>
fn settle( who: &AccountId, debt: Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, preservation: Preservation, ) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>>
who is decreased in order to counter debt. If the whole of debt
cannot be countered, then nothing is changed and the original debt is returned in an
Err.source§impl<T: Config<I>, I: 'static> Balanced<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Balanced<<T as Config>::AccountId> for Pallet<T, I>
§fn slash(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> (Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Self::Balance)
fn slash( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> (Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Self::Balance)
fn done_slash(_reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance)
source§impl<T: Config<I>, I: 'static> BeforeAllRuntimeMigrations for Pallet<T, I>
impl<T: Config<I>, I: 'static> BeforeAllRuntimeMigrations for Pallet<T, I>
source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
source§impl<T, I: 'static> Benchmarking for Pallet<T, I>where
T: Config + Config<I>,
impl<T, I: 'static> Benchmarking for Pallet<T, I>where
T: Config + Config<I>,
source§impl<T: Config<I>, I: 'static> Currency<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Currency<<T as Config>::AccountId> for Pallet<T, I>
source§fn slash(
who: &T::AccountId,
value: Self::Balance,
) -> (Self::NegativeImbalance, Self::Balance)
fn slash( who: &T::AccountId, value: Self::Balance, ) -> (Self::NegativeImbalance, Self::Balance)
Slash a target account who, returning the negative imbalance created and any left over
amount that could not be slashed.
Is a no-op if value to be slashed is zero or the account does not exist.
NOTE: slash() prefers free balance, but assumes that reserve balance can be drawn
from in extreme circumstances. can_slash() should be used prior to slash() to avoid
having to draw from reserved funds, however we err on the side of punishment if things are
inconsistent or can_slash wasn’t used appropriately.
source§fn deposit_into_existing(
who: &T::AccountId,
value: Self::Balance,
) -> Result<Self::PositiveImbalance, DispatchError>
fn deposit_into_existing( who: &T::AccountId, value: Self::Balance, ) -> Result<Self::PositiveImbalance, DispatchError>
Deposit some value into the free balance of an existing target account who.
Is a no-op if the value to be deposited is zero.
source§fn deposit_creating(
who: &T::AccountId,
value: Self::Balance,
) -> Self::PositiveImbalance
fn deposit_creating( who: &T::AccountId, value: Self::Balance, ) -> Self::PositiveImbalance
Deposit some value into the free balance of who, possibly creating a new account.
This function is a no-op if:
- the
valueto be deposited is zero; or - the
valueto be deposited is less than the required ED and the account does not yet exist; or - the deposit would necessitate the account to exist and there are no provider references; or
valueis so large it would cause the balance ofwhoto overflow.
source§fn withdraw(
who: &T::AccountId,
value: Self::Balance,
reasons: WithdrawReasons,
liveness: ExistenceRequirement,
) -> Result<Self::NegativeImbalance, DispatchError>
fn withdraw( who: &T::AccountId, value: Self::Balance, reasons: WithdrawReasons, liveness: ExistenceRequirement, ) -> Result<Self::NegativeImbalance, DispatchError>
Withdraw some free balance from an account, respecting existence requirements.
Is a no-op if value to be withdrawn is zero.
source§fn make_free_balance_be(
who: &T::AccountId,
value: Self::Balance,
) -> SignedImbalance<Self::Balance, Self::PositiveImbalance>
fn make_free_balance_be( who: &T::AccountId, value: Self::Balance, ) -> SignedImbalance<Self::Balance, Self::PositiveImbalance>
Force the new free balance of a target account who to some new value balance.
§type PositiveImbalance = PositiveImbalance<T, I>
type PositiveImbalance = PositiveImbalance<T, I>
§type NegativeImbalance = NegativeImbalance<T, I>
type NegativeImbalance = NegativeImbalance<T, I>
source§fn total_balance(who: &T::AccountId) -> Self::Balance
fn total_balance(who: &T::AccountId) -> Self::Balance
who.source§fn can_slash(who: &T::AccountId, value: Self::Balance) -> bool
fn can_slash(who: &T::AccountId, value: Self::Balance) -> bool
slash(who, value) (but without the side-effects) assuming there are no
balance changes in the meantime and only the reserved balance is not taken into account.source§fn total_issuance() -> Self::Balance
fn total_issuance() -> Self::Balance
source§fn active_issuance() -> Self::Balance
fn active_issuance() -> Self::Balance
source§fn deactivate(amount: Self::Balance)
fn deactivate(amount: Self::Balance)
source§fn reactivate(amount: Self::Balance)
fn reactivate(amount: Self::Balance)
source§fn minimum_balance() -> Self::Balance
fn minimum_balance() -> Self::Balance
Balances
module’s ExistentialDeposit.source§fn burn(amount: Self::Balance) -> Self::PositiveImbalance
fn burn(amount: Self::Balance) -> Self::PositiveImbalance
amount and return the according imbalance. The imbalance will
typically be used to reduce an account by the same amount with e.g. settle. Read moresource§fn issue(amount: Self::Balance) -> Self::NegativeImbalance
fn issue(amount: Self::Balance) -> Self::NegativeImbalance
amount and return the according imbalance. The imbalance
will typically be used to increase an account by the same amount with e.g.
resolve_into_existing or resolve_creating. Read moresource§fn free_balance(who: &T::AccountId) -> Self::Balance
fn free_balance(who: &T::AccountId) -> Self::Balance
source§fn ensure_can_withdraw(
who: &T::AccountId,
amount: T::Balance,
_reasons: WithdrawReasons,
new_balance: T::Balance,
) -> DispatchResult
fn ensure_can_withdraw( who: &T::AccountId, amount: T::Balance, _reasons: WithdrawReasons, new_balance: T::Balance, ) -> DispatchResult
Ok iff the account is able to make a withdrawal of the given amount
for the given reason. Basically, it’s just a dry-run of withdraw. Read moresource§fn transfer(
transactor: &T::AccountId,
dest: &T::AccountId,
value: Self::Balance,
existence_requirement: ExistenceRequirement,
) -> DispatchResult
fn transfer( transactor: &T::AccountId, dest: &T::AccountId, value: Self::Balance, existence_requirement: ExistenceRequirement, ) -> DispatchResult
§fn pair(
amount: Self::Balance,
) -> (Self::PositiveImbalance, Self::NegativeImbalance)
fn pair( amount: Self::Balance, ) -> (Self::PositiveImbalance, Self::NegativeImbalance)
§fn resolve_into_existing(
who: &AccountId,
value: Self::NegativeImbalance,
) -> Result<(), Self::NegativeImbalance>
fn resolve_into_existing( who: &AccountId, value: Self::NegativeImbalance, ) -> Result<(), Self::NegativeImbalance>
NegativeImbalance and returns nothing on
success.§fn resolve_creating(who: &AccountId, value: Self::NegativeImbalance)
fn resolve_creating(who: &AccountId, value: Self::NegativeImbalance)
NegativeImbalance and returns nothing on
success.§fn settle(
who: &AccountId,
value: Self::PositiveImbalance,
reasons: WithdrawReasons,
liveness: ExistenceRequirement,
) -> Result<(), Self::PositiveImbalance>
fn settle( who: &AccountId, value: Self::PositiveImbalance, reasons: WithdrawReasons, liveness: ExistenceRequirement, ) -> Result<(), Self::PositiveImbalance>
PositiveImbalance and returns nothing on success.source§impl<T: Config<I>, I: 'static> GetStorageVersion for Pallet<T, I>
impl<T: Config<I>, I: 'static> GetStorageVersion for Pallet<T, I>
§type InCodeStorageVersion = StorageVersion
type InCodeStorageVersion = StorageVersion
source§fn in_code_storage_version() -> Self::InCodeStorageVersion
fn in_code_storage_version() -> Self::InCodeStorageVersion
storage_version attribute, or
[NoStorageVersionSet] if the attribute is missing.source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version and will be removed after March 2024.Self::current_storage_version] instead. Read moresource§impl<T: Config<I>, I: 'static> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§fn integrity_test()
fn integrity_test()
§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize]). Read more§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive pallet. Read more§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
source§impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
source§fn total_issuance() -> Self::Balance
fn total_issuance() -> Self::Balance
source§fn active_issuance() -> Self::Balance
fn active_issuance() -> Self::Balance
source§fn minimum_balance() -> Self::Balance
fn minimum_balance() -> Self::Balance
source§fn total_balance(who: &T::AccountId) -> Self::Balance
fn total_balance(who: &T::AccountId) -> Self::Balance
who. Read moresource§fn balance(who: &T::AccountId) -> Self::Balance
fn balance(who: &T::AccountId) -> Self::Balance
who which does not include funds which are exclusively allocated to
subsystems of the chain (“on hold” or “reserved”). Read moresource§fn reducible_balance(
who: &T::AccountId,
preservation: Preservation,
force: Fortitude,
) -> Self::Balance
fn reducible_balance( who: &T::AccountId, preservation: Preservation, force: Fortitude, ) -> Self::Balance
who can withdraw/transfer successfully based on whether the
account should be kept alive (preservation) or whether we are willing to force the
reduction and potentially go below user-level restrictions on the minimum amount of the
account. Read moresource§fn can_deposit(
who: &T::AccountId,
amount: Self::Balance,
provenance: Provenance,
) -> DepositConsequence
fn can_deposit( who: &T::AccountId, amount: Self::Balance, provenance: Provenance, ) -> DepositConsequence
source§fn can_withdraw(
who: &T::AccountId,
amount: Self::Balance,
) -> WithdrawConsequence<Self::Balance>
fn can_withdraw( who: &T::AccountId, amount: Self::Balance, ) -> WithdrawConsequence<Self::Balance>
Success if the balance of who may be decreased by amount, otherwise
the consequence.source§impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
§type Id = <T as Config<I>>::FreezeIdentifier
type Id = <T as Config<I>>::FreezeIdentifier
source§fn balance_frozen(id: &Self::Id, who: &T::AccountId) -> Self::Balance
fn balance_frozen(id: &Self::Id, who: &T::AccountId) -> Self::Balance
who for the given id.source§fn can_freeze(id: &Self::Id, who: &T::AccountId) -> bool
fn can_freeze(id: &Self::Id, who: &T::AccountId) -> bool
true if it’s possible to introduce a freeze for the given id onto the
account of who. This will be true as long as the implementor supports as many
concurrent freezes as there are possible values of id.§fn balance_freezable(who: &AccountId) -> Self::Balance
fn balance_freezable(who: &AccountId) -> Self::Balance
total_balance().source§impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>
§type Reason = <T as Config<I>>::RuntimeHoldReason
type Reason = <T as Config<I>>::RuntimeHoldReason
source§fn total_balance_on_hold(who: &T::AccountId) -> T::Balance
fn total_balance_on_hold(who: &T::AccountId) -> T::Balance
who.source§fn reducible_total_balance_on_hold(
who: &T::AccountId,
force: Fortitude,
) -> Self::Balance
fn reducible_total_balance_on_hold( who: &T::AccountId, force: Fortitude, ) -> Self::Balance
total_balance_on_hold of who can be reduced successfully
based on whether we are willing to force the reduction and potentially go below user-level
restrictions on the minimum amount of the account. Note: This cannot bring the account into
an inconsistent state with regards any required existential deposit. Read moresource§fn balance_on_hold(reason: &Self::Reason, who: &T::AccountId) -> T::Balance
fn balance_on_hold(reason: &Self::Reason, who: &T::AccountId) -> T::Balance
who.source§fn hold_available(reason: &Self::Reason, who: &T::AccountId) -> bool
fn hold_available(reason: &Self::Reason, who: &T::AccountId) -> bool
true if it’s possible to place (additional) funds under a hold of a given
reason. This may fail if the account has exhausted a limited number of concurrent
holds or if it cannot be made to exist (e.g. there is no provider reference). Read more§fn ensure_can_hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn ensure_can_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
amount of funds of who may be placed on hold with the given
reason. Reasons why this may not be true: Read more§fn can_hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> bool
fn can_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> bool
amount of funds of who may be placed on hold for the given
reason. Reasons why this may not be true: Read moresource§impl<T: Config<I>, I: 'static> InspectLockableCurrency<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> InspectLockableCurrency<<T as Config>::AccountId> for Pallet<T, I>
source§fn balance_locked(id: LockIdentifier, who: &T::AccountId) -> Self::Balance
fn balance_locked(id: LockIdentifier, who: &T::AccountId) -> Self::Balance
who associated with id.source§impl<T: Config<I>, I: 'static> IntegrityTest for Pallet<T, I>
impl<T: Config<I>, I: 'static> IntegrityTest for Pallet<T, I>
source§fn integrity_test()
fn integrity_test()
Hooks::integrity_test].source§impl<T: Config<I>, I: 'static> LockableCurrency<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> LockableCurrency<<T as Config>::AccountId> for Pallet<T, I>
§type Moment = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
type Moment = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
BlockNumber.§type MaxLocks = <T as Config<I>>::MaxLocks
type MaxLocks = <T as Config<I>>::MaxLocks
source§fn set_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: T::Balance,
reasons: WithdrawReasons,
)
fn set_lock( id: LockIdentifier, who: &T::AccountId, amount: T::Balance, reasons: WithdrawReasons, )
who. Read moresource§fn extend_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: T::Balance,
reasons: WithdrawReasons,
)
fn extend_lock( id: LockIdentifier, who: &T::AccountId, amount: T::Balance, reasons: WithdrawReasons, )
id) so that it becomes less liquid in all
parameters or creates a new one if it does not exist. Read moresource§fn remove_lock(id: LockIdentifier, who: &T::AccountId)
fn remove_lock(id: LockIdentifier, who: &T::AccountId)
source§impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
fn done_mint_into(who: &T::AccountId, amount: Self::Balance)
fn done_burn_from(who: &T::AccountId, amount: Self::Balance)
fn done_shelve(who: &T::AccountId, amount: Self::Balance)
fn done_restore(who: &T::AccountId, amount: Self::Balance)
fn done_transfer( source: &T::AccountId, dest: &T::AccountId, amount: Self::Balance, )
§fn mint_into(
who: &AccountId,
amount: Self::Balance,
) -> Result<Self::Balance, DispatchError>
fn mint_into( who: &AccountId, amount: Self::Balance, ) -> Result<Self::Balance, DispatchError>
who by exactly amount, minting new tokens. If that isn’t
possible then an Err is returned and nothing is changed.§fn burn_from(
who: &AccountId,
amount: Self::Balance,
preservation: Preservation,
precision: Precision,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn burn_from( who: &AccountId, amount: Self::Balance, preservation: Preservation, precision: Precision, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
who, burning the tokens.
The actual amount burned is derived from the amount, preservation, precision and
force, and might end up being more, less or equal to the amount specified. Read more§fn shelve(
who: &AccountId,
amount: Self::Balance,
) -> Result<Self::Balance, DispatchError>
fn shelve( who: &AccountId, amount: Self::Balance, ) -> Result<Self::Balance, DispatchError>
§fn restore(
who: &AccountId,
amount: Self::Balance,
) -> Result<Self::Balance, DispatchError>
fn restore( who: &AccountId, amount: Self::Balance, ) -> Result<Self::Balance, DispatchError>
§fn transfer(
source: &AccountId,
dest: &AccountId,
amount: Self::Balance,
preservation: Preservation,
) -> Result<Self::Balance, DispatchError>
fn transfer( source: &AccountId, dest: &AccountId, amount: Self::Balance, preservation: Preservation, ) -> Result<Self::Balance, DispatchError>
§fn set_balance(who: &AccountId, amount: Self::Balance) -> Self::Balance
fn set_balance(who: &AccountId, amount: Self::Balance) -> Self::Balance
source§impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
source§fn set_freeze(
id: &Self::Id,
who: &T::AccountId,
amount: Self::Balance,
) -> DispatchResult
fn set_freeze( id: &Self::Id, who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult
who below the given
amount and identify this restriction though the given id. Unlike extend_freeze, any
outstanding freeze in place for who under the id are dropped. Read moresource§fn extend_freeze(
id: &Self::Id,
who: &T::AccountId,
amount: Self::Balance,
) -> DispatchResult
fn extend_freeze( id: &Self::Id, who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult
who from being reduced below the given amount and
identify this restriction though the given id. Unlike set_freeze, this does not
counteract any pre-existing freezes in place for who under the id. Also unlike
set_freeze, in the case that amount is zero, this is no-op and never fails. Read more§fn set_frozen(
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn set_frozen( id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
§fn ensure_frozen(
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn ensure_frozen( id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
id to amount, iff this would increase
the amount frozen under id. Do nothing otherwise. Read more§fn decrease_frozen(
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn decrease_frozen( id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
§fn increase_frozen(
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn increase_frozen( id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
source§impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>
§fn hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
reason is already in place, then this
will increase it.§fn release(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
precision: Precision,
) -> Result<Self::Balance, DispatchError>
fn release( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision, ) -> Result<Self::Balance, DispatchError>
amount held funds in an account. Read more§fn set_on_hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn set_on_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
who to bring the balance on hold for reason to
exactly amount.§fn release_all(
reason: &Self::Reason,
who: &AccountId,
precision: Precision,
) -> Result<Self::Balance, DispatchError>
fn release_all( reason: &Self::Reason, who: &AccountId, precision: Precision, ) -> Result<Self::Balance, DispatchError>
§fn burn_held(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
precision: Precision,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn burn_held( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
§fn burn_all_held(
reason: &Self::Reason,
who: &AccountId,
precision: Precision,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn burn_all_held( reason: &Self::Reason, who: &AccountId, precision: Precision, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
§fn transfer_on_hold(
reason: &Self::Reason,
source: &AccountId,
dest: &AccountId,
amount: Self::Balance,
precision: Precision,
mode: Restriction,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn transfer_on_hold( reason: &Self::Reason, source: &AccountId, dest: &AccountId, amount: Self::Balance, precision: Precision, mode: Restriction, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
§fn transfer_and_hold(
reason: &Self::Reason,
source: &AccountId,
dest: &AccountId,
amount: Self::Balance,
precision: Precision,
expendability: Preservation,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn transfer_and_hold( reason: &Self::Reason, source: &AccountId, dest: &AccountId, amount: Self::Balance, precision: Precision, expendability: Preservation, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
amount of free balance from source to become owned by dest but on hold
for reason. Read morefn done_hold(_reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance)
fn done_release( _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_burn_held( _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_transfer_on_hold( _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance, )
fn done_transfer_and_hold( _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _transferred: Self::Balance, )
source§impl<T: Config<I>, I: 'static> NamedReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> NamedReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>
source§fn reserve_named(
id: &Self::ReserveIdentifier,
who: &T::AccountId,
value: Self::Balance,
) -> DispatchResult
fn reserve_named( id: &Self::ReserveIdentifier, who: &T::AccountId, value: Self::Balance, ) -> DispatchResult
Move value from the free balance from who to a named reserve balance.
Is a no-op if value to be reserved is zero.
source§fn unreserve_named(
id: &Self::ReserveIdentifier,
who: &T::AccountId,
value: Self::Balance,
) -> Self::Balance
fn unreserve_named( id: &Self::ReserveIdentifier, who: &T::AccountId, value: Self::Balance, ) -> Self::Balance
Unreserve some funds, returning any amount that was unable to be unreserved.
Is a no-op if the value to be unreserved is zero.
source§fn slash_reserved_named(
id: &Self::ReserveIdentifier,
who: &T::AccountId,
value: Self::Balance,
) -> (Self::NegativeImbalance, Self::Balance)
fn slash_reserved_named( id: &Self::ReserveIdentifier, who: &T::AccountId, value: Self::Balance, ) -> (Self::NegativeImbalance, Self::Balance)
Slash from reserved balance, returning the negative imbalance created, and any amount that was unable to be slashed.
Is a no-op if the value to be slashed is zero.
source§fn repatriate_reserved_named(
id: &Self::ReserveIdentifier,
slashed: &T::AccountId,
beneficiary: &T::AccountId,
value: Self::Balance,
status: Status,
) -> Result<Self::Balance, DispatchError>
fn repatriate_reserved_named( id: &Self::ReserveIdentifier, slashed: &T::AccountId, beneficiary: &T::AccountId, value: Self::Balance, status: Status, ) -> Result<Self::Balance, DispatchError>
Move the reserved balance of one account into the balance of another, according to status.
If status is Reserved, the balance will be reserved with given id.
Is a no-op if:
- the value to be moved is zero; or
- the
slashedid equal tobeneficiaryand thestatusisReserved.
§type ReserveIdentifier = <T as Config<I>>::ReserveIdentifier
type ReserveIdentifier = <T as Config<I>>::ReserveIdentifier
source§fn reserved_balance_named(
id: &Self::ReserveIdentifier,
who: &T::AccountId,
) -> Self::Balance
fn reserved_balance_named( id: &Self::ReserveIdentifier, who: &T::AccountId, ) -> Self::Balance
§fn ensure_reserved_named(
id: &Self::ReserveIdentifier,
who: &AccountId,
value: Self::Balance,
) -> Result<(), DispatchError>
fn ensure_reserved_named( id: &Self::ReserveIdentifier, who: &AccountId, value: Self::Balance, ) -> Result<(), DispatchError>
value. Read more§fn unreserve_all_named(
id: &Self::ReserveIdentifier,
who: &AccountId,
) -> Self::Balance
fn unreserve_all_named( id: &Self::ReserveIdentifier, who: &AccountId, ) -> Self::Balance
§fn slash_all_reserved_named(
id: &Self::ReserveIdentifier,
who: &AccountId,
) -> Self::NegativeImbalance
fn slash_all_reserved_named( id: &Self::ReserveIdentifier, who: &AccountId, ) -> Self::NegativeImbalance
§fn repatriate_all_reserved_named(
id: &Self::ReserveIdentifier,
slashed: &AccountId,
beneficiary: &AccountId,
status: BalanceStatus,
) -> Result<(), DispatchError>
fn repatriate_all_reserved_named( id: &Self::ReserveIdentifier, slashed: &AccountId, beneficiary: &AccountId, status: BalanceStatus, ) -> Result<(), DispatchError>
status. If status is Reserved, the balance will be reserved with given id. Read moresource§impl<T: Config<I>, I: 'static> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§fn offchain_worker(n: BlockNumberFor<T>)
fn offchain_worker(n: BlockNumberFor<T>)
source§impl<T: Config<I>, I: 'static> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§fn on_finalize(n: BlockNumberFor<T>)
fn on_finalize(n: BlockNumberFor<T>)
Hooks::on_finalize].source§impl<T: Config<I>, I: 'static> OnGenesis for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnGenesis for Pallet<T, I>
source§fn on_genesis()
fn on_genesis()
source§impl<T: Config<I>, I: 'static> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§impl<T: Config<I>, I: 'static> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§fn on_initialize(n: BlockNumberFor<T>) -> Weight
fn on_initialize(n: BlockNumberFor<T>) -> Weight
Hooks::on_initialize].source§impl<T: Config<I>, I: 'static> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>
source§impl<T: Config<I>, I: 'static> OnRuntimeUpgrade for Pallet<T, I>
impl<T: Config<I>, I: 'static> OnRuntimeUpgrade for Pallet<T, I>
source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Hooks::on_runtime_upgrade].source§impl<T: Config<I>, I: 'static> PalletInfoAccess for Pallet<T, I>
impl<T: Config<I>, I: 'static> PalletInfoAccess for Pallet<T, I>
source§fn module_name() -> &'static str
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
source§impl<T, I> PartialEq for Pallet<T, I>
impl<T, I> PartialEq for Pallet<T, I>
source§impl<T: Config<I>, I: 'static> ReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> ReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>
source§fn can_reserve(who: &T::AccountId, value: Self::Balance) -> bool
fn can_reserve(who: &T::AccountId, value: Self::Balance) -> bool
Check if who can reserve value from their free balance.
Always true if value to be reserved is zero.
source§fn reserve(who: &T::AccountId, value: Self::Balance) -> DispatchResult
fn reserve(who: &T::AccountId, value: Self::Balance) -> DispatchResult
Move value from the free balance from who to their reserved balance.
Is a no-op if value to be reserved is zero.
source§fn unreserve(who: &T::AccountId, value: Self::Balance) -> Self::Balance
fn unreserve(who: &T::AccountId, value: Self::Balance) -> Self::Balance
Unreserve some funds, returning any amount that was unable to be unreserved.
Is a no-op if the value to be unreserved is zero or the account does not exist.
NOTE: returns amount value which wasn’t successfully unreserved.
source§fn slash_reserved(
who: &T::AccountId,
value: Self::Balance,
) -> (Self::NegativeImbalance, Self::Balance)
fn slash_reserved( who: &T::AccountId, value: Self::Balance, ) -> (Self::NegativeImbalance, Self::Balance)
Slash from reserved balance, returning the negative imbalance created, and any amount that was unable to be slashed.
Is a no-op if the value to be slashed is zero or the account does not exist.
source§fn repatriate_reserved(
slashed: &T::AccountId,
beneficiary: &T::AccountId,
value: Self::Balance,
status: Status,
) -> Result<Self::Balance, DispatchError>
fn repatriate_reserved( slashed: &T::AccountId, beneficiary: &T::AccountId, value: Self::Balance, status: Status, ) -> Result<Self::Balance, DispatchError>
Move the reserved balance of one account into the balance of another, according to status.
Is a no-op if:
- the value to be moved is zero; or
- the
slashedid equal tobeneficiaryand thestatusisReserved.
This is Polite and thus will not repatriate any funds which would lead the total balance
to be less than the frozen amount. Returns Ok with the actual amount of funds moved,
which may be less than value since the operation is done an a BestEffort basis.
source§fn reserved_balance(who: &T::AccountId) -> Self::Balance
fn reserved_balance(who: &T::AccountId) -> Self::Balance
source§impl<T: Config<I>, I: 'static> StorageInfoTrait for Pallet<T, I>
impl<T: Config<I>, I: 'static> StorageInfoTrait for Pallet<T, I>
fn storage_info() -> Vec<StorageInfo>
source§impl<T: Config<I>, I: 'static> Unbalanced<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Unbalanced<<T as Config>::AccountId> for Pallet<T, I>
source§fn handle_dust(dust: Dust<T::AccountId, Self>)
fn handle_dust(dust: Dust<T::AccountId, Self>)
Dust] can be
converted into a [Credit] with the [Balanced] trait impl.source§fn write_balance(
who: &T::AccountId,
amount: Self::Balance,
) -> Result<Option<Self::Balance>, DispatchError>
fn write_balance( who: &T::AccountId, amount: Self::Balance, ) -> Result<Option<Self::Balance>, DispatchError>
source§fn set_total_issuance(amount: Self::Balance)
fn set_total_issuance(amount: Self::Balance)
amount.source§fn deactivate(amount: Self::Balance)
fn deactivate(amount: Self::Balance)
source§fn reactivate(amount: Self::Balance)
fn reactivate(amount: Self::Balance)
§fn handle_raw_dust(amount: Self::Balance)
fn handle_raw_dust(amount: Self::Balance)
Unbalanced::handle_dust]. This is an unbalanced
operation and it must only be used when an account is modified in a raw fashion, outside of
the entire fungibles API. The amount is capped at [Inspect::minimum_balance()] - 1`. Read more§fn decrease_balance(
who: &AccountId,
amount: Self::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn decrease_balance( who: &AccountId, amount: Self::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
§fn increase_balance(
who: &AccountId,
amount: Self::Balance,
precision: Precision,
) -> Result<Self::Balance, DispatchError>
fn increase_balance( who: &AccountId, amount: Self::Balance, precision: Precision, ) -> Result<Self::Balance, DispatchError>
source§impl<T: Config<I>, I: 'static> Unbalanced<<T as Config>::AccountId> for Pallet<T, I>
impl<T: Config<I>, I: 'static> Unbalanced<<T as Config>::AccountId> for Pallet<T, I>
source§fn set_balance_on_hold(
reason: &Self::Reason,
who: &T::AccountId,
amount: Self::Balance,
) -> DispatchResult
fn set_balance_on_hold( reason: &Self::Reason, who: &T::AccountId, amount: Self::Balance, ) -> DispatchResult
who to amount. This is independent of any other
balances on hold or the main (“free”) balance. Read more§fn decrease_balance_on_hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
precision: Precision,
) -> Result<Self::Balance, DispatchError>
fn decrease_balance_on_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision, ) -> Result<Self::Balance, DispatchError>
§fn increase_balance_on_hold(
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
precision: Precision,
) -> Result<Self::Balance, DispatchError>
fn increase_balance_on_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision, ) -> Result<Self::Balance, DispatchError>
source§impl<T: Config<I>, I: 'static> WhitelistedStorageKeys for Pallet<T, I>
impl<T: Config<I>, I: 'static> WhitelistedStorageKeys for Pallet<T, I>
source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey> indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.impl<T, I> Eq for Pallet<T, I>
Auto Trait Implementations§
impl<T, I> Freeze for Pallet<T, I>
impl<T, I> RefUnwindSafe for Pallet<T, I>where
T: RefUnwindSafe,
I: RefUnwindSafe,
impl<T, I> Send for Pallet<T, I>
impl<T, I> Sync for Pallet<T, I>
impl<T, I> Unpin for Pallet<T, I>
impl<T, I> UnwindSafe for Pallet<T, I>where
T: UnwindSafe,
I: 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
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<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> 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<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> 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.