You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge #16873: rpc: fix regression in gettransaction
1b41c2c test: improve gettransaction test coverage (Jon Atack)
0f34f54 rpc: fix regression in gettransaction (Jon Atack)
Pull request description:
Closes #16872.
PR #16866 renamed the `decode` argument in gettransaction to `verbose` to make it more consistent with other RPC calls like getrawtransaction. However, it inadvertently overloaded the "details" field when `verbose` is passed. The result is that the original "details" field is no longer returned correctly, which seems to be a breaking API change.
This PR:
- takes the simplest path to restoring the "details" field by renaming the decoded one back to "decoded" while leaving the `verbose` argument for API consistency, which was the main intent of #16866,
- addresses [this comment](bitcoin/bitcoin#16185 (comment)) by mentioning in the RPC help that the new decoded field is equivalent to decoderawtransaction, and
- updates the help, functional test, and release note.
Reviewers, to test this manually, build and run `bitcoin-cli help gettransaction` and `bitcoin-cli gettransaction <wallet txid> false true`, and verify that the command returns both `details` and `decoded` fields.
ACKs for top commit:
jnewbery:
tACK 1b41c2c
Tree-SHA512: 287edd5db7ed58fe8b548975aba58628bd45ed708b28f40174f10a35a455d89f796fbf27430aa881fc376f47aabda8803f74d4d100683bd86577a02279091cf3
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.
3
+
The `gettransaction` RPC now accepts a third (boolean) argument `verbose`. If
4
+
set to `true`, a new `decoded` field will be added to the response containing
5
+
the decoded transaction. This field is equivalent to RPC `decoderawtransaction`,
6
+
or RPC `getrawtransaction` when `verbose` is passed.
"\nGet detailed information about in-wallet transaction <txid>\n",
1649
1649
{
1650
1650
{"txid", RPCArg::Type::STR, RPCArg::Optional::NO, "The transaction id"},
1651
-
{"include_watchonly", RPCArg::Type::BOOL, /* default */"true for watch-only wallets, otherwise false", "Whether to include watch-only addresses in balance calculation and details[]"},
1652
-
{"verbose", RPCArg::Type::BOOL, /* default */"false", "Whether to add a field with additional transaction details"},
1651
+
{"include_watchonly", RPCArg::Type::BOOL, /* default */"true for watch-only wallets, otherwise false",
1652
+
"Whether to include watch-only addresses in balance calculation and details[]"},
"\"hex\" : \"data\" (string) Raw data for transaction\n"
1688
-
"\"details\" : transaction (json object) Optional, additional transaction details. This object contains the same transaction details as the `getrawtransaction` RPC method\n"
1690
+
"\"decoded\" : transaction (json object) Optional, the decoded transaction (only present when `verbose` is passed), equivalent to the\n"
1691
+
" RPC decoderawtransaction method, or the RPC getrawtransaction method when `verbose` is passed.\n"
0 commit comments