diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index dca16fe7ba5e8bba495307716e91ca0a235f7227..6ecae51021edac29b2e63fb84cffd604c5ecd846 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -1877,7 +1877,7 @@ static int s_cli_net(int argc, char **argv, char **a_str_reply) DAP_DELETE(l_network_fee_addr_str); //Get validators fee - dap_chain_net_srv_stake_get_fee_validators(l_net, l_str); + dap_chain_net_srv_stake_get_fee_validators_str(l_net, l_str); //Get services fee dap_string_append_printf(l_str, "Services fee: \n"); dap_chain_net_srv_xchange_print_fee(l_net, l_str); //Xchaneg fee diff --git a/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c index cbadc37d6399235933a9ea50dff6ebe713290c5a..25c0b59bace78f30a149c7c0696b9d5c3306b902 100644 --- a/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c +++ b/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c @@ -1694,17 +1694,16 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply) return 0; } -void dap_chain_net_srv_stake_get_fee_validators(dap_chain_net_t *a_net, dap_string_t *a_string_ret) -{ - if (!a_net || !a_string_ret) - return; +bool dap_chain_net_srv_stake_get_fee_validators(dap_chain_net_t *a_net, + uint256_t *a_max_fee, uint256_t *a_average_fee, uint256_t *a_min_fee) { + if (!a_net) + return false; char * l_gdb_group_str = dap_chain_net_srv_order_get_gdb_group(a_net); size_t l_orders_count = 0; dap_global_db_obj_t * l_orders = dap_global_db_get_all_sync(l_gdb_group_str, &l_orders_count); uint256_t l_max = {0}; uint256_t l_min = {0}; uint256_t l_average = {0}; -// bool setMinimal = false; uint64_t l_order_fee_count = 0; for (size_t i = 0; i < l_orders_count; i++) { dap_chain_net_srv_order_t *l_order = (dap_chain_net_srv_order_t *)l_orders[i].value; @@ -1731,13 +1730,30 @@ void dap_chain_net_srv_stake_get_fee_validators(dap_chain_net_t *a_net, dap_stri if (!IS_ZERO_256(l_average)) DIV_256(l_average, dap_chain_uint256_from(l_order_fee_count), &t); dap_global_db_objs_delete(l_orders, l_orders_count); DAP_DELETE( l_gdb_group_str); + if (a_min_fee) + *a_min_fee = l_min; + if (a_average_fee) + *a_average_fee = l_average; + if (a_max_fee) + *a_max_fee = l_max; + return true; +} + +void dap_chain_net_srv_stake_get_fee_validators_str(dap_chain_net_t *a_net, dap_string_t *a_string_ret) +{ + if (!a_net || !a_string_ret) + return; + uint256_t l_min = {0}; + uint256_t l_average = {0}; + uint256_t l_max = {0}; + dap_chain_net_srv_stake_get_fee_validators(a_net, &l_max, &l_average, &l_min); const char *l_native_token = a_net->pub.native_ticker; char *l_min_balance = dap_chain_balance_print(l_min); char *l_min_coins = dap_chain_balance_to_coins(l_min); char *l_max_balance = dap_chain_balance_print(l_max); char *l_max_coins = dap_chain_balance_to_coins(l_max); - char *l_average_balance = dap_chain_balance_print(t); - char *l_average_coins = dap_chain_balance_to_coins(t); + char *l_average_balance = dap_chain_balance_print(l_average); + char *l_average_coins = dap_chain_balance_to_coins(l_average); dap_string_append_printf(a_string_ret, "Validator fee: \n" "\t MIN: %s (%s) %s\n" "\t MAX: %s (%s) %s\n" diff --git a/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h b/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h index 9750aa74f01100e11b1ca6a21d2402671f70c72d..f7365f76b89358fa20e8fcede53bcc1189cb6b78 100644 --- a/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h +++ b/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h @@ -72,7 +72,10 @@ bool dap_chain_net_srv_stake_key_delegated(dap_chain_addr_t *a_addr); int dap_chain_net_srv_stake_verify_key_and_node(dap_chain_addr_t* a_signing_addr, dap_chain_node_addr_t* a_node_addr); dap_list_t *dap_chain_net_srv_stake_get_validators(dap_chain_net_id_t a_net_id); -void dap_chain_net_srv_stake_get_fee_validators(dap_chain_net_t *a_net, dap_string_t *a_string); +bool dap_chain_net_srv_stake_get_fee_validators(dap_chain_net_t *a_net, + uint256_t *a_max_fee, uint256_t *a_average_fee, uint256_t *a_min_fee); + +void dap_chain_net_srv_stake_get_fee_validators_str(dap_chain_net_t *a_net, dap_string_t *a_string); int dap_chain_net_srv_stake_load_cache(dap_chain_net_t *a_net); void dap_chain_net_srv_stake_cache_purge(dap_chain_net_t *a_net);