pub struct Pallet<T, I = ()>(_);
Expand description

The Pallet struct, the main type that implements traits and standalone functions within the pallet.

Implementations§

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

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.

source

pub fn set_balance_deprecated( origin: OriginFor<T>, who: <<T as Config>::Lookup as StaticLookup>::Source, new_free: T::Balance, old_reserved: T::Balance ) -> DispatchResult

Set the regular balance of a given account; it also takes a reserved balance but this must be the same as the account’s current reserved balance.

The dispatch origin for this call is root.

WARNING: This call is DEPRECATED! Use force_set_balance instead.

source

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.

source

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.

source

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 the transfer_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).
source

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.

source

pub fn upgrade_accounts( origin: OriginFor<T>, who: Vec<T::AccountId> ) -> DispatchResultWithPostInfo

Upgrade a specified account.

  • origin: Must be Signed.
  • 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).

source

pub fn transfer( origin: OriginFor<T>, dest: <<T as Config>::Lookup as StaticLookup>::Source, value: T::Balance ) -> DispatchResult

Alias for transfer_allow_death, provided only for name-wise compatibility.

WARNING: DEPRECATED! Will be released in approximately 3 months.

source

pub fn force_set_balance( origin: OriginFor<T>, who: <<T as Config>::Lookup as StaticLookup>::Source, new_free: T::Balance ) -> DispatchResult

Set the regular balance of a given account.

The dispatch origin for this call is root.

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

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.

source

pub fn free_balance(who: impl Borrow<T::AccountId>) -> T::Balance

Get the free balance of an account.

source

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.

source

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.

source

pub fn reserved_balance(who: impl Borrow<T::AccountId>) -> T::Balance

Get the reserved balance of an account.

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

pub fn total_issuance() -> T::Balance

An auto-generated getter for TotalIssuance.

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

pub fn inactive_issuance() -> T::Balance

An auto-generated getter for InactiveIssuance.

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

pub fn locks<KArg>( k: KArg ) -> WeakBoundedVec<BalanceLock<T::Balance>, T::MaxLocks>where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for Locks.

source§

impl<T: Config<I>, I: 'static> Pallet<T, I>

source

pub fn reserves<KArg>( k: KArg ) -> BoundedVec<ReserveData<T::ReserveIdentifier, T::Balance>, T::MaxReserves>where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for Reserves.

Trait Implementations§

source§

impl<T: Config<I>, I: 'static> Balanced<<T as Config>::AccountId> for Pallet<T, I>

source§

fn slash( reason: &Self::Reason, who: &AccountId, amount: Self::Balance ) -> (Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Self::Balance)

Reduce the balance of some funds on hold in an account. Read more
source§

fn done_slash(_reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance)

source§

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>>

The type for managing what happens when an instance of Credit is dropped without being used.
§

type OnDropDebt = IncreaseIssuance<<T as Config>::AccountId, Pallet<T, I>>

The type for managing what happens when an instance of Debt is dropped without being used.
source§

fn done_deposit(who: &T::AccountId, amount: Self::Balance)

source§

fn done_withdraw(who: &T::AccountId, amount: Self::Balance)

source§

fn done_issue(amount: Self::Balance)

source§

fn done_rescind(amount: Self::Balance)

source§

fn rescind( amount: Self::Balance ) -> Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>

Reduce the total issuance by 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 more
source§

fn issue( amount: Self::Balance ) -> Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>

Increase the total issuance by 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 more
source§

fn pair( amount: Self::Balance ) -> (Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>)

Produce a pair of imbalances that cancel each other out exactly. Read more
source§

fn deposit( who: &AccountId, value: Self::Balance, precision: Precision ) -> Result<Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, DispatchError>

Mints value into the account of who, creating it as needed. Read more
source§

fn withdraw( who: &AccountId, value: Self::Balance, precision: Precision, preservation: Preservation, force: Fortitude ) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, DispatchError>

