Fix order handling

This commit is contained in:
2026-08-02 03:13:01 +02:00
parent e61aa231ea
commit 1a1b68ff4f
2 changed files with 15 additions and 12 deletions
+7 -6
View File
@@ -80,14 +80,11 @@ impl Engine {
.place(&acc.private_key.0, order, nonce, None, None) .place(&acc.private_key.0, order, nonce, None, None)
.await .await
{ {
// Invalid order
Ok(o) if o.iter().any(|o| matches!(o, OrderResponseStatus::Error(_))) => { Ok(o) if o.iter().any(|o| matches!(o, OrderResponseStatus::Error(_))) => {
self.risk_engine.order_placed(engine_order).await;
}
Ok(e) => {
return Err(anyhow::anyhow!( return Err(anyhow::anyhow!(
"order rejected: {}", "order rejected by HyperLiquid: {}",
e.into_iter() o.into_iter()
.filter_map(|res| { .filter_map(|res| {
if let OrderResponseStatus::Error(e) = res { if let OrderResponseStatus::Error(e) = res {
Some(e) Some(e)
@@ -100,6 +97,10 @@ impl Engine {
)); ));
} }
Ok(_) => {
self.risk_engine.order_placed(engine_order).await;
}
e => { e => {
e?; e?;
} }
+8 -6
View File
@@ -163,17 +163,19 @@ impl StrategyEngine {
continue; continue;
} }
match engine.execute_signal(&signal).await { let result = match engine.execute_signal(&signal).await {
Ok(_) => engine.signals.lock().await.push(Ok(signal)), Ok(_) => Ok(signal),
Err(e) => { Err(e) => {
engine.signals.lock().await.push(Err(signal));
engine engine
.terminal_server .terminal_server
.error("engine::order", &format!("Failed to execute signal: {e}")) .error("engine::order", &format!("Failed to execute signal: {e}"))
.await? .await?;
}
Err(signal)
} }
};
engine.signals.lock().await.push(result);
engine engine
.terminal_server .terminal_server