From 99f0320a94acc7b9801a9ff199f4658fe2574c53 Mon Sep 17 00:00:00 2001 From: ashleychandy Date: Wed, 13 May 2026 16:36:09 +0000 Subject: [PATCH] avoid cloning OrderCreation in post_order handler --- crates/orderbook/src/api/post_order.rs | 36 ++++++++++++++++++-------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/crates/orderbook/src/api/post_order.rs b/crates/orderbook/src/api/post_order.rs index 9db253913b..94bb1a0f35 100644 --- a/crates/orderbook/src/api/post_order.rs +++ b/crates/orderbook/src/api/post_order.rs @@ -26,20 +26,34 @@ pub async fn post_order_handler( State(state): State>, Json(order): Json, ) -> Response { - state - .orderbook - .add_order(order.clone()) - .await - .map(|(order_uid, quote_metadata)| { + let from = order.from; + let sell_token = order.sell_token; + let buy_token = order.buy_token; + let kind = order.kind; + let sell_amount = order.sell_amount; + let buy_amount = order.buy_amount; + + match state.orderbook.add_order(order).await { + Ok((order_uid, quote_metadata)) => { let quote_id = quote_metadata.as_ref().and_then(|q| q.id); let quote_solver = quote_metadata.as_ref().map(|q| q.solver); tracing::debug!(%order_uid, ?quote_id, ?quote_solver, "order created"); - (StatusCode::CREATED, Json(order_uid)) - }) - .inspect_err(|err| { - tracing::debug!(?order, ?err, "error creating order"); - }) - .into_response() + (StatusCode::CREATED, Json(order_uid)).into_response() + } + Err(err) => { + tracing::debug!( + ?from, + ?sell_token, + ?buy_token, + ?kind, + ?sell_amount, + ?buy_amount, + ?err, + "error creating order" + ); + err.into_response() + } + } } pub struct PartialValidationErrorWrapper(pub PartialValidationError);