From f5f52a7e81009422d216d95aafd7855d2d0a4f8c Mon Sep 17 00:00:00 2001 From: jahway603 Date: Wed, 22 Nov 2023 16:55:19 -0500 Subject: [PATCH] ported Bitcoin PR 7229 to resolve Issue #16 --- qa/rpc-tests/wallet.py | 2 +- src/wallet/walletdb.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/qa/rpc-tests/wallet.py b/qa/rpc-tests/wallet.py index c50c028a3..2047f9e0b 100755 --- a/qa/rpc-tests/wallet.py +++ b/qa/rpc-tests/wallet.py @@ -221,7 +221,7 @@ class WalletTest (BitcoinTestFramework): for uTx in unspentTxs: if uTx['txid'] == zeroValueTxid: found = True - assert_equal(uTx['amount'], Decimal('0.00000000')) + assert_equal(uTx['amount'], Decimal('0')) assert(found) #do some -walletbroadcast tests diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index 633962c19..2fe1a19f4 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -1233,8 +1233,13 @@ bool CWalletDB::Recover(CDBEnv& dbenv, const std::string& filename, bool fOnlyKe CDataStream ssKey(row.first, SER_DISK, CLIENT_VERSION); CDataStream ssValue(row.second, SER_DISK, CLIENT_VERSION); string strType, strErr; - bool fReadOK = ReadKeyValue(&dummyWallet, ssKey, ssValue, + bool fReadOK; + { + // Required in LoadKeyMetadata(): + LOCK(dummyWallet.cs_wallet); + fReadOK = ReadKeyValue(&dummyWallet, ssKey, ssValue, wss, strType, strErr); + } if (!IsKeyType(strType)) continue; if (!fReadOK)