mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-15 12:51:00 +02:00
Merge 08ea835220 into merged_master (Bitcoin PR bitcoin/bitcoin#28583)
This commit is contained in:
commit
69492d27da
46 changed files with 165 additions and 164 deletions
|
|
@ -438,7 +438,7 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
|
|||
case TxoutType::SCRIPTHASH: {
|
||||
uint160 h160{vSolutions[0]};
|
||||
if (GetCScript(provider, sigdata, CScriptID{h160}, scriptRet)) {
|
||||
ret.push_back(std::vector<unsigned char>(scriptRet.begin(), scriptRet.end()));
|
||||
ret.emplace_back(scriptRet.begin(), scriptRet.end());
|
||||
return true;
|
||||
}
|
||||
// Could not find redeemScript, add to missing
|
||||
|
|
@ -447,7 +447,7 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
|
|||
}
|
||||
case TxoutType::MULTISIG: {
|
||||
size_t required = vSolutions.front()[0];
|
||||
ret.push_back(valtype()); // workaround CHECKMULTISIG bug
|
||||
ret.emplace_back(); // workaround CHECKMULTISIG bug
|
||||
for (size_t i = 1; i < vSolutions.size() - 1; ++i) {
|
||||
CPubKey pubkey = CPubKey(vSolutions[i]);
|
||||
// We need to always call CreateSig in order to fill sigdata with all
|
||||
|
|
@ -461,7 +461,7 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
|
|||
}
|
||||
bool ok = ret.size() == required + 1;
|
||||
for (size_t i = 0; i + ret.size() < required + 1; ++i) {
|
||||
ret.push_back(valtype());
|
||||
ret.emplace_back();
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
|
@ -471,7 +471,7 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
|
|||
|
||||
case TxoutType::WITNESS_V0_SCRIPTHASH:
|
||||
if (GetCScript(provider, sigdata, CScriptID{RIPEMD160(vSolutions[0])}, scriptRet)) {
|
||||
ret.push_back(std::vector<unsigned char>(scriptRet.begin(), scriptRet.end()));
|
||||
ret.emplace_back(scriptRet.begin(), scriptRet.end());
|
||||
return true;
|
||||
}
|
||||
// Could not find witnessScript, add to missing
|
||||
|
|
@ -562,7 +562,7 @@ bool ProduceSignature(const SigningProvider& provider, const BaseSignatureCreato
|
|||
const auto ms = miniscript::FromScript(witnessscript, ms_satisfier);
|
||||
solved = ms && ms->Satisfy(ms_satisfier, result) == miniscript::Availability::YES;
|
||||
}
|
||||
result.push_back(std::vector<unsigned char>(witnessscript.begin(), witnessscript.end()));
|
||||
result.emplace_back(witnessscript.begin(), witnessscript.end());
|
||||
|
||||
sigdata.scriptWitness.stack = result;
|
||||
sigdata.witness = true;
|
||||
|
|
@ -579,7 +579,7 @@ bool ProduceSignature(const SigningProvider& provider, const BaseSignatureCreato
|
|||
|
||||
if (!sigdata.witness) sigdata.scriptWitness.stack.clear();
|
||||
if (P2SH) {
|
||||
result.push_back(std::vector<unsigned char>(subscript.begin(), subscript.end()));
|
||||
result.emplace_back(subscript.begin(), subscript.end());
|
||||
}
|
||||
sigdata.scriptSig = PushAll(result);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue