bool SetScriptHash160(const uint160& hash160)
{
- SetData(fTestNet ? 112 : 1, &hash160, 20);
+ SetData(fTestNet ? 111^2 : 2, &hash160, 20);
return true;
}
nExpectedSize = 20; // Hash of public key
fExpectTestNet = false;
break;
- case 1:
+ case 2:
nExpectedSize = 20; // OP_EVAL, hash of CScript
fExpectTestNet = false;
break;
nExpectedSize = 20;
fExpectTestNet = true;
break;
- case 112:
+ case 111^2:
nExpectedSize = 20;
fExpectTestNet = true;
break;
if (!IsValid())
return false;
if (fTestNet)
- return nVersion == 112;
- return nVersion == 1;
+ return nVersion == 111^2;
+ return nVersion == 2;
}
CBitcoinAddress()
}
++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();
}