From daed9ba7ccbf3e507a609683e7ed345073960ed0 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 3 May 2018 10:47:22 +0100 Subject: [PATCH 1/3] Change JSOutPoint constructor to have js argument be uint64_t Closes #3192. --- src/wallet/wallet.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 6c05244e4..831541040 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -165,7 +165,7 @@ public: uint8_t n; JSOutPoint() { SetNull(); } - JSOutPoint(uint256 h, size_t js, uint8_t n) : hash {h}, js {js}, n {n} { } + JSOutPoint(uint256 h, uint64_t js, uint8_t n) : hash {h}, js {js}, n {n} { } ADD_SERIALIZE_METHODS; From b87e271a9a225a49495555c5018ca2ef025f8dc5 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Mon, 7 May 2018 21:56:57 +0100 Subject: [PATCH 2/3] 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. --- src/wallet/gtest/test_wallet.cpp | 14 +++++++------- src/wallet/wallet.cpp | 5 ++--- src/wallet/wallet.h | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/wallet/gtest/test_wallet.cpp b/src/wallet/gtest/test_wallet.cpp index 18df6feff..ceea292d8 100644 --- a/src/wallet/gtest/test_wallet.cpp +++ b/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)); } diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 448dd50e7..2a04ff5c9 100644 --- a/src/wallet/wallet.cpp +++ b/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; } diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 831541040..8dc2acbbf 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -907,7 +907,7 @@ public: void ListLockedCoins(std::vector& 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(); From e935beb81033d6266a454043351d6dd6ac7ded9c Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Mon, 7 May 2018 22:13:26 +0100 Subject: [PATCH 3/3] wallet: Make some arguments const that can be --- src/wallet/wallet.cpp | 6 +++--- src/wallet/wallet.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 2a04ff5c9..126ed98f7 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3446,13 +3446,13 @@ void CWallet::ListLockedCoins(std::vector& vOutpts) // Note Locking Operations -void CWallet::LockNote(JSOutPoint& output) +void CWallet::LockNote(const JSOutPoint& output) { AssertLockHeld(cs_wallet); // setLockedNotes setLockedNotes.insert(output); } -void CWallet::UnlockNote(JSOutPoint& output) +void CWallet::UnlockNote(const JSOutPoint& output) { AssertLockHeld(cs_wallet); // setLockedNotes setLockedNotes.erase(output); @@ -3464,7 +3464,7 @@ void CWallet::UnlockAllNotes() setLockedNotes.clear(); } -bool CWallet::IsLockedNote(JSOutPoint& outpt) const +bool CWallet::IsLockedNote(const JSOutPoint& outpt) const { AssertLockHeld(cs_wallet); // setLockedNotes diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 8dc2acbbf..08f22f97e 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -907,9 +907,9 @@ public: void ListLockedCoins(std::vector& vOutpts); - bool IsLockedNote(JSOutPoint& outpt) const; - void LockNote(JSOutPoint& output); - void UnlockNote(JSOutPoint& output); + bool IsLockedNote(const JSOutPoint& outpt) const; + void LockNote(const JSOutPoint& output); + void UnlockNote(const JSOutPoint& output); void UnlockAllNotes(); std::vector ListLockedNotes();