From d67ae4c84618cf618dbc259aa244bead275029f0 Mon Sep 17 00:00:00 2001
From: "Constantin P." <papizh.konstantin@demlabs.net>
Date: Thu, 19 Sep 2024 18:22:48 +0700
Subject: [PATCH] ...

---
 .../consensus/dag-poa/dap_chain_cs_dag_poa.c  | 29 +++++++++----------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
index 0097a238e7..6f90cf1fff 100644
--- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
+++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
@@ -57,16 +57,15 @@ typedef struct dap_chain_cs_dag_poa_presign_callback{
     void *arg;
 } dap_chain_cs_dag_poa_presign_callback_t;
 
-typedef struct dap_chain_cs_dag_poa_event_item {
+typedef struct dap_chain_cs_dag_poa_round_item {
     dap_chain_hash_fast_t datum_hash;
-    dap_chain_cs_dag_event_t *event;
     dap_chain_cs_dag_t *dag;
     UT_hash_handle hh;
-} dap_chain_cs_dag_poa_event_item_t;
+} dap_chain_cs_dag_poa_round_item_t;
 
 typedef struct dap_chain_cs_dag_poa_pvt {
     pthread_rwlock_t rounds_rwlock;
-    dap_chain_cs_dag_poa_event_item_t *event_items;
+    dap_chain_cs_dag_poa_round_item_t *event_items;
     dap_cert_t *events_sign_cert, **auth_certs;
     char *auth_certs_prefix;
     uint16_t auth_certs_count, auth_certs_count_verify; // Number of signatures, needed for event verification
@@ -84,12 +83,12 @@ static int s_callback_created(dap_chain_t * a_chain, dap_config_t *a_chain_cfg);
 static int s_callback_event_verify(dap_chain_cs_dag_t *a_dag, dap_chain_cs_dag_event_t *a_dag_event, dap_hash_fast_t *a_event_hash);
 static dap_chain_cs_dag_event_t * s_callback_event_create(dap_chain_cs_dag_t * a_dag, dap_chain_datum_t * a_datum,
                                                           dap_chain_hash_fast_t * a_hashes, size_t a_hashes_count, size_t* a_event_size);
-static bool s_callback_round_event_to_chain(dap_chain_cs_dag_poa_event_item_t *a_arg);
+static bool s_callback_round_event_to_chain(dap_chain_cs_dag_poa_round_item_t *a_arg);
 static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_op_code, const char *a_group,
                                         const char *a_key, const void *a_value, const size_t a_value_size);
 static bool s_round_event_ready_minimum_check(dap_chain_cs_dag_t *a_dag, dap_chain_cs_dag_event_t *a_event,
                                               size_t a_event_size, char *a_event_hash_hex_str);
-static void s_round_event_cs_done(dap_chain_cs_dag_poa_event_item_t *a_event_item);
+static void s_round_event_cs_done(dap_chain_cs_dag_poa_round_item_t *a_event_item);
 
 // CLI commands
 static int s_cli_dag_poa(int argc, char ** argv, void **a_str_reply);
@@ -288,9 +287,8 @@ static int s_cli_dag_poa(int argc, char ** argv, void **a_str_reply)
                         }
                         ret = 0;
                         if (l_event_is_ready && l_poa_pvt->auto_round_complete) { // cs done (minimum signs & verify passed) 
-                            dap_chain_cs_dag_poa_event_item_t l_event_item = {
+                            dap_chain_cs_dag_poa_round_item_t l_event_item = {
                                 .datum_hash = l_round_item->round_info.datum_hash,
-                                .event = l_event,
                                 .dag = l_dag
                             };
                             s_round_event_cs_done(&l_event_item);
@@ -537,7 +535,7 @@ static bool s_callback_round_event_to_chain_callback_get_round_item(dap_global_d
 {
     if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS) 
         return false;
-    dap_chain_cs_dag_poa_event_item_t *l_arg = (dap_chain_cs_dag_poa_event_item_t*)a_arg;
+    dap_chain_cs_dag_poa_round_item_t *l_arg = (dap_chain_cs_dag_poa_round_item_t*)a_arg;
     dap_chain_cs_dag_t *l_dag = l_arg->dag;
     dap_chain_cs_dag_poa_pvt_t *l_poa_pvt = PVT(DAP_CHAIN_CS_DAG_POA(l_dag));
     pthread_rwlock_wrlock(&l_poa_pvt->rounds_rwlock);
@@ -615,16 +613,16 @@ static bool s_callback_round_event_to_chain_callback_get_round_item(dap_global_d
  * @param a_callback_arg
  * @return
  */
-static bool s_callback_round_event_to_chain(dap_chain_cs_dag_poa_event_item_t *a_callback_arg)
+static bool s_callback_round_event_to_chain(dap_chain_cs_dag_poa_round_item_t *a_callback_arg)
 {
     return dap_global_db_get_all(a_callback_arg->dag->gdb_group_events_round_new, 0, s_callback_round_event_to_chain_callback_get_round_item, a_callback_arg),
         false;
 }
 
-static void s_round_event_cs_done(dap_chain_cs_dag_poa_event_item_t *a_event_item)
+static void s_round_event_cs_done(dap_chain_cs_dag_poa_round_item_t *a_event_item)
 {
     dap_chain_cs_dag_poa_pvt_t *l_poa_pvt = PVT( DAP_CHAIN_CS_DAG_POA(a_event_item->dag) );
-    dap_chain_cs_dag_poa_event_item_t *l_event_item = NULL;
+    dap_chain_cs_dag_poa_round_item_t *l_event_item = NULL;
     pthread_rwlock_wrlock(&l_poa_pvt->rounds_rwlock);
     HASH_FIND(hh, l_poa_pvt->event_items, &a_event_item->datum_hash, sizeof(dap_hash_fast_t), l_event_item);
     if (!l_event_item) {
@@ -670,7 +668,7 @@ static void s_round_changes_notify(dap_store_obj_t *a_obj, void *a_arg)
         if (l_poa_pvt->event_items) {
             dap_chain_cs_dag_event_round_item_t *l_round_item = (dap_chain_cs_dag_event_round_item_t*)a_obj->value;
             dap_chain_cs_dag_event_t *l_event = (dap_chain_cs_dag_event_t*)(l_round_item->event_n_signs);
-            dap_chain_cs_dag_poa_event_item_t *l_event_item = NULL;
+            dap_chain_cs_dag_poa_round_item_t *l_event_item = NULL;
             dap_hash_fast_t l_datum_hash = l_round_item->round_info.datum_hash;
             HASH_FIND(hh, l_poa_pvt->event_items, &l_datum_hash, sizeof(l_datum_hash), l_event_item);
             if (l_event_item)
@@ -820,9 +818,8 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_
         && l_poa_pvt->auto_round_complete
         && s_round_event_ready_minimum_check(a_dag, l_event, l_event_size, (char*)a_key) )
     {
-        dap_chain_cs_dag_poa_event_item_t *l_event_item = DAP_NEW_Z(dap_chain_cs_dag_poa_event_item_t);
-        *l_event_item = (dap_chain_cs_dag_poa_event_item_t) { .datum_hash = l_round_item->round_info.datum_hash, .dag = a_dag, .event = l_event };
-        return s_round_event_cs_done(l_event_item), DAP_DELETE(l_event), 0;
+        dap_chain_cs_dag_poa_round_item_t l_event_item = { .datum_hash = l_round_item->round_info.datum_hash, .dag = a_dag };
+        return DAP_DELETE(l_event), s_round_event_cs_done(&l_event_item), 0;
     }
 
     size_t l_event_size_new = 0;
-- 
GitLab