Removes value balance from who account if possible. Read more
source§

fn resolve( who: &AccountId, credit: Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt> ) -> Result<(), Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>>

The balance of 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
source§

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>>

The balance of 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, I: 'static> Benchmarking for Pallet<T, I>where T: Config + Config<I>,

source§

fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>

Get the benchmarks available for this pallet. Generally there is one benchmark per extrinsic, so these are sometimes just called “extrinsics”. Read more
source§

fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32 ) -> Result<Vec<BenchmarkResult>, BenchmarkError>

Run the benchmarks for this pallet.
source§

impl<T: Config<I>, I: 'static> Callable<T> for Pallet<T, I>

§

type RuntimeCall = Call<T, I>

source§

impl<T, I> Clone for Pallet<T, I>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Config<I>, I: 'static> Currency<<T as Config>::AccountId> for Pallet<T, I>where T::Balance: MaybeSerializeDeserialize + Debug,

source§

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>

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

Deposit some value into the free balance of who, possibly creating a new account.

This function is a no-op if:

  • the value to be deposited is zero; or
  • the value to 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
  • value is so large it would cause the balance of who to overflow.
source§

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>

Force the new free balance of a target account who to some new value balance.

§

type Balance = <T as Config<I>>::Balance

The balance of an account.
§

type PositiveImbalance = PositiveImbalance<T, I>

The opaque token type for an imbalance. This is returned by unbalanced operations and must be dealt with. It may be dropped but cannot be cloned.
§

type NegativeImbalance = NegativeImbalance<T, I>

The opaque token type for an imbalance. This is returned by unbalanced operations and must be dealt with. It may be dropped but cannot be cloned.
source§

fn total_balance(who: &T::AccountId) -> Self::Balance

The combined balance of who.
source§

fn can_slash(who: &T::AccountId, value: Self::Balance) -> bool

Same result as 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

The total amount of issuance in the system.
source§

fn active_issuance() -> Self::Balance

The total amount of issuance in the system excluding those which are controlled by the system.
source§

fn deactivate(amount: Self::Balance)

Reduce the active issuance by some amount.
source§

fn reactivate(amount: Self::Balance)

Increase the active issuance by some amount, up to the outstanding amount reduced.
source§

fn minimum_balance() -> Self::Balance

The minimum balance any single account may have. This is equivalent to the Balances module’s ExistentialDeposit.
source§

fn burn(amount: Self::Balance) -> Self::PositiveImbalance

Reduce the total issuance by 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 more
source§

fn issue(amount: Self::Balance) -> Self::NegativeImbalance

Increase the total issuance by 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 more
source§

fn free_balance(who: &T::AccountId) -> Self::Balance

The ‘free’ balance of a given account. Read more
source§

fn ensure_can_withdraw( who: &T::AccountId, amount: T::Balance, _reasons: WithdrawReasons, new_balance: T::Balance ) -> DispatchResult

Returns 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 more
source§

fn transfer( transactor: &T::AccountId, dest: &T::AccountId, value: Self::Balance, existence_requirement: ExistenceRequirement ) -> DispatchResult

Transfer some liquid free balance to another staker. Read more
source§

fn pair( amount: Self::Balance ) -> (Self::PositiveImbalance, Self::NegativeImbalance)

Produce a pair of imbalances that cancel each other out exactly. Read more
source§

fn resolve_into_existing( who: &AccountId, value: Self::NegativeImbalance ) -> Result<(), Self::NegativeImbalance>

Similar to deposit_creating, only accepts a NegativeImbalance and returns nothing on success.
source§

fn resolve_creating(who: &AccountId, value: Self::NegativeImbalance)

Similar to deposit_creating, only accepts a NegativeImbalance and returns nothing on success.
source§

fn settle( who: &AccountId, value: Self::PositiveImbalance, reasons: WithdrawReasons, liveness: ExistenceRequirement ) -> Result<(), Self::PositiveImbalance>

