aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfurszy <matiasfurszyfer@protonmail.com>2023-07-06 16:10:58 -0300
committerfurszy <matiasfurszyfer@protonmail.com>2023-07-06 16:11:55 -0300
commita277f8357ad8b0eb26f33fc36f919d868c06847b (patch)
tree4387bbc5e95e660415f4831743ad55394427647d /src
parent1b64f6498c394a143df196172a14204fe3b8a744 (diff)
downloadbitcoin-a277f8357ad8b0eb26f33fc36f919d868c06847b.tar.xz
wallet: migration bugfix, persist empty labels
addressbook records with no associated label could be treated as change. And we don't want that for external addresses.
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 02bbc86fa9..8fa93b97d6 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -4059,10 +4059,10 @@ bool CWallet::ApplyMigrationData(MigrationData& data, bilingual_str& error)
WalletBatch batch{wallet.GetDatabase()};
for (const auto& [destination, addr_book_data] : wallet.m_address_book) {
auto address{EncodeDestination(destination)};
- auto label{addr_book_data.GetLabel()};
- // don't bother writing default values (unknown purpose, empty label)
+ std::optional<std::string> label = addr_book_data.IsChange() ? std::nullopt : std::make_optional(addr_book_data.GetLabel());
+ // don't bother writing default values (unknown purpose)
if (addr_book_data.purpose) batch.WritePurpose(address, PurposeToString(*addr_book_data.purpose));
- if (!label.empty()) batch.WriteName(address, label);
+ if (label) batch.WriteName(address, *label);
}
};
if (data.watchonly_wallet) persist_address_book(*data.watchonly_wallet);