-
Notifications
You must be signed in to change notification settings - Fork 1.2k
backport: Merge bitcoin#28587, 28056, 27905 #7356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
fe31eca
743ac80
7e8d383
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -869,6 +869,10 @@ std::unique_ptr<PubkeyProvider> ParsePubkeyInner(uint32_t key_exp_index, const S | |
| if (IsHex(str)) { | ||
| std::vector<unsigned char> data = ParseHex(str); | ||
| CPubKey pubkey(data); | ||
| if (pubkey.IsValid() && !pubkey.IsValidNonHybrid()) { | ||
| error = "Hybrid public keys are not allowed"; | ||
| return nullptr; | ||
| } | ||
| if (pubkey.IsFullyValid()) { | ||
| if (permit_uncompressed || pubkey.IsCompressed()) { | ||
| return std::make_unique<ConstPubkeyProvider>(key_exp_index, pubkey); | ||
|
|
@@ -1096,7 +1100,7 @@ std::unique_ptr<DescriptorImpl> InferScript(const CScript& script, ParseScriptCo | |
|
|
||
| if (txntype == TxoutType::PUBKEY) { | ||
| CPubKey pubkey(data[0]); | ||
| if (pubkey.IsValid()) { | ||
| if (pubkey.IsValidNonHybrid()) { | ||
| return std::make_unique<PKDescriptor>(InferPubkey(pubkey, ctx, provider)); | ||
|
Comment on lines
1101
to
1104
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Blocking: Missing prerequisite: bitcoin#24148 bitcoin#28587 changes all descriptor public-key inference/parsing paths from accepting Tracing the missing source: ['codex-backport-reviewer'], promoted to blocking by backport-prereq policy gate |
||
| } | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔴 Blocking: Backport bitcoin#24148 before bitcoin#28587
bitcoin#28587 modifies three descriptor parsing paths upstream: direct hex pubkey parsing, descriptor inference, and the Miniscript descriptor
KeyParserpath. This backport only applies the first two because Dash does not yet havestruct KeyParser/ Miniscript descriptor support insrc/script/descriptor.cpp, which was introduced upstream by bitcoin#24148. That absence is a missing prerequisite, not a Dash-specific adaptation: upstream's pre-bitcoin#28587 state already contained the parser and its descriptor tests, and bitcoin#28587 changes it frompubkey.IsValid()topubkey.IsValidNonHybrid()while adding correspondingwsh(...)/Miniscript coverage insrc/test/descriptor_tests.cpp. Please backport the prerequisite descriptor/Miniscript chain first, or drop bitcoin#28587 from this PR until that chain is present.source: ['codex']
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolved in this update — Backport bitcoin#24148 before bitcoin#28587 no longer present.
Auto-resolved by the review system based on the latest commit diff. If you believe this was closed in error, reopen the thread.