From fa5d1e36bbe049022981f4e7421947b6299ef585 Mon Sep 17 00:00:00 2001
From: Roman Khlopkov <roman.khlopkov@demlabs.net>
Date: Wed, 5 Jul 2023 16:05:50 +0300
Subject: [PATCH] [*] Compiler warnings fix

---
 modules/chain/dap_chain_cell.c                | 31 +++++++++----------
 modules/chain/dap_chain_ledger.c              | 10 ++++--
 .../dap_stream_ch_chain_net_srv.c             |  1 +
 modules/channel/chain/dap_stream_ch_chain.c   | 12 +++----
 .../block-poa/dap_chain_cs_block_poa.c        |  4 ++-
 modules/mempool/dap_chain_mempool.c           |  6 ++--
 modules/net/dap_chain_node_cli_cmd.c          |  5 ---
 modules/net/dap_chain_node_ping.c             |  2 ++
 modules/service/vpn/dap_chain_net_srv_vpn.c   |  6 ----
 .../service/vpn/dap_chain_net_vpn_client.c    |  5 ---
 .../vpn/dap_chain_net_vpn_client_tun.c        | 10 +++---
 .../xchange/dap_chain_net_srv_xchange.c       |  4 +--
 12 files changed, 46 insertions(+), 50 deletions(-)

diff --git a/modules/chain/dap_chain_cell.c b/modules/chain/dap_chain_cell.c
index 9ca7ee7847..f71399ed40 100644
--- a/modules/chain/dap_chain_cell.c
+++ b/modules/chain/dap_chain_cell.c
@@ -179,34 +179,33 @@ int dap_chain_cell_load(dap_chain_t * a_chain, const char * a_cell_file_path)
     int ret = 0;
     char l_file_path[MAX_PATH] = {'\0'};
     snprintf(l_file_path, MAX_PATH, "%s/%s", DAP_CHAIN_PVT(a_chain)->file_storage_dir, a_cell_file_path);
