diff --git a/src/engine/engine/mod.rs b/src/engine/engine/mod.rs index e2c4235..c38e5dd 100644 --- a/src/engine/engine/mod.rs +++ b/src/engine/engine/mod.rs @@ -16,6 +16,7 @@ pub struct Engine { pub strategy: Arc, pub config: Arc>, pub accounts: Arc>, + pub watch_list: Arc>>, } impl Engine { @@ -32,6 +33,7 @@ impl Engine { strategy: strategy.initialize(engine.clone()), config, accounts, + watch_list: Arc::new(Mutex::new(Vec::new())), })) } @@ -53,6 +55,8 @@ impl Engine { match crate::fetch::fetch_watch_list(&client, watch_list).await { Ok(watch_list) => { + *self.watch_list.lock().await = watch_list.clone(); + if let Err(error) = self .terminal_server .broadcast( diff --git a/src/engine/engine/plugin.rs b/src/engine/engine/plugin.rs index 990e18f..3054651 100644 --- a/src/engine/engine/plugin.rs +++ b/src/engine/engine/plugin.rs @@ -74,11 +74,11 @@ impl StrategyEngine { None => {} Some(StrategyMessage::GetWatchList) => { - let mut v = vec![1]; - - v.extend(engine.config.lock().await.watchlist.to_com()); - - self.strategy.send_raw(&v).await?; + self.strategy + .send(&StrategyEngineMessage::WatchList( + engine.watch_list.lock().await.clone(), + )) + .await?; } Some(StrategyMessage::Log(mut log)) => {