diff --git a/src/Makefile.am b/src/Makefile.am index d421e8f89..a0e793e42 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -877,7 +877,6 @@ libbitcoinkernel_la_SOURCES = \ init/common.cpp \ key.cpp \ logging.cpp \ - netaddress.cpp \ node/blockstorage.cpp \ node/chainstate.cpp \ node/coinstats.cpp \ @@ -906,11 +905,9 @@ libbitcoinkernel_la_SOURCES = \ support/lockedpool.cpp \ sync.cpp \ threadinterrupt.cpp \ - timedata.cpp \ txdb.cpp \ txmempool.cpp \ uint256.cpp \ - util/asmap.cpp \ util/bytevectorhash.cpp \ util/check.cpp \ util/getuniquepath.cpp \ diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp index b66764196..99aa23fb0 100644 --- a/src/bitcoin-chainstate.cpp +++ b/src/bitcoin-chainstate.cpp @@ -72,6 +72,7 @@ int main(int argc, char* argv[]) // SETUP: Chainstate const ChainstateManager::Options chainman_opts{ chainparams, + static_cast(GetTime), }; ChainstateManager chainman{chainman_opts}; diff --git a/src/init.cpp b/src/init.cpp index ec94060e9..b1fe91518 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1423,6 +1423,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) const ChainstateManager::Options chainman_opts{ chainparams, + GetAdjustedTime, }; node.chainman = std::make_unique(chainman_opts); ChainstateManager& chainman = *node.chainman; diff --git a/src/kernel/chainstatemanager_opts.h b/src/kernel/chainstatemanager_opts.h index f2646700a..575d94e2e 100644 --- a/src/kernel/chainstatemanager_opts.h +++ b/src/kernel/chainstatemanager_opts.h @@ -17,6 +17,7 @@ class CChainParams; */ struct ChainstateManagerOpts { const CChainParams& chainparams; + const std::function adjusted_time_callback{nullptr}; }; #endif // BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H diff --git a/src/node/miner.cpp b/src/node/miner.cpp index 48e50f371..2464579dd 100644 --- a/src/node/miner.cpp +++ b/src/node/miner.cpp @@ -167,7 +167,7 @@ std::unique_ptr BlockAssembler::CreateNewBlock(const CScript& sc pblocktemplate->vTxSigOpsCost[0] = WITNESS_SCALE_FACTOR * GetLegacySigOpCount(*pblock->vtx[0]); BlockValidationState state; - if (!TestBlockValidity(state, chainparams, m_chainstate, *pblock, pindexPrev, false, false)) { + if (!TestBlockValidity(state, chainparams, m_chainstate, *pblock, pindexPrev, GetAdjustedTime, false, false)) { throw std::runtime_error(strprintf("%s: TestBlockValidity failed: %s", __func__, state.ToString())); } int64_t nTime2 = GetTimeMicros(); diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index b2c25b60e..8fb6daf0c 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -27,6 +27,7 @@ #include