Skip to content

descriptor: fix two parse-error messages and cover them with tests - #857

Open
fametrano wants to merge 1 commit into
bitcoin-core:masterfrom
fametrano:descriptor-fix-error-messages
Open

fametrano wants to merge 1 commit into
bitcoin-core:masterfrom
fametrano:descriptor-fix-error-messages

Conversation

@fametrano

@fametrano fametrano commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Two error messages in hwilib/descriptor.py, now fixed and covered by tests:

  • the bare-multisig error printed a literal {} because its .format(len(pubkeys)) call was missing — it now reports the actual count (e.g. "Cannot have 4 pubkeys in bare multisig: only at most 3 pubkeys");
  • the wpkh branch reported "More than one pubkey in pkh descriptor", copied from the pkh branch — now "wpkh".

test/test_descriptor.py adds two regression tests that exercise these two paths through parse_descriptor:

  • test_wpkh_rejects_multiple_pubkeys — asserts the wpkh message names wpkh;
  • test_bare_multisig_too_many_pubkeys_reports_count — asserts the count is interpolated.

Both fail against the pre-fix messages and pass after the fix. This mirrors the equivalent electrum change ((spesmilo/electrum#10947, merged 2026-09-09)).

waqas878678-source

This comment was marked as spam.

The bare-multisig error prints a literal "{}" because its .format() call
is missing. The wpkh branch reports "More than one pubkey in pkh
descriptor", copied from the pkh branch.

Add unit tests for both error paths: a wpkh() with two pubkeys, and a
top-level bare multisig with four pubkeys whose message must report the
count.
@fametrano
fametrano force-pushed the descriptor-fix-error-messages branch from 3c51513 to d8a39c4 Compare September 9, 2026 14:10
@fametrano fametrano changed the title descriptor: fix two parse-error messages descriptor: fix two parse-error messages and cover them with tests Sep 9, 2026
@fametrano

Copy link
Copy Markdown
Contributor Author

Added two regression tests covering both fixed messages, mirroring the equivalent electrum change (spesmilo/electrum#10947). Both fail on the pre-fix messages and pass after the fix; test/test_descriptor.py goes from 16 to 18 tests.

@fametrano

Copy link
Copy Markdown
Contributor Author

The electrum twin, spesmilo/electrum#10947, was merged on 2026-09-09 (87121026, by ecdsa): same two messages, same two tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants