@ -1527,6 +1527,8 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
@@ -1527,6 +1527,8 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
CBlockIndex * pindex = pindexStart ;
{
LOCK2 ( cs_main , cs_wallet ) ;
fAbortRescan = false ;
fScanningWallet = true ;
// no need to read and scan block, if block was created before
// our wallet birthday (as adjusted for block time variability)
@ -1536,7 +1538,7 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
@@ -1536,7 +1538,7 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
ShowProgress ( _ ( " Rescanning... " ) , 0 ) ; // show rescan progress in GUI as dialog or on splashscreen, if -rescan on startup
double dProgressStart = GuessVerificationProgress ( chainParams . TxData ( ) , pindex ) ;
double dProgressTip = GuessVerificationProgress ( chainParams . TxData ( ) , chainActive . Tip ( ) ) ;
while ( pindex )
while ( pindex & & ! fAbortRescan )
{
if ( pindex - > nHeight % 100 = = 0 & & dProgressTip - dProgressStart > 0.0 )
ShowProgress ( _ ( " Rescanning... " ) , std : : max ( 1 , std : : min ( 99 , ( int ) ( ( GuessVerificationProgress ( chainParams . TxData ( ) , pindex ) - dProgressStart ) / ( dProgressTip - dProgressStart ) * 100 ) ) ) ) ;
@ -1558,7 +1560,12 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
@@ -1558,7 +1560,12 @@ CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool f
LogPrintf ( " Still rescanning. At block %d. Progress=%f \n " , pindex - > nHeight , GuessVerificationProgress ( chainParams . TxData ( ) , pindex ) ) ;
}
}
if ( pindex & & fAbortRescan ) {
LogPrintf ( " Rescan aborted at block %d. Progress=%f \n " , pindex - > nHeight , GuessVerificationProgress ( chainParams . TxData ( ) , pindex ) ) ;
}
ShowProgress ( _ ( " Rescanning... " ) , 100 ) ; // hide progress dialog in GUI
fScanningWallet = false ;
}
return ret ;
}