diff --git a/dap-sdk/core/src/dap_config.c b/dap-sdk/core/src/dap_config.c index d7b3a316d87cbf15a0a48411836f8e90d1ba8442..ad2a99111fde1798f32434416480a9b71c739d6a 100755 --- a/dap-sdk/core/src/dap_config.c +++ b/dap-sdk/core/src/dap_config.c @@ -222,6 +222,7 @@ dap_config_t * dap_config_open(const char * a_name) if (l_param_value[0] == '[') { if(l_param_value[1] == ']') { //log_it(L_WARNING, "Empty array!"); + DAP_DELETE(l_line); continue; } diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c index 7e4aef83679c88cfda76d749f31e2ed23b989013..6333fbdf7134d822d72409756796c3420c374752 100644 --- a/modules/chain/dap_chain_ledger.c +++ b/modules/chain/dap_chain_ledger.c @@ -500,23 +500,32 @@ int dap_chain_ledger_token_add(dap_ledger_t *a_ledger, dap_chain_datum_token_t * switch(a_token->type) { case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_SIMPLE: case DAP_CHAIN_DATUM_TOKEN_TYPE_SIMPLE: - if(s_debug_more) + if(s_debug_more) { + char *l_balance = dap_chain_balance_to_coins(l_token->total_supply); log_it(L_NOTICE, "Simple token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu type=DAP_CHAIN_DATUM_TOKEN_TYPE_SIMPLE )", - l_token->ticker, dap_chain_balance_to_coins(l_token->total_supply), - l_token->signs_valid, l_token->signs_total); + l_token->ticker, l_balance, + l_token->signs_valid, l_token->signs_total); + DAP_DELETE(l_balance); + } break; case DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_DECL: // 256 - if(s_debug_more) + if(s_debug_more) { + char *l_balance = dap_chain_balance_to_coins(a_token->total_supply); log_it(L_NOTICE, "Private token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu type=DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_DECL)", - a_token->ticker, dap_chain_balance_to_coins(a_token->total_supply), - a_token->signs_valid, a_token->signs_total); + a_token->ticker, l_balance, + a_token->signs_valid, a_token->signs_total); + DAP_DELETE(l_balance); + } s_token_tsd_parse(a_ledger,l_token_item, a_token, a_token_size); break; case DAP_CHAIN_DATUM_TOKEN_TYPE_NATIVE_DECL: // 256 - if(s_debug_more) + if(s_debug_more) { + char *l_balance = dap_chain_balance_to_coins(a_token->total_supply); log_it(L_NOTICE, "CF20 token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu)", - a_token->ticker, dap_chain_balance_to_coins(a_token->total_supply), - a_token->signs_valid, a_token->signs_total); + a_token->ticker, l_balance, + a_token->signs_valid, a_token->signs_total); + DAP_DELETE(l_balance); + } s_token_tsd_parse(a_ledger,l_token_item, a_token, a_token_size); break; case DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_UPDATE: // 256 @@ -1112,7 +1121,9 @@ dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger) dap_string_append(l_str_ret, ", token_ticker:"); dap_string_append(l_str_ret, l_balance_item->token_ticker); dap_string_append(l_str_ret, ", balance:"); - dap_string_append(l_str_ret, dap_chain_balance_print(l_balance_item->balance)); + char *l_balance = dap_chain_balance_print(l_balance_item->balance); + dap_string_append(l_str_ret, l_balance); + DAP_DELETE(l_balance); dap_string_append(l_str_ret, "\n"); l_counter +=1; } @@ -1164,14 +1175,18 @@ dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger) l_token_item->auth_signs_valid, l_token_item->auth_signs_total, HASH_COUNT(l_token_item->token_emissions)); } else { + char *l_balance_cur = dap_chain_balance_print(l_token_item->current_supply); + char *l_balance_total = dap_chain_balance_print(l_token_item->total_supply); l_item_str = dap_strdup_printf("Token name '%s', type %s, flags: %s\n" "\tSupply (current/total) %s/%s\n" "\tAuth signs (valid/total) %zu/%zu\n" "\tTotal emissions %u\n", &l_token_item->ticker, l_type_str, s_flag_str_from_code(l_token_item->datum_token->header_private_decl.flags), - dap_chain_balance_print(l_token_item->current_supply), dap_chain_balance_print(l_token_item->total_supply), + l_balance_cur, l_balance_total, l_token_item->auth_signs_valid, l_token_item->auth_signs_total, HASH_COUNT(l_token_item->token_emissions)); + DAP_DELETE(l_balance_cur); + DAP_DELETE(l_balance_total); } l_ret_list = dap_list_append(l_ret_list, l_item_str); @@ -1534,9 +1549,12 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_ : &l_ledger_priv->threshold_emissions_rwlock); if(l_token_emission_item ) { if(s_debug_more) { - if ( l_token_emission_item->datum_token_emission->hdr.version == 2 ) + if ( l_token_emission_item->datum_token_emission->hdr.version == 2 ) { + char *l_balance = dap_chain_balance_print(l_token_emission_item->datum_token_emission->hdr.value_256); log_it(L_ERROR, "Can't add token emission datum of %s %s ( %s ): already present in cache", - dap_chain_balance_print(l_token_emission_item->datum_token_emission->hdr.value_256), c_token_ticker, l_hash_str); + l_balance, c_token_ticker, l_hash_str); + DAP_DELETE(l_balance); + } else log_it(L_ERROR, "Can't add token emission datum of %"DAP_UINT64_FORMAT_U" %s ( %s ): already present in cache", l_token_emission_item->datum_token_emission->hdr.value, c_token_ticker, l_hash_str); @@ -1562,11 +1580,14 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_ // if total_supply > 0 we can check current_supply if (!IS_ZERO_256(l_token_item->total_supply)){ - if (compare256(l_token_item->current_supply, l_emission->hdr.value_256) < 0){ - log_it(L_WARNING,"Ledger_token_emission_add_check. current_supply %s is lower, then l_emission->hdr.value_256: %s", - dap_chain_balance_print(l_token_item->current_supply), - dap_chain_balance_print(l_emission->hdr.value_256)); - return -4; + if(compare256(l_token_item->current_supply, l_emission->hdr.value_256) < 0) { + char *l_balance_cur = dap_chain_balance_print(l_token_item->current_supply); + char *l_balance_em = dap_chain_balance_print(l_emission->hdr.value_256); + log_it(L_WARNING, "Ledger_token_emission_add_check. current_supply %s is lower, then l_emission->hdr.value_256: %s", + l_balance_cur, l_balance_em); + DAP_DELETE(l_balance_cur); + DAP_DELETE(l_balance_em); + return -4; } } @@ -1612,8 +1633,10 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_ } if (l_aproves < l_aproves_valid ){ if(s_debug_more) { - log_it(L_WARNING, "Emission of %s datoshi of %s:%s is wrong: only %u valid aproves when %u need", - dap_chain_balance_print(l_emission->hdr.value_256), a_ledger->net_name, l_emission->hdr.ticker, l_aproves, l_aproves_valid ); + char *l_balance = dap_chain_balance_print(l_emission->hdr.value_256); + log_it(L_WARNING, "Emission of %s datoshi of %s:%s is wrong: only %u valid aproves when %u need", + l_balance, a_ledger->net_name, l_emission->hdr.ticker, l_aproves, l_aproves_valid); + DAP_DELETE(l_balance); } l_ret = -3; } @@ -1794,11 +1817,12 @@ static inline int s_token_emission_add(dap_ledger_t *a_ledger, byte_t *a_token_e DAP_DELETE(l_gdb_group); if(s_debug_more) { char * l_token_emission_address_str = dap_chain_addr_to_str(&(l_token_emission_item->datum_token_emission->hdr.address)); + char *l_balance = dap_chain_balance_to_coins(l_token_emission_item->datum_token_emission->hdr.value_256); log_it(L_NOTICE, "Added token emission datum to emissions cache: type=%s value=%s token=%s to_addr=%s ", c_dap_chain_datum_token_emission_type_str[l_token_emission_item->datum_token_emission->hdr.type], - dap_chain_balance_to_coins(l_token_emission_item->datum_token_emission->hdr.value_256), - c_token_ticker, l_token_emission_address_str); + l_balance, c_token_ticker, l_token_emission_address_str); DAP_DELETE(l_token_emission_address_str); + DAP_DELETE(l_balance); } s_threshold_txs_proc(a_ledger); } else if (HASH_COUNT(l_ledger_priv->threshold_emissions) < s_threshold_emissions_max) { @@ -1826,9 +1850,11 @@ static inline int s_token_emission_add(dap_ledger_t *a_ledger, byte_t *a_token_e } else { if (l_token_item) { if(s_debug_more) { - if ( ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.version == 1 ) // && ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.type_256 ) // 256 - log_it(L_ERROR, "Duplicate token emission datum of %s %s ( %s )", - dap_chain_balance_print(((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value_256), c_token_ticker, l_hash_str); + if ( ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.version == 1 ) { // && ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.type_256 ) // 256 + char *l_balance = dap_chain_balance_print(((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value_256); + log_it(L_ERROR, "Duplicate token emission datum of %s %s ( %s )", l_balance, c_token_ticker, l_hash_str); + DAP_DELETE(l_balance); + } else log_it(L_ERROR, "Duplicate token emission datum of %"DAP_UINT64_FORMAT_U" %s ( %s )", ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value, c_token_ticker, l_hash_str); @@ -2718,9 +2744,14 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t HASH_ITER(hh, l_values_from_prev_tx, l_value_cur, l_tmp) { HASH_FIND_STR(l_values_from_cur_tx, l_value_cur->token_ticker, l_res); if (!l_res || !EQUAL_256(l_res->sum, l_value_cur->sum) ) { - if(s_debug_more) + if(s_debug_more) { + char *l_balance = dap_chain_balance_print(l_res ? l_res->sum : uint256_0); + char *l_balance_cur = dap_chain_balance_print(l_value_cur->sum); log_it(L_ERROR, "Sum of values of out items from current tx 256 (%s) is not equal outs from previous tx (%s) for token %s", - dap_chain_balance_print(l_res ? l_res->sum : uint256_0), dap_chain_balance_print(l_value_cur->sum), l_value_cur->token_ticker); + l_balance, l_balance_cur, l_value_cur->token_ticker); + DAP_DELETE(l_balance); + DAP_DELETE(l_balance_cur); + } l_err_num = -12; break; } @@ -3003,8 +3034,11 @@ static inline int s_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, d break; } - if(s_debug_more) - log_it(L_DEBUG,"SPEND %s from addr: %s", dap_chain_balance_print(l_value), l_wallet_balance_key); + if(s_debug_more) { + char *l_balance = dap_chain_balance_print(l_value); + log_it(L_DEBUG,"SPEND %s from addr: %s", l_balance, l_wallet_balance_key); + DAP_DELETE(l_balance); + } SUBTRACT_256_256(wallet_balance->balance, l_value, &wallet_balance->balance); @@ -3151,8 +3185,11 @@ static inline int s_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, d break; } - if(s_debug_more) - log_it (L_DEBUG,"GOT %s to addr: %s", dap_chain_balance_print(l_value_256), l_wallet_balance_key); + if(s_debug_more) { + char *l_balance = dap_chain_balance_print(l_value_256); + log_it(L_DEBUG, "GOT %s to addr: %s", l_balance, l_wallet_balance_key); + DAP_DELETE(l_balance); + } pthread_rwlock_rdlock(&l_ledger_priv->balance_accounts_rwlock); HASH_FIND_STR(PVT(a_ledger)->balance_accounts, l_wallet_balance_key, wallet_balance); pthread_rwlock_unlock(&l_ledger_priv->balance_accounts_rwlock); @@ -3562,9 +3599,11 @@ uint256_t dap_chain_ledger_calc_balance(dap_ledger_t *a_ledger, const dap_chain_ HASH_FIND_STR(PVT(a_ledger)->balance_accounts, l_wallet_balance_key, l_balance_item); pthread_rwlock_unlock(&PVT(a_ledger)->balance_accounts_rwlock); if (l_balance_item) { - if(s_debug_more) - log_it (L_INFO,"Found address in cache with balance %s", - dap_chain_balance_print(l_balance_item->balance)); + if(s_debug_more) { + char *l_balance = dap_chain_balance_print(l_balance_item->balance); + log_it(L_INFO, "Found address in cache with balance %s", l_balance); + DAP_DELETE(l_balance); + } l_ret = l_balance_item->balance; } else { if (s_debug_more) diff --git a/modules/common/dap_chain_datum.c b/modules/common/dap_chain_datum.c index 0584789487100c41c97871a4ceb6521fa8ee4bfb..0520fa36d63aa5436825791be732cf474ac58529 100644 --- a/modules/common/dap_chain_datum.c +++ b/modules/common/dap_chain_datum.c @@ -89,15 +89,17 @@ void s_datum_token_dump_tsd(dap_string_t *a_str_out, dap_chain_datum_token_t *a_ dap_chain_datum_token_flags_dump(a_str_out, dap_tsd_get_scalar(l_tsd, uint16_t)); break; - case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY: // 256 - dap_string_append_printf(a_str_out,"total_supply: %s\n", - dap_chain_balance_print( - dap_tsd_get_scalar(l_tsd, uint256_t))); + case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY: { // 256 + char *l_balance = dap_chain_balance_print(dap_tsd_get_scalar(l_tsd, uint256_t)); + dap_string_append_printf(a_str_out, "total_supply: %s\n", l_balance); + DAP_DELETE(l_balance); + } break; - case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY_OLD: // 128 - dap_string_append_printf(a_str_out,"total_supply: %s\n", - dap_chain_balance_print(GET_256_FROM_128( - dap_tsd_get_scalar(l_tsd, uint128_t)))); + case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY_OLD: {// 128 + char *l_balance = dap_chain_balance_print(GET_256_FROM_128(dap_tsd_get_scalar(l_tsd, uint128_t))); + dap_string_append_printf(a_str_out, "total_supply: %s\n", l_balance); + DAP_DELETE(l_balance); + } break; case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID : dap_string_append_printf(a_str_out,"total_signs_valid: %u\n", diff --git a/modules/global-db/dap_chain_global_db_driver_cdb.c b/modules/global-db/dap_chain_global_db_driver_cdb.c index c3c16badbc50440aea456f5b845711ffcfae61d6..7a1a55dfae7a49f15b7695c76913a7dba612b34b 100644 --- a/modules/global-db/dap_chain_global_db_driver_cdb.c +++ b/modules/global-db/dap_chain_global_db_driver_cdb.c @@ -221,7 +221,7 @@ pcdb_instance dap_cdb_init_group(const char *a_group, int a_flags) { //log_it(L_INFO, "Average read latency: %-24u" , l_cdb_stat.rlatcy); //log_it(L_INFO, "Average write latency: %-24u" , l_cdb_stat.wlatcy); //log_it(L_INFO, "Last id: %-24u" , l_cdb_i->id); - DAP_DELETE(l_arg.o); + dap_store_obj_free_one(l_arg.o); } else { log_it(L_INFO, "Group \"%s\" created", l_cdb_i->local_group); l_cdb_i->id = 0; diff --git a/modules/global-db/dap_chain_global_db_remote.c b/modules/global-db/dap_chain_global_db_remote.c index 2fbd5f92aa12e54d8faa20d3d335ca4e75855c47..ea6ea6a36043b3d4015930eced0c749de4ab05a9 100644 --- a/modules/global-db/dap_chain_global_db_remote.c +++ b/modules/global-db/dap_chain_global_db_remote.c @@ -790,7 +790,7 @@ dap_store_obj_t *l_store_obj_arr, *l_obj; // Return the number of completely filled dap_store_obj_t structures // because l_cur_count may be less than l_count due to too little memory if (a_store_obj_count) - *a_store_obj_count = l_cur_count; + *a_store_obj_count = l_count; return l_store_obj_arr; } diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c index 4c469ca2fd16dabc69edb91405af182a5bf56aeb..3510f89fb91e37d25c21537f17049cc66956da20 100644 --- a/modules/mempool/dap_chain_mempool.c +++ b/modules/mempool/dap_chain_mempool.c @@ -224,7 +224,9 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a uint256_t l_value_need = {}; MULT_256_256(dap_chain_uint256_from(a_tx_num), l_single_val, &l_value_need); uint256_t l_value_transfer = {}; // how many coins to transfer - log_it(L_DEBUG,"Create %"DAP_UINT64_FORMAT_U" transactions, summary %s", a_tx_num, dap_chain_balance_to_coins(l_value_need)) ; + char *l_balance = dap_chain_balance_to_coins(l_value_need); + log_it(L_DEBUG, "Create %"DAP_UINT64_FORMAT_U" transactions, summary %s", a_tx_num, l_balance); + DAP_DELETE(l_balance); dap_list_t *l_list_used_out = dap_chain_ledger_get_list_tx_outs_with_val(a_chain->ledger, a_token_ticker, a_addr_from, l_value_need, &l_value_transfer); if (!l_list_used_out) { @@ -251,12 +253,14 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a dap_chain_hash_fast_to_str(&l_item->tx_hash_fast,l_in_hash_str,sizeof (l_in_hash_str) ); + char *l_balance = dap_chain_balance_print(l_item->value); if(dap_chain_datum_tx_add_in_item(&l_tx_new, &l_item->tx_hash_fast, (uint32_t)l_item->num_idx_out) == 1) { SUM_256_256(l_value_to_items, l_item->value, &l_value_to_items); - log_it(L_DEBUG, "Added input %s with %s datoshi", l_in_hash_str, dap_chain_balance_print(l_item->value)); + log_it(L_DEBUG, "Added input %s with %s datoshi", l_in_hash_str, l_balance); }else{ - log_it(L_WARNING, "Can't add input from %s with %s datoshi", l_in_hash_str, dap_chain_balance_print(l_item->value)); + log_it(L_WARNING, "Can't add input from %s with %s datoshi", l_in_hash_str, l_balance); } + DAP_DELETE(l_balance); l_list_used_out = l_list_tmp->next; DAP_DELETE(l_list_tmp->data); dap_list_free1(l_list_tmp); @@ -265,8 +269,11 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a break; } if (compare256(l_value_to_items, l_single_val) == -1) { - log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s", - dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_single_val)); + char *l_balance = dap_chain_balance_print(l_value_to_items); + char *l_balance_need = dap_chain_balance_print(l_single_val); + log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s", l_balance, l_balance_need); + DAP_DELETE(l_balance); + DAP_DELETE(l_balance_need); DAP_DELETE(l_objs); return -5; } diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index cba03ca2ee8f4a53c3cb860e26680d38d4240c4b..6f5203e1e3392db2a4b7609c022b3e0e36af9a86 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -2719,6 +2719,7 @@ int s_net_load(const char * a_net_name, uint16_t a_acl_idx) l_chain_prior->chains_path = l_chains_path; // add chain to load list; l_prior_list = dap_list_append(l_prior_list, l_chain_prior); + dap_config_close(l_cfg); } } } diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c index 7cd28e4a271210c26a41405639a3a2bd868c5cf6..13b2a891739a2eeafdebfbe58e488098958e911a 100644 --- a/modules/net/dap_chain_node_cli_cmd_tx.c +++ b/modules/net/dap_chain_node_cli_cmd_tx.c @@ -267,12 +267,15 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, (l_tx_out_256) ? dap_chain_addr_to_str(&l_tx_out_256->addr) : NULL; if(l_tx_out || l_tx_out_256) { - if ( l_type_256 ) // 256 + if(l_type_256) { // 256 + char *l_balance = dap_chain_balance_print(l_tx_out_256->header.value); dap_string_append_printf(l_str_out, " OUT 256bit item %s %s to %s\n", - dap_chain_balance_print(l_tx_out_256->header.value), - dap_strlen(l_token_str) > 0 ? l_token_str : "?", - l_dst_to_str ? l_dst_to_str : "?" - ); + l_balance, + dap_strlen(l_token_str) > 0 ? l_token_str : "?", + l_dst_to_str ? l_dst_to_str : "?" + ); + DAP_DELETE(l_balance); + } else dap_string_append_printf(l_str_out, " OUT item %"DAP_UINT64_FORMAT_U" %s to %s\n", l_tx_out->header.value, @@ -328,8 +331,10 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain, dap_chain_tx_out_t *l_tx_prev_out = l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL; // print value from prev out item - dap_string_append_printf(l_str_out, " prev OUT 256bitt item value=%s", - l_tx_prev_out ? dap_chain_balance_print(l_tx_prev_out->header.value) : "0"); + char *l_balance = dap_chain_balance_print(l_tx_prev_out->header.value); + dap_string_append_printf(l_str_out, " prev OUT 256bit item value=%s", + l_tx_prev_out ? l_balance : "0"); + DAP_DELETE(l_balance); } else { dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev, TX_ITEM_TYPE_OUT_OLD, NULL); diff --git a/modules/net/srv/dap_chain_net_srv_order.c b/modules/net/srv/dap_chain_net_srv_order.c index c4ef7312273c7f92e5eeac332f5ac9f26f67de6b..83932b09ddda7c77b2a212326ed9c14258b0aa72 100644 --- a/modules/net/srv/dap_chain_net_srv_order.c +++ b/modules/net/srv/dap_chain_net_srv_order.c @@ -537,7 +537,11 @@ void dap_chain_net_srv_order_dump_to_string(dap_chain_net_srv_order_t *a_order,d } dap_string_append_printf(a_str_out, " srv_uid: 0x%016"DAP_UINT64_FORMAT_X"\n", a_order->srv_uid.uint64 ); - dap_string_append_printf(a_str_out, " price: %s (%s)\n", dap_chain_balance_to_coins(a_order->price), dap_chain_balance_print(a_order->price)); + char *l_balance_coins = dap_chain_balance_to_coins(a_order->price); + char *l_balance = dap_chain_balance_print(a_order->price); + dap_string_append_printf(a_str_out, " price: %s (%s)\n", l_balance_coins, l_balance); + DAP_DELETE(l_balance_coins); + DAP_DELETE(l_balance); if( a_order->price_unit.uint32 ) dap_string_append_printf(a_str_out, " price_unit: %s\n", dap_chain_net_srv_price_unit_uid_to_str(a_order->price_unit) ); if ( a_order->node_addr.uint64) diff --git a/modules/service/datum/dap_chain_net_srv_datum.c b/modules/service/datum/dap_chain_net_srv_datum.c index 9177b3706dfaa774b5d78f0be9dda0f9b573f653..48c20c2828de4a015e14ca4507f1c46c703ef958 100644 --- a/modules/service/datum/dap_chain_net_srv_datum.c +++ b/modules/service/datum/dap_chain_net_srv_datum.c @@ -223,8 +223,11 @@ void s_order_notficator(void *a_arg, const char a_op_code, const char *a_group, if ((l_order->price_unit.uint32 != SERV_UNIT_PCS) || (l_order->direction != SERV_DIR_BUY) || (strncmp(l_order->price_ticker, l_price->token, DAP_CHAIN_TICKER_SIZE_MAX)) || (!compare256(l_order->price, l_price->value_datoshi))) { - log_it(L_DEBUG, "Price from order (%s) is not equal to price from service pricelist (%s)", - dap_chain_balance_to_coins(l_order->price), dap_chain_balance_to_coins(l_price->value_datoshi)); + char *l_balance_order = dap_chain_balance_to_coins(l_order->price); + char *l_balance_service = dap_chain_balance_to_coins(l_price->value_datoshi); + log_it(L_DEBUG, "Price from order (%s) is not equal to price from service pricelist (%s)", l_balance_order, l_balance_service); + DAP_DELETE(l_balance_order); + DAP_DELETE(l_balance_service); return; // price from order is not equal with service price } char l_tx_cond_hash_str[DAP_CHAIN_HASH_FAST_STR_SIZE]; diff --git a/modules/service/stake/dap_chain_net_srv_stake.c b/modules/service/stake/dap_chain_net_srv_stake.c index c9f516b1f16c7a0f83f9ce3972fa152f91068383..410aab17600135d7dd8a9ef486b5b1dc78d7bd3e 100644 --- a/modules/service/stake/dap_chain_net_srv_stake.c +++ b/modules/service/stake/dap_chain_net_srv_stake.c @@ -1159,8 +1159,11 @@ static int s_cli_srv_stake_order(int a_argc, char **a_argv, int a_arg_index, cha // TODO add filters to list (token, address, etc.) l_stake = s_stake_item_from_order(l_net, l_order); char *l_addr = dap_chain_addr_to_str(&l_stake->signing_addr); - dap_string_append_printf(l_reply_str, "%s %s %s %s %s\n", l_orders[i].key, dap_chain_balance_print(l_stake->value), - l_stake->token, l_addr, dap_chain_balance_to_coins(l_stake->fee_value)); + char *l_balance = dap_chain_balance_print(l_stake->value); + char *l_fee = dap_chain_balance_to_coins(l_stake->fee_value); + dap_string_append_printf(l_reply_str, "%s %s %s %s %s\n", l_orders[i].key, l_balance, l_stake->token, l_addr, l_fee); + DAP_DELETE(l_balance); + DAP_DELETE(l_fee); DAP_DELETE(l_addr); DAP_DELETE(l_stake); } @@ -1370,10 +1373,14 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply) char *l_addr_hldr_str = dap_chain_addr_to_str(&l_stake->addr_hldr); char *l_signing_addr_str = dap_chain_addr_to_str(&l_stake->signing_addr); char *l_addr_fee_str = dap_chain_addr_to_str(&l_stake->addr_fee); + char *l_balance = dap_chain_balance_print(l_stake->value); + char *l_fee = dap_chain_balance_to_coins(l_stake->fee_value); dap_string_append_printf(l_reply_str, "%s %s %s %s %s %s %s\n", l_tx_hash_str, l_stake->token, - dap_chain_balance_print(l_stake->value), l_addr_hldr_str, - l_signing_addr_str, l_addr_fee_str, - dap_chain_balance_to_coins(l_stake->fee_value)); + l_balance, l_addr_hldr_str, + l_signing_addr_str, l_addr_fee_str, + l_fee); + DAP_DELETE(l_balance); + DAP_DELETE(l_fee); DAP_DELETE(l_tx_hash_str); DAP_DELETE(l_addr_hldr_str); DAP_DELETE(l_signing_addr_str); diff --git a/modules/service/xchange/dap_chain_net_srv_xchange.c b/modules/service/xchange/dap_chain_net_srv_xchange.c index 34ecaf3fb966bade878cb4cd73d694508c4becf4..b8200405c8cefaa1f09f5e4aa5abc443ae0252d9 100644 --- a/modules/service/xchange/dap_chain_net_srv_xchange.c +++ b/modules/service/xchange/dap_chain_net_srv_xchange.c @@ -821,9 +821,13 @@ static int s_cli_srv_xchange_price(int a_argc, char **a_argv, int a_arg_index, c dap_string_t *l_reply_str = dap_string_new(""); HASH_ITER(hh, s_srv_xchange->pricelist, l_price, l_tmp) { char *l_order_hash_str = dap_chain_hash_fast_to_str_new(&l_price->order_hash); + char *l_balance = dap_chain_balance_print(l_price->datoshi_sell); + char *l_balance_rate = dap_chain_balance_print(l_price->rate); dap_string_append_printf(l_reply_str, "%s %s %s %s %s %s %s %s\n", l_order_hash_str, l_price->token_sell, l_price->net_sell->pub.name, l_price->token_buy, l_price->net_buy->pub.name, - dap_chain_balance_print(l_price->datoshi_sell), dap_chain_balance_print(l_price->rate), l_price->wallet_str); + l_balance, l_balance_rate, l_price->wallet_str); + DAP_DELETE(l_balance); + DAP_DELETE(l_balance_rate); DAP_DELETE(l_order_hash_str); } if (!l_reply_str->len) {