From 8dc2c8b999797c79787c4e906e95fd0806214111 Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Thu, 25 Jul 2024 17:28:46 +0700
Subject: [PATCH] [*] For wallet info command added output of information about
 signature types for wallet.

---
 modules/net/dap_chain_node_cli_cmd.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 6c69629d8a..02558d45a8 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -1800,7 +1800,6 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE;
     }
 
     dap_chain_net_t * l_net = l_net_name ? dap_chain_net_by_name(l_net_name) : NULL;
-    //dap_string_t *l_string_ret = dap_string_new(NULL);
     dap_chain_wallet_t *l_wallet = NULL;
     dap_chain_addr_t *l_addr = NULL;
 
@@ -1928,6 +1927,22 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE;
             size_t l_l_addr_tokens_size = 0;
             char **l_l_addr_tokens = NULL;
             dap_ledger_addr_get_token_ticker_all(l_ledger, l_addr, &l_l_addr_tokens, &l_l_addr_tokens_size);
+            //Get sign for wallet
+            json_object *l_jobj_sings = NULL;
+            dap_chain_wallet_internal_t *l_w_internal = DAP_CHAIN_WALLET_INTERNAL(l_wallet);
+            if (l_w_internal->certs_count == 1) {
+                l_jobj_sings = json_object_new_string(dap_enc_get_type_name(l_w_internal->certs[0]->enc_key->type));
+            } else {
+                dap_string_t *l_str_signs = dap_string_new("");
+                for (size_t i = 0; i < l_w_internal->certs_count; i++){
+                    dap_string_append_printf(l_str_signs, "%s%s",
+                                             dap_enc_get_type_name(l_w_internal->certs[i]->enc_key->type),
+                                             ((i+1) == l_w_internal->certs_count) ? "" : ", ");
+                }
+                l_jobj_sings = json_object_new_string(l_str_signs->str);
+                dap_string_free(l_str_signs, true);
+            }
+            json_object_object_add(json_obj_wall, "signs", l_jobj_sings);
             if(l_l_addr_tokens_size <= 0)
                 json_object_object_add(json_obj_wall, "balance", json_object_new_string("0"));
             json_object * j_arr_balance= json_object_new_array();
-- 
GitLab