Просмотр исходного кода

wallet: p2p broadcast event when sending

darkfi 2 лет назад
Родитель
Сommit
2adb0148b9
1 измененных файлов с 16 добавлено и 4 удалено
  1. 16 4
      bin/darkwallet/src/darkirc.rs

+ 16 - 4
bin/darkwallet/src/darkirc.rs

@@ -19,7 +19,11 @@
 use std::sync::{Arc, Mutex as SyncMutex};
 use std::sync::{Arc, Mutex as SyncMutex};
 
 
 use darkfi::{
 use darkfi::{
-    event_graph::{self, proto::ProtocolEventGraph, EventGraph, EventGraphPtr},
+    event_graph::{
+        self,
+        proto::{EventPut, ProtocolEventGraph},
+        EventGraph, EventGraphPtr,
+    },
     net::{session::SESSION_DEFAULT, settings::Settings as NetSettings, P2p, P2pPtr},
     net::{session::SESSION_DEFAULT, settings::Settings as NetSettings, P2p, P2pPtr},
     system::{sleep, Subscription},
     system::{sleep, Subscription},
     Error,
     Error,
@@ -189,11 +193,19 @@ impl DarkIrcBackend {
     }
     }
 
 
     pub async fn send(&self, privmsg: Privmsg) {
     pub async fn send(&self, privmsg: Privmsg) {
-        let evgr =
-            self.0.lock().unwrap().as_ref().expect("backend wasnt started").event_graph.clone();
+        let (p2p, evgr) = {
+            let self_ = self.0.lock().unwrap();
+            let data = self_.as_ref().expect("backend wasnt started");
+
+            let evgr = data.event_graph.clone();
+            let p2p = data.p2p.clone();
+            (p2p, evgr)
+        };
         let event = event_graph::Event::new(serialize_async(&privmsg).await, &evgr).await;
         let event = event_graph::Event::new(serialize_async(&privmsg).await, &evgr).await;
-        if let Err(e) = evgr.dag_insert(&[event]).await {
+        if let Err(e) = evgr.dag_insert(&[event.clone()]).await {
             error!(target: "darkirc", "Failed inserting new event to DAG: {}", e);
             error!(target: "darkirc", "Failed inserting new event to DAG: {}", e);
         }
         }
+
+        p2p.broadcast(&EventPut(event)).await;
     }
     }
 }
 }