Fix bug
This commit is contained in:
Generated
+2
@@ -3947,6 +3947,7 @@ version = "0.1.0-alpha.0"
|
||||
dependencies = [
|
||||
"hypersdk",
|
||||
"postcard",
|
||||
"rust_decimal",
|
||||
"serde",
|
||||
"tokio",
|
||||
]
|
||||
@@ -3963,6 +3964,7 @@ dependencies = [
|
||||
"pulse-sdk",
|
||||
"pulse-ui",
|
||||
"rand 0.8.7",
|
||||
"rust_decimal",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
|
||||
@@ -11,6 +11,7 @@ hypersdk = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
postcard = { workspace = true }
|
||||
rust_decimal = { workspace = true }
|
||||
tokio = { workspace = true, features = [
|
||||
"rt-multi-thread",
|
||||
"macros",
|
||||
@@ -29,6 +30,7 @@ toml = "1.1.3"
|
||||
members = ["pulse-ui", "pulse-sdk"]
|
||||
|
||||
[workspace.dependencies]
|
||||
rust_decimal = { version = "1.39", features = ["serde-str"] }
|
||||
postcard = { version = "1.1.3", features = ["alloc"] }
|
||||
pulse-ui = { path = "pulse-ui", version = "0.1.0-alpha.0" }
|
||||
pulse-sdk = { path = "pulse-sdk", version = "0.1.0-alpha.0" }
|
||||
|
||||
@@ -7,4 +7,5 @@ edition = "2024"
|
||||
serde = { workspace = true }
|
||||
hypersdk = { workspace = true }
|
||||
postcard = { workspace = true }
|
||||
tokio = { workspace = true, features = ["io-std"]}
|
||||
tokio = { workspace = true, features = ["io-std"] }
|
||||
rust_decimal = { workspace = true }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use hypersdk::Decimal;
|
||||
use rust_decimal::Decimal;
|
||||
|
||||
use crate::units::{Direction, Symbol, USD};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use hypersdk::Decimal;
|
||||
use rust_decimal::Decimal;
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct Symbol(pub String);
|
||||
|
||||
+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