closes https://github.com/paritytech/polkadot-sdk/issues/1882 ## Breaking Changes This PR introduces a new item to `pallet_balances::Config`: ```diff trait Config { ++ type RuntimeFreezeReasons; } ``` This value is only used to check it against `type MaxFreeze`. A similar check has been added for `MaxHolds` against `RuntimeHoldReasons`, which is already given to `pallet_balances`. In all contexts, you should pass the real `RuntimeFreezeReasons` generated by `construct_runtime` to `type RuntimeFreezeReasons`. Passing `()` would also work, but it would imply that the runtime uses no freezes at all. --------- Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
pallet-asset-conversion-tx-payment
Asset Conversion Transaction Payment Pallet
This pallet allows runtimes that include it to pay for transactions in assets other than the native token of the chain.
Overview
It does this by extending transactions to include an optional AssetId that specifies the asset
to be used for payment (defaulting to the native token on None). It expects an
[OnChargeAssetTransaction] implementation analogously to [pallet-transaction-payment]. The
included [AssetConversionAdapter] (implementing [OnChargeAssetTransaction]) determines the fee
amount by converting the fee calculated by [pallet-transaction-payment] into the desired
asset.
Integration
This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means
you should include both pallets in your construct_runtime macro, but only include this
pallet's [SignedExtension] ([ChargeAssetTxPayment]).
License: Apache-2.0