@@ -372,7 +372,7 @@ void UpdatePSBTOutput(const SigningProvider& provider, PartiallySignedTransactio
372372 // Note that ProduceSignature is used to fill in metadata (not actual signatures),
373373 // so provider does not need to provide any private keys (it can be a HidingSigningProvider).
374374 MutableTransactionSignatureCreator creator (tx, /* input_idx=*/ 0 , out.nValue , SIGHASH_ALL);
375- ProduceSignature (provider, creator, out.scriptPubKey , sigdata);
375+ ProduceSignature (provider, creator, out.scriptPubKey , /* avoid_script_path= */ false , sigdata);
376376
377377 // Put redeem_script, witness_script, key paths, into PSBTOutput.
378378 psbt_out.FromSignatureData (sigdata);
@@ -395,7 +395,7 @@ PrecomputedTransactionData PrecomputePSBTData(const PartiallySignedTransaction&
395395 return txdata;
396396}
397397
398- PSBTError SignPSBTInput (const SigningProvider& provider, PartiallySignedTransaction& psbt, int index, const PrecomputedTransactionData* txdata, std::optional<int > sighash, SignatureData* out_sigdata, bool finalize)
398+ PSBTError SignPSBTInput (const SigningProvider& provider, PartiallySignedTransaction& psbt, int index, const PrecomputedTransactionData* txdata, std::optional<int > sighash, SignatureData* out_sigdata, bool avoid_script_path, bool finalize)
399399{
400400 PSBTInput& input = psbt.inputs .at (index);
401401 const CMutableTransaction& tx = *psbt.tx ;
@@ -475,10 +475,10 @@ PSBTError SignPSBTInput(const SigningProvider& provider, PartiallySignedTransact
475475 sigdata.witness = false ;
476476 bool sig_complete;
477477 if (txdata == nullptr ) {
478- sig_complete = ProduceSignature (provider, DUMMY_SIGNATURE_CREATOR, utxo.scriptPubKey , sigdata);
478+ sig_complete = ProduceSignature (provider, DUMMY_SIGNATURE_CREATOR, utxo.scriptPubKey , avoid_script_path, sigdata);
479479 } else {
480480 MutableTransactionSignatureCreator creator (tx, index, utxo.nValue , txdata, *sighash);
481- sig_complete = ProduceSignature (provider, creator, utxo.scriptPubKey , sigdata);
481+ sig_complete = ProduceSignature (provider, creator, utxo.scriptPubKey , avoid_script_path, sigdata);
482482 }
483483 // Verify that a witness signature was produced in case one was required.
484484 if (require_witness_sig && !sigdata.witness ) return PSBTError::INCOMPLETE;
@@ -554,7 +554,7 @@ bool FinalizePSBT(PartiallySignedTransaction& psbtx)
554554 const PrecomputedTransactionData txdata = PrecomputePSBTData (psbtx);
555555 for (unsigned int i = 0 ; i < psbtx.tx ->vin .size (); ++i) {
556556 PSBTInput& input = psbtx.inputs .at (i);
557- complete &= (SignPSBTInput (DUMMY_SIGNING_PROVIDER, psbtx, i, &txdata, input.sighash_type , nullptr , true ) == PSBTError::OK);
557+ complete &= (SignPSBTInput (DUMMY_SIGNING_PROVIDER, psbtx, i, &txdata, input.sighash_type , nullptr , /* avoid_script_path= */ false , /* finalize= */ true ) == PSBTError::OK);
558558 }
559559
560560 return complete;
0 commit comments