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)
.await
{
// Invalid order
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!(
"order rejected: {}",
e.into_iter()
"order rejected by HyperLiquid: {}",
o.into_iter()
.filter_map(|res| {
if let OrderResponseStatus::Error(e) = res {
Some(e)
@@ -100,6 +97,10 @@ impl Engine {
));
}
Ok(_) => {
self.risk_engine.order_placed(engine_order).await;
}
e => {
e?;
}
+8 -6
View File
@@ -163,17 +163,19 @@ impl StrategyEngine {
continue;
}
match engine.execute_signal(&signal).await {
Ok(_) => engine.signals.lock().await.push(Ok(signal)),
let result = match engine.execute_signal(&signal).await {
Ok(_) => Ok(signal),
Err(e) => {
engine.signals.lock().await.push(Err(signal));
engine
.terminal_server
.error("engine::order", &format!("Failed to execute signal: {e}"))
.await?
.await?;
Err(signal)
}
}
};
engine.signals.lock().await.push(result);
engine
.terminal_server