Auto merge of #3236 - str4d:3192-jsoutpoint-constructor, r=str4d

Change JSOutPoint constructor to have js argument be uint64_t

Closes #3192.
This commit is contained in:
Homu 2018-05-08 02:50:04 -07:00
commit 0a98b97524
3 changed files with 15 additions and 16 deletions

View File

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

View File

@ -3448,13 +3448,13 @@ void CWallet::ListLockedCoins(std::vector<COutPoint>& vOutpts)
// Note Locking Operations // Note Locking Operations
void CWallet::LockNote(JSOutPoint& output) void CWallet::LockNote(const JSOutPoint& output)
{ {
AssertLockHeld(cs_wallet); // setLockedNotes AssertLockHeld(cs_wallet); // setLockedNotes
setLockedNotes.insert(output); setLockedNotes.insert(output);
} }
void CWallet::UnlockNote(JSOutPoint& output) void CWallet::UnlockNote(const JSOutPoint& output)
{ {
AssertLockHeld(cs_wallet); // setLockedNotes AssertLockHeld(cs_wallet); // setLockedNotes
setLockedNotes.erase(output); setLockedNotes.erase(output);
@ -3466,10 +3466,9 @@ void CWallet::UnlockAllNotes()
setLockedNotes.clear(); setLockedNotes.clear();
} }
bool CWallet::IsLockedNote(uint256 hash, size_t js, uint8_t n) const bool CWallet::IsLockedNote(const JSOutPoint& outpt) const
{ {
AssertLockHeld(cs_wallet); // setLockedNotes AssertLockHeld(cs_wallet); // setLockedNotes
JSOutPoint outpt(hash, js, n);
return (setLockedNotes.count(outpt) > 0); return (setLockedNotes.count(outpt) > 0);
} }
@ -3771,7 +3770,7 @@ void CWallet::GetFilteredNotes(
} }
// skip locked notes // skip locked notes
if (IsLockedNote(jsop.hash, jsop.js, jsop.n)) { if (IsLockedNote(jsop)) {
continue; continue;
} }

View File

@ -165,7 +165,7 @@ public:
uint8_t n; uint8_t n;
JSOutPoint() { SetNull(); } 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; ADD_SERIALIZE_METHODS;
@ -907,9 +907,9 @@ public:
void ListLockedCoins(std::vector<COutPoint>& vOutpts); void ListLockedCoins(std::vector<COutPoint>& vOutpts);
bool IsLockedNote(uint256 hash, size_t js, uint8_t n) const; bool IsLockedNote(const JSOutPoint& outpt) const;
void LockNote(JSOutPoint& output); void LockNote(const JSOutPoint& output);
void UnlockNote(JSOutPoint& output); void UnlockNote(const JSOutPoint& output);
void UnlockAllNotes(); void UnlockAllNotes();
std::vector<JSOutPoint> ListLockedNotes(); std::vector<JSOutPoint> ListLockedNotes();