|
|
@ -285,7 +285,8 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
{ |
|
|
|
tx.vout[0].nValue -= 10; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
bool spendsCoinbase = (i == 0) ? true : false; // only first tx spends coinbase
|
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(spendsCoinbase).FromTx(tx)); |
|
|
|
tx.vin[0].prevout.hash = hash; |
|
|
|
} |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
@ -305,7 +306,8 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
{ |
|
|
|
tx.vout[0].nValue -= 350; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
bool spendsCoinbase = (i == 0) ? true : false; // only first tx spends coinbase
|
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(spendsCoinbase).FromTx(tx)); |
|
|
|
tx.vin[0].prevout.hash = hash; |
|
|
|
} |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
@ -324,7 +326,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx.vin[0].prevout.hash = txFirst[1]->GetHash(); |
|
|
|
tx.vout[0].nValue = 39000LL; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
tx.vin[0].prevout.hash = hash; |
|
|
|
tx.vin.resize(2); |
|
|
|
tx.vin[1].scriptSig = CScript() << OP_1; |
|
|
@ -332,7 +334,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx.vin[1].prevout.n = 0; |
|
|
|
tx.vout[0].nValue = 49000LL; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
|
delete pblocktemplate; |
|
|
|
mempool.clear(); |
|
|
@ -343,7 +345,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx.vin[0].scriptSig = CScript() << OP_0 << OP_1; |
|
|
|
tx.vout[0].nValue = 0; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(false).FromTx(tx)); |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
|
delete pblocktemplate; |
|
|
|
mempool.clear(); |
|
|
@ -356,12 +358,12 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
script = CScript() << OP_0; |
|
|
|
tx.vout[0].scriptPubKey = GetScriptForDestination(CScriptID(script)); |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
tx.vin[0].prevout.hash = hash; |
|
|
|
tx.vin[0].scriptSig = CScript() << (std::vector<unsigned char>)script; |
|
|
|
tx.vout[0].nValue -= 10000; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(false).FromTx(tx)); |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
|
delete pblocktemplate; |
|
|
|
mempool.clear(); |
|
|
@ -372,10 +374,10 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx.vout[0].nValue = 49000LL; |
|
|
|
tx.vout[0].scriptPubKey = CScript() << OP_1; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
tx.vout[0].scriptPubKey = CScript() << OP_2; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
|
delete pblocktemplate; |
|
|
|
mempool.clear(); |
|
|
@ -401,7 +403,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx.vout[0].scriptPubKey = CScript() << OP_1; |
|
|
|
tx.nLockTime = chainActive.Tip()->nHeight+1; |
|
|
|
hash = tx.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx)); |
|
|
|
BOOST_CHECK(!CheckFinalTx(tx, LOCKTIME_MEDIAN_TIME_PAST)); |
|
|
|
|
|
|
|
// time locked
|
|
|
@ -415,7 +417,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) |
|
|
|
tx2.vout[0].scriptPubKey = CScript() << OP_1; |
|
|
|
tx2.nLockTime = chainActive.Tip()->GetMedianTimePast()+1; |
|
|
|
hash = tx2.GetHash(); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).FromTx(tx2)); |
|
|
|
mempool.addUnchecked(hash, entry.Time(GetTime()).SpendsCoinbase(true).FromTx(tx2)); |
|
|
|
BOOST_CHECK(!CheckFinalTx(tx2, LOCKTIME_MEDIAN_TIME_PAST)); |
|
|
|
|
|
|
|
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey)); |
|
|
|