diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2013-08-05 01:53:17 -0700 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2013-08-05 01:53:17 -0700 |
commit | 15047f5af0d13844d0034626492379a421c211ca (patch) | |
tree | 2abcc044e721ed957799bd8818d47d3465874c02 /src/main.cpp | |
parent | 2af267c150579c5defc3431e6d0d1ee4d6e7af44 (diff) | |
parent | 9bf2a4aba2c22dc451ce000f7ef081b3d3562b84 (diff) |
Merge pull request #2851 from TheBlueMatt/master
Prepare for mempool testing in pull-tester and fix multi-block transaction resurrection
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp index ac3ee06f6f..50cff7f51d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -810,9 +810,9 @@ bool CTxMemPool::accept(CValidationState &state, CTransaction &tx, bool fLimitFr if ((int64)tx.nLockTime > std::numeric_limits<int>::max()) return error("CTxMemPool::accept() : not accepting nLockTime beyond 2038 yet"); - // Rather not work on nonstandard transactions (unless -testnet) + // Rather not work on nonstandard transactions (unless -testnet/-regtest) string reason; - if (!TestNet() && !IsStandardTx(tx, reason)) + if (Params().NetworkID() == CChainParams::MAIN && !IsStandardTx(tx, reason)) return error("CTxMemPool::accept() : nonstandard transaction: %s", reason.c_str()); @@ -888,7 +888,7 @@ bool CTxMemPool::accept(CValidationState &state, CTransaction &tx, bool fLimitFr } // Check for non-standard pay-to-script-hash in inputs - if (!TestNet() && !AreInputsStandard(tx, view)) + if (Params().NetworkID() == CChainParams::MAIN && !AreInputsStandard(tx, view)) return error("CTxMemPool::accept() : nonstandard transaction input"); // Note: if you modify this code to accept non-standard transactions, then @@ -1938,7 +1938,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew) } // Disconnect shorter branch - vector<CTransaction> vResurrect; + list<CTransaction> vResurrect; BOOST_FOREACH(CBlockIndex* pindex, vDisconnect) { CBlock block; if (!ReadBlockFromDisk(block, pindex)) @@ -1952,9 +1952,9 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew) // Queue memory transactions to resurrect. // We only do this for blocks after the last checkpoint (reorganisation before that // point should only happen with -reindex/-loadblock, or a misbehaving peer. - BOOST_FOREACH(const CTransaction& tx, block.vtx) + BOOST_REVERSE_FOREACH(const CTransaction& tx, block.vtx) if (!tx.IsCoinBase() && pindex->nHeight > Checkpoints::GetTotalBlocksEstimate()) - vResurrect.push_back(tx); + vResurrect.push_front(tx); } // Connect longer branch |