115 lines
3.8 KiB
Rust
115 lines
3.8 KiB
Rust
use pulse_wire::terminal::{ActivePosition, Signal, WatchListItem};
|
|
|
|
pub mod terminal;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> tokio::io::Result<()> {
|
|
let terminal_server = terminal::TerminalServer::new();
|
|
|
|
{
|
|
let terminal_server = terminal_server.clone();
|
|
|
|
tokio::spawn(async move {
|
|
terminal_server
|
|
.run()
|
|
.await
|
|
.expect("Failed to run terminal server");
|
|
});
|
|
}
|
|
|
|
loop {
|
|
tokio::time::sleep(tokio::time::Duration::from_millis(1500)).await;
|
|
|
|
terminal_server
|
|
.broadcast(
|
|
pulse_wire::terminal::TerminalServerMessage::WatchListUpdated(vec![
|
|
WatchListItem {
|
|
symbol: "BTC".to_string(),
|
|
price: 118_402.12,
|
|
trend: 0.82,
|
|
},
|
|
WatchListItem {
|
|
symbol: "ETH".to_string(),
|
|
price: 3_912.48,
|
|
trend: -0.41,
|
|
},
|
|
WatchListItem {
|
|
symbol: "SOL".to_string(),
|
|
price: 182.91,
|
|
trend: 2.18,
|
|
},
|
|
WatchListItem {
|
|
symbol: "XRP".to_string(),
|
|
price: 2.84,
|
|
trend: 1.22,
|
|
},
|
|
]),
|
|
)
|
|
.await?;
|
|
|
|
terminal_server
|
|
.broadcast(
|
|
pulse_wire::terminal::TerminalServerMessage::PositionsUpdated(vec![
|
|
ActivePosition {
|
|
symbol: "BTC".to_string(),
|
|
profit: 125.50,
|
|
amount: 0.25,
|
|
},
|
|
ActivePosition {
|
|
symbol: "SOL".to_string(),
|
|
profit: 84.20,
|
|
amount: 5.0,
|
|
},
|
|
ActivePosition {
|
|
symbol: "ETH".to_string(),
|
|
profit: -32.75,
|
|
amount: 1.0,
|
|
},
|
|
ActivePosition {
|
|
symbol: "XRP".to_string(),
|
|
profit: 12.30,
|
|
amount: 0.75,
|
|
},
|
|
]),
|
|
)
|
|
.await?;
|
|
|
|
terminal_server
|
|
.broadcast(pulse_wire::terminal::TerminalServerMessage::SignalsUpdated(
|
|
vec![
|
|
Signal {
|
|
kind: pulse_wire::terminal::SignalKind::Buy,
|
|
symbol: "BTC".to_string(),
|
|
param: pulse_wire::terminal::SignalParameter::Lim,
|
|
price: 118_800.0,
|
|
},
|
|
Signal {
|
|
kind: pulse_wire::terminal::SignalKind::Buy,
|
|
symbol: "BTC".to_string(),
|
|
param: pulse_wire::terminal::SignalParameter::Tap,
|
|
price: 120_000.0,
|
|
},
|
|
Signal {
|
|
kind: pulse_wire::terminal::SignalKind::Buy,
|
|
symbol: "BTC".to_string(),
|
|
param: pulse_wire::terminal::SignalParameter::Stl,
|
|
price: 118_000.0,
|
|
},
|
|
],
|
|
))
|
|
.await?;
|
|
|
|
terminal_server
|
|
.broadcast(pulse_wire::terminal::TerminalServerMessage::AddLog(
|
|
pulse_wire::terminal::EventLog {
|
|
kind: pulse_wire::terminal::LogKind::Debug,
|
|
name: "Engine".to_string(),
|
|
message: "Hello, world!".to_string(),
|
|
},
|
|
))
|
|
.await?;
|
|
|
|
println!("Ok");
|
|
}
|
|
}
|