ElementsProject / ElementsProject/elements
pset: PartiallySignedTransaction::GetUnsignedTx does not work correctly when issuance assets have null values
- Vorherrschende Sprache
- C++
- Sterne
- 1.2k
- Forks
- 416
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 15
Beschreibung
According to the consensus validation rules, we must supple Null values for issunace/reissuance instead of explicit zero. However, the current code for tries does something else:
https://github.com/ElementsProject/elements/blob/c80e926d6e29d5a9524182767967884091665405/src/psbt.cpp#L126-L132
Fix would be to have
1) two separate if else statements for issunace/re-issuance.
2) force_unblinded is always used. There is no way to do explicit issuances in the current pset workflow.
This calculation causes `walletprocesspsbt` to create signatures that do not validate because the sighash is calculated incorrectly.
Beitragsleitfaden
Rechercherichtung
Untersuche src/psbt.cpp in den Zeilen 126–132 und verfolge PartiallySignedTransaction::GetUnsignedTx hinsichtlich der Asset-Werte bei Issuance und Reissuance. Vergleiche die resultierende unsignierte Transaktion und den sighash mit den Konsensvalidierungsregeln und teste anschließend den walletprocesspsbt-Ablauf. Erledigt ist die Aufgabe, wenn generierte Signaturen für Issuance-Fälle mit Nullwerten validiert werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- blockchain
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100