From 0feffd14241ecd20bc2fef266269482ec5ce4f67 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 11 Aug 2016 11:37:00 -0700 Subject: [PATCH] Don't mark wallet as dirty if key already exists. Fix incorrect method name used in error message. --- src/wallet/rpcdump.cpp | 4 ++-- src/wallet/wallet.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index 865f9b757..35c372b9d 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -565,12 +565,12 @@ Value z_importkey(const Array& params, bool fHelp) auto addr = key.address(); { - pwalletMain->MarkDirty(); - // Don't throw error in case a key is already there if (pwalletMain->HaveSpendingKey(addr)) return Value::null; + pwalletMain->MarkDirty(); + if (!pwalletMain-> AddZKey(key)) throw JSONRPCError(RPC_WALLET_ERROR, "Error adding spending key to wallet"); diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index d2878a40e..0f6eeff49 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -80,7 +80,7 @@ CZCPaymentAddress CWallet::GenerateNewZKey() // Check for collision, even though it is unlikely to ever occur if (CCryptoKeyStore::HaveSpendingKey(addr)) - throw std::runtime_error("CWallet::GenerateNewSpendingKey(): Collision detected"); + throw std::runtime_error("CWallet::GenerateNewZKey(): Collision detected"); // Create new metadata int64_t nCreationTime = GetTime(); @@ -88,7 +88,7 @@ CZCPaymentAddress CWallet::GenerateNewZKey() CZCPaymentAddress pubaddr(addr); if (!AddZKey(k)) - throw std::runtime_error("CWallet::GenerateNewSpendingKey(): AddZKey failed"); + throw std::runtime_error("CWallet::GenerateNewZKey(): AddZKey failed"); return pubaddr; }