-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Problem
Single-address wallets (address watch) currently don't support CPFP or RBF detection. Descriptor wallets have full CPFP chain detection and RBF conflict tracking, but address-based wallets only track transaction confirmation status.
Root cause
Single-address wallets use Electrum's script_get_history which only returns (txid, height) pairs — not the full transaction data (inputs/outputs) needed to:
- RBF detection: Identify conflicting transactions that share inputs
- CPFP detection: Identify parent-child spending relationships between unconfirmed transactions
Proposed solution
For unconfirmed transactions in address watch wallets, fetch full transaction data via Electrum's transaction_get to enable:
- CPFP detection — check if any unconfirmed tx spends outputs from another unconfirmed tx
- RBF detection — check if any transactions share inputs (double-spend conflicts)
Considerations
- Each
transaction_getcall is an additional Electrum round-trip, so this should only be done for unconfirmed transactions to limit overhead - Could batch-fetch all unconfirmed tx details in one pass, then run the same detection logic used for descriptor wallets
- The existing
detect_cpfp_relationshipsand RBF detection code could potentially be refactored to work with a generic transaction representation rather than BDK-specific types
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels