From 075d77100c926e2dc5c8f3e89cc0a7c32c0bd93c Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Sun, 7 Apr 2024 13:47:31 +0700
Subject: [PATCH] [-] Port from feature-10918:  The ledger tx command has been
 removed; the tx_history command should be used instead.

---
 modules/net/dap_chain_node_cli.c        |   4 +-
 modules/net/dap_chain_node_cli_cmd_tx.c | 120 +-----------------------
 2 files changed, 4 insertions(+), 120 deletions(-)

diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c
index c0d081d6bf..078e5076fd 100644
--- a/modules/net/dap_chain_node_cli.c
+++ b/modules/net/dap_chain_node_cli.c
@@ -315,9 +315,7 @@ int dap_chain_node_cli_init(dap_config_t * g_config)
             "ledger list coins -net <net_name> [-limit] [-offset]\n"
             "ledger list threshold [-hash <tx_treshold_hash>] -net <net_name> [-limit] [-offset]\n"
             "ledger list balance -net <net_name> [-limit] [-offset]\n"
-            "ledger info -hash <tx_hash> -net <net_name> [-unspent]\n"
-            "ledger tx -all -net <net_name> [-unspent]\n"
-            "ledger tx {-addr <addr> | -w <wallet_name> | -tx <tx_hash>} -net <net_name>\n");
+            "ledger info -hash <tx_hash> -net <net_name> [-unspent]\n");
 
     // Token info
     dap_cli_server_cmd_add("token", com_token, "Token info",
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index b9f388f49c..d4a9b1ab4a 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -925,7 +925,7 @@ static char* dap_db_history_filter(dap_chain_t * a_chain, dap_ledger_t *a_ledger
 int com_ledger(int a_argc, char ** a_argv, void **reply)
 {
     json_object ** json_arr_reply = (json_object **) reply;
-    enum { CMD_NONE, CMD_LIST, CMD_LEDGER_HISTORY, CMD_TX_INFO };
+    enum { CMD_NONE, CMD_LIST, CMD_TX_INFO };
     int arg_index = 1;
     const char *l_addr_base58 = NULL;
     const char *l_wallet_name = NULL;
@@ -946,8 +946,6 @@ int com_ledger(int a_argc, char ** a_argv, void **reply)
     int l_cmd = CMD_NONE;
     if (dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "list", NULL)){
         l_cmd = CMD_LIST;
-    } else if (dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "tx", NULL)){
-        l_cmd = CMD_LEDGER_HISTORY;
     } else if (dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "info", NULL))
         l_cmd = CMD_TX_INFO;
 
@@ -955,119 +953,7 @@ int com_ledger(int a_argc, char ** a_argv, void **reply)
 
     arg_index++;
 
