From 43bc0b67bf4c89b1f1d11eee416febcf62be0a50 Mon Sep 17 00:00:00 2001 From: Cindy Date: Fri, 10 Jul 2026 12:23:28 -0300 Subject: [PATCH] payjoin: exclude 0-conf inputs from receiver candidates (#3389) --- cw_bitcoin/lib/bitcoin_wallet.dart | 4 ++-- cw_bitcoin/lib/payjoin/manager.dart | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index a2b2f798f..51f48571d 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -551,8 +551,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { return tx; } - List getUtxoWithPrivateKeys() => unspentCoins - .where((e) => (e.isSending && !e.isFrozen)) + List getUtxoWithPrivateKeys({bool confirmedOnly = false}) => unspentCoins + .where((e) => e.isSending && !e.isFrozen && (!confirmedOnly || (e.confirmations ?? 0) > 0)) .map((unspent) => UtxoWithPrivateKey.fromUnspent(unspent, this)) .toList(); diff --git a/cw_bitcoin/lib/payjoin/manager.dart b/cw_bitcoin/lib/payjoin/manager.dart index 437fed3ff..4fa2e2a63 100644 --- a/cw_bitcoin/lib/payjoin/manager.dart +++ b/cw_bitcoin/lib/payjoin/manager.dart @@ -297,10 +297,10 @@ class PayjoinManager { break; case PayjoinReceiverRequestTypes.getCandidateInputs: - utxos = _wallet.getUtxoWithPrivateKeys(); + utxos = _wallet.getUtxoWithPrivateKeys(confirmedOnly: true); if (utxos.isEmpty) { await _wallet.updateAllUnspents(); - utxos = _wallet.getUtxoWithPrivateKeys(); + utxos = _wallet.getUtxoWithPrivateKeys(confirmedOnly: true); } mainToIsolateSendPort?.send({ 'requestId': message['requestId'],