Merge 34eb236258 into merged_master (Bitcoin PR #19326)

This commit is contained in:
Andrew Poelstra 2020-11-27 00:39:12 +00:00
commit 54f2d85914
34 changed files with 122 additions and 125 deletions

View file

@ -3666,7 +3666,7 @@ std::vector<unsigned char> GenerateCoinbaseCommitment(CBlock& block, const CBloc
block.vtx[0] = MakeTransactionRef(std::move(tx0));
// END
uint256 witnessroot = BlockWitnessMerkleRoot(block, nullptr);
CHash256().Write(witnessroot.begin(), 32).Write(ret.data(), 32).Finalize(witnessroot.begin());
CHash256().Write(witnessroot).Write(ret).Finalize(witnessroot);
CTxOut out;
out.nValue = 0;
out.nAsset = policyAsset;
@ -3914,7 +3914,7 @@ static bool ContextualCheckBlock(const CBlock& block, BlockValidationState& stat
(block.vtx[0]->witness.vtxinwit[0].scriptWitness.stack[0].size() != 32)) {
return state.Invalid(BlockValidationResult::BLOCK_MUTATED, "bad-witness-nonce-size", strprintf("%s : invalid witness reserved value size", __func__));
}
CHash256().Write(hashWitness.begin(), 32).Write(&block.vtx[0]->witness.vtxinwit[0].scriptWitness.stack[0][0], 32).Finalize(hashWitness.begin());
CHash256().Write(hashWitness).Write(block.vtx[0]->witness.vtxinwit[0].scriptWitness.stack[0]).Finalize(hashWitness);
uint256 committedWitness(std::vector<unsigned char>(&block.vtx[0]->vout[commitpos].scriptPubKey[6], &block.vtx[0]->vout[commitpos].scriptPubKey[6+32]));
if (memcmp(hashWitness.begin(), &block.vtx[0]->vout[commitpos].scriptPubKey[6], 32)) {
return state.Invalid(BlockValidationResult::BLOCK_MUTATED, "bad-witness-merkle-match", strprintf("%s : witness merkle commitment mismatch", __func__));