message: [v0.14.0.x] Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts
diff: @@ -347,15 +347,23 @@ void CChainLocksHandler::TrySignChainTip()
  void CChainLocksHandler::SyncTransaction(const CTransaction& tx, const CBlockIndex* pindex, int posInBlock)
  {
  - if (!masternodeSync.IsBlockchainSynced()) {
  - return;
  - }
  -
  bool handleTx = true;
  if (tx.IsCoinBase() || tx.vin.empty()) {
  handleTx = false;
  }
  + if (!masternodeSync.IsBlockchainSynced()) {
  + if (handleTx && posInBlock == CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK) {
  + auto info = mempool.info(tx.GetHash());
  + if (!info.tx) {
  + return;
  + }
  + LOCK(cs);
  + txFirstSeenTime.emplace(tx.GetHash(), info.nTime);
  + }
  + return;
  + }
  +
  LOCK(cs);
  if (handleTx) {
  