Skip to content

Commit

Permalink
Merge #8445: Move CWallet::setKeyPool to private section of CWallet.
Browse files Browse the repository at this point in the history
8680d3a Move wallet initialization logic from AppInit2 to CWallet::InitLoadWallet (Patrick Strateman)
e86eb71 Move CWallet::setKeyPool to private section of CWallet (Patrick Strateman)
  • Loading branch information
laanwj committed Aug 24, 2016
2 parents 9358893 + 8680d3a commit f916700
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 18 deletions.
9 changes: 0 additions & 9 deletions src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1494,12 +1494,6 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
//// debug print
LogPrintf("mapBlockIndex.size() = %u\n", mapBlockIndex.size());
LogPrintf("nBestHeight = %d\n", chainActive.Height());
#ifdef ENABLE_WALLET
LogPrintf("setKeyPool.size() = %u\n", pwalletMain ? pwalletMain->setKeyPool.size() : 0);
LogPrintf("mapWallet.size() = %u\n", pwalletMain ? pwalletMain->mapWallet.size() : 0);
LogPrintf("mapAddressBook.size() = %u\n", pwalletMain ? pwalletMain->mapAddressBook.size() : 0);
#endif

if (GetBoolArg("-listenonion", DEFAULT_LISTEN_ONION))
StartTorControl(threadGroup, scheduler);

Expand All @@ -1512,9 +1506,6 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)

#ifdef ENABLE_WALLET
if (pwalletMain) {
// Add wallet transactions that aren't already in a block to mapTransactions
pwalletMain->ReacceptWalletTransactions();

// Run a thread to flush wallet periodically
threadGroup.create_thread(boost::bind(&ThreadFlushWalletDB, boost::ref(pwalletMain->strWalletFile)));
}
Expand Down
10 changes: 10 additions & 0 deletions src/wallet/wallet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3416,7 +3416,17 @@ bool CWallet::InitLoadWallet()
}
walletInstance->SetBroadcastTransactions(GetBoolArg("-walletbroadcast", DEFAULT_WALLETBROADCAST));

{
LOCK(walletInstance->cs_wallet);
LogPrintf("setKeyPool.size() = %u\n", walletInstance->GetKeyPoolSize());
LogPrintf("mapWallet.size() = %u\n", walletInstance->mapWallet.size());
LogPrintf("mapAddressBook.size() = %u\n", walletInstance->mapAddressBook.size());
}
// Add wallet transactions that aren't already in a block to mapTransactions
walletInstance->ReacceptWalletTransactions();

pwalletMain = walletInstance;

return true;
}

Expand Down
15 changes: 14 additions & 1 deletion src/wallet/wallet.h
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,8 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface
CHDChain hdChain;

bool fFileBacked;

std::set<int64_t> setKeyPool;
public:
/*
* Main wallet lock.
Expand All @@ -594,7 +596,18 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface

std::string strWalletFile;

std::set<int64_t> setKeyPool;
void LoadKeyPool(int nIndex, const CKeyPool &keypool)
{
setKeyPool.insert(nIndex);

// If no metadata exists yet, create a default with the pool key's
// creation time. Note that this may be overwritten by actually
// stored metadata for that key later, which is fine.
CKeyID keyid = keypool.vchPubKey.GetID();
if (mapKeyMetadata.count(keyid) == 0)
mapKeyMetadata[keyid] = CKeyMetadata(keypool.nTime);
}

std::map<CKeyID, CKeyMetadata> mapKeyMetadata;

typedef std::map<unsigned int, CMasterKey> MasterKeyMap;
Expand Down
10 changes: 2 additions & 8 deletions src/wallet/walletdb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -556,14 +556,8 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
ssKey >> nIndex;
CKeyPool keypool;
ssValue >> keypool;
pwallet->setKeyPool.insert(nIndex);

// If no metadata exists yet, create a default with the pool key's
// creation time. Note that this may be overwritten by actually
// stored metadata for that key later, which is fine.
CKeyID keyid = keypool.vchPubKey.GetID();
if (pwallet->mapKeyMetadata.count(keyid) == 0)
pwallet->mapKeyMetadata[keyid] = CKeyMetadata(keypool.nTime);

pwallet->LoadKeyPool(nIndex, keypool);
}
else if (strType == "version")
{
Expand Down

0 comments on commit f916700

Please sign in to comment.