Skip to content

Refactor/new api wallet migration#143

Closed
Sosthene00 wants to merge 12 commits into
masterfrom
refactor/new_api_wallet_migration
Closed

Refactor/new api wallet migration#143
Sosthene00 wants to merge 12 commits into
masterfrom
refactor/new_api_wallet_migration

Conversation

@Sosthene00

Copy link
Copy Markdown
Collaborator

Replaces the legacy PartialSecret sending path with the DLEQ-aware API and migrates spdk-wallet to match.

generate_recipient_pubkeys now takes SilentPaymentAddressRaw recipients and a HashMap<PublicKey, TransactionSharedSecret> (one secret per scan key)
Removes PartialSecret, calculate_partial_secret, and related helpers
spdk-wallet: receiving uses PublicTweakData + TransactionSharedSecret; spending builds secrets via GlobalSenderEcdhShare at finalize time

Sosthene00 and others added 12 commits June 18, 2026 10:46
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).
Introduce BIP-374 DLEQ-backed `PartialSenderEcdhShare` and `GlobalSenderEcdhShare`
types, with `TransactionSharedSecret` constructors for global and per-input
share aggregation. Add `dleq-native` and `dleq-standalone` feature flags via
rust-dleq while keeping the legacy `PartialSecret` sending API for backward compatibility.
Replace PartialSecret-based generate_recipient_pubkeys with a DLEQ-aware
API taking TransactionSharedSecret per scan key and SilentPaymentAddressRaw
recipients. Remove legacy calculate_partial_secret helpers and update
spdk-wallet scanning and spending to use TransactionSharedSecret and
GlobalSenderEcdhShare.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Sosthene00

Copy link
Copy Markdown
Collaborator Author

Closing this as it is superseded by #138 and others

@Sosthene00 Sosthene00 closed this Jun 29, 2026
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