From 6a76c60e6c4c21c6355c5580f9f770fcc9f978ef Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Wed, 13 Apr 2011 16:16:30 +0200 Subject: Automatically rescan after restoring wallet.dat Information about the best known chain is added to wallet.dat. If this information does not match the data in blkindex.dat, a rescan is automatically performed, starting from the the last known block. When upgrading from a wallet which does not have this information, no rescan is done automatically. --- main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 67db0bce8..1b15d7e07 100644 --- a/main.cpp +++ b/main.cpp @@ -1611,6 +1611,15 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew) } } + // Update best block in wallet (so we can detect restored wallets) + if (!IsInitialBlockDownload()) + { + CWalletDB walletdb; + const CBlockLocator locator(pindexNew); + if (!walletdb.WriteBestBlock(locator)) + return error("SetBestChain() : WriteWalletBest failed"); + } + // New best block hashBestChain = hash; pindexBest = pindexNew; -- cgit v1.2.3