Struct pallet_evm::EVMCurrencyAdapter
source · pub struct EVMCurrencyAdapter<C, OU>(/* private fields */);
Expand description
Implements the transaction payment for a pallet implementing the Currency
trait (eg. the pallet_balances) using an unbalance handler (implementing
OnUnbalanced
).
Similar to CurrencyAdapter
of pallet_transaction_payment
Trait Implementations§
source§impl<T, C, OU> OnChargeEVMTransaction<T> for EVMCurrencyAdapter<C, OU>where
T: Config,
C: Currency<<T as Config>::AccountId>,
C::PositiveImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::NegativeImbalance>,
C::NegativeImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::PositiveImbalance>,
OU: OnUnbalanced<<C as Currency<<T as Config>::AccountId>>::NegativeImbalance>,
U256: UniqueSaturatedInto<<C as Currency<<T as Config>::AccountId>>::Balance>,
impl<T, C, OU> OnChargeEVMTransaction<T> for EVMCurrencyAdapter<C, OU>where
T: Config,
C: Currency<<T as Config>::AccountId>,
C::PositiveImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::NegativeImbalance>,
C::NegativeImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::PositiveImbalance>,
OU: OnUnbalanced<<C as Currency<<T as Config>::AccountId>>::NegativeImbalance>,
U256: UniqueSaturatedInto<<C as Currency<<T as Config>::AccountId>>::Balance>,
type LiquidityInfo = Option<<C as Currency<<T as Config>::AccountId>>::NegativeImbalance>
source§fn withdraw_fee(who: &H160, fee: U256) -> Result<Self::LiquidityInfo, Error<T>>
fn withdraw_fee(who: &H160, fee: U256) -> Result<Self::LiquidityInfo, Error<T>>
Before the transaction is executed the payment of the transaction fees
need to be secured.
source§fn correct_and_deposit_fee(
who: &H160,
corrected_fee: U256,
base_fee: U256,
already_withdrawn: Self::LiquidityInfo
) -> Self::LiquidityInfo
fn correct_and_deposit_fee( who: &H160, corrected_fee: U256, base_fee: U256, already_withdrawn: Self::LiquidityInfo ) -> Self::LiquidityInfo
After the transaction was executed the actual fee can be calculated.
This function should refund any overpaid fees and optionally deposit
the corrected amount, and handles the base fee rationing using the provided
OnUnbalanced
implementation.
Returns the NegativeImbalance
- if any - produced by the priority fee.source§fn pay_priority_fee(tip: Self::LiquidityInfo)
fn pay_priority_fee(tip: Self::LiquidityInfo)
Introduced in EIP1559 to handle the priority tip.
Auto Trait Implementations§
impl<C, OU> RefUnwindSafe for EVMCurrencyAdapter<C, OU>where
C: RefUnwindSafe,
OU: RefUnwindSafe,
impl<C, OU> Send for EVMCurrencyAdapter<C, OU>
impl<C, OU> Sync for EVMCurrencyAdapter<C, OU>
impl<C, OU> Unpin for EVMCurrencyAdapter<C, OU>
impl<C, OU> UnwindSafe for EVMCurrencyAdapter<C, OU>where
C: UnwindSafe,
OU: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.