Skip to content

fix(psbt): use OR instead of AND in taproot signature validation guard#2334

Open
deepview-autofix wants to merge 1 commit intobitcoinjs:masterfrom
deepview-autofix:deepview/ebc9ae6d5e
Open

fix(psbt): use OR instead of AND in taproot signature validation guard#2334
deepview-autofix wants to merge 1 commit intobitcoinjs:masterfrom
deepview-autofix:deepview/ebc9ae6d5e

Conversation

@deepview-autofix
Copy link
Copy Markdown

The guard condition in validateSignaturesOfTaprootInput used AND (&&)
to combine checks for missing input, tapKeySig, and tapScriptSig.
Since the method is only called when isTaprootInput(input) is true,
input is always truthy, making !input always false, and the entire
AND-chained condition always false — the throw was unreachable.

Change to OR (||) so the error is correctly thrown when a taproot
input has no signatures, matching the pattern used in the non-taproot
_validateSignaturesOfInput method.

The guard condition in validateSignaturesOfTaprootInput used AND (&&)
to combine checks for missing input, tapKeySig, and tapScriptSig.
Since the method is only called when isTaprootInput(input) is true,
input is always truthy, making !input always false, and the entire
AND-chained condition always false — the throw was unreachable.

Change to OR (||) so the error is correctly thrown when a taproot
input has no signatures, matching the pattern used in the non-taproot
_validateSignaturesOfInput method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: DeepView Autofix <276251120+deepview-autofix@users.noreply.github.com>
Co-Authored-By: Nikita Skovoroda <chalkerx@gmail.com>
Signed-off-by: Nikita Skovoroda <chalkerx@gmail.com>
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.

1 participant