pub struct OnChargeDomainTransaction<C>(/* private fields */);
Expand description
Implementation of [pallet_transaction_payment::OnChargeTransaction
] that charges transaction
fees and distributes storage/compute fees and tip separately.
Trait Implementations§
source§impl<T, C> OnChargeTransaction<T> for OnChargeDomainTransaction<C>where
T: Config + Config<Balance = <C as Currency<<T as Config>::AccountId>>::Balance>,
C: Currency<<T as Config>::AccountId>,
C::PositiveImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::NegativeImbalance>,
impl<T, C> OnChargeTransaction<T> for OnChargeDomainTransaction<C>where
T: Config + Config<Balance = <C as Currency<<T as Config>::AccountId>>::Balance>,
C: Currency<<T as Config>::AccountId>,
C::PositiveImbalance: Imbalance<<C as Currency<<T as Config>::AccountId>>::Balance, Opposite = C::NegativeImbalance>,
type LiquidityInfo = Option<LiquidityInfo<<C as Currency<<T as Config>::AccountId>>::Balance, <C as Currency<<T as Config>::AccountId>>::NegativeImbalance>>
source§type Balance = <C as Currency<<T as Config>::AccountId>>::Balance
type Balance = <C as Currency<<T as Config>::AccountId>>::Balance
The underlying integer type in which fees are calculated.
source§fn withdraw_fee(
who: &<T as Config>::AccountId,
call: &T::RuntimeCall,
_info: &DispatchInfoOf<T::RuntimeCall>,
fee: Self::Balance,
tip: Self::Balance,
) -> Result<Self::LiquidityInfo, TransactionValidityError>
fn withdraw_fee( who: &<T as Config>::AccountId, call: &T::RuntimeCall, _info: &DispatchInfoOf<T::RuntimeCall>, fee: Self::Balance, tip: Self::Balance, ) -> Result<Self::LiquidityInfo, TransactionValidityError>
Before the transaction is executed the payment of the transaction fees
need to be secured. Read more
source§fn correct_and_deposit_fee(
who: &<T as Config>::AccountId,
_dispatch_info: &DispatchInfoOf<T::RuntimeCall>,
_post_info: &PostDispatchInfoOf<T::RuntimeCall>,
corrected_fee: Self::Balance,
_tip: Self::Balance,
liquidity_info: Self::LiquidityInfo,
) -> Result<(), TransactionValidityError>
fn correct_and_deposit_fee( who: &<T as Config>::AccountId, _dispatch_info: &DispatchInfoOf<T::RuntimeCall>, _post_info: &PostDispatchInfoOf<T::RuntimeCall>, corrected_fee: Self::Balance, _tip: Self::Balance, liquidity_info: Self::LiquidityInfo, ) -> Result<(), TransactionValidityError>
After the transaction was executed the actual fee can be calculated.
This function should refund any overpaid fees and optionally deposit
the corrected amount. Read more
Auto Trait Implementations§
impl<C> Freeze for OnChargeDomainTransaction<C>
impl<C> RefUnwindSafe for OnChargeDomainTransaction<C>where
C: RefUnwindSafe,
impl<C> Send for OnChargeDomainTransaction<C>where
C: Send,
impl<C> Sync for OnChargeDomainTransaction<C>where
C: Sync,
impl<C> Unpin for OnChargeDomainTransaction<C>where
C: Unpin,
impl<C> UnwindSafe for OnChargeDomainTransaction<C>where
C: 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>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§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
.