rpc, wallet: use the same next_index in listdescriptors and importdescriptors

This commit is contained in:
w0xlt 2022-09-28 12:10:33 -03:00
parent 9fcdb9f3a0
commit b082f28101
3 changed files with 12 additions and 4 deletions

View File

@ -0,0 +1,4 @@
Add `next_index` in `listdescriptors` RPC
-----------------
- Added a new `next_index` field in the response in `listdescriptors` to have the same format as `importdescriptors`

View File

@ -1771,7 +1771,8 @@ RPCHelpMan listdescriptors()
{RPCResult::Type::NUM, "", "Range start inclusive"},
{RPCResult::Type::NUM, "", "Range end inclusive"},
}},
{RPCResult::Type::NUM, "next", /*optional=*/true, "The next index to generate addresses from; defined only for ranged descriptors"},
{RPCResult::Type::NUM, "next", /*optional=*/true, "Same as next_index field. Kept for compatibility reason."},
{RPCResult::Type::NUM, "next_index", /*optional=*/true, "The next index to generate addresses from; defined only for ranged descriptors"},
}},
}}
}},
@ -1848,6 +1849,7 @@ RPCHelpMan listdescriptors()
range.push_back(info.range->second - 1);
spk.pushKV("range", range);
spk.pushKV("next", info.next_index);
spk.pushKV("next_index", info.next_index);
}
descriptors.push_back(spk);
}

View File

@ -48,7 +48,7 @@ class ListDescriptorsTest(BitcoinTestFramework):
assert_equal(4, len([d for d in result['descriptors'] if d['internal']]))
for item in result['descriptors']:
assert item['desc'] != ''
assert item['next'] == 0
assert item['next_index'] == 0
assert item['range'] == [0, 0]
assert item['timestamp'] is not None
@ -72,7 +72,8 @@ class ListDescriptorsTest(BitcoinTestFramework):
'timestamp': 1296688602,
'active': False,
'range': [0, 0],
'next': 0},
'next': 0,
'next_index': 0},
],
}
assert_equal(expected, wallet.listdescriptors())
@ -86,7 +87,8 @@ class ListDescriptorsTest(BitcoinTestFramework):
'timestamp': 1296688602,
'active': False,
'range': [0, 0],
'next': 0},
'next': 0,
'next_index': 0},
],
}
assert_equal(expected_private, wallet.listdescriptors(True))