Similar to withdraw, only accepts a PositiveImbalance and returns nothing on success.
source§

impl<T, I> Debug for Pallet<T, I>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Config<I>, I: 'static> GetStorageVersion for Pallet<T, I>

§

type CurrentStorageVersion = StorageVersion

This will be filled out by the pallet macro. Read more
source§

fn current_storage_version() -> Self::CurrentStorageVersion

Returns the current storage version as supported by the pallet.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the on-chain storage version of the pallet as stored in the storage.
source§

impl<T: Config<I>, I: 'static> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

source§

fn on_initialize(_n: BlockNumber) -> Weight

Block initialization hook. This is called at the very beginning of block execution. Read more
source§

fn on_finalize(_n: BlockNumber)

Block finalization hook. This is called at the very end of block execution. Read more
source§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

Hook to consume a block’s idle time. This will run when the block is being finalized (before Hooks::on_finalize). Read more
source§

fn on_runtime_upgrade() -> Weight

Hook executed when a code change (aka. a “runtime upgrade”) is detected by FRAME. Read more
source§

fn try_state(_n: BlockNumber) -> Result<(), DispatchError>

Execute the sanity checks of this pallet, per block. Read more
source§

fn pre_upgrade() -> Result<Vec<u8, Global>, DispatchError>

Execute some pre-checks prior to a runtime upgrade. Read more
source§

fn post_upgrade(_state: Vec<u8, Global>) -> Result<(), DispatchError>

Execute some post-checks after a runtime upgrade. Read more
source§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a pallet allows you to perform long-running tasks that are dispatched as separate threads, and entirely independent of the main wasm runtime. Read more
source§

fn integrity_test()

Check the integrity of this pallet’s configuration. Read more
source§

impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>

§

type Balance = <T as Config<I>>::Balance

Scalar type for representing balance of an account.
source§

fn total_issuance() -> Self::Balance

The total amount of issuance in the system.
source§

fn active_issuance() -> Self::Balance

The total amount of issuance in the system excluding those which are controlled by the system.
source§

fn minimum_balance() -> Self::Balance

The minimum balance any single account may have.
source§

fn total_balance(who: &T::AccountId) -> Self::Balance

Get the total amount of funds whose ultimate beneficial ownership can be determined as who. Read more
source§

fn balance(who: &T::AccountId) -> Self::Balance

Get the balance of who which does not include funds which are exclusively allocated to subsystems of the chain (“on hold” or “reserved”). Read more
source§

fn reducible_balance( who: &T::AccountId, preservation: Preservation, force: Fortitude ) -> Self::Balance

Get the maximum amount that 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 more
source§

fn can_deposit( who: &T::AccountId, amount: Self::Balance, provenance: Provenance ) -> DepositConsequence

Returns true if the balance of who may be increased by amount. Read more
source§

fn can_withdraw( who: &T::AccountId, amount: Self::Balance ) -> WithdrawConsequence<Self::Balance>

Returns 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>

§

type Reason = <T as Config<I>>::RuntimeHoldReason

An identifier for a hold. Used for disambiguating different holds so that they can be individually replaced or removed and funds from one hold don’t accidentally become unreserved or slashed for another.
source§

fn total_balance_on_hold(who: &T::AccountId) -> T::Balance

Amount of funds on hold (for all hold reasons) of who.
source§

fn reducible_total_balance_on_hold( who: &T::AccountId, force: Fortitude ) -> Self::Balance

Get the maximum amount that the 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 more
source§

fn balance_on_hold(reason: &Self::Reason, who: &T::AccountId) -> T::Balance

Amount of funds on hold (for the given reason) of who.
source§

fn hold_available(reason: &Self::Reason, who: &T::AccountId) -> bool

Returns 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
source§

fn ensure_can_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance ) -> Result<(), DispatchError>

