pub type NativeAndAssets = UnionOf<Balances, LocalAndForeignAssets, TargetFromLeft<RelayLocation, Location>, Location, AccountId>;
Expand description
Union fungibles implementation for LocalAndForeignAssets
and Balances
.
Aliased Type§
struct NativeAndAssets(/* private fields */);
Trait Implementations
Source§impl<Left, Right, Criterion, AssetKind, AccountId> AccountTouch<AssetKind, AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Inspect<AccountId> + AccountTouch<(), AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Right: Inspect<AccountId> + AccountTouch<<Right as Inspect<AccountId>>::AssetId, AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> AccountTouch<AssetKind, AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Inspect<AccountId> + AccountTouch<(), AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Right: Inspect<AccountId> + AccountTouch<<Right as Inspect<AccountId>>::AssetId, AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
Source§type Balance = <Left as Inspect<AccountId>>::Balance
type Balance = <Left as Inspect<AccountId>>::Balance
The type for currency units of the deposit.
Source§fn deposit_required(
asset: AssetKind,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as AccountTouch<AssetKind, AccountId>>::Balance
fn deposit_required( asset: AssetKind, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as AccountTouch<AssetKind, AccountId>>::Balance
The deposit amount of a native currency required for touching an account of the
asset
.Source§fn should_touch(asset: AssetKind, who: &AccountId) -> bool
fn should_touch(asset: AssetKind, who: &AccountId) -> bool
Check if an account for a given asset should be touched to meet the existence requirements.
Source§fn touch(
asset: AssetKind,
who: &AccountId,
depositor: &AccountId,
) -> Result<(), DispatchError>
fn touch( asset: AssetKind, who: &AccountId, depositor: &AccountId, ) -> Result<(), DispatchError>
Create an account for
who
of the asset
with a deposit taken from the depositor
.Source§impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§type OnDropDebt = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropDebt, <Right as Balanced<AccountId>>::OnDropDebt, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
type OnDropDebt = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropDebt, <Right as Balanced<AccountId>>::OnDropDebt, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
The type for managing what happens when an instance of
Debt
is dropped without being used.Source§type OnDropCredit = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropCredit, <Right as Balanced<AccountId>>::OnDropCredit, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
type OnDropCredit = ConvertImbalanceDropHandler<<Left as Balanced<AccountId>>::OnDropCredit, <Right as Balanced<AccountId>>::OnDropCredit, Criterion, AssetKind, <Left as Inspect<AccountId>>::Balance, <Right as Inspect<AccountId>>::AssetId, AccountId>
The type for managing what happens when an instance of
Credit
is dropped without being
used.Source§fn deposit(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, DispatchError>
fn deposit( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, DispatchError>
Source§fn issue(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>
fn issue( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::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 moreSource§fn pair(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>), DispatchError>
fn pair( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>), DispatchError>
Produce a pair of imbalances that cancel each other out exactly. Read more
Source§fn rescind(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>
fn rescind( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::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 moreSource§fn resolve(
who: &AccountId,
credit: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>,
) -> Result<(), Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>>
fn resolve( who: &AccountId, credit: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, ) -> Result<(), Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::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 moreSource§fn settle(
who: &AccountId,
debt: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>,
preservation: Preservation,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>>
fn settle( who: &AccountId, debt: Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit>, preservation: Preservation, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::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§fn withdraw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, DispatchError>
fn withdraw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, value: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, DispatchError>
fn done_rescind(_asset: Self::AssetId, _amount: Self::Balance)
fn done_issue(_asset: Self::AssetId, _amount: Self::Balance)
fn done_deposit(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_withdraw( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Balanced<AccountId> + DoneSlash<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, AccountId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>,
Right: Balanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance, Reason = <Left as Inspect<AccountId>>::Reason> + DoneSlash<AssetKind, <Left as Inspect<AccountId>>::Reason, AccountId, <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> Balanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Balanced<AccountId> + DoneSlash<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, AccountId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>,
Right: Balanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance, Reason = <Left as Inspect<AccountId>>::Reason> + DoneSlash<AssetKind, <Left as Inspect<AccountId>>::Reason, AccountId, <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
Source§fn slash(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> (Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance)
fn slash( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> (Imbalance<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropCredit, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Balanced<AccountId>>::OnDropDebt>, <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance)
Reduce the balance of some funds on hold in an account. Read more
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Create<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Create<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§impl<Reason, Balance, Left, Right, Criterion, AssetKind, AccountId> DoneSlash<AssetKind, Reason, AccountId, Balance> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Reason, Balance, Left, Right, Criterion, AssetKind, AccountId> DoneSlash<AssetKind, Reason, AccountId, Balance> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
fn done_slash( asset: AssetKind, reason: &Reason, who: &AccountId, amount: Balance, )
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§type Balance = <Left as Inspect<AccountId>>::Balance
type Balance = <Left as Inspect<AccountId>>::Balance
Scalar type for representing balance of an account.
Source§fn total_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The total amount of issuance in the system.
Source§fn active_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn active_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The total amount of issuance in the system excluding those which are controlled by the
system.
Source§fn minimum_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn minimum_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The minimum balance any single account may have.
Source§fn balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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 moreSource§fn total_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Get the total amount of funds whose ultimate beneficial ownership can be determined as
who
. Read moreSource§fn reducible_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
preservation: Preservation,
force: Fortitude,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn reducible_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, preservation: Preservation, force: Fortitude, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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
transfer and potentially go below user-level restrictions on the minimum amount of the
account. Read moreSource§fn can_deposit(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
provenance: Provenance,
) -> DepositConsequence
fn can_deposit( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, provenance: Provenance, ) -> DepositConsequence
Source§fn can_withdraw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> WithdrawConsequence<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>
fn can_withdraw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> WithdrawConsequence<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>
Returns
Failed
if the asset
balance of who
may not be decreased by amount
, otherwise
the consequence.Source§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§fn balance_frozen(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_frozen( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds held in reserve by
who
for the given id
.Source§fn balance_freezable(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_freezable( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
The amount of the balance which can become frozen. Defaults to
total_balance()
.Source§fn can_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> bool
fn can_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &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§impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Inspect<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§type Reason = <Left as Inspect<AccountId>>::Reason
type Reason = <Left as Inspect<AccountId>>::Reason
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 reducible_total_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
force: Fortitude,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn reducible_total_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, force: Fortitude, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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 moreSource§fn hold_available(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
) -> bool
fn hold_available( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &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 moreSource§fn total_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn total_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds on hold (for all hold reasons) of
who
.Source§fn balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
Amount of funds on hold (for the given reason) of
who
.Source§fn can_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> bool
fn can_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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 moreSource§fn ensure_can_hold(
asset: Self::AssetId,
reason: &Self::Reason,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn ensure_can_hold( asset: Self::AssetId, 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 moreSource§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§fn mint_into(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn mint_into( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
preservation: Preservation,
precision: Precision,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn burn_from( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, preservation: Preservation, precision: Precision, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn shelve( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Source§fn restore(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn restore( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Source§fn transfer(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
preservation: Preservation,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, preservation: Preservation, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer funds from one account into another. Read more
Source§fn set_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance
fn set_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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
fn done_mint_into( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
fn done_burn_from( _asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance, )
fn done_shelve(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_restore(_asset: Self::AssetId, _who: &AccountId, _amount: Self::Balance)
fn done_transfer( _asset: Self::AssetId, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance, )
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§fn set_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn set_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
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 moreSource§fn extend_freeze(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn extend_freeze( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
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 moreSource§fn thaw(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id,
who: &AccountId,
) -> Result<(), DispatchError>
fn thaw( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, id: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Id, who: &AccountId, ) -> Result<(), DispatchError>
Remove an existing lock.
Source§fn set_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn set_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
Source§fn ensure_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
fortitude: Fortitude,
) -> Result<(), DispatchError>
fn ensure_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, fortitude: Fortitude, ) -> Result<(), DispatchError>
Attempt to set the amount frozen under the given
id
to amount
, iff this would increase
the amount frozen under id
. Do nothing otherwise. Read moreSource§fn decrease_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn decrease_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
Decrease the amount which is being frozen for a particular lock, failing in the case of
underflow.
Source§fn increase_frozen(
asset: Self::AssetId,
id: &Self::Id,
who: &AccountId,
amount: Self::Balance,
) -> Result<(), DispatchError>
fn increase_frozen( asset: Self::AssetId, id: &Self::Id, who: &AccountId, amount: Self::Balance, ) -> Result<(), DispatchError>
Increase the amount which is being frozen for a particular lock, failing in the case that
too little balance is available for being frozen.
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Mutate<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§fn hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::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(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn release( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Release up to
amount
held funds in an account. Read moreSource§fn burn_held(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn burn_held( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Attempt to decrease the
asset
balance of who
which is held for the given reason
by
amount
. Read moreSource§fn transfer_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
mode: Restriction,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, mode: Restriction, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer held funds into a destination account. Read more
Source§fn transfer_and_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
source: &AccountId,
dest: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn transfer_and_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, source: &AccountId, dest: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Transfer some
amount
of free balance from source
to become owned by dest
but on hold
for reason
.
for reason
. Read moreSource§fn burn_all_held(
asset: Self::AssetId,
reason: &Self::Reason,
who: &AccountId,
precision: Precision,
force: Fortitude,
) -> Result<Self::Balance, DispatchError>
fn burn_all_held( asset: Self::AssetId, reason: &Self::Reason, who: &AccountId, precision: Precision, force: Fortitude, ) -> Result<Self::Balance, DispatchError>
fn done_hold( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_release( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_burn_held( _asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId, _amount: Self::Balance, )
fn done_transfer_on_hold( _asset: Self::AssetId, _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _amount: Self::Balance, )
fn done_transfer_and_hold( _asset: Self::AssetId, _reason: &Self::Reason, _source: &AccountId, _dest: &AccountId, _transferred: Self::Balance, )
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Refund<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Refund<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§type Balance = <Right as Refund<AccountId>>::Balance
type Balance = <Right as Refund<AccountId>>::Balance
Scalar type for representing deposit balance of an account.
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Unbalanced<AccountId>,
Right: Unbalanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>where
Left: Unbalanced<AccountId>,
Right: Unbalanced<AccountId, Balance = <Left as Inspect<AccountId>>::Balance>,
Criterion: Convert<AssetKind, Either<(), <Right as Inspect<AccountId>>::AssetId>>,
AssetKind: AssetId,
Source§fn handle_dust(
dust: Dust<AccountId, UnionOf<Left, Right, Criterion, AssetKind, AccountId>>,
)
fn handle_dust( dust: Dust<AccountId, UnionOf<Left, Right, Criterion, AssetKind, AccountId>>, )
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(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<Option<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>, DispatchError>
fn write_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<Option<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance>, DispatchError>
Source§fn set_total_issuance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
)
fn set_total_issuance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, )
Set the total issuance to
amount
.Source§fn decrease_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
preservation: Preservation,
force: Fortitude,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn decrease_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, preservation: Preservation, force: Fortitude, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Source§fn increase_balance(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
precision: Precision,
) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
fn increase_balance( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, precision: Precision, ) -> Result<<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, DispatchError>
Source§fn handle_raw_dust(asset: Self::AssetId, amount: Self::Balance)
fn handle_raw_dust(asset: Self::AssetId, 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 moreSource§fn deactivate(_asset: Self::AssetId, _: Self::Balance)
fn deactivate(_asset: Self::AssetId, _: Self::Balance)
Reduce the active issuance by some amount.
Source§fn reactivate(_asset: Self::AssetId, _: Self::Balance)
fn reactivate(_asset: Self::AssetId, _: Self::Balance)
Increase the active issuance by some amount, up to the outstanding amount reduced.
Source§impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
impl<Left, Right, Criterion, AssetKind, AccountId> Unbalanced<AccountId> for UnionOf<Left, Right, Criterion, AssetKind, AccountId>
Source§fn set_balance_on_hold(
asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId,
reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason,
who: &AccountId,
amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance,
) -> Result<(), DispatchError>
fn set_balance_on_hold( asset: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::AssetId, reason: &<UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Reason, who: &AccountId, amount: <UnionOf<Left, Right, Criterion, AssetKind, AccountId> as Inspect<AccountId>>::Balance, ) -> Result<(), DispatchError>
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