Crate noble_transaction_payment[−][src]
Transaction Payment Module
This module provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:
- base fee: This is the minimum amount a user pays for a transaction. It is declared
as a base weight in the runtime and converted to a fee using
WeightToFee
. - weight fee: A fee proportional to amount of weight a transaction consumes.
- length fee: A fee proportional to the encoded length of the transaction.
- tip: An optional tip. Tip increases the priority of the transaction, giving it a higher chance to be included by the transaction queue.
The base fee and adjusted weight and length fees constitute the inclusion fee, which is the minimum fee for a transaction to be included in a block.
The formula of final fee:
inclusion_fee = base_fee + length_fee + [targeted_fee_adjustment * weight_fee]; final_fee = inclusion_fee + tip;
targeted_fee_adjustment
: This is a multiplier that can tune the final fee based on the congestion of the network.
Additionally, this module allows one to configure:
- The mapping between one unit of weight to one unit of fee via
Config::WeightToFee
. - A means of updating the fee for the next block, via defining a multiplier, based on the
final state of the chain at the end of the previous block. This can be configured via
Config::FeeMultiplierUpdate
- How the fees are paid via
Config::OnChargeTransaction
.
Re-exports
pub use $crate::traits::GetNobleVersion as _; |
Structs
ChargeTransactionPayment | Require the transactor pay for themselves and maybe include a tip to gain additional priority in the queue. |
CurrencyAdapter | Implements the transaction payment for a module implementing the |
FeeDetails | The |
GenesisConfig | Genesis config for the module, allow to build genesis storage. |
InclusionFee | The base fee and adjusted weight and length fees constitute the inclusion fee. |
Module | |
NextFeeMultiplier | |
RuntimeDispatchInfo | Information related to a dispatchable’s class, weight, and fee that can be queried from the runtime. |
TargetedFeeAdjustment | A struct to update the weight multiplier per block. It implements |
Enums
Call | Dispatchable calls. |
Traits
Config | |
MultiplierUpdate | Something that can convert the current multiplier to the next one. |
OnChargeTransaction | Handle withdrawing, refunding and depositing of transaction fees. |
Type Definitions
Multiplier | Fee multiplier. |