From 4a754aa1de646b23e0bdf3d37fec0a9b5f96d918 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Fri, 7 Mar 2025 14:13:43 +0700 Subject: [PATCH] [*] History assertion fix --- modules/net/dap_chain_node_cli_cmd.c | 4 ++-- modules/net/dap_chain_node_cli_cmd_tx.c | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index a057b6f560..4d23819b9a 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -1799,7 +1799,7 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; return DAP_CHAIN_NODE_CLI_COM_TX_WALLET_PARAM_ERR; } json_object * json_obj_wall = json_object_new_object(); - const char *l_cond_str, *l_value_str = NULL; + const char *l_cond_str = NULL, *l_value_str = NULL; uint256_t l_value_datoshi = uint256_0, l_value_sum = uint256_0; dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-cond", &l_cond_str); if (!l_cond_str) { @@ -1836,7 +1836,7 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; return json_object_put(json_arr_out), DAP_CHAIN_NODE_CLI_COM_TX_WALLET_MEMORY_ERR; dap_chain_tx_used_out_item_t *l_item = l_temp->data; const char *l_out_value_coins_str, *l_out_value_str = dap_uint256_to_char(l_item->value, &l_out_value_coins_str); - json_object_object_add(json_obj_item,"item_type", json_object_new_string("unspent_out")); + json_object_object_add(json_obj_item,"item_type", json_object_new_string(l_cond_str ? "unspent_cond_out" : "unspent_out")); json_object_object_add(json_obj_item,"value_coins", json_object_new_string(l_out_value_coins_str)); json_object_object_add(json_obj_item,"value_datosi", json_object_new_string(l_out_value_str)); json_object_object_add(json_obj_item,"prev_hash", json_object_new_string(dap_hash_fast_to_str_static(&l_item->tx_hash_fast))); diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c index 0748ba83ce..edf553a80b 100644 --- a/modules/net/dap_chain_node_cli_cmd_tx.c +++ b/modules/net/dap_chain_node_cli_cmd_tx.c @@ -429,7 +429,7 @@ json_object* dap_db_history_addr(json_object* a_json_arr_reply, dap_chain_addr_t int l_src_subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_UNDEFINED; uint8_t *l_tx_item = NULL; size_t l_size; int i, q = 0; - // Проход по входам + // Inputs iteration TX_ITEM_ITER_TX_TYPE(l_tx_item, TX_ITEM_TYPE_IN_ALL, l_size, i, l_tx) { dap_chain_hash_fast_t *l_tx_prev_hash = NULL; int l_tx_prev_out_idx; @@ -562,7 +562,7 @@ json_object* dap_db_history_addr(json_object* a_json_arr_reply, dap_chain_addr_t if (l_src_addr && l_dst_addr && dap_chain_addr_compare(l_dst_addr, l_src_addr) && - dap_strcmp(l_noaddr_token, l_dst_token)) + l_noaddr_token && dap_strcmp(l_noaddr_token, l_dst_token)) continue; // sent to self (coinback) if (l_dst_addr && l_net_fee_used && dap_chain_addr_compare(&l_net_fee_addr, l_dst_addr)) @@ -698,9 +698,7 @@ json_object* dap_db_history_addr(json_object* a_json_arr_reply, dap_chain_addr_t json_object_object_add(l_corr_object, "recv_datoshi", json_object_new_string(l_value_str)); } if (l_send_to_same_cond) { - json_object *l_cond_recv_value_obj = json_object_object_get(l_cond_recv_object, "recv_datoshi"); - const char *l_cond_recv_value_str = json_object_get_string(l_cond_recv_value_obj); - uint256_t l_cond_recv_value = dap_uint256_scan_uninteger(l_cond_recv_value_str); + uint256_t l_cond_recv_value = l_cond_value; json_object *l_cond_send_value_obj = json_object_object_get(l_cond_send_object, "send_datoshi"); const char *l_cond_send_value_str = json_object_get_string(l_cond_send_value_obj); uint256_t l_cond_send_value = dap_uint256_scan_uninteger(l_cond_send_value_str); -- GitLab