mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
Soft fork logic for BIP113
This commit is contained in:
parent
65751a3cf2
commit
478fba6d52
14
src/main.cpp
14
src/main.cpp
@ -3276,12 +3276,18 @@ bool ContextualCheckBlock(const CBlock& block, CValidationState& state, CBlockIn
|
|||||||
const int nHeight = pindexPrev == NULL ? 0 : pindexPrev->nHeight + 1;
|
const int nHeight = pindexPrev == NULL ? 0 : pindexPrev->nHeight + 1;
|
||||||
const Consensus::Params& consensusParams = Params().GetConsensus();
|
const Consensus::Params& consensusParams = Params().GetConsensus();
|
||||||
|
|
||||||
|
// Start enforcing BIP113 (Median Time Past) using versionbits logic.
|
||||||
|
int nLockTimeFlags = 0;
|
||||||
|
if (VersionBitsState(pindexPrev, consensusParams, Consensus::DEPLOYMENT_CSV, versionbitscache) == THRESHOLD_ACTIVE) {
|
||||||
|
nLockTimeFlags |= LOCKTIME_MEDIAN_TIME_PAST;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t nLockTimeCutoff = (nLockTimeFlags & LOCKTIME_MEDIAN_TIME_PAST)
|
||||||
|
? pindexPrev->GetMedianTimePast()
|
||||||
|
: block.GetBlockTime();
|
||||||
|
|
||||||
// Check that all transactions are finalized
|
// Check that all transactions are finalized
|
||||||
BOOST_FOREACH(const CTransaction& tx, block.vtx) {
|
BOOST_FOREACH(const CTransaction& tx, block.vtx) {
|
||||||
int nLockTimeFlags = 0;
|
|
||||||
int64_t nLockTimeCutoff = (nLockTimeFlags & LOCKTIME_MEDIAN_TIME_PAST)
|
|
||||||
? pindexPrev->GetMedianTimePast()
|
|
||||||
: block.GetBlockTime();
|
|
||||||
if (!IsFinalTx(tx, nHeight, nLockTimeCutoff)) {
|
if (!IsFinalTx(tx, nHeight, nLockTimeCutoff)) {
|
||||||
return state.DoS(10, false, REJECT_INVALID, "bad-txns-nonfinal", false, "non-final transaction");
|
return state.DoS(10, false, REJECT_INVALID, "bad-txns-nonfinal", false, "non-final transaction");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user