Check to see if some amount of funds of who may be placed on hold with the given reason. Reasons why this may not be true: Read more
source§

fn can_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance ) -> bool

Check to see if some amount of funds of who may be placed on hold for the given reason. Reasons why this may not be true: Read more
source§

impl<T: Config<I>, I: 'static> Inspect<<T as Config>::AccountId> for Pallet<T, I>

§

type Id = <T as Config<I>>::FreezeIdentifier

An identifier for a freeze.
source§

fn balance_frozen(id: &Self::Id, who: &T::AccountId) -> Self::Balance

Amount of funds held in reserve by who for the given id.
source§

fn can_freeze(id: &Self::Id, who: &T::AccountId) -> bool

Returns 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 freeze locks as there are possible values of id.
source§

fn balance_freezable(who: &AccountId) -> Self::Balance

The amount of the balance which can become frozen. Defaults to total_balance().
source§

impl<T: Config<I>, I: 'static> IntegrityTest for Pallet<T, I>

source§

impl<T: Config<I>, I: 'static> LockableCurrency<<T as Config>::AccountId> for Pallet<T, I>where T::Balance: MaybeSerializeDeserialize + Debug,

§

type Moment = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number

The quantity used to denote time; usually just a BlockNumber.
§

type MaxLocks = <T as Config<I>>::MaxLocks

The maximum number of locks a user should have on their account.
source§

fn set_lock( id: LockIdentifier, who: &T::AccountId, amount: T::Balance, reasons: WithdrawReasons )

Create a new balance lock on account who. Read more
source§

fn extend_lock( id: LockIdentifier, who: &T::AccountId, amount: T::Balance, reasons: WithdrawReasons )

Changes a balance lock (selected by id) so that it becomes less liquid in all parameters or creates a new one if it does not exist. Read more
source§

fn remove_lock(id: LockIdentifier, who: &T::AccountId)

Remove an existing lock.
source§

impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>

source§

fn hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance ) -> Result<(), DispatchError>

Hold some funds in an account. If a hold for reason is already in place, then this will increase it.
source§

fn release( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision ) -> Result<Self::Balance, DispatchError>

Release up to amount held funds in an account. Read more
source§

fn burn_held( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision, force: Fortitude ) -> Result<Self::Balance, DispatchError>

Attempt to decrease the balance of who which is held for the given reason by amount. Read more
source§

fn transfer_on_hold( reason: &Self::Reason, source: &AccountId, dest: &AccountId, amount: Self::Balance, precision: Precision, mode: Restriction, force: Fortitude ) -> Result<Self::Balance, DispatchError>

Transfer held funds into a destination account. Read more
source§

fn transfer_and_hold( reason: &Self::Reason, source: &AccountId, dest: &AccountId, amount: Self::Balance, precision: Precision, expendability: Preservation, force: Fortitude ) -> Result<Self::Balance, DispatchError>

Transfer some amount of free balance from source to become owned by dest but on hold for reason. Read more
source§

fn done_hold(_reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance)

source§

fn done_release( _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance )

source§

fn done_burn_held( _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance )

source§

fn done_transfer_on_hold( _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance )

source§

fn done_transfer_and_hold( _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _transferred: Self::Balance )

source§

impl<T: Config<I>, I: 'static> Mutate<<T as Config>::AccountId> for Pallet<T, I>

source§

fn done_mint_into(who: &T::AccountId, amount: Self::Balance)

source§

fn done_burn_from(who: &T::AccountId, amount: Self::Balance)

source§

fn done_shelve(who: &T::AccountId, amount: Self::Balance)

source§

fn done_restore(who: &T::AccountId, amount: Self::Balance)

source§

fn done_transfer( source: &T::AccountId, dest: &T::AccountId, amount: Self::Balance )

source§

fn mint_into( who: &AccountId, amount: Self::Balance ) -> Result<Self::Balance, DispatchError>

Increase the balance of who by exactly amount, minting new tokens. If that isn’t possible then an Err is returned and nothing is changed.
source§

fn burn_from( who: &AccountId, amount: Self::Balance, precision: Precision, force: Fortitude ) -> Result<Self::Balance, DispatchError>

Decrease the balance of who by at least amount, possibly slightly more in the case of minimum-balance requirements, burning the tokens. If that isn’t possible then an Err is returned and nothing is changed. If successful, the amount of tokens reduced is returned.
source§

fn shelve( who: &AccountId, amount: Self::Balance ) -> Result<Self::Balance, DispatchError>

Attempt to decrease the asset balance of who by amount. Read more
source§

fn restore( who: &AccountId, amount: Self::Balance ) -> Result<Self::Balance, DispatchError>

Attempt to increase the asset balance of who by amount. Read more
source§

fn transfer( source: &AccountId, dest: &AccountId, amount: Self::Balance, preservation: Preservation ) -> Result<Self::Balance, DispatchError>

Transfer funds from one account into another.
source§

fn set_balance(who: &AccountId, amount: Self::Balance) -> Self::Balance

Simple infallible function to force an account to have a particular balance, good for use in tests and benchmarks but not recommended for production code owing to the lack of error reporting. Read more
source§

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

Prevent actions which would reduce the balance of the account of 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 more
source§

fn extend_freeze( id: &Self::Id, who: &T::AccountId, amount: Self::Balance ) -> DispatchResult

Prevent the balance of the account of 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
source§

fn thaw(id: &Self::Id, who: &T::AccountId) -> DispatchResult

Remove an existing lock.
source§

impl<T: Config<I>, I: 'static> NamedReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>where T::Balance: MaybeSerializeDeserialize + Debug,

source§

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

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)

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>

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 slashed id equal to beneficiary and the status is Reserved.
§

type ReserveIdentifier = <T as Config<I>>::ReserveIdentifier

An identifier for a reserve. Used for disambiguating different reserves so that they can be individually replaced or removed.
source§

fn reserved_balance_named( id: &Self::ReserveIdentifier, who: &T::AccountId ) -> Self::Balance

The amount of the balance of a given account that is externally reserved; this can still get slashed, but gets slashed last of all. Read more
source§

fn ensure_reserved_named( id: &Self::ReserveIdentifier, who: &AccountId, value: Self::Balance ) -> Result<(), DispatchError>

Ensure the reserved balance is equal to value. Read more
source§

fn unreserve_all_named( id: &Self::ReserveIdentifier, who: &AccountId ) -> Self::Balance

Unreserve all the named reserved balances, returning unreserved amount. Read more
source§

fn slash_all_reserved_named( id: &Self::ReserveIdentifier, who: &AccountId ) -> Self::NegativeImbalance

Slash all the reserved balance, returning the negative imbalance created. Read more
source§

fn repatriate_all_reserved_named( id: &Self::ReserveIdentifier, slashed: &AccountId, beneficiary: &AccountId, status: BalanceStatus ) -> Result<(), DispatchError>

Move all the named 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. Read more
source§

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>)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config<I>, I: 'static> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

source§

impl<T: Config<I>, I: 'static> OnGenesis for Pallet<T, I>

source§

fn on_genesis()

Something that should happen at genesis.
source§

impl<T: Config<I>, I: 'static> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

source§

fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight

source§

impl<T: Config<I>, I: 'static> OnInitialize<<<<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>

source§

fn on_runtime_upgrade() -> Weight

source§

fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>

source§

fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>

source§

fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>

The expected and default behavior of this method is to handle executing pre_upgrade -> on_runtime_upgrade -> post_upgrade hooks for a migration. Read more
source§

impl<T: Config<I>, I: 'static> PalletInfoAccess for Pallet<T, I>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config<I>, I: 'static> PalletsInfoAccess for Pallet<T, I>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T, I> PartialEq<Pallet<T, I>> for Pallet<T, I>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Config<I>, I: 'static> ReservableCurrency<<T as Config>::AccountId> for Pallet<T, I>where T::Balance: MaybeSerializeDeserialize + Debug,

source§

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

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

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)

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>

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 slashed id equal to beneficiary and the status is Reserved.

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

The amount of the balance of a given account that is externally reserved; this can still get slashed, but gets slashed last of all. Read more
source§

impl<T: Config<I>, I: 'static> StorageInfoTrait for Pallet<T, I>

source§

impl<T: Config<I>, I: 'static> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T, I>

source§

fn try_state( n: BlockNumberFor<T>, _s: TryStateSelect ) -> Result<(), TryRuntimeError>

Execute the state checks.
source§

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

Forcefully set the balance on hold of who to amount. This is independent of any other balances on hold or the main (“free”) balance. Read more
source§

fn decrease_balance_on_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision ) -> Result<Self::Balance, DispatchError>

Reduce the balance on hold of who by amount. Read more
source§

fn increase_balance_on_hold( reason: &Self::Reason, who: &AccountId, amount: Self::Balance, precision: Precision ) -> Result<Self::Balance, DispatchError>

Increase the balance on hold of who by amount. Read more
source§

impl<T: Config<I>, I: 'static> Unbalanced<<T as Config>::AccountId> for Pallet<T, I>

source§

fn handle_dust(dust: Dust<T::AccountId, Self>)

Do something with the dust which has been destroyed from the system. 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>

Forcefully set the balance of who to amount. Read more
source§

fn set_total_issuance(amount: Self::Balance)

Set the total issuance to amount.
source§

fn deactivate(amount: Self::Balance)

Reduce the active issuance by some amount.
source§

fn reactivate(amount: Self::Balance)

Increase the active issuance by some amount, up to the outstanding amount reduced.
source§

fn handle_raw_dust(amount: Self::Balance)

Create some dust and handle it with Self::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 Self::minimum_balance() - 1. Read more
source§

fn decrease_balance( who: &AccountId, amount: Self::Balance, precision: Precision, preservation: Preservation, force: Fortitude ) -> Result<Self::Balance, DispatchError>

Reduce the balance of who by amount. Read more
source§

fn increase_balance( who: &AccountId, amount: Self::Balance, precision: Precision ) -> Result<Self::Balance, DispatchError>

Increase the balance of who by amount. Read more
source§

impl<T: Config<I>, I: 'static> WhitelistedStorageKeys for Pallet<T, I>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a 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.
source§

impl<T, I> Eq for Pallet<T, I>

Auto Trait Implementations§

§

impl<T, I> RefUnwindSafe for Pallet<T, I>where I: RefUnwindSafe, T: RefUnwindSafe,

§

impl<T, I> Send for Pallet<T, I>where I: Send, T: Send,

§

impl<T, I> Sync for Pallet<T, I>where I: Sync, T: Sync,

§

impl<T, I> Unpin for Pallet<T, I>where I: Unpin, T: Unpin,

§

impl<T, I> UnwindSafe for Pallet<T, I>where I: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CheckedConversion for T

source§

fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
source§

fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
source§

impl<T> DynClone for Twhere T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IsType<T> for T

source§

fn from_ref(t: &T) -> &T

Cast reference.
source§

fn into_ref(&self) -> &T

Cast reference.
source§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
source§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
source§

impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

source§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

source§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatedConversion for T

source§

fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
source§

fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
source§

impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,

source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for Twhere T: Debug,

source§

impl<T> MaybeRefUnwindSafe for Twhere T: RefUnwindSafe,

source§

impl<T> Member for Twhere T: Send + Sync + Debug + Eq + PartialEq<T> + Clone + 'static,

source§

impl<T> Scalar for Twhere T: 'static + Clone + PartialEq<T> + Debug,