From 1392681b36fee69a46cad24e7f652b6476a54242 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Wed, 5 Apr 2023 17:23:17 +0300 Subject: [PATCH] [+] Multi-net support for validators --- modules/consensus/esbocs/dap_chain_cs_esbocs.c | 2 +- .../dap_chain_net_srv_stake_pos_delegate.c | 5 +++-- .../include/dap_chain_net_srv_stake_pos_delegate.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c index 3ba6115c5f..9be30e274b 100644 --- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c +++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c @@ -348,7 +348,7 @@ static dap_list_t *s_get_validators_list(dap_chain_esbocs_session_t *a_session, dap_list_t *l_ret = NULL; if (!l_esbocs_pvt->poa_mode) { - dap_list_t *l_validators = dap_chain_net_srv_stake_get_validators(); + dap_list_t *l_validators = dap_chain_net_srv_stake_get_validators(a_session->chain->net_id); size_t l_validators_count = dap_list_length(l_validators); if (l_validators_count < l_esbocs_pvt->min_validators_count) { dap_list_free_full(l_validators, NULL); 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 1f07e6d628..e744a8f50d 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 @@ -208,14 +208,15 @@ bool dap_chain_net_srv_stake_key_delegated(dap_chain_addr_t *a_signing_addr) return false; } -dap_list_t *dap_chain_net_srv_stake_get_validators() +dap_list_t *dap_chain_net_srv_stake_get_validators(dap_chain_net_id_t a_net_id) { dap_list_t *l_ret = NULL; if (!s_srv_stake || !s_srv_stake->itemlist) return l_ret; dap_chain_net_srv_stake_item_t *l_stake, *l_tmp; HASH_ITER(hh, s_srv_stake->itemlist, l_stake, l_tmp) - l_ret = dap_list_append(l_ret, DAP_DUP(l_stake)); + if (a_net_id.uint64 == l_stake->signing_addr.net_id.uint64) + l_ret = dap_list_append(l_ret, DAP_DUP(l_stake)); return l_ret; } 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 913d91fe7f..9750aa74f0 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 @@ -70,7 +70,7 @@ uint256_t dap_chain_net_srv_stake_get_allowed_min_value(); 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_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); -- GitLab