Support transaction extensions that authorize over the inherited implication
@TarikGul ci sta già lavorando.
Dal 27/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Context
FRAME passes every transaction extension an inherited implication: the extension version, the call, the explicit values of every extension after it, then their implicit values. Authorization extensions like pallet_people::AsPerson prove over its hash instead of carrying a signature, and require a None origin, so they appear in V5 general transactions next to a disabled VerifyMultiSignature.
paritytech/frame-decode#110 asks frame-decode to expose that implication. subxt cannot build these transactions yet. custom_extension takes a fixed scale_value::Value and never authorizes (#2276), a custom Config still cannot see the implication, and signing always injects a signature into VerifyMultiSignature.
What I'd like
- Bump frame-decode and forward its implication support through
DefaultTransactionExtensionsand subxt's own extensions, since the set routes by name and would otherwise drop it. - Compute implication based values once per build and keep them on
SignableTransaction, so the signer payload and the submitted transaction carry identical bytes. Ring proofs are randomized, so computing them twice breaks the signature. - A two step path next to
signer_payloadandsign_with_account_and_signature: get the implication for a named extension, then inject its value. Proofs often come from a device or a remote prover, the same reason signing works this way today. - A way to build a V5 general transaction with
VerifyMultiSignaturedisabled, so an extension likeAsPersoncan be the only authorizer. - A way for a chain to add a typed extension next to the defaults without rewriting the default tuple, for example
DefaultTransactionExtensions<T, Extra = ()>named in itsConfig. Open to a closure based slot instead. - Let those typed extensions report
is_authorization_extensiononce the signer payload cut follows the signing extension, which addresses #2276 for typed extensions. Values fromcustom_extensionstay non authorizing.
Compatibility
Additive. Transactions that use none of this encode exactly as they do now.
- Lingua principale
- Rust
- Stelle
- 490
- Fork
- 288
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di paritytech/subxt
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
paritytech/subxt#2238 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
paritytech/subxt#2297 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
paritytech/subxt#2291 ·
-
View functions don't work as expectedForse già presa @RaphaelFakhri l’ha presa 13 giorni fa. Aperta
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
paritytech/subxt#2290 ·
-
Custom transaction extensions cannot be marked as authorization extensionsForse di nuovo libera @DenzelPenzel l’ha presa 56 giorni fa e non c’è nessuna pull request aperta. Aperta
paritytech/subxt#2276 · 1 assegnatario ·
Tutte le issue di paritytech/subxt
Issue simili
-
bug priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
storytold/photocraft#12183 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
area:render needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bherbruck/solvecraft#13138 ·
-
testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
ratatui/ratatui-textarea#39 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
transit-audio/transit#369 ·