mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 14:53:43 +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:
@@ -1737,22 +1737,23 @@ RPCHelpMan listdescriptors()
|
||||
"listdescriptors",
|
||||
"\nList descriptors imported into a descriptor-enabled wallet.",
|
||||
{},
|
||||
RPCResult{
|
||||
RPCResult::Type::ARR, "", "Response is an array of descriptor objects",
|
||||
RPCResult{RPCResult::Type::OBJ, "", "", {
|
||||
{RPCResult::Type::STR, "wallet_name", "Name of wallet this operation was performed on"},
|
||||
{RPCResult::Type::ARR, "descriptors", "Array of descriptor objects",
|
||||
{
|
||||
{RPCResult::Type::OBJ, "", "", {
|
||||
{RPCResult::Type::STR, "desc", "Descriptor string representation"},
|
||||
{RPCResult::Type::NUM, "timestamp", "The creation time of the descriptor"},
|
||||
{RPCResult::Type::BOOL, "active", "Activeness flag"},
|
||||
{RPCResult::Type::BOOL, "internal", true, "Whether this is internal or external descriptor; defined only for active descriptors"},
|
||||
{RPCResult::Type::BOOL, "internal", true, "Whether this is an internal or external descriptor; defined only for active descriptors"},
|
||||
{RPCResult::Type::ARR_FIXED, "range", true, "Defined only for ranged descriptors", {
|
||||
{RPCResult::Type::NUM, "", "Range start inclusive"},
|
||||
{RPCResult::Type::NUM, "", "Range end inclusive"},
|
||||
}},
|
||||
{RPCResult::Type::NUM, "next", true, "The next index to generate addresses from; defined only for ranged descriptors"},
|
||||
}},
|
||||
}
|
||||
},
|
||||
}}
|
||||
}},
|
||||
RPCExamples{
|
||||
HelpExampleCli("listdescriptors", "") + HelpExampleRpc("listdescriptors", "")
|
||||
},
|
||||
@@ -1769,7 +1770,7 @@ RPCHelpMan listdescriptors()
|
||||
|
||||
LOCK(wallet->cs_wallet);
|
||||
|
||||
UniValue response(UniValue::VARR);
|
||||
UniValue descriptors(UniValue::VARR);
|
||||
const auto active_spk_mans = wallet->GetActiveScriptPubKeyMans();
|
||||
for (const auto& spk_man : wallet->GetAllScriptPubKeyMans()) {
|
||||
const auto desc_spk_man = dynamic_cast<DescriptorScriptPubKeyMan*>(spk_man);
|
||||
@@ -1798,9 +1799,13 @@ RPCHelpMan listdescriptors()
|
||||
spk.pushKV("range", range);
|
||||
spk.pushKV("next", wallet_descriptor.next_index);
|
||||
}
|
||||
response.push_back(spk);
|
||||
descriptors.push_back(spk);
|
||||
}
|
||||
|
||||
UniValue response(UniValue::VOBJ);
|
||||
response.pushKV("wallet_name", wallet->GetName());
|
||||
response.pushKV("descriptors", descriptors);
|
||||
|
||||
return response;
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user