Skip to content

Commit

Permalink
rpc: descriptorprocesspsbt return hex encoded tx
Browse files Browse the repository at this point in the history
If processed psbt is complete return hex encoded network
transaction in the output.
  • Loading branch information
ismaelsadeeq committed Sep 15, 2023
1 parent f1a9fd6 commit c405207
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/rpc/rawtransaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1949,6 +1949,7 @@ RPCHelpMan descriptorprocesspsbt()
{
{RPCResult::Type::STR, "psbt", "The base64-encoded partially signed transaction"},
{RPCResult::Type::BOOL, "complete", "If the transaction has a complete set of signatures"},
{RPCResult::Type::STR_HEX, "hex", /*optional=*/true, "The hex-encoded network transaction if complete"},
}
},
RPCExamples{
Expand Down Expand Up @@ -1989,7 +1990,14 @@ RPCHelpMan descriptorprocesspsbt()

result.pushKV("psbt", EncodeBase64(ssTx));
result.pushKV("complete", complete);

if (complete) {
CMutableTransaction mtx;
PartiallySignedTransaction psbtx_copy = psbtx;
CHECK_NONFATAL(FinalizeAndExtractPSBT(psbtx_copy, mtx));
CDataStream ssTx_final(SER_NETWORK, PROTOCOL_VERSION);
ssTx_final << mtx;
result.pushKV("hex", HexStr(ssTx_final));
}
return result;
},
};
Expand Down

0 comments on commit c405207

Please sign in to comment.