Skip to content

Feat/transaction inputs#140

Open
Sosthene00 wants to merge 5 commits into
masterfrom
feat/transaction-inputs
Open

Feat/transaction inputs#140
Sosthene00 wants to merge 5 commits into
masterfrom
feat/transaction-inputs

Conversation

@Sosthene00

Copy link
Copy Markdown
Collaborator

Define a new TransactionInputs type that aimed at making sender role easier by forcing to pass all outpoints (no more ambiguity on all outpoints/only outpoints from eligible inputs), for each of them to check the prevout scriptpubkey, and if there's a corresponding eligible pubkey.

@Sosthene00 Sosthene00 force-pushed the feat/transaction-inputs branch from 1c2eebb to b335d8d Compare June 18, 2026 08:48
P2SH-P2WPKH: validate the redeem-script hash160 against the output script
pubkey before trusting it. Previously any push in script_sig was accepted
without checking the commitment, which would silently allow malformed
inputs to pass.

P2TR: the old check for a script-path spend indexed the last witness item
as [1..33] without verifying length, which panics on items shorter than
33 bytes. Tighten the guard to control_block.len() >= 33 and only check
effective_stack >= 2 (key-path spends have a single witness item).

Extract last_push (returns the last data push in a push-only script) and
witness_compressed_pubkey (verifies compressed pubkey + hash160 match)
as helpers, removing three near-identical match blocks.

Also includes PublicTweakData::new signature change from the two-NonEmptyArray
pattern to &TransactionInputs (companion to the TransactionInputs commit).
@Sosthene00 Sosthene00 force-pushed the feat/transaction-inputs branch from b335d8d to 6221528 Compare June 23, 2026 13:13
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