From c67d5170779b9d076f02c69ef68fd04d1a6f51e6 Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Wed, 29 Mar 2023 17:15:41 +0000 Subject: [PATCH] Fix features 8375 --- modules/net/srv/dap_chain_net_srv_order.c | 27 +++++++++-------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/modules/net/srv/dap_chain_net_srv_order.c b/modules/net/srv/dap_chain_net_srv_order.c index 55763796b9..f817e0470f 100644 --- a/modules/net/srv/dap_chain_net_srv_order.c +++ b/modules/net/srv/dap_chain_net_srv_order.c @@ -292,7 +292,7 @@ dap_chain_net_srv_order_t *dap_chain_net_srv_order_compose(dap_chain_net_t *a_ne return NULL; } if (!a_key) { - log_it(L_WARNING, "Order mast have a sign"); + log_it(L_WARNING, "The key with which the order should be signed is not specified."); return NULL; } dap_chain_net_srv_order_t *l_order; @@ -608,7 +608,7 @@ static void s_srv_order_callback_notify(dap_global_db_context_t *a_context, dap_ if (a_obj->value && a_obj->type == DAP_DB$K_OPTYPE_ADD && dap_config_get_item_bool_default(g_config, "srv", "order_signed_only", true)) { dap_chain_net_srv_order_t *l_order = (dap_chain_net_srv_order_t *)a_obj->value; - if (l_order->version != 2) { + if (l_order->version != 3) { dap_global_db_del_unsafe(l_gdb_context, a_obj->group, a_obj->key); } else { dap_sign_t *l_sign = (dap_sign_t *)(l_order->ext_n_sign + l_order->ext_size); @@ -619,20 +619,15 @@ static void s_srv_order_callback_notify(dap_global_db_context_t *a_context, dap_ dap_global_db_del_unsafe(l_gdb_context, a_obj->group, a_obj->key); } // Check new order is signs delegated key - for (size_t l_offset = 0; l_offset < l_max_size;) { - dap_sign_t *l_tmp_sign = (dap_sign_t*)(l_sign + l_offset); - l_offset += dap_sign_get_size(l_tmp_sign); - dap_hash_fast_t l_pkey_hash = {0}; - dap_sign_get_pkey_hash(l_sign, &l_pkey_hash); - dap_chain_addr_t l_addr = {0}; - dap_chain_addr_fill(&l_addr, l_tmp_sign->header.type, &l_pkey_hash, l_net->pub.id); - if (!dap_chain_net_srv_stake_key_delegated(&l_addr)) { - char *l_pkey_hash_str = dap_hash_fast_to_str_new(&l_pkey_hash); - log_it(L_ERROR, "Order %s signed by the non-delegated public key %s.", a_obj->key, l_pkey_hash_str); - DAP_DELETE(l_pkey_hash_str); - dap_global_db_del_unsafe(l_gdb_context, a_obj->group, a_obj->key); - break; - } + dap_hash_fast_t l_pkey_hash = {0}; + dap_sign_get_pkey_hash(l_sign, &l_pkey_hash); + dap_chain_addr_t l_addr = {0}; + dap_chain_addr_fill(&l_addr, l_sign->header.type, &l_pkey_hash, l_net->pub.id); + if (!dap_chain_net_srv_stake_key_delegated(&l_addr)) { + char *l_pkey_hash_str = dap_hash_fast_to_str_new(&l_pkey_hash); + log_it(L_ERROR, "Order %s signed by the non-delegated public key %s.", a_obj->key, l_pkey_hash_str); + DAP_DELETE(l_pkey_hash_str); + dap_global_db_del_unsafe(l_gdb_context, a_obj->group, a_obj->key); } /*dap_chain_hash_fast_t l_pkey_hash; if (!dap_sign_get_pkey_hash(l_sign, &l_pkey_hash)) { -- GitLab