-    FILE *l_f = fopen(l_file_path, "rb");
-    if (!l_f) {
+    FILE *l_cell_file = fopen(l_file_path, "rb");
+    if (!l_cell_file) {
         log_it(L_WARNING,"Can't read chain \"%s\"", l_file_path);
         return -1;
     }
     dap_chain_cell_file_header_t l_hdr = { 0 };
-    if (fread(&l_hdr, 1, sizeof(l_hdr), l_f) != sizeof (l_hdr)) {
+    if (fread(&l_hdr, 1, sizeof(l_hdr), l_cell_file) != sizeof (l_hdr)) {
         log_it(L_ERROR,"Can't read chain header \"%s\"", l_file_path);
-        fclose(l_f);
+        fclose(l_cell_file);
         return -2;
     }
     if (l_hdr.signature != DAP_CHAIN_CELL_FILE_SIGNATURE) {
         log_it(L_ERROR, "Wrong signature in chain \"%s\", possible file corrupt", l_file_path);
-        fclose(l_f);
+        fclose(l_cell_file);
         return -3;
     }
     if (l_hdr.version < DAP_CHAIN_CELL_FILE_VERSION ){
         log_it(L_ERROR, "Too low chain version, backup files");
-        fclose(l_f);
+        fclose(l_cell_file);
         return -3;
     }
-    size_t l_el_size = 0;
     unsigned long q = 0;
-    volatile int l_dummy;
-    for (l_dummy = fread(&l_el_size, 1, sizeof(l_el_size), l_f); !feof(l_f); l_el_size = 0, l_dummy = fread(&l_el_size, 1, sizeof(l_el_size), l_f))
-    {
-        if (!l_el_size) {
-            log_it(L_ERROR, "Zero element size, chain %s is corrupted", l_file_path);
+    while (!feof(l_cell_file)) {
+        uint64_t l_el_size = 0;
+        size_t l_read = fread(&l_el_size, 1, sizeof(l_el_size), l_cell_file);
+        if (l_read != sizeof(l_el_size) || l_el_size == 0) {
+            log_it(L_ERROR, "Corrupted element size, chain %s is damaged", l_file_path);
             ret = -4;
             break;
         }
@@ -216,8 +215,8 @@ int dap_chain_cell_load(dap_chain_t * a_chain, const char * a_cell_file_path)
             ret = -5;
             break;
         }
-        unsigned long l_read = fread((void *)l_element, 1, l_el_size, l_f);
-        if(l_read == l_el_size) {
+        l_read = fread((void *)l_element, 1, l_el_size, l_cell_file);
+        if (l_read == l_el_size) {
             dap_chain_atom_verify_res_t l_res = a_chain->callback_atom_add(a_chain, l_element, l_el_size); // !!! blocking GDB call !!!
             if (l_res == ATOM_PASS || l_res == ATOM_REJECT) {
                 DAP_DELETE(l_element);
@@ -237,7 +236,7 @@ int dap_chain_cell_load(dap_chain_t * a_chain, const char * a_cell_file_path)
     }
     if (q)
         dap_chain_cell_create_fill2(a_chain, a_cell_file_path);
-    fclose(l_f);
+    fclose(l_cell_file);
     return ret;
 
 }
@@ -263,7 +262,7 @@ static bool s_file_write_header(dap_chain_cell_t *a_cell)
     return true;
 }
 
-static ssize_t s_file_atom_add(dap_chain_cell_t *a_cell, dap_chain_atom_ptr_t a_atom, size_t a_atom_size)
+static ssize_t s_file_atom_add(dap_chain_cell_t *a_cell, dap_chain_atom_ptr_t a_atom, uint64_t a_atom_size)
 {
     if (fwrite(&a_atom_size, 1, sizeof(a_atom_size), a_cell->file_storage) != sizeof(a_atom_size)) {
         log_it (L_ERROR,"Can't write atom data size from cell 0x%016"DAP_UINT64_FORMAT_X" in \"%s\"",
diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index 854daf447c..742f44df08 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -1387,6 +1387,8 @@ static int s_token_tsd_parse(dap_ledger_t * a_ledger, dap_chain_ledger_token_ite
                             break;
                         }
                     }
+                    // TODO
+                    UNUSED(l_was_found);
                 }else{
                     if(s_debug_more)
                         log_it(L_ERROR,"TSD param DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TX_RECEIVER_ALLOWED_REMOVE expected to have %zu bytes data length, not %u",
@@ -1479,6 +1481,8 @@ static int s_token_tsd_parse(dap_ledger_t * a_ledger, dap_chain_ledger_token_ite
                             break;
                         }
                     }
+                    // TODO
+                    UNUSED(l_was_found);
                 }else{
                     if(s_debug_more)
                         log_it(L_ERROR,"TSD param DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TX_RECEIVER_BLOCKED_REMOVE expected to have %zu bytes data length, not %u",
@@ -1565,6 +1569,8 @@ static int s_token_tsd_parse(dap_ledger_t * a_ledger, dap_chain_ledger_token_ite
                             break;
                         }
                     }
+                    // TODO
+                    UNUSED(l_was_found);
                 }else{
                     if(s_debug_more)
                         log_it(L_ERROR,"TSD param DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TX_SENDER_ALLOWED_REMOVE expected to have %zu bytes data length, not %u",
@@ -1652,6 +1658,8 @@ static int s_token_tsd_parse(dap_ledger_t * a_ledger, dap_chain_ledger_token_ite
                             break;
                         }
                     }
+                    // TODO
+                    UNUSED(l_was_found);
                 }else{
                     if(s_debug_more)
                         log_it(L_ERROR,"TSD param DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TX_SENDER_BLOCKED_REMOVE expected to have %zu bytes data length, not %u",
@@ -1817,7 +1825,6 @@ dap_string_t *dap_chain_ledger_threshold_hash_info(dap_ledger_t *a_ledger, dap_c
     dap_ledger_private_t *l_ledger_pvt = PVT(a_ledger);
     dap_chain_ledger_tx_item_t *l_tx_item, *l_tx_tmp;
     dap_string_t *l_str_ret = dap_string_new("");
-    uint32_t l_counter = 0;
     pthread_rwlock_rdlock(&l_ledger_pvt->threshold_txs_rwlock);
     HASH_ITER(hh, l_ledger_pvt->threshold_txs, l_tx_item, l_tx_tmp){
         if (!memcmp(l_threshold_hash,&l_tx_item->tx_hash_fast, sizeof(dap_chain_hash_fast_t))){
@@ -1833,7 +1840,6 @@ dap_string_t *dap_chain_ledger_threshold_hash_info(dap_ledger_t *a_ledger, dap_c
     pthread_rwlock_unlock(&l_ledger_pvt->threshold_txs_rwlock);
 
     pthread_rwlock_rdlock(&l_ledger_pvt->threshold_emissions_rwlock);
-    l_counter = 0;
     dap_chain_ledger_token_emission_item_t *l_emission_item, *l_emission_tmp;
     HASH_ITER(hh, l_ledger_pvt->threshold_emissions, l_emission_item, l_emission_tmp){
         if (!memcmp(&l_emission_item->datum_token_emission_hash,l_threshold_hash, sizeof(dap_chain_hash_fast_t))){
diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
index 98781deb70..a036d7a3a6 100644
--- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
+++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
@@ -577,6 +577,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
                     // TX not found in ledger and we not in grace, start grace
                     log_it(L_ERROR, "Can't find tx cond. Start grace!");
                     l_grace = DAP_NEW_Z(dap_chain_net_srv_grace_t);
+                    UNUSED(l_grace);
                     // Parse the request
 //                    l_grace->request = DAP_NEW_Z_SIZE(dap_stream_ch_chain_net_srv_pkt_request_t, sizeof(dap_stream_ch_chain_net_srv_pkt_request_t));
 //                    l_grace->request->hdr.net_id = l_usage->net->pub.id;
diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c
index 484dab019e..9f1f329765 100644
--- a/modules/channel/chain/dap_stream_ch_chain.c
+++ b/modules/channel/chain/dap_stream_ch_chain.c
@@ -808,10 +808,10 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
             }else
                  log_it(L_WARNING, "In: GLOBAL_DB parse: packet in list with NULL data(pkt_data_size:%"DAP_UINT64_FORMAT_U")", l_pkt_item->pkt_data_size);
         }
-        uint64_t l_last_id = l_store_obj->id;
+        /*uint64_t l_last_id = l_store_obj->id;
         const char *l_last_group = l_store_obj->group;
         uint32_t l_last_type = l_store_obj->type;
-        bool l_group_changed = false;
+        bool l_group_changed = false;*/
         uint32_t l_time_store_lim_hours = dap_config_get_item_uint32_default(g_config, "global_db", "time_store_limit", 72);
         dap_nanotime_t l_time_now = dap_nanotime_now();
         dap_nanotime_t l_time_alowed = l_time_now + dap_nanotime_from_sec(3600 * 24); // to be sure the timestamp is invalid
@@ -842,9 +842,9 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
                 }
                 if (l_ret == -1) continue;
             }
-            l_group_changed = strcmp(l_last_group, l_obj->group) || l_last_type != l_obj->type;
+            /*l_group_changed = strcmp(l_last_group, l_obj->group) || l_last_type != l_obj->type;
             // Send remote side notification about received obj
-            /*if (l_sync_request->request.node_addr.uint64 &&
+            if (l_sync_request->request.node_addr.uint64 &&
                     (l_group_changed || i == l_data_obj_count - 1)) {
                 struct sync_request *l_sync_req_tsd = DAP_DUP(l_sync_request);
                 l_sync_req_tsd->request.id_end = l_last_id;
@@ -852,11 +852,11 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
                                                                       dap_strdup_printf("%s.del", l_last_group);
                 dap_proc_thread_worker_exec_callback_inter(a_thread, l_sync_request->worker->id,
                                                      s_gdb_sync_tsd_worker_callback, l_sync_req_tsd);
-            }*/
+            }
             l_last_id = l_obj->id;
             l_last_group = l_obj->group;
             l_last_type = l_obj->type;
-
+            */
             struct gdb_apply_args *l_apply_args = DAP_NEW(struct gdb_apply_args);
             l_apply_args->obj = dap_store_obj_copy(l_obj, 1);
             l_apply_args->limit_time = l_limit_time;
diff --git a/modules/consensus/block-poa/dap_chain_cs_block_poa.c b/modules/consensus/block-poa/dap_chain_cs_block_poa.c
index 5d98938a20..42641314b8 100644
--- a/modules/consensus/block-poa/dap_chain_cs_block_poa.c
+++ b/modules/consensus/block-poa/dap_chain_cs_block_poa.c
@@ -152,7 +152,9 @@ static int s_cli_block_poa(int argc, char ** argv, char **a_str_reply)
         l_block_hash_hex_str = dap_enc_base58_to_hex_str_from_str(l_block_hash_str);
         l_event_hash_base58_str = dap_strdup(l_block_hash_str);
     }
-
+    // TODO make useful CLI for PoA blocks
+    UNUSED(l_block_hash_hex_str);
+    UNUSED(l_event_hash_base58_str);
     // Parse block cmd
     if ( l_block_new_cmd_str != NULL ){
         if ( strcmp(l_block_new_cmd_str,"sign") == 0) { // Sign event command
diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c
index 187c5a73cd..562dbc7664 100644
--- a/modules/mempool/dap_chain_mempool.c
+++ b/modules/mempool/dap_chain_mempool.c
@@ -276,7 +276,6 @@ char *dap_chain_mempool_tx_create(dap_chain_t * a_chain, dap_enc_key_t *a_key_fr
 char *dap_chain_mempool_tx_coll_fee_create(dap_enc_key_t *a_key_from,const dap_chain_addr_t* a_addr_to,dap_list_t *a_block_list,
                                            uint256_t a_value_fee, const char *a_hash_out_type)
 {
-    uint256_t                   l_value_to_items = {};
     uint256_t                   l_value_out = {};
     uint256_t                   l_net_fee = {};
     dap_chain_datum_tx_t        *l_tx;
@@ -306,8 +305,11 @@ char *dap_chain_mempool_tx_coll_fee_create(dap_enc_key_t *a_key_from,const dap_c
 
         //add 'in' items
         {
-            l_value_to_items = dap_chain_datum_tx_add_in_cond_item_list(&l_tx, l_list_used_out);
+            uint256_t l_value_to_items = dap_chain_datum_tx_add_in_cond_item_list(&l_tx, l_list_used_out);
             assert(EQUAL_256(l_value_to_items, l_value_out_block));
+#ifndef DAP_DEBUG
+            UNUSED(l_value_to_items);
+#endif
             dap_list_free_full(l_list_used_out, NULL);
         }
         SUM_256_256(l_value_out, l_value_out_block, &l_value_out);
diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 7deeaffa76..a8e1cb47ec 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -1352,11 +1352,6 @@ int com_node(int a_argc, char ** a_argv, char **a_str_reply)
         }
         log_it(L_NOTICE, "Now lets sync all");
 
-        dap_chain_id_t l_chain_id_null = { { 0 } };
-        dap_chain_cell_id_t l_chain_cell_id_null = { { 0 } };
-        l_chain_id_null.uint64 = l_net->pub.id.uint64;
-        l_chain_cell_id_null.uint64 = dap_chain_net_get_cur_cell(l_net) ? dap_chain_net_get_cur_cell(l_net)->uint64 : 0;
-
         log_it(L_INFO, "Requested GLOBAL_DB syncronizatoin, %"DAP_UINT64_FORMAT_U":%"DAP_UINT64_FORMAT_U" period", l_sync_request.id_start,
                 l_sync_request.id_end);
         // copy l_sync_request to current
diff --git a/modules/net/dap_chain_node_ping.c b/modules/net/dap_chain_node_ping.c
index bca79553f7..f40d10edec 100644
--- a/modules/net/dap_chain_node_ping.c
+++ b/modules/net/dap_chain_node_ping.c
@@ -259,6 +259,8 @@ static void* node_ping_background_proc(void *a_arg)
     if(best_node_pos > 0) {
         l_node_addr.uint64 = l_nodes_addr[best_node_pos];
     }
+    // TODO
+    UNUSED(l_node_addr);
 
     // allocate memory for best node addresses
     dap_chain_node_addr_t *l_node_addr_tmp;
diff --git a/modules/service/vpn/dap_chain_net_srv_vpn.c b/modules/service/vpn/dap_chain_net_srv_vpn.c
index 29497559df..0568372790 100644
--- a/modules/service/vpn/dap_chain_net_srv_vpn.c
+++ b/modules/service/vpn/dap_chain_net_srv_vpn.c
@@ -290,12 +290,6 @@ static bool s_tun_client_send_data(dap_chain_net_srv_ch_vpn_info_t * l_ch_vpn_in
     l_pkt_out->header.op_data.data_size = a_data_size;
     memcpy(l_pkt_out->data, a_data, a_data_size);
 
-    struct in_addr l_in_daddr;
-#ifdef DAP_OS_LINUX
-    l_in_daddr.s_addr = ((dap_os_iphdr_t* ) l_pkt_out->data)->daddr;
-#else
-    l_in_daddr.s_addr = ((dap_os_iphdr_t* ) l_pkt_out->data)->ip_dst.s_addr;
-#endif
     if(l_ch_vpn_info->is_on_this_worker){
         dap_events_socket_t* l_es = dap_context_find(l_ch_vpn_info->worker->context, l_ch_vpn_info->esocket_uuid);
         if (!l_es) {
diff --git a/modules/service/vpn/dap_chain_net_vpn_client.c b/modules/service/vpn/dap_chain_net_vpn_client.c
index 29716185b8..9366297ade 100644
--- a/modules/service/vpn/dap_chain_net_vpn_client.c
+++ b/modules/service/vpn/dap_chain_net_vpn_client.c
@@ -234,16 +234,12 @@ static dap_chain_datum_tx_receipt_t * s_callback_client_sign_request(dap_chain_n
 static dap_chain_hash_fast_t* dap_chain_net_vpn_client_tx_cond_hash(dap_chain_net_t *a_net,
         dap_chain_wallet_t *a_wallet, const char *a_token_ticker, uint64_t a_value_datoshi)
 {
-    uint8_t *l_pkey_b64 = NULL;
-    size_t l_pkey_b64_size = 0;
-
     // Try to load from gdb
     size_t l_gdb_group_size = 0;
     char *l_gdb_group = dap_strdup_printf("local.%s", DAP_CHAIN_NET_SRV_VPN_CDB_GDB_PREFIX);
     dap_chain_hash_fast_t *l_tx_cond_hash = (dap_chain_hash_fast_t*) dap_global_db_get_sync(l_gdb_group,
             dap_strdup("client_tx_cond_hash"), &l_gdb_group_size, NULL, NULL);
 
-    time_t l_tx_cond_ts = 0;
     // Check for entry size
     if(l_tx_cond_hash && l_gdb_group_size && l_gdb_group_size != sizeof(dap_chain_hash_fast_t)) {
         log_it(L_ERROR, "Wrong size of tx condition on database (%zd but expected %zd), may be old entry",
@@ -260,7 +256,6 @@ static dap_chain_hash_fast_t* dap_chain_net_vpn_client_tx_cond_hash(dap_chain_ne
             DAP_DELETE(l_tx_cond_hash);
             l_tx_cond_hash = NULL;
             if(l_tx) {
-                l_tx_cond_ts = (time_t) l_tx->header.ts_created;
                 log_it(L_DEBUG, "2791: got some tx, created %"DAP_UINT64_FORMAT_U, l_tx->header.ts_created);
             }
         }
diff --git a/modules/service/vpn/dap_chain_net_vpn_client_tun.c b/modules/service/vpn/dap_chain_net_vpn_client_tun.c
index fd2fc13930..801422a282 100644
--- a/modules/service/vpn/dap_chain_net_vpn_client_tun.c
+++ b/modules/service/vpn/dap_chain_net_vpn_client_tun.c
@@ -667,18 +667,18 @@ void ch_sf_tun_client_send(dap_chain_net_srv_ch_vpn_t * ch_sf, void * pkt_data,
     in_saddr.s_addr = ((struct ip*) pkt_data)->ip_src.s_addr;
     in_daddr.s_addr = ((struct ip*) pkt_data)->ip_dst.s_addr;
 #endif
-    in_daddr_net.s_addr = ch_sf->ch->stream->session->tun_client_addr.s_addr; //in_daddr_net.s_addr = in_daddr.s_addr & m_tun_server->int_network_mask.s_addr;
+    //in_daddr_net.s_addr = ch_sf->ch->stream->session->tun_client_addr.s_addr; //in_daddr_net.s_addr = in_daddr.s_addr & m_tun_server->int_network_mask.s_addr;
     char * in_daddr_str = strdup(inet_ntoa(in_daddr));
     char * in_saddr_str = strdup(inet_ntoa(in_saddr));
 
     int ret;
-    //            log_it(L_DEBUG, "Route packet %s=>%s size %u to the OS network stack",in_saddr_str,
-    //                   in_daddr_str,pkt_data_size);
-    //if( ch_sf_raw_write(STREAM_SF_PACKET_OP_CODE_RAW_SEND, sf_pkt->data, sf_pkt->op_data.data_size)<0){
+    /*            log_it(L_DEBUG, "Route packet %s=>%s size %u to the OS network stack",in_saddr_str,
+                       in_daddr_str,pkt_data_size);
+    if( ch_sf_raw_write(STREAM_SF_PACKET_OP_CODE_RAW_SEND, sf_pkt->data, sf_pkt->op_data.data_size)<0){
     struct sockaddr_in sin = { 0 };
     sin.sin_family = AF_INET;
     sin.sin_port = 0;
-    sin.sin_addr.s_addr = in_daddr.s_addr;
+    sin.sin_addr.s_addr = in_daddr.s_addr;*/
     if((ret = /*sendto(ch_sf->raw_l3_sock, pkt_data, pkt_data_size, 0, (struct sockaddr *) &sin, sizeof(sin))*/-1  )
             < 0) {
         //    if((ret = write(raw_server->tun_fd, sf_pkt->data, sf_pkt->header.op_data.data_size))<0){
diff --git a/modules/service/xchange/dap_chain_net_srv_xchange.c b/modules/service/xchange/dap_chain_net_srv_xchange.c
index 15467f830b..c420689a50 100644
--- a/modules/service/xchange/dap_chain_net_srv_xchange.c
+++ b/modules/service/xchange/dap_chain_net_srv_xchange.c
@@ -1546,7 +1546,7 @@ static int s_cli_srv_xchange_tx_list_addr (
 char l_hash_str [DAP_CHAIN_HASH_FAST_STR_SIZE + 8] = {0};
 dap_chain_hash_fast_t l_tx_first_hash = {0};
 dap_chain_datum_tx_t    *l_datum_tx;
-size_t  l_datum_tx_size, l_tx_total, l_tx_count;
+size_t  l_datum_tx_size, l_tx_total;
 int l_item_idx;
 bool l_rc = false;
 dap_string_t *l_reply_str;
@@ -1560,7 +1560,7 @@ dap_chain_tx_out_cond_t *l_out_cond_item;
     memset(&l_tx_first_hash, 0, sizeof(dap_chain_hash_fast_t));             /* Initial hash == zero */
 
 
-    for ( l_tx_count = l_tx_total = 0;
+    for (l_tx_total = 0;
             (l_datum_tx = dap_chain_ledger_tx_find_by_addr(a_net->pub.ledger, NULL, a_addr, &l_tx_first_hash));
                 l_tx_total++)
     {
-- 
GitLab