X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fmain.cpp;h=db2239f883764db0692b927c23a9b7c2d9b421f4;hb=ef17ac0211ddd486127e1f94756fbb3fd704a9b4;hp=9ef3d649c876eb41cd2aa4df17be1f7695c5429a;hpb=e78811a329c528498cf7e64e6957a4bcba52c713;p=novacoin.git diff --git a/src/main.cpp b/src/main.cpp index 9ef3d64..db2239f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -435,7 +435,6 @@ CTransaction::GetLegacySigOpCount() const return nSigOps; } - int CMerkleTx::SetMerkleBranch(const CBlock* pblock) { if (fClient) @@ -446,6 +445,7 @@ int CMerkleTx::SetMerkleBranch(const CBlock* pblock) else { CBlock blockTmp; + if (pblock == NULL) { // Load the block this tx is in @@ -480,19 +480,13 @@ int CMerkleTx::SetMerkleBranch(const CBlock* pblock) map::iterator mi = mapBlockIndex.find(hashBlock); if (mi == mapBlockIndex.end()) return 0; - CBlockIndex* pindex = (*mi).second; + const CBlockIndex* pindex = (*mi).second; if (!pindex || !pindex->IsInMainChain()) return 0; return pindexBest->nHeight - pindex->nHeight + 1; } - - - - - - bool CTransaction::CheckTransaction() const { // Basic checks that don't depend on any context @@ -1752,8 +1746,10 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex, bool fJustCheck) if (tx.nTime >= CHECKLOCKTIMEVERIFY_SWITCH_TIME) { nFlags |= SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY; - // OP_CHECKSEQUENCEVERIFY is senseless without BIP68, so we're going disable it for now. - // nFlags |= SCRIPT_VERIFY_CHECKSEQUENCEVERIFY; + } + + if (tx.nTime >= CHECKSEQUENCEVERIFY_SWITCH_TIME) { + nFlags |= SCRIPT_VERIFY_CHECKSEQUENCEVERIFY; } std::vector vChecks; @@ -1987,10 +1983,10 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew) } // Connect further blocks - BOOST_REVERSE_FOREACH(CBlockIndex *pindex, vpindexSecondary) + for (std::vector::reverse_iterator rit = vpindexSecondary.rbegin(); rit != vpindexSecondary.rend(); ++rit) { CBlock block; - if (!block.ReadFromDisk(pindex)) + if (!block.ReadFromDisk(*rit)) { printf("SetBestChain() : ReadFromDisk failed\n"); break; @@ -2000,7 +1996,7 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew) break; } // errors now are not fatal, we still did a reorganisation to a new chain in a valid way - if (!block.SetBestChainInner(txdb, pindex)) + if (!block.SetBestChainInner(txdb, *rit)) break; } } @@ -2668,7 +2664,7 @@ bool CBlock::CheckBlockSignature() const bool CheckDiskSpace(uint64_t nAdditionalBytes) { - uint64_t nFreeBytesAvailable = filesystem::space(GetDataDir()).available; + uint64_t nFreeBytesAvailable = boost::filesystem::space(GetDataDir()).available; // Check for nMinDiskSpace bytes (currently 50MB) if (nFreeBytesAvailable < nMinDiskSpace + nAdditionalBytes) @@ -2684,7 +2680,7 @@ bool CheckDiskSpace(uint64_t nAdditionalBytes) return true; } -static filesystem::path BlockFilePath(unsigned int nFile) +static boost::filesystem::path BlockFilePath(unsigned int nFile) { string strBlockFn = strprintf("blk%04u.dat", nFile); return GetDataDir() / strBlockFn; @@ -2792,12 +2788,12 @@ bool LoadBlockIndex(bool fAllowNew) // CTxOut(empty) // vMerkleTree: 4cb33b3b6a - const char* pszTimestamp = "https://bitcointalk.org/index.php?topic=134179.msg1502196#msg1502196"; + const string strTimestamp = "https://bitcointalk.org/index.php?topic=134179.msg1502196#msg1502196"; CTransaction txNew; txNew.nTime = 1360105017; txNew.vin.resize(1); txNew.vout.resize(1); - txNew.vin[0].scriptSig = CScript() << 486604799 << CBigNum(9999) << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); + txNew.vin[0].scriptSig = CScript() << 486604799 << CBigNum(9999) << vector(strTimestamp.begin(), strTimestamp.end()); txNew.vout[0].SetEmpty(); CBlock block; block.vtx.push_back(txNew);