opentensor / subtensor

Bittensor Blockchain Layer
The Unlicense
130 stars 143 forks source link

Fix Free Transactions #403

Closed distributedstatemachine closed 3 months ago

distributedstatemachine commented 3 months ago

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

Tasks

Related Links

open-junius commented 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.

open-junius commented 3 months ago

https://github.com/paritytech/polkadot-sdk/pull/4165/files fix from upstream. which can fix it but we need wait for its merge

distributedstatemachine commented 3 months ago

Closed by https://github.com/opentensor/subtensor/pull/404