@@ -286,7 +286,6 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
286286 std::vector<valtype>& ret, TxoutType& whichTypeRet, SigVersion sigversion, SignatureData& sigdata)
287287{
288288 CScript scriptRet;
289- uint160 h160;
290289 ret.clear ();
291290 std::vector<unsigned char > sig;
292291
@@ -315,16 +314,16 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
315314 ret.push_back (ToByteVector (pubkey));
316315 return true ;
317316 }
318- case TxoutType::SCRIPTHASH:
319- h160 = uint160 ( vSolutions[0 ]) ;
317+ case TxoutType::SCRIPTHASH: {
318+ uint160 h160{ vSolutions[0 ]} ;
320319 if (GetCScript (provider, sigdata, CScriptID{h160}, scriptRet)) {
321320 ret.push_back (std::vector<unsigned char >(scriptRet.begin (), scriptRet.end ()));
322321 return true ;
323322 }
324323 // Could not find redeemScript, add to missing
325324 sigdata.missing_redeem_script = h160;
326325 return false ;
327-
326+ }
328327 case TxoutType::MULTISIG: {
329328 size_t required = vSolutions.front ()[0 ];
330329 ret.push_back (valtype ()); // workaround CHECKMULTISIG bug
@@ -350,8 +349,7 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
350349 return true ;
351350
352351 case TxoutType::WITNESS_V0_SCRIPTHASH:
353- CRIPEMD160 ().Write (vSolutions[0 ].data (), vSolutions[0 ].size ()).Finalize (h160.begin ());
354- if (GetCScript (provider, sigdata, CScriptID{h160}, scriptRet)) {
352+ if (GetCScript (provider, sigdata, CScriptID{RIPEMD160 (vSolutions[0 ])}, scriptRet)) {
355353 ret.push_back (std::vector<unsigned char >(scriptRet.begin (), scriptRet.end ()));
356354 return true ;
357355 }
0 commit comments