diff --git a/doc/release-notes-16185.md b/doc/release-notes-16185.md index 14e4004f7..2567ebea4 100644 --- a/doc/release-notes-16185.md +++ b/doc/release-notes-16185.md @@ -1,3 +1,6 @@ RPC changes ----------- -The `gettransaction` RPC now accepts a third (boolean) argument `verbose`. If set to `true`, a new `details` field will be added to the response containing additional transaction details. +The `gettransaction` RPC now accepts a third (boolean) argument `verbose`. If +set to `true`, a new `decoded` field will be added to the response containing +the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, +or RPC `getrawtransaction` when `verbose` is passed. diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 9952e868f..216205ed6 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1648,8 +1648,10 @@ static UniValue gettransaction(const JSONRPCRequest& request) "\nGet detailed information about in-wallet transaction \n", { {"txid", RPCArg::Type::STR, RPCArg::Optional::NO, "The transaction id"}, - {"include_watchonly", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", "Whether to include watch-only addresses in balance calculation and details[]"}, - {"verbose", RPCArg::Type::BOOL, /* default */ "false", "Whether to add a field with additional transaction details"}, + {"include_watchonly", RPCArg::Type::BOOL, /* default */ "true for watch-only wallets, otherwise false", + "Whether to include watch-only addresses in balance calculation and details[]"}, + {"verbose", RPCArg::Type::BOOL, /* default */ "false", + "Whether to include a `decoded` field containing the decoded transaction (equivalent to RPC decoderawtransaction)"}, }, RPCResult{ "{\n" @@ -1685,7 +1687,8 @@ static UniValue gettransaction(const JSONRPCRequest& request) " ,...\n" " ],\n" " \"hex\" : \"data\" (string) Raw data for transaction\n" - " \"details\" : transaction (json object) Optional, additional transaction details. This object contains the same transaction details as the `getrawtransaction` RPC method\n" + " \"decoded\" : transaction (json object) Optional, the decoded transaction (only present when `verbose` is passed), equivalent to the\n" + " RPC decoderawtransaction method, or the RPC getrawtransaction method when `verbose` is passed.\n" "}\n" }, RPCExamples{ @@ -1739,9 +1742,9 @@ static UniValue gettransaction(const JSONRPCRequest& request) entry.pushKV("hex", strHex); if (verbose) { - UniValue details(UniValue::VOBJ); - TxToUniv(*wtx.tx, uint256(), details, false); - entry.pushKV("details", details); + UniValue decoded(UniValue::VOBJ); + TxToUniv(*wtx.tx, uint256(), decoded, false); + entry.pushKV("decoded", decoded); } return entry; diff --git a/test/functional/wallet_basic.py b/test/functional/wallet_basic.py index 4c3fe3078..40ad9081a 100755 --- a/test/functional/wallet_basic.py +++ b/test/functional/wallet_basic.py @@ -499,10 +499,10 @@ class WalletTest(BitcoinTestFramework): self.nodes[0].setlabel(change, 'foobar') assert_equal(self.nodes[0].getaddressinfo(change)['ischange'], False) - # Test "verbose" field value in gettransaction response + # Test "decoded" field value in gettransaction `verbose` response. self.log.info("Testing verbose gettransaction...") tx = self.nodes[0].gettransaction(txid=txid, verbose=True) - assert_equal(tx["details"], self.nodes[0].decoderawtransaction(tx["hex"])) + assert_equal(tx["decoded"], self.nodes[0].decoderawtransaction(tx["hex"])) if __name__ == '__main__':