-    if(l_cmd == CMD_LEDGER_HISTORY) {
-        dap_cli_server_cmd_find_option_val(a_argv, 0, a_argc, "-addr", &l_addr_base58);
-        dap_cli_server_cmd_find_option_val(a_argv, 0, a_argc, "-w", &l_wallet_name);
-        dap_cli_server_cmd_find_option_val(a_argv, 0, a_argc, "-net", &l_net_str);
-        dap_cli_server_cmd_find_option_val(a_argv, 0, a_argc, "-tx", &l_tx_hash_str);
-        bool l_unspent_flag = dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-unspent", NULL);
-        dap_chain_tx_hash_processed_ht_t *l_list_tx_hash_processd = NULL;
-
-        if(!l_is_all && !l_addr_base58 && !l_wallet_name && !l_tx_hash_str) {
-            dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_PARAM_ERR, "command 'tx' requires parameter '-all' or '-addr' or '-w' or '-tx'");
-            return DAP_CHAIN_NODE_CLI_COM_LEDGER_PARAM_ERR;
-        }
-        // Select chain network
-        if(!l_net_str) {
-            dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_NET_PARAM_ERR, "command requires parameter '-net'");
-            return DAP_CHAIN_NODE_CLI_COM_LEDGER_NET_PARAM_ERR;
-        } else {
-            if((l_net = dap_chain_net_by_name(l_net_str)) == NULL) { // Can't find such network
-                dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_NET_PARAM_ERR, "command requires parameter '-net' to be valid chain network name");
-                return DAP_CHAIN_NODE_CLI_COM_LEDGER_NET_PARAM_ERR;
-            }
-        }
-
-        dap_chain_hash_fast_t l_tx_hash;
-        if(l_tx_hash_str) {
-            if (dap_chain_hash_fast_from_str(l_tx_hash_str, &l_tx_hash)) {
-                l_tx_hash_str = NULL;
-                dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_HASH_ERR, "tx hash not recognized");
-                return DAP_CHAIN_NODE_CLI_COM_LEDGER_HASH_ERR;
-            }
-        }
-        
-        dap_chain_addr_t *l_addr = NULL;
-        // if need addr
-        const char* l_sign_str = "";
-        if(l_wallet_name || l_addr_base58) {
-            if(l_wallet_name) {
-                const char *c_wallets_path = dap_chain_wallet_get_path(g_config);
-                dap_chain_wallet_t * l_wallet = dap_chain_wallet_open(l_wallet_name, c_wallets_path);
-                if(l_wallet) {
-                    l_sign_str = dap_chain_wallet_check_sign(l_wallet);
-                    l_addr = dap_chain_wallet_get_addr(l_wallet, l_net->pub.id);
-                    dap_chain_wallet_close(l_wallet);
-                }
-            }
-            if(!l_addr && l_addr_base58) {
-                l_addr = dap_chain_addr_from_str(l_addr_base58);
-            }
-            if(!l_addr && !l_tx_hash_str) {
-                dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_WALLET_ADDR_ERR, "wallet address not recognized");
-                return DAP_CHAIN_NODE_CLI_COM_LEDGER_WALLET_ADDR_ERR;
-            }
-        }
-        json_object* json_obj_out = json_object_new_object();
-        json_object_object_add(json_obj_out, "sign ", json_object_new_string(l_sign_str));
-        char *l_str_out = NULL;
-        dap_ledger_t *l_ledger = dap_ledger_by_net_name(l_net_str);
-        if(l_is_all) {
-            size_t l_tx_count = dap_ledger_count(l_ledger), l_tx_count_spent_count = 0;
-            if (!l_tx_count) {
-                json_object_object_add(json_obj_out, "Network ledger", json_object_new_string(l_ledger->net->pub.name));
-                json_object_object_add(json_obj_out, "info", json_object_new_string("Contains no transactions."));
-            } else {
-                json_object_object_add(json_obj_out, "Network ledger", json_object_new_string(l_ledger->net->pub.name));
-                json_object_object_add(json_obj_out, "count tx", json_object_new_int(l_tx_count));
-                json_object* json_arr_tx = json_object_new_array();
-                dap_list_t *l_txs_list = dap_ledger_get_txs(l_ledger, l_tx_count, 1, true, l_unspent_flag);
-                for (dap_list_t *iter = l_txs_list; iter; iter = dap_list_next(iter)) {
-                    dap_chain_datum_tx_t *l_tx = iter->data;
-                    dap_hash_fast_t l_tx_hash = { };
-                    dap_hash_fast(l_tx, dap_chain_datum_tx_get_size(l_tx), &l_tx_hash);
-                    json_object * l_json_obj_datum = json_object_new_object();
-                    s_dap_chain_datum_tx_out_data(l_tx, l_ledger, l_json_obj_datum, l_hash_out_type, &l_tx_hash);
-                    json_object_array_add(json_arr_tx, l_json_obj_datum);
-                }
-                json_object_object_add(json_obj_out, "data", json_arr_tx);
-                dap_list_free(l_txs_list);
-            }
-        } else {
-            if(l_addr)
-            {
-                json_object* json_obj_array = dap_ledger_token_tx_item_list(l_ledger, l_addr, l_hash_out_type, l_unspent_flag);
-                json_object_object_add(json_obj_out, "Datum_tx", json_obj_array);
-                json_object_object_add(json_obj_out, "history for addr ", json_object_new_string(dap_chain_addr_to_str(l_addr)));
-            } else if(l_tx_hash_str) {
-                dap_chain_datum_tx_t *l_tx = NULL;
-                if (l_unspent_flag) {
-                    l_tx = dap_ledger_tx_unspent_find_by_hash(l_ledger, &l_tx_hash);
-                } else {
-                    l_tx = dap_ledger_tx_find_by_hash(l_ledger, &l_tx_hash);
-                }
-                if(l_tx) {
-                    size_t l_tx_size = dap_chain_datum_tx_get_size(l_tx);
-                    dap_hash_fast_t l_tx_hash = { };
-                    dap_hash_fast(l_tx, l_tx_size, &l_tx_hash);
-                    s_dap_chain_datum_tx_out_data(l_tx, l_ledger, json_obj_out, l_hash_out_type, &l_tx_hash);
-                    json_object_object_add(json_obj_out, "history for tx hash ", json_object_new_string(l_tx_hash_str));
-                    json_object_object_add(json_obj_out, "ticker ", json_object_new_string(l_tx_hash_str));
-                } else {
-                    json_object_object_add(json_obj_out, "status", json_object_new_string("There is not transaction in the network ledger"));
-                    json_object_object_add(json_obj_out, "hash", json_object_new_string(l_tx_hash_str));
-                }
-            }            
-        }
-        DAP_DELETE(l_str_out);
-        DAP_DELETE(l_addr);
-        s_dap_chain_tx_hash_processed_ht_free(&l_list_tx_hash_processd);
-        if (json_obj_out) {
-            json_object_array_add(*json_arr_reply, json_obj_out);
-        }
-        return 0;       
-    }
-    else if(l_cmd == CMD_LIST){
+    if(l_cmd == CMD_LIST){
         enum {SUBCMD_NONE, SUBCMD_LIST_COIN, SUB_CMD_LIST_LEDGER_THRESHOLD, SUB_CMD_LIST_LEDGER_BALANCE, SUB_CMD_LIST_LEDGER_THRESHOLD_WITH_HASH};
         int l_sub_cmd = SUBCMD_NONE;
         dap_chain_hash_fast_t l_tx_threshold_hash;
@@ -1182,7 +1068,7 @@ int com_ledger(int a_argc, char ** a_argv, void **reply)
         }        
     }
     else{
-        dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_PARAM_ERR, "Command 'ledger' requires parameter 'list' or 'tx' or 'info'", l_tx_hash_str);
+        dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_LEDGER_PARAM_ERR, "Command 'ledger' requires parameter 'list' or 'info'", l_tx_hash_str);
         return DAP_CHAIN_NODE_CLI_COM_LEDGER_PARAM_ERR;
     }
     return 0;
-- 
GitLab