Put OP_EVAL string in coinbase of generated blocks

This commit is contained in:
Gavin Andresen 2011-10-13 16:03:58 -04:00
parent e679ec969c
commit d7062ef1bd
2 changed files with 12 additions and 5 deletions

View File

@ -270,7 +270,7 @@ public:
bool SetScriptHash160(const uint160& hash160)
{
SetData(fTestNet ? 112 : 1, &hash160, 20);
SetData(fTestNet ? 111^2 : 2, &hash160, 20);
return true;
}
@ -284,7 +284,7 @@ public:
nExpectedSize = 20; // Hash of public key
fExpectTestNet = false;
break;
case 1:
case 2:
nExpectedSize = 20; // OP_EVAL, hash of CScript
fExpectTestNet = false;
break;
@ -293,7 +293,7 @@ public:
nExpectedSize = 20;
fExpectTestNet = true;
break;
case 112:
case 111^2:
nExpectedSize = 20;
fExpectTestNet = true;
break;
@ -308,8 +308,8 @@ public:
if (!IsValid())
return false;
if (fTestNet)
return nVersion == 112;
return nVersion == 1;
return nVersion == 111^2;
return nVersion == 2;
}
CBitcoinAddress()

View File

@ -2999,6 +2999,13 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int&
}
++nExtraNonce;
pblock->vtx[0].vin[0].scriptSig = CScript() << pblock->nTime << CBigNum(nExtraNonce);
// Put "OP_EVAL" in the coinbase so everybody can tell when
// a majority of miners support it
const char* pOpEvalName = GetOpName(OP_EVAL);
pblock->vtx[0].vin[0].scriptSig += CScript() << std::vector<unsigned char>(pOpEvalName, pOpEvalName+strlen(pOpEvalName));
assert(pblock->vtx[0].vin[0].scriptSig.size() <= 100);
pblock->hashMerkleRoot = pblock->BuildMerkleTree();
}