mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 22:50:59 +01:00
Merge #21063: wallet, rpc: update listdescriptors response format
2e5f7def22wallet, rpc: update listdescriptors response format (Ivan Metlushko) Pull request description: Update `listdescriptors` response format according to [RPC interface guidelines](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#rpc-interface-guidelines). This is a follow up for #20226 **Before:** ``` Result: [ (json array) Response is an array of descriptor objects { (json object) "desc" : "str", (string) Descriptor string representation "timestamp" : n, (numeric) The creation time of the descriptor "active" : true|false, (boolean) Activeness flag "internal" : true|false, (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors "range" : [ (json array, optional) Defined only for ranged descriptors n, (numeric) Range start inclusive n (numeric) Range end inclusive ], "next" : n (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors }, ... ] ``` **After:** ``` Result: { (json object) "wallet_name" : "str", (string) Name of wallet this operation was performed on "descriptors" : [ (json array) Array of descriptor objects { (json object) "desc" : "str", (string) Descriptor string representation "timestamp" : n, (numeric) The creation time of the descriptor "active" : true|false, (boolean) Activeness flag "internal" : true|false, (boolean, optional) Whether this is internal or external descriptor; defined only for active descriptors "range" : [ (json array, optional) Defined only for ranged descriptors n, (numeric) Range start inclusive n (numeric) Range end inclusive ], "next" : n (numeric, optional) The next index to generate addresses from; defined only for ranged descriptors }, ... ] } ``` ACKs for top commit: achow101: re-ACK2e5f7def22meshcollider: utACK2e5f7def22jonatack: re-ACK2e5f7def22Tree-SHA512: 49bf73e46e2a61003ce594a4bfc506eb9592ccb799c2909c43a1a527490a4b4009f78dc09f3d47b4e945d3d7bb3cd2632cf48c5ace5feed5066158cc010dddc1
This commit is contained in:
@@ -36,15 +36,16 @@ class ListDescriptorsTest(BitcoinTestFramework):
|
||||
|
||||
self.log.info('Test the command for empty descriptors wallet.')
|
||||
node.createwallet(wallet_name='w2', blank=True, descriptors=True)
|
||||
assert_equal(0, len(node.get_wallet_rpc('w2').listdescriptors()))
|
||||
assert_equal(0, len(node.get_wallet_rpc('w2').listdescriptors()['descriptors']))
|
||||
|
||||
self.log.info('Test the command for a default descriptors wallet.')
|
||||
node.createwallet(wallet_name='w3', descriptors=True)
|
||||
result = node.get_wallet_rpc('w3').listdescriptors()
|
||||
assert_equal(6, len(result))
|
||||
assert_equal(6, len([d for d in result if d['active']]))
|
||||
assert_equal(3, len([d for d in result if d['internal']]))
|
||||
for item in result:
|
||||
assert_equal("w3", result['wallet_name'])
|
||||
assert_equal(6, len(result['descriptors']))
|
||||
assert_equal(6, len([d for d in result['descriptors'] if d['active']]))
|
||||
assert_equal(3, len([d for d in result['descriptors'] if d['internal']]))
|
||||
for item in result['descriptors']:
|
||||
assert item['desc'] != ''
|
||||
assert item['next'] == 0
|
||||
assert item['range'] == [0, 0]
|
||||
@@ -59,12 +60,17 @@ class ListDescriptorsTest(BitcoinTestFramework):
|
||||
'desc': descsum_create('wpkh(' + xprv + hardened_path + '/0/*)'),
|
||||
'timestamp': 1296688602,
|
||||
}])
|
||||
expected = {'desc': descsum_create('wpkh([80002067' + hardened_path + ']' + xpub_acc + '/0/*)'),
|
||||
'timestamp': 1296688602,
|
||||
'active': False,
|
||||
'range': [0, 0],
|
||||
'next': 0}
|
||||
assert_equal([expected], wallet.listdescriptors())
|
||||
expected = {
|
||||
'wallet_name': 'w2',
|
||||
'descriptors': [
|
||||
{'desc': descsum_create('wpkh([80002067' + hardened_path + ']' + xpub_acc + '/0/*)'),
|
||||
'timestamp': 1296688602,
|
||||
'active': False,
|
||||
'range': [0, 0],
|
||||
'next': 0},
|
||||
],
|
||||
}
|
||||
assert_equal(expected, wallet.listdescriptors())
|
||||
|
||||
self.log.info('Test non-active non-range combo descriptor')
|
||||
node.createwallet(wallet_name='w4', blank=True, descriptors=True)
|
||||
@@ -73,9 +79,14 @@ class ListDescriptorsTest(BitcoinTestFramework):
|
||||
'desc': descsum_create('combo(' + node.get_deterministic_priv_key().key + ')'),
|
||||
'timestamp': 1296688602,
|
||||
}])
|
||||
expected = [{'active': False,
|
||||
'desc': 'combo(0227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3f)#np574htj',
|
||||
'timestamp': 1296688602}]
|
||||
expected = {
|
||||
'wallet_name': 'w4',
|
||||
'descriptors': [
|
||||
{'active': False,
|
||||
'desc': 'combo(0227d85ba011276cf25b51df6a188b75e604b38770a462b2d0e9fb2fc839ef5d3f)#np574htj',
|
||||
'timestamp': 1296688602},
|
||||
]
|
||||
}
|
||||
assert_equal(expected, wallet.listdescriptors())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user