diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -794,6 +794,7 @@ std::atomic fAbortRescan{false}; // controlled by WalletRescanReserver std::atomic fScanningWallet{false}; + std::atomic m_scanning_start{0}; std::mutex mutexScanning; friend class WalletRescanReserver; @@ -1120,6 +1121,9 @@ void AbortRescan() { fAbortRescan = true; } bool IsAbortingRescan() { return fAbortRescan; } bool IsScanning() { return fScanningWallet; } + int64_t ScanningDuration() const { + return fScanningWallet ? GetTimeMillis() - m_scanning_start : 0; + } /** * keystore implementation @@ -1676,6 +1680,7 @@ if (m_wallet->fScanningWallet) { return false; } + m_wallet->m_scanning_start = GetTimeMillis(); m_wallet->fScanningWallet = true; m_could_reserve = true; return true;