|
|
@ -140,10 +140,9 @@ static CScript PushAll(const std::vector<valtype>& values)
|
|
|
|
|
|
|
|
|
|
|
|
bool ProduceSignature(const BaseSignatureCreator& creator, const CScript& fromPubKey, SignatureData& sigdata)
|
|
|
|
bool ProduceSignature(const BaseSignatureCreator& creator, const CScript& fromPubKey, SignatureData& sigdata)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
CScript script = fromPubKey;
|
|
|
|
|
|
|
|
std::vector<valtype> result;
|
|
|
|
std::vector<valtype> result;
|
|
|
|
txnouttype whichType;
|
|
|
|
txnouttype whichType;
|
|
|
|
bool solved = SignStep(creator, script, result, whichType, SIGVERSION_BASE);
|
|
|
|
bool solved = SignStep(creator, fromPubKey, result, whichType, SIGVERSION_BASE);
|
|
|
|
bool P2SH = false;
|
|
|
|
bool P2SH = false;
|
|
|
|
CScript subscript;
|
|
|
|
CScript subscript;
|
|
|
|
sigdata.scriptWitness.stack.clear();
|
|
|
|
sigdata.scriptWitness.stack.clear();
|
|
|
@ -153,8 +152,8 @@ bool ProduceSignature(const BaseSignatureCreator& creator, const CScript& fromPu
|
|
|
|
// Solver returns the subscript that needs to be evaluated;
|
|
|
|
// Solver returns the subscript that needs to be evaluated;
|
|
|
|
// the final scriptSig is the signatures from that
|
|
|
|
// the final scriptSig is the signatures from that
|
|
|
|
// and then the serialized subscript:
|
|
|
|
// and then the serialized subscript:
|
|
|
|
script = subscript = CScript(result[0].begin(), result[0].end());
|
|
|
|
subscript = CScript(result[0].begin(), result[0].end());
|
|
|
|
solved = solved && SignStep(creator, script, result, whichType, SIGVERSION_BASE) && whichType != TX_SCRIPTHASH;
|
|
|
|
solved = solved && SignStep(creator, subscript, result, whichType, SIGVERSION_BASE) && whichType != TX_SCRIPTHASH;
|
|
|
|
P2SH = true;
|
|
|
|
P2SH = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|