From 7148a36a9a2f534cddaf8d18b13a5fb69f282bfa Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Thu, 13 Jun 2024 05:33:10 +0000 Subject: [PATCH] Feature 11490 --- .../dap_chain_net_srv_stake_pos_delegate.c | 19 +++++++++++++++++++ .../dap_chain_net_srv_stake_pos_delegate.h | 1 + 2 files changed, 20 insertions(+) diff --git a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c index a822920179..990b97dcdb 100644 --- a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c +++ b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c @@ -2946,3 +2946,22 @@ dap_chain_net_srv_stake_item_t *dap_chain_net_srv_stake_check_pkey_hash(dap_chai } return NULL; } + +size_t dap_chain_net_srv_stake_get_total_keys(dap_chain_net_id_t a_net_id, size_t *a_in_active_count){ + dap_chain_net_srv_stake_t *l_stake_rec = s_srv_stake_by_net_id(a_net_id); + if (!l_stake_rec) + return 0; + size_t l_total_count = 0, l_inactive_count = 0; + dap_chain_net_srv_stake_item_t *l_item = NULL; + for (l_item = l_stake_rec->itemlist; l_item; l_item = l_item->hh.next) { + if (l_item->net->pub.id.uint64 != a_net_id.uint64) + continue; + l_total_count++; + if (!l_item->is_active) + l_inactive_count++; + } + if (a_in_active_count) { + *a_in_active_count = l_inactive_count; + } + return l_total_count; +} diff --git a/modules/service/stake/include/dap_chain_net_srv_stake_pos_delegate.h b/modules/service/stake/include/dap_chain_net_srv_stake_pos_delegate.h index 9772663f55..1d2c90cc0b 100644 --- a/modules/service/stake/include/dap_chain_net_srv_stake_pos_delegate.h +++ b/modules/service/stake/include/dap_chain_net_srv_stake_pos_delegate.h @@ -100,3 +100,4 @@ int dap_chain_net_srv_stake_mark_validator_active(dap_chain_addr_t *a_signing_ad dap_chain_net_srv_stake_item_t *dap_chain_net_srv_stake_check_pkey_hash(dap_chain_net_id_t a_net_id, dap_hash_fast_t *a_pkey_hash); uint256_t dap_chain_net_srv_stake_get_total_weight(dap_chain_net_id_t a_net_id); +size_t dap_chain_net_srv_stake_get_total_keys(dap_chain_net_id_t a_net_id, size_t *a_in_active_count); -- GitLab