Trait pallet_evm::OnChargeEVMTransaction [−][src]
pub trait OnChargeEVMTransaction<T: Config> { type LiquidityInfo: Default; fn withdraw_fee(
who: &H160,
fee: U256
) -> Result<Self::LiquidityInfo, Error<T>>; fn correct_and_deposit_fee(
who: &H160,
corrected_fee: U256,
already_withdrawn: Self::LiquidityInfo
) -> Result<(), Error<T>>; }
Expand description
Handle withdrawing, refunding and depositing of transaction fees.
Similar to OnChargeTransaction
of pallet_transaction_payment
Associated Types
type LiquidityInfo: Default
Required methods
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.
fn correct_and_deposit_fee(
who: &H160,
corrected_fee: U256,
already_withdrawn: Self::LiquidityInfo
) -> Result<(), Error<T>>
fn correct_and_deposit_fee(
who: &H160,
corrected_fee: U256,
already_withdrawn: Self::LiquidityInfo
) -> Result<(), Error<T>>
After the transaction was executed the actual fee can be calculated. This function should refund any overpaid fees and optionally deposit the corrected amount.
Implementations on Foreign Types
impl<T> OnChargeEVMTransaction<T> for () where
T: Config,
<T::Currency as Currency<<T as Config>::AccountId>>::PositiveImbalance: Imbalance<<T::Currency as Currency<<T as Config>::AccountId>>::Balance, Opposite = <T::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance>,
<T::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance: Imbalance<<T::Currency as Currency<<T as Config>::AccountId>>::Balance, Opposite = <T::Currency as Currency<<T as Config>::AccountId>>::PositiveImbalance>,
impl<T> OnChargeEVMTransaction<T> for () where
T: Config,
<T::Currency as Currency<<T as Config>::AccountId>>::PositiveImbalance: Imbalance<<T::Currency as Currency<<T as Config>::AccountId>>::Balance, Opposite = <T::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance>,
<T::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance: Imbalance<<T::Currency as Currency<<T as Config>::AccountId>>::Balance, Opposite = <T::Currency as Currency<<T as Config>::AccountId>>::PositiveImbalance>,
Implementation for () does not specify what to do with imbalance