From e6d498e9c9603285f571d6f3ccaed44576e3ea20 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Tue, 5 Apr 2022 18:14:01 -0600 Subject: [PATCH] Check privacy strategy when setting allowed change types. --- src/wallet/asyncrpcoperation_sendmany.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/wallet/asyncrpcoperation_sendmany.cpp b/src/wallet/asyncrpcoperation_sendmany.cpp index 8a22cecfe..0aebcee7b 100644 --- a/src/wallet/asyncrpcoperation_sendmany.cpp +++ b/src/wallet/asyncrpcoperation_sendmany.cpp @@ -352,13 +352,18 @@ uint256 AsyncRPCOperation_sendmany::main_impl() { switch (rtype) { case ReceiverType::P2PKH: case ReceiverType::P2SH: - allowedChangeTypes.insert(OutputPool::Transparent); + if (!spendable.utxos.empty() || strategy_.AllowRevealedRecipients()) { + allowedChangeTypes.insert(OutputPool::Transparent); + } break; case ReceiverType::Sapling: - allowedChangeTypes.insert(OutputPool::Sapling); + if (!spendable.saplingNoteEntries.empty() || strategy_.AllowRevealedAmounts()) { + allowedChangeTypes.insert(OutputPool::Sapling); + } break; case ReceiverType::Orchard: - if (builder_.SupportsOrchard()) { + if (builder_.SupportsOrchard() && + (!spendable.orchardNoteMetadata.empty() || strategy_.AllowRevealedAmounts())) { allowedChangeTypes.insert(OutputPool::Orchard); } break;