diff --git a/src/consensus/validation.h b/src/consensus/validation.h --- a/src/consensus/validation.h +++ b/src/consensus/validation.h @@ -16,6 +16,7 @@ static const uint8_t REJECT_NONSTANDARD = 0x40; static const uint8_t REJECT_INSUFFICIENTFEE = 0x42; static const uint8_t REJECT_CHECKPOINT = 0x43; +static const uint8_t REJECT_NOT_READY = 0x44; /** Capture information about block/transaction validation */ class CValidationState { diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -550,6 +550,12 @@ const Consensus::Params &consensusParams = config.GetChainParams().GetConsensus(); + if (!IsUAHFenabled(consensusParams, chainActive.Tip())) { + return state.DoS(0, false, REJECT_NOT_READY, "txn-too-early", + "Cannot accept transactions into mempool while chain " + "is before UAHF."); + } + const CTransaction &tx = *ptx; const TxId txid = tx.GetId();