Browse Source

wallet: Change IsLockedNote to take a JSOutPoint

This removes the uint64_t -> size_t -> uint64_t round trip, as well as the
JSOutPoint -> parts -> JSOutPoint round trip.
metaverse
Jack Grigg 6 years ago
parent
commit
b87e271a9a
No known key found for this signature in database GPG Key ID: 665DBCD284F7DAFF
  1. 14
      src/wallet/gtest/test_wallet.cpp
  2. 5
      src/wallet/wallet.cpp
  3. 2
      src/wallet/wallet.h

14
src/wallet/gtest/test_wallet.cpp

@ -1061,21 +1061,21 @@ TEST(wallet_tests, NoteLocking) {
// Test selective locking
wallet.LockNote(jsoutpt);
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt.hash, jsoutpt.js, jsoutpt.n));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt2.hash, jsoutpt2.js, jsoutpt2.n));
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt2));
// Test selective unlocking
wallet.UnlockNote(jsoutpt);
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt.hash, jsoutpt.js, jsoutpt.n));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt));
// Test multiple locking
wallet.LockNote(jsoutpt);
wallet.LockNote(jsoutpt2);
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt.hash, jsoutpt.js, jsoutpt.n));
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt2.hash, jsoutpt2.js, jsoutpt2.n));
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt));
EXPECT_TRUE(wallet.IsLockedNote(jsoutpt2));
// Test unlock all
wallet.UnlockAllNotes();
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt.hash, jsoutpt.js, jsoutpt.n));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt2.hash, jsoutpt2.js, jsoutpt2.n));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt));
EXPECT_FALSE(wallet.IsLockedNote(jsoutpt2));
}

5
src/wallet/wallet.cpp

@ -3464,10 +3464,9 @@ void CWallet::UnlockAllNotes()
setLockedNotes.clear();
}
bool CWallet::IsLockedNote(uint256 hash, size_t js, uint8_t n) const
bool CWallet::IsLockedNote(JSOutPoint& outpt) const
{
AssertLockHeld(cs_wallet); // setLockedNotes
JSOutPoint outpt(hash, js, n);
return (setLockedNotes.count(outpt) > 0);
}
@ -3769,7 +3768,7 @@ void CWallet::GetFilteredNotes(
}
// skip locked notes
if (IsLockedNote(jsop.hash, jsop.js, jsop.n)) {
if (IsLockedNote(jsop)) {
continue;
}

2
src/wallet/wallet.h

@ -907,7 +907,7 @@ public:
void ListLockedCoins(std::vector<COutPoint>& vOutpts);
bool IsLockedNote(uint256 hash, size_t js, uint8_t n) const;
bool IsLockedNote(JSOutPoint& outpt) const;
void LockNote(JSOutPoint& output);
void UnlockNote(JSOutPoint& output);
void UnlockAllNotes();

Loading…
Cancel
Save