|
|
|
@ -144,8 +144,13 @@ static bool SignStep(const SigningProvider& provider, const BaseSignatureCreator
|
|
|
|
|
ret.push_back(valtype()); // workaround CHECKMULTISIG bug
|
|
|
|
|
for (size_t i = 1; i < vSolutions.size() - 1; ++i) {
|
|
|
|
|
CPubKey pubkey = CPubKey(vSolutions[i]);
|
|
|
|
|
if (ret.size() < required + 1 && CreateSig(creator, sigdata, provider, sig, pubkey, scriptPubKey, sigversion)) {
|
|
|
|
|
ret.push_back(std::move(sig));
|
|
|
|
|
// We need to always call CreateSig in order to fill sigdata with all
|
|
|
|
|
// possible signatures that we can create. This will allow further PSBT
|
|
|
|
|
// processing to work as it needs all possible signature and pubkey pairs
|
|
|
|
|
if (CreateSig(creator, sigdata, provider, sig, pubkey, scriptPubKey, sigversion)) {
|
|
|
|
|
if (ret.size() < required + 1) {
|
|
|
|
|
ret.push_back(std::move(sig));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool ok = ret.size() == required + 1;
|
|
|
|
|