wallet: p2p broadcast event when sending

This commit is contained in:
darkfi
2024-08-09 12:56:32 +02:00
parent 72d68aadb0
commit 2adb0148b9

View File

@@ -19,7 +19,11 @@
use std::sync::{Arc, Mutex as SyncMutex};
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},
system::{sleep, Subscription},
Error,
@@ -189,11 +193,19 @@ impl DarkIrcBackend {
}
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;
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);
}
p2p.broadcast(&EventPut(event)).await;
}
}