mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-29 18:05:58 +02:00
Add iswitness parameter to decode- and fundrawtransaction RPCs
This commit is contained in:
@@ -419,13 +419,15 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
||||
|
||||
UniValue decoderawtransaction(const JSONRPCRequest& request)
|
||||
{
|
||||
if (request.fHelp || request.params.size() != 1)
|
||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
|
||||
throw std::runtime_error(
|
||||
"decoderawtransaction \"hexstring\"\n"
|
||||
"decoderawtransaction \"hexstring\" ( iswitness )\n"
|
||||
"\nReturn a JSON object representing the serialized, hex-encoded transaction.\n"
|
||||
|
||||
"\nArguments:\n"
|
||||
"1. \"hexstring\" (string, required) The transaction hex string\n"
|
||||
"2. iswitness (boolean, optional) Whether the transaction hex is a serialized witness transaction\n"
|
||||
" If iswitness is not present, heuristic tests will be used in decoding\n"
|
||||
|
||||
"\nResult:\n"
|
||||
"{\n"
|
||||
@@ -473,12 +475,16 @@ UniValue decoderawtransaction(const JSONRPCRequest& request)
|
||||
);
|
||||
|
||||
LOCK(cs_main);
|
||||
RPCTypeCheck(request.params, {UniValue::VSTR});
|
||||
RPCTypeCheck(request.params, {UniValue::VSTR, UniValue::VBOOL});
|
||||
|
||||
CMutableTransaction mtx;
|
||||
|
||||
if (!DecodeHexTx(mtx, request.params[0].get_str(), true))
|
||||
bool try_witness = request.params[1].isNull() ? true : request.params[1].get_bool();
|
||||
bool try_no_witness = request.params[1].isNull() ? true : !request.params[1].get_bool();
|
||||
|
||||
if (!DecodeHexTx(mtx, request.params[0].get_str(), try_no_witness, try_witness)) {
|
||||
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
|
||||
}
|
||||
|
||||
UniValue result(UniValue::VOBJ);
|
||||
TxToUniv(CTransaction(std::move(mtx)), uint256(), result, false);
|
||||
@@ -966,7 +972,7 @@ static const CRPCCommand commands[] =
|
||||
// --------------------- ------------------------ ----------------------- ----------
|
||||
{ "rawtransactions", "getrawtransaction", &getrawtransaction, {"txid","verbose"} },
|
||||
{ "rawtransactions", "createrawtransaction", &createrawtransaction, {"inputs","outputs","locktime","replaceable"} },
|
||||
{ "rawtransactions", "decoderawtransaction", &decoderawtransaction, {"hexstring"} },
|
||||
{ "rawtransactions", "decoderawtransaction", &decoderawtransaction, {"hexstring","iswitness"} },
|
||||
{ "rawtransactions", "decodescript", &decodescript, {"hexstring"} },
|
||||
{ "rawtransactions", "sendrawtransaction", &sendrawtransaction, {"hexstring","allowhighfees"} },
|
||||
{ "rawtransactions", "combinerawtransaction", &combinerawtransaction, {"txs"} },
|
||||
|
||||
Reference in New Issue
Block a user