pub trait Inspect<AccountId> {
    type Balance: Balance;

    // Required methods
    fn total_issuance() -> Self::Balance;
    fn minimum_balance() -> Self::Balance;
    fn balance(who: &AccountId) -> Self::Balance;
    fn reducible_balance(who: &AccountId, keep_alive: bool) -> Self::Balance;
    fn can_deposit(
        who: &AccountId,
        amount: Self::Balance,
        mint: bool
    ) -> DepositConsequence;
    fn can_withdraw(
        who: &AccountId,
        amount: Self::Balance
    ) -> WithdrawConsequence<Self::Balance>;

    // Provided method
    fn active_issuance() -> Self::Balance { ... }
}
Expand description

Trait for providing balance-inspection access to a fungible asset.

Required Associated Types§

source

type Balance: Balance

Scalar type for representing balance of an account.

Required Methods§

source

fn total_issuance() -> Self::Balance

The total amount of issuance in the system.

source

fn minimum_balance() -> Self::Balance

The minimum balance any single account may have.

source

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

Get the balance of who.

source

fn reducible_balance(who: &AccountId, keep_alive: bool) -> Self::Balance

Get the maximum amount that who can withdraw/transfer successfully.

source

fn can_deposit( who: &AccountId, amount: Self::Balance, mint: bool ) -> DepositConsequence

Returns true if the balance of who may be increased by amount.

  • who: The account of which the balance should be increased by amount.
  • amount: How much should the balance be increased?
  • mint: Will amount be minted to deposit it into account?
source

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

Returns Failed if the balance of who may not be decreased by amount, otherwise the consequence.

Provided Methods§

source

fn active_issuance() -> Self::Balance

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

Implementors§

source§

impl<F: Inspect<AccountId>, A: Get<<F as Inspect<AccountId>>::AssetId>, AccountId> Inspect<AccountId> for ItemOf<F, A, AccountId>

§

type Balance = <F as Inspect<AccountId>>::Balance