Fix bug
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
use hypersdk::Decimal;
|
||||
use rust_decimal::Decimal;
|
||||
use pulse_sdk::prelude::*;
|
||||
use serde_json::Value;
|
||||
use std::collections::HashMap;
|
||||
|
||||
+53
-47
@@ -53,16 +53,22 @@ impl TerminalClient {
|
||||
let status = app.status.clone();
|
||||
let inspect = app.inspect.clone();
|
||||
|
||||
tokio::spawn(Self::run_client(
|
||||
reader,
|
||||
watch_list,
|
||||
active_positions,
|
||||
logs,
|
||||
signals,
|
||||
market_overview,
|
||||
status,
|
||||
inspect,
|
||||
));
|
||||
tokio::spawn(async {
|
||||
if let Err(v) = Self::run_client(
|
||||
reader,
|
||||
watch_list,
|
||||
active_positions,
|
||||
logs,
|
||||
signals,
|
||||
market_overview,
|
||||
status,
|
||||
inspect,
|
||||
)
|
||||
.await
|
||||
{
|
||||
panic!("{v}")
|
||||
}
|
||||
});
|
||||
|
||||
app.sock = Some(self);
|
||||
|
||||
@@ -80,55 +86,55 @@ impl TerminalClient {
|
||||
status: State<Option<Status>>,
|
||||
inspect: State<InspectTarget>,
|
||||
) -> tokio::io::Result<()> {
|
||||
let mut len_buf = [0u8; size_of::<usize>()];
|
||||
reader
|
||||
.read_exact(&mut len_buf)
|
||||
.await
|
||||
.expect("Failed to get header length");
|
||||
loop {
|
||||
let mut len_buf = [0u8; size_of::<usize>()];
|
||||
reader
|
||||
.read_exact(&mut len_buf)
|
||||
.await
|
||||
.expect("Failed to get header length");
|
||||
|
||||
let len = usize::from_le_bytes(len_buf);
|
||||
let len = usize::from_le_bytes(len_buf);
|
||||
|
||||
let mut buffer = vec![0u8; len];
|
||||
let mut buffer = vec![0u8; len];
|
||||
|
||||
reader
|
||||
.read_exact(&mut buffer)
|
||||
.await
|
||||
.expect("Failed to read socket");
|
||||
reader
|
||||
.read_exact(&mut buffer)
|
||||
.await
|
||||
.expect("Failed to read socket");
|
||||
|
||||
match map_postcard_err(postcard::from_bytes(&buffer))? {
|
||||
TerminalServerMessage::WatchListUpdated(v) => {
|
||||
*watch_list.lock().await = v;
|
||||
}
|
||||
match map_postcard_err(postcard::from_bytes(&buffer))? {
|
||||
TerminalServerMessage::WatchListUpdated(v) => {
|
||||
*watch_list.lock().await = v;
|
||||
}
|
||||
|
||||
TerminalServerMessage::PositionsUpdated(v) => {
|
||||
*active_positions.lock().await = v;
|
||||
}
|
||||
TerminalServerMessage::PositionsUpdated(v) => {
|
||||
*active_positions.lock().await = v;
|
||||
}
|
||||
|
||||
TerminalServerMessage::StrategyUpdated(v) => {
|
||||
*market_overview.lock().await = Some(v);
|
||||
}
|
||||
TerminalServerMessage::StrategyUpdated(v) => {
|
||||
*market_overview.lock().await = Some(v);
|
||||
}
|
||||
|
||||
TerminalServerMessage::SignalsUpdated(v) => {
|
||||
*signals.lock().await = v;
|
||||
}
|
||||
TerminalServerMessage::SignalsUpdated(v) => {
|
||||
*signals.lock().await = v;
|
||||
}
|
||||
|
||||
TerminalServerMessage::Inspect(v) => {
|
||||
*inspect.lock().await = v;
|
||||
}
|
||||
TerminalServerMessage::Inspect(v) => {
|
||||
*inspect.lock().await = v;
|
||||
}
|
||||
|
||||
TerminalServerMessage::StatusUpdated(v) => {
|
||||
*status.lock().await = Some(v);
|
||||
}
|
||||
TerminalServerMessage::StatusUpdated(v) => {
|
||||
*status.lock().await = Some(v);
|
||||
}
|
||||
|
||||
TerminalServerMessage::SetLogs(v) => {
|
||||
*logs.lock().await = v;
|
||||
}
|
||||
TerminalServerMessage::SetLogs(v) => {
|
||||
*logs.lock().await = v;
|
||||
}
|
||||
|
||||
TerminalServerMessage::AddLog(v) => {
|
||||
logs.lock().await.push(v);
|
||||
TerminalServerMessage::AddLog(v) => {
|
||||
logs.lock().await.push(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user