Struct orml_tokens::CurrencyAdapter [−][src]
pub struct CurrencyAdapter<T, GetCurrencyId>(_);
Trait Implementations
impl<T, GetCurrencyId> Currency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Currency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
fn deposit_into_existing(
who: &T::AccountId,
value: Self::Balance
) -> Result<Self::PositiveImbalance, DispatchError>
fn deposit_into_existing(
who: &T::AccountId,
value: Self::Balance
) -> Result<Self::PositiveImbalance, DispatchError>
Deposit some value
into the free balance of an existing target account
who
.
Deposit some value
into the free balance of who
, possibly creating a
new account.
type PositiveImbalance = PositiveImbalance<T, GetCurrencyId>
type PositiveImbalance = PositiveImbalance<T, GetCurrencyId>
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. Read more
type NegativeImbalance = NegativeImbalance<T, GetCurrencyId>
type NegativeImbalance = NegativeImbalance<T, GetCurrencyId>
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. Read more
The combined balance of who
.
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. Read more
The total amount of issuance in the system.
The minimum balance any single account may have. This is equivalent to the Balances
module’s ExistentialDeposit
. Read more
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
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
The ‘free’ balance of a given account. Read more
fn ensure_can_withdraw(
who: &T::AccountId,
amount: Self::Balance,
_reasons: WithdrawReasons,
_new_balance: Self::Balance
) -> DispatchResult
fn ensure_can_withdraw(
who: &T::AccountId,
amount: Self::Balance,
_reasons: WithdrawReasons,
_new_balance: Self::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
fn transfer(
source: &T::AccountId,
dest: &T::AccountId,
value: Self::Balance,
existence_requirement: ExistenceRequirement
) -> DispatchResult
fn transfer(
source: &T::AccountId,
dest: &T::AccountId,
value: Self::Balance,
existence_requirement: ExistenceRequirement
) -> DispatchResult
Transfer some liquid free balance to another staker. Read more
Deducts up to value
from the combined balance of who
, preferring to deduct from the
free balance. This function cannot fail. Read more
fn withdraw(
who: &T::AccountId,
value: Self::Balance,
_reasons: WithdrawReasons,
liveness: ExistenceRequirement
) -> Result<Self::NegativeImbalance, DispatchError>
fn withdraw(
who: &T::AccountId,
value: Self::Balance,
_reasons: WithdrawReasons,
liveness: ExistenceRequirement
) -> Result<Self::NegativeImbalance, DispatchError>
Removes some free balance from who
account for reason
if possible. If liveness
is
KeepAlive
, then no less than ExistentialDeposit
must be left remaining. Read more
fn make_free_balance_be(
who: &T::AccountId,
value: Self::Balance
) -> SignedImbalance<Self::Balance, Self::PositiveImbalance>
fn make_free_balance_be(
who: &T::AccountId,
value: Self::Balance
) -> SignedImbalance<Self::Balance, Self::PositiveImbalance>
Ensure an account’s free balance equals some value; this will create the account if needed. Read more
Produce a pair of imbalances that cancel each other out exactly. Read more
fn resolve_into_existing(
who: &AccountId,
value: Self::NegativeImbalance
) -> Result<(), Self::NegativeImbalance>
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. Read more
Similar to deposit_creating, only accepts a NegativeImbalance
and returns nothing on
success. Read more
fn settle(
who: &AccountId,
value: Self::PositiveImbalance,
reasons: WithdrawReasons,
liveness: ExistenceRequirement
) -> Result<(), Self::PositiveImbalance>
fn settle(
who: &AccountId,
value: Self::PositiveImbalance,
reasons: WithdrawReasons,
liveness: ExistenceRequirement
) -> Result<(), Self::PositiveImbalance>
Similar to withdraw, only accepts a PositiveImbalance
and returns nothing on success.
impl<T, GetCurrencyId> Inspect<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Inspect<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
The total amount of issuance in the system.
The minimum balance any single account may have.
Get the maximum amount that who
can withdraw/transfer successfully.
Returns true
if the balance of who
may be increased by amount
.
fn can_withdraw(
who: &T::AccountId,
amount: Self::Balance
) -> WithdrawConsequence<Self::Balance>
fn can_withdraw(
who: &T::AccountId,
amount: Self::Balance
) -> WithdrawConsequence<Self::Balance>
Returns Failed
if the balance of who
may not be decreased by amount
, otherwise
the consequence. Read more
impl<T, GetCurrencyId> InspectHold<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> InspectHold<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> LockableCurrency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> LockableCurrency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
type Moment = T::BlockNumber
type Moment = T::BlockNumber
The quantity used to denote time; usually just a BlockNumber
.
fn set_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: Self::Balance,
_reasons: WithdrawReasons
)
fn set_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: Self::Balance,
_reasons: WithdrawReasons
)
Create a new balance lock on account who
. Read more
fn extend_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: Self::Balance,
_reasons: WithdrawReasons
)
fn extend_lock(
id: LockIdentifier,
who: &T::AccountId,
amount: Self::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
Remove an existing lock.
impl<T, GetCurrencyId> Mutate<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Mutate<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
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. Read more
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. Read more
Attempt to reduce the balance of who
by as much as possible up to amount
, and possibly
slightly more due to minimum_balance requirements. If no decrease is possible then an Err
is returned and nothing is changed. If successful, the amount of tokens reduced is returned. Read more
impl<T, GetCurrencyId> MutateHold<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> MutateHold<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
Hold some funds in an account.
Release up to amount
held funds in an account. Read more
impl<T, GetCurrencyId> ReservableCurrency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> ReservableCurrency<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
Same result as reserve(who, value)
(but without the side-effects) assuming there
are no balance changes in the meantime. Read more
fn slash_reserved(
who: &T::AccountId,
value: Self::Balance
) -> (Self::NegativeImbalance, Self::Balance)
fn slash_reserved(
who: &T::AccountId,
value: Self::Balance
) -> (Self::NegativeImbalance, Self::Balance)
Deducts up to value
from reserved balance of who
. This function cannot fail. Read more
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
Moves value
from balance to reserved balance. Read more
Moves up to value
from reserved balance to free balance. This function cannot fail. Read more
fn repatriate_reserved(
slashed: &T::AccountId,
beneficiary: &T::AccountId,
value: Self::Balance,
status: Status
) -> Result<Self::Balance, DispatchError>
fn repatriate_reserved(
slashed: &T::AccountId,
beneficiary: &T::AccountId,
value: Self::Balance,
status: Status
) -> Result<Self::Balance, DispatchError>
Moves up to value
from reserved balance of account slashed
to balance of account
beneficiary
. beneficiary
must exist for this to succeed. If it does not, Err
will be
returned. Funds will be placed in either the free
balance or the reserved
balance,
depending on the status
. Read more
impl<T, GetCurrencyId> Transfer<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Transfer<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Unbalanced<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
impl<T, GetCurrencyId> Unbalanced<<T as Config>::AccountId> for CurrencyAdapter<T, GetCurrencyId> where
T: Config,
GetCurrencyId: Get<T::CurrencyId>,
Set the balance of who
to amount
. If this cannot be done for some reason (e.g.
because the account cannot be created or an overflow) then an Err
is returned. Read more
Set the total issuance to amount
.
fn decrease_balance(
who: &AccountId,
amount: Self::Balance
) -> Result<Self::Balance, DispatchError>
fn decrease_balance(
who: &AccountId,
amount: Self::Balance
) -> Result<Self::Balance, DispatchError>
Reduce the balance of who
by amount
. If it cannot be reduced by that amount for
some reason, return Err
and don’t reduce it at all. If Ok, return the imbalance. Read more
Reduce the balance of who
by the most that is possible, up to amount
. Read more
fn increase_balance(
who: &AccountId,
amount: Self::Balance
) -> Result<Self::Balance, DispatchError>
fn increase_balance(
who: &AccountId,
amount: Self::Balance
) -> Result<Self::Balance, DispatchError>
Increase the balance of who
by amount
. If it cannot be increased by that amount
for some reason, return Err
and don’t increase it at all. If Ok, return the imbalance. Read more
Auto Trait Implementations
impl<T, GetCurrencyId> RefUnwindSafe for CurrencyAdapter<T, GetCurrencyId> where
GetCurrencyId: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, GetCurrencyId> Send for CurrencyAdapter<T, GetCurrencyId> where
GetCurrencyId: Send,
T: Send,
impl<T, GetCurrencyId> Sync for CurrencyAdapter<T, GetCurrencyId> where
GetCurrencyId: Sync,
T: Sync,
impl<T, GetCurrencyId> Unpin for CurrencyAdapter<T, GetCurrencyId> where
GetCurrencyId: Unpin,
T: Unpin,
impl<T, GetCurrencyId> UnwindSafe for CurrencyAdapter<T, GetCurrencyId> where
GetCurrencyId: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
type OnDropCredit = DecreaseIssuance<AccountId, U>
type OnDropCredit = DecreaseIssuance<AccountId, U>
The type for managing what happens when an instance of Credit
is dropped without being
used. Read more
type OnDropDebt = IncreaseIssuance<AccountId, U>
type OnDropDebt = IncreaseIssuance<AccountId, U>
The type for managing what happens when an instance of Debt
is dropped without being used.
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
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
Deducts up to value
from the combined balance of who
. This function cannot fail. Read more
Mints exactly value
into the account of who
. Read more
Removes value
balance from who
account if possible. Read more
fn pair(
amount: Self::Balance
) -> (Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>, Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>)
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
fn resolve(
who: &AccountId,
credit: Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>
) -> Result<(), Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>>
fn resolve(
who: &AccountId,
credit: Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>
) -> Result<(), Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>>
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
fn settle(
who: &AccountId,
debt: Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>
) -> Result<Imbalance<Self::Balance, Self::OnDropCredit, Self::OnDropDebt>, Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>>
fn settle(
who: &AccountId,
debt: Imbalance<Self::Balance, Self::OnDropDebt, Self::OnDropCredit>
) -> 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
. Read more
impl<AccountId, T> BalancedHold<AccountId> for T where
T: Balanced<AccountId> + MutateHold<AccountId>,
impl<AccountId, T> BalancedHold<AccountId> for T where
T: Balanced<AccountId> + MutateHold<AccountId>,
Reduce the balance of some funds on hold in an account. Read more
Mutably borrows from an owned value. Read more
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Causes self
to use its Binary
implementation when Debug
-formatted.
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
Causes self
to use its Octal
implementation when Debug
-formatted.
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
Pipes by value. This is generally the method you want to use. Read more
Borrows self
and passes that borrow into the pipe function. Read more
Mutably borrows self
and passes that borrow into the pipe function. Read more
Borrows self
, then passes self.borrow()
into the pipe function. Read more
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
Borrows self
, then passes self.as_ref()
into the pipe function.
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
Borrows self
, then passes self.deref()
into the pipe function.
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
Immutable access to the Borrow<B>
of a value. Read more
Mutable access to the BorrowMut<B>
of a value. Read more
Immutable access to the AsRef<R>
view of a value. Read more
Mutable access to the AsMut<R>
view of a value. Read more
Immutable access to the Deref::Target
of a value. Read more
Mutable access to the Deref::Target
of a value. Read more
Calls .tap()
only in debug builds, and is erased in release builds.
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
Calls .tap_deref()
only in debug builds, and is erased in release
builds. Read more
Provides immutable access to the reference for inspection.
Calls tap_ref
in debug builds, and does nothing in release builds.
Provides mutable access to the reference for modification.
Calls tap_ref_mut
in debug builds, and does nothing in release builds.
Provides immutable access to the borrow for inspection. Read more
Calls tap_borrow
in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
Immutably dereferences self
for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref
in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self
for modification.
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more