rpc: fix regression in gettransaction

PR 16866 renamed the 'decode' argument in gettransaction to 'verbose' to make it more consistent with other RPC calls like getrawtransaction.

However, it seems it inadvertently overloaded the 'details' fields when 'verbose' is passed. The result is that the original 'details' fields are no longer returned, which seems to be a breaking API change.

This PR takes the simplest path to restoring the 'details' fields by renaming them from 'details' back to 'decoded', while leaving the 'verbose' argument for API consistency.

It also addresses [this comment](https://github.com/bitcoin/bitcoin/pull/16185#discussion_r320740413) to mention that the 'decoded' field is identical to decoderawtransaction.

Update the RPC help, functional test, and release note.
This commit is contained in:
Jon Atack 2019-09-14 19:48:38 +02:00
parent 4bfef0daeb
commit 0f34f54888
No known key found for this signature in database
GPG key ID: 4F5721B3D0E3921D
3 changed files with 15 additions and 9 deletions
test/functional

View file

@ -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__':