Make `TransactionExtension` tuple of tuple transparent for implication (#7028)
Currently `(A, B, C)` and `((A, B), C)` change the order of implications
in the transaction extension pipeline. This order is not accessible in
the metadata, because the metadata is just a vector of transaction
extension, the nested structure is not visible.
This PR make the implementation for tuple of `TransactionExtension`
better for tuple of tuple. `(A, B, C)` and `((A, B), C)` don't change
the implication for the validation A.
This is a breaking change but only when using the trait
`TransactionExtension` the code implementing the trait is not breaking
(surprising rust behavior but fine).
---------
Co-authored-by: command-bot <>
Co-authored-by:
Bastian Köcher <git@kchr.de>
parent
0b4f131b
Showing
- prdoc/pr_7028.prdoc 25 additions, 0 deletionsprdoc/pr_7028.prdoc
- substrate/frame/system/src/extensions/check_non_zero_sender.rs 2 additions, 2 deletions...rate/frame/system/src/extensions/check_non_zero_sender.rs
- substrate/frame/system/src/extensions/check_nonce.rs 3 additions, 3 deletionssubstrate/frame/system/src/extensions/check_nonce.rs
- substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs 3 additions, 2 deletions...frame/transaction-payment/skip-feeless-payment/src/lib.rs
- substrate/primitives/runtime/src/traits/mod.rs 2 additions, 1 deletionsubstrate/primitives/runtime/src/traits/mod.rs
- substrate/primitives/runtime/src/traits/transaction_extension/dispatch_transaction.rs 1 addition, 1 deletion.../src/traits/transaction_extension/dispatch_transaction.rs
- substrate/primitives/runtime/src/traits/transaction_extension/mod.rs 243 additions, 15 deletions...rimitives/runtime/src/traits/transaction_extension/mod.rs