diff --git a/daemon/src/maker_cfd_actor.rs b/daemon/src/maker_cfd_actor.rs index 5cb930d..5d7d945 100644 --- a/daemon/src/maker_cfd_actor.rs +++ b/daemon/src/maker_cfd_actor.rs @@ -23,7 +23,7 @@ pub enum Command { pub fn new( db: sqlx::SqlitePool, takers: mpsc::UnboundedSender, - cfd_feed_sender: watch::Sender>, + cfd_feed_actor_inbox: watch::Sender>, offer_feed_sender: watch::Sender>, ) -> ( impl Future, @@ -34,6 +34,12 @@ pub fn new( let mut current_offer_id = None; let actor = async move { + // populate the CFD feed with existing CFDs + let mut conn = db.acquire().await.unwrap(); + cfd_feed_actor_inbox + .send(db::load_all_cfds(&mut conn).await.unwrap()) + .unwrap(); + while let Some(message) = receiver.recv().await { match message { maker_cfd_actor::Command::TakeOffer { @@ -87,7 +93,7 @@ pub fn new( taker_id, }) .unwrap(); - cfd_feed_sender + cfd_feed_actor_inbox .send(db::load_all_cfds(&mut conn).await.unwrap()) .unwrap(); diff --git a/daemon/src/taker_cfd_actor.rs b/daemon/src/taker_cfd_actor.rs index 8e75b1e..50fef21 100644 --- a/daemon/src/taker_cfd_actor.rs +++ b/daemon/src/taker_cfd_actor.rs @@ -21,6 +21,12 @@ pub fn new( let (sender, mut receiver) = mpsc::unbounded_channel(); let actor = async move { + // populate the CFD feed with existing CFDs + let mut conn = db.acquire().await.unwrap(); + cfd_feed_actor_inbox + .send(db::load_all_cfds(&mut conn).await.unwrap()) + .unwrap(); + while let Some(message) = receiver.recv().await { match message { Command::TakeOffer { offer_id, quantity } => {