Skip to content

Conversation

benma
Copy link
Collaborator

@benma benma commented Sep 16, 2025

No description provided.

Not needed and not idiomatic.
@benma benma requested a review from NickeZ September 16, 2025 08:18
The previous transaction of every input in a Bitcoin transaction needs
to be streamed to the BitBox, unless all inputs are Taproot
inputs. They are needed for the BitBox to verify the input
amount. Since Taproot, that is not necessary because all input amounts
are part of the sighash.

The firmware currently inspects the "scriptConfigs" to determine if
all inputs are taproot.

Bug: the scriptConfigs is also used to indicate outputs belonging to
the same account (either change outputs or outputs verified as "This
BitBox (same account): …". As a result, if all inputs are Taproot, but
the change output is not Taproot (or coins are sent to a non-Taproot
address of the same account), then previous transactions are
requested/streamed even if they don't need to be.

Fix: we let the client libraries set the flag if prevtxs are required
or not, and reject the transaction if they set it to "not required"
even if there is a non-Taproot input present.

The previous way is preserved for backwards compatibility with client
libraries that do not set this new flag.
@NickeZ NickeZ marked this pull request as draft September 26, 2025 10:20
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