// Select the last proof-of-work block
const CBlockIndex *pindex = GetLastBlockIndex(pindexBest, false);
// Search forward for a block within max span and maturity window
- while (pindex->pnext && (pindex->GetBlockTime() + CHECKPOINT_MAX_SPAN <= pindexBest->GetBlockTime() || pindex->nHeight + COINBASE_MATURITY - 20 <= pindexBest->nHeight))
+ while (pindex->pnext && (pindex->GetBlockTime() + CHECKPOINT_MAX_SPAN <= pindexBest->GetBlockTime() || pindex->nHeight + std::min(6, nCoinbaseMaturity - 20) <= pindexBest->nHeight))
pindex = pindex->pnext;
return pindex->GetBlockHash();
}
// sync-checkpoint should always be accepted block
assert(mapBlockIndex.count(hashSyncCheckpoint));
const CBlockIndex* pindexSync = mapBlockIndex[hashSyncCheckpoint];
- return (nBestHeight >= pindexSync->nHeight + COINBASE_MATURITY ||
- pindexSync->GetBlockTime() + STAKE_MIN_AGE < GetAdjustedTime());
+ return (nBestHeight >= pindexSync->nHeight + nCoinbaseMaturity ||
+ pindexSync->GetBlockTime() + nStakeMinAge < GetAdjustedTime());
}
}