pub type TxExtension = ((AsScarcity<Runtime>, AuthorizeCall<Runtime>), CheckNonZeroSender<Runtime>, CheckSpecVersion<Runtime>, CheckTxVersion<Runtime>, CheckGenesis<Runtime>, CheckEra<Runtime>, CheckNonce<Runtime>, CheckWeight<Runtime>, SkipCheckIfFeeless<Runtime, ChargeAssetTxPayment<Runtime>>, CheckMetadataHash<Runtime>, SetOrigin<Runtime>, WeightReclaim<Runtime>);Expand description
The TransactionExtension to the basic transaction logic.
When you change this, you MUST modify sign in bin/node/testing/src/keyring.rs!
AsScarcity follows Coinage’s purse model. It must run with the origin modifiers, before
AuthorizeCall, signed-account checks such as CheckNonce, and
SkipCheckIfFeeless<ChargeAssetTxPayment>. The account checks deliberately skip the resulting
Origin::Nft, while payment observes that origin and skips feeless NFT operations. Keep the
relative order AsScarcity -> AuthorizeCall -> CheckNonce -> SkipCheckIfFeeless<ChargeAssetTxPayment>.