Closed distributedstatemachine closed 3 months ago
According to my investigation, the root cause is the account.providers.is_zero() && account.sufficients.is_zero()
check added when nonce check in extrinsic extension. We can't fix in via introduce the feeless trait for some extrinsic. Feeless is the machenism in transaction payment pallet, to check accept the transaction or not. But the added check happens before it, the extrinsic fails when check extrinsic extension.
https://github.com/paritytech/polkadot-sdk/pull/4165/files fix from upstream. which can fix it but we need wait for its merge
Description
Currently, our runtime does not properly handle fee-free transactions using the pallet_skip_feeless_payment module. This leads to inconsistencies and potential issues with transaction processing, as free transactions now require a fee.. The recent upgrade to Polkadot v1.10 removed the previous functionality, causing a regression in our system. In essence ,
Pays=No
becomes a noop.Acceptance Criteria
SkipFeelessPaymentConfig
.Tasks
pallet-skip-feeless-payment
dependency.[ ] Implement the
pallet_skip_feeless_payment::Config
trait for the runtime:RuntimeEvent
enum inruntime/src/lib.rs
:construct_runtime!
macro to include theSkipFeelessPayment
module.Related Links