Fix order handling
This commit is contained in:
@@ -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?;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user