Crate pallet_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::GetPalletVersion 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. |