Feat/silentpayments dleq multisigner - #142
Open
Sosthene00 wants to merge 18 commits into
Open
Conversation
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
from
June 23, 2026 13:22
b1a2c81 to
269918b
Compare
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
from
July 22, 2026 11:13
269918b to
a0cc0da
Compare
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
3 times, most recently
from
August 12, 2026 10:36
d679ca4 to
6744fd8
Compare
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
3 times, most recently
from
August 26, 2026 11:35
822abfb to
e4cc145
Compare
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
from
September 1, 2026 13:29
7f9494e to
da45d4f
Compare
Only accepts selections whose implied fee rate stays within the requested rate (modulo vbyte rounding): selections that would absorb the leftover excess into the fee are rejected, and among the accepted ones the fee is minimized. When no selection can honor the rate the strategy is simply absent from the results, leaving callers free to fall back to the other strategies.
…roduce `PublicTweakData`
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 a TransactionSharedSecret per scan key. Remove legacy calculate_partial_secret helpers and update spdk-wallet spending to use TransactionSharedSecret and GlobalSenderEcdhShare. Adapted from 33562f7 to the SilentPaymentKeyMaterial naming (the SilentPaymentAddressRaw commits it built on are skipped as obsolete).
Implements the BIP-375 signer roles as a new workspace crate built on top of rust-psbt (psbt-v2, from a fork at branch taproot_sign) and the silentpayments crate. Ported from ba1e67b (includes local WIP: validation module stub), adapted to SilentPaymentKeyMaterial instead of the obsolete SilentPaymentAddressRaw.
Add the psbt workspace dependency and re-export it (and DATA_CARRIER_SIZE) for consumers of the BIP-375 flow. Partial port of 0a197e7: the coin-select extraction and the SilentPaymentUnsignedTransaction removal are intentionally skipped — coin selection lives in spdk-wallet's own coin_select module on this branch.
…outputs Fix output script computation when multiple outputs share the same scan key (labeled addresses of one recipient)
…input_witness_finalizer
Sosthene00
force-pushed
the
feat/silentpayments-dleq-multisigner
branch
from
September 3, 2026 09:38
da45d4f to
ce841fe
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PartialSenderEcdhShareandGlobalSenderEcdhSharefor multi-signer flows.TransactionSharedSecret::new_from_global_shareandnew_from_partial_shareswith vin coverage checks.dleq-native/dleq-standalonefeature flags viarust-dleq; legacyPartialSecretAPI retained.