diff options
| author | Luke Dashjr <[email protected]> | 2014-11-20 02:23:20 +0000 |
|---|---|---|
| committer | Luke Dashjr <[email protected]> | 2014-11-20 15:32:49 +0000 |
| commit | b867e409e5dd34b84eb9d6d0d8f257dbb19b986d (patch) | |
| tree | 77244d823816d7f05e4fba596d60211d6ed1644a /src/miner.cpp | |
| parent | submitblock: Check for duplicate submissions explicitly (diff) | |
| download | discoin-b867e409e5dd34b84eb9d6d0d8f257dbb19b986d.tar.xz discoin-b867e409e5dd34b84eb9d6d0d8f257dbb19b986d.zip | |
CreateNewBlock: Stick height in coinbase so we pass template sanity check
Diffstat (limited to 'src/miner.cpp')
| -rw-r--r-- | src/miner.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/miner.cpp b/src/miner.cpp index 200498d10..5ac4b05af 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -124,6 +124,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) { LOCK2(cs_main, mempool.cs); CBlockIndex* pindexPrev = chainActive.Tip(); + const int nHeight = pindexPrev->nHeight + 1; CCoinsViewCache view(pcoinsTip); // Priority order to process transactions @@ -138,7 +139,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) mi != mempool.mapTx.end(); ++mi) { const CTransaction& tx = mi->second.GetTx(); - if (tx.IsCoinBase() || !IsFinalTx(tx, pindexPrev->nHeight + 1)) + if (tx.IsCoinBase() || !IsFinalTx(tx, nHeight)) continue; COrphan* porphan = NULL; @@ -181,7 +182,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) CAmount nValueIn = coins->vout[txin.prevout.n].nValue; nTotalIn += nValueIn; - int nConf = pindexPrev->nHeight - coins->nHeight + 1; + int nConf = nHeight - coins->nHeight; dPriority += (double)nValueIn * nConf; } @@ -269,7 +270,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) continue; CTxUndo txundo; - UpdateCoins(tx, state, view, txundo, pindexPrev->nHeight+1); + UpdateCoins(tx, state, view, txundo, nHeight); // Added pblock->vtx.push_back(tx); @@ -309,8 +310,8 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn) LogPrintf("CreateNewBlock(): total size %u\n", nBlockSize); // Compute final coinbase transaction. - txNew.vout[0].nValue = GetBlockValue(pindexPrev->nHeight+1, nFees); - txNew.vin[0].scriptSig = CScript() << OP_0 << OP_0; + txNew.vout[0].nValue = GetBlockValue(nHeight, nFees); + txNew.vin[0].scriptSig = CScript() << nHeight << OP_0; pblock->vtx[0] = txNew; pblocktemplate->vTxFees[0] = -nFees; |