From 49c0dde77e37e005decbc2fa0f058f3a2bfffe8b Mon Sep 17 00:00:00 2001 From: lemunozm Date: Wed, 17 Apr 2024 21:23:03 +0200 Subject: [PATCH] add fix --- pallets/swaps/src/lib.rs | 40 +++++++++++++++++++++++--------------- pallets/swaps/src/tests.rs | 2 +- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/pallets/swaps/src/lib.rs b/pallets/swaps/src/lib.rs index 1ab5825c3d..fbd52e27a2 100644 --- a/pallets/swaps/src/lib.rs +++ b/pallets/swaps/src/lib.rs @@ -145,20 +145,24 @@ pub mod pallet { ) -> Result<(SwapStatus, Option), DispatchError> { match over_order_id { None => { - let order_id = T::OrderBook::place_order( - who.clone(), - new_swap.currency_in, - new_swap.currency_out, - new_swap.amount_out, - OrderRatio::Market, - )?; + let order_id = if !new_swap.amount_out.is_zero() { + Some(T::OrderBook::place_order( + who.clone(), + new_swap.currency_in, + new_swap.currency_out, + new_swap.amount_out, + OrderRatio::Market, + )?) + } else { + None + }; Ok(( SwapStatus { swapped: T::Balance::zero(), pending: new_swap.amount_out, }, - Some(order_id), + order_id, )) } Some(order_id) => { @@ -228,20 +232,24 @@ pub mod pallet { let amount_to_swap = new_swap.amount_out.ensure_sub(inverse_swap_amount_in)?; - let order_id = T::OrderBook::place_order( - who.clone(), - new_swap.currency_in, - new_swap.currency_out, - amount_to_swap, - OrderRatio::Market, - )?; + let order_id = if !amount_to_swap.is_zero() { + Some(T::OrderBook::place_order( + who.clone(), + new_swap.currency_in, + new_swap.currency_out, + amount_to_swap, + OrderRatio::Market, + )?) + } else { + None + }; Ok(( SwapStatus { swapped: inverse_swap.amount_out, pending: amount_to_swap, }, - Some(order_id), + order_id, )) } } diff --git a/pallets/swaps/src/tests.rs b/pallets/swaps/src/tests.rs index 560804e3bf..9cae8f94a5 100644 --- a/pallets/swaps/src/tests.rs +++ b/pallets/swaps/src/tests.rs @@ -508,7 +508,7 @@ mod zero_amount_order { Swap { currency_in: CURRENCY_B, currency_out: CURRENCY_A, - amount_out: AMOUNT, + amount_out: 0, }, ), SwapStatus {