From 0a0ac9989e4e9ec50a1cc41e7804c7989382559e Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Fri, 1 Apr 2022 12:46:31 -0600 Subject: [PATCH 1/2] Add a test demonstrating that z_listaddresses reveals internal addrs. --- qa/rpc-tests/wallet_accounts.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qa/rpc-tests/wallet_accounts.py b/qa/rpc-tests/wallet_accounts.py index a1bb351b2..f7fe23564 100755 --- a/qa/rpc-tests/wallet_accounts.py +++ b/qa/rpc-tests/wallet_accounts.py @@ -55,6 +55,10 @@ class WalletAccountsTest(BitcoinTestFramework): account0 = self.nodes[0].z_getnewaccount() assert_equal(account0['account'], 0) + # Verify that just creating the account does not generate any visible addresses + addresses = self.nodes[0].z_listaddresses() + assert_equal([], addresses) + # The next account will be 1. account1 = self.nodes[0].z_getnewaccount() assert_equal(account1['account'], 1) From 5e4eb72a9b7e0ef5ae8b0b9c3b805710c974c4a6 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Fri, 1 Apr 2022 12:41:46 -0600 Subject: [PATCH 2/2] Do not display internal addresses in z_listaddresses. Fixes #5800 --- src/wallet/rpcwallet.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index df6b0e75b..7a5df292a 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -3491,7 +3491,8 @@ UniValue z_listaddresses(const UniValue& params, bool fHelp) pwalletMain->GetSaplingPaymentAddresses(addresses); for (auto addr : addresses) { // Don't show Sapling receivers that are part of an account in the wallet. - if (pwalletMain->FindUnifiedAddressByReceiver(addr).has_value()) { + if (pwalletMain->FindUnifiedAddressByReceiver(addr).has_value() + || pwalletMain->IsInternalRecipient(addr)) { continue; } if (fIncludeWatchonly || pwalletMain->HaveSaplingSpendingKeyForAddress(addr)) {