Do not pass time getter to Chainstate helpers

This commit is contained in:
MacroFake 2022-05-18 18:31:19 +02:00
parent 002411dc53
commit fa4ee53dca
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
5 changed files with 6 additions and 11 deletions

View file

@ -93,8 +93,7 @@ int main(int argc, char* argv[])
false,
chainparams.GetConsensus(),
DEFAULT_CHECKBLOCKS,
DEFAULT_CHECKLEVEL,
/*get_unix_time_seconds=*/static_cast<int64_t (*)()>(GetTime));
DEFAULT_CHECKLEVEL);
if (maybe_verify_error.has_value()) {
std::cerr << "Failed to verify loaded Chain state from your datadir." << std::endl;
goto epilogue;

View file

@ -1504,8 +1504,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
fReindexChainState,
chainparams.GetConsensus(),
check_blocks,
args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL),
/*get_unix_time_seconds=*/static_cast<int64_t(*)()>(GetTime));
args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL));
} catch (const std::exception& e) {
LogPrintf("%s\n", e.what());
maybe_verify_error = ChainstateLoadVerifyError::ERROR_GENERIC_FAILURE;

View file

@ -128,8 +128,7 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
bool fReindexChainState,
const Consensus::Params& consensus_params,
int check_blocks,
int check_level,
std::function<int64_t()> get_unix_time_seconds)
int check_level)
{
auto is_coinsview_empty = [&](CChainState* chainstate) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
return fReset || fReindexChainState || chainstate->CoinsTip().GetBestBlock().IsNull();
@ -140,7 +139,7 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
for (CChainState* chainstate : chainman.GetAll()) {
if (!is_coinsview_empty(chainstate)) {
const CBlockIndex* tip = chainstate->m_chain.Tip();
if (tip && tip->nTime > get_unix_time_seconds() + MAX_FUTURE_BLOCK_TIME) {
if (tip && tip->nTime > GetTime() + MAX_FUTURE_BLOCK_TIME) {
return ChainstateLoadVerifyError::ERROR_BLOCK_FROM_FUTURE;
}

View file

@ -80,8 +80,7 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
bool fReindexChainState,
const Consensus::Params& consensus_params,
int check_blocks,
int check_level,
std::function<int64_t()> get_unix_time_seconds);
int check_level);
} // namespace node
#endif // BITCOIN_NODE_CHAINSTATE_H

View file

@ -216,8 +216,7 @@ TestingSetup::TestingSetup(const std::string& chainName, const std::vector<const
m_args.GetBoolArg("-reindex-chainstate", false),
chainparams.GetConsensus(),
m_args.GetIntArg("-checkblocks", DEFAULT_CHECKBLOCKS),
m_args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL),
/*get_unix_time_seconds=*/static_cast<int64_t(*)()>(GetTime));
m_args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL));
assert(!maybe_verify_error.has_value());
BlockValidationState state;