diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/AscendexAdapters.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/AscendexAdapters.java index 3a832984c50..df3d6abd573 100644 --- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/AscendexAdapters.java +++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/AscendexAdapters.java @@ -13,6 +13,7 @@ import org.knowm.xchange.ascendex.dto.marketdata.AscendexMarketTradesDto; import org.knowm.xchange.ascendex.dto.marketdata.AscendexOrderbookDto; import org.knowm.xchange.ascendex.dto.marketdata.AscendexProductDto; +import org.knowm.xchange.ascendex.dto.trade.AscendexCancelOrderRequestPayload; import org.knowm.xchange.ascendex.dto.trade.AscendexFlags; import org.knowm.xchange.ascendex.dto.trade.AscendexOpenOrdersResponse; import org.knowm.xchange.ascendex.dto.trade.AscendexPlaceOrderRequestPayload; @@ -33,6 +34,7 @@ import org.knowm.xchange.dto.trade.UserTrade; import org.knowm.xchange.dto.trade.UserTrades; import org.knowm.xchange.instrument.Instrument; +import org.knowm.xchange.service.trade.params.DefaultCancelOrderByInstrumentAndIdParams; import org.knowm.xchange.utils.jackson.CurrencyPairDeserializer; public class AscendexAdapters { @@ -111,6 +113,16 @@ public static AscendexPlaceOrderRequestPayload adaptLimitOrderToAscendexPlaceOrd null); } + public static AscendexCancelOrderRequestPayload adaptCancelOrderRequestToAscendexCancelOrderRequestPayload( + DefaultCancelOrderByInstrumentAndIdParams params + ) { + return new AscendexCancelOrderRequestPayload( + params.getOrderId(), + params.getInstrument().toString(), + Date.from(Instant.now()).toInstant().toEpochMilli() + ); + } + public static UserTrades adaptUserTrades( List ascendexOrderHistoryResponse) { List userTrades = new ArrayList<>(ascendexOrderHistoryResponse.size()); diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java index 9e79904e902..69a9d772374 100644 --- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java +++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/IAscendexAuthenticated.java @@ -14,6 +14,7 @@ import jakarta.ws.rs.core.MediaType; import org.knowm.xchange.ascendex.dto.AscendexResponse; import org.knowm.xchange.ascendex.dto.account.AscendexCashAccountBalanceDto; +import org.knowm.xchange.ascendex.dto.trade.AscendexCancelOrderRequestPayload; import org.knowm.xchange.ascendex.dto.trade.AscendexOpenOrdersResponse; import org.knowm.xchange.ascendex.dto.trade.AscendexOrderResponse; import org.knowm.xchange.ascendex.dto.trade.AscendexPlaceOrderRequestPayload; @@ -49,9 +50,7 @@ AscendexResponse cancelOrder( @HeaderParam("x-auth-timestamp") Long nonce, @HeaderParam("x-auth-signature") ParamsDigest signature, @PathParam("account-category") String accountCategory, - @QueryParam("orderId") String orderId, - @QueryParam("symbol") String symbol, - @QueryParam("time") Long time) + AscendexCancelOrderRequestPayload payload) throws IOException; @DELETE diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeService.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeService.java index 60ccf9af6f3..4981ac916b7 100644 --- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeService.java +++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeService.java @@ -2,18 +2,17 @@ import java.io.IOException; import java.util.Collection; +import java.util.Objects; + import org.knowm.xchange.Exchange; import org.knowm.xchange.ascendex.AscendexAdapters; +import org.knowm.xchange.ascendex.dto.trade.AscendexOrderResponse; import org.knowm.xchange.dto.Order; import org.knowm.xchange.dto.trade.LimitOrder; import org.knowm.xchange.dto.trade.OpenOrders; import org.knowm.xchange.dto.trade.UserTrades; import org.knowm.xchange.service.trade.TradeService; -import org.knowm.xchange.service.trade.params.CancelOrderByCurrencyPair; -import org.knowm.xchange.service.trade.params.CancelOrderParams; -import org.knowm.xchange.service.trade.params.TradeHistoryParamCurrencyPair; -import org.knowm.xchange.service.trade.params.TradeHistoryParams; -import org.knowm.xchange.service.trade.params.TradeHistoryParamsAll; +import org.knowm.xchange.service.trade.params.*; import org.knowm.xchange.service.trade.params.orders.*; public class AscendexTradeService extends AscendexTradeServiceRaw implements TradeService { @@ -32,6 +31,20 @@ public String placeLimitOrder(LimitOrder limitOrder) throws IOException { @Override public boolean cancelOrder(CancelOrderParams orderParams) throws IOException { + if (orderParams instanceof DefaultCancelOrderByInstrumentAndIdParams) { + AscendexOrderResponse response = cancelAscendexOrder( + AscendexAdapters.adaptCancelOrderRequestToAscendexCancelOrderRequestPayload( + (DefaultCancelOrderByInstrumentAndIdParams) orderParams + ) + ); + return Objects.equals(response.getStatus(), "Ack"); + } else { + throw new IOException( + "Params must be instanceOf DefaultCancelOrderByInstrumentAndIdParams in order to cancel an order on Ascendex."); + } + } + + public boolean cancelAllOrdersByCurrencyPair(CancelOrderParams orderParams) throws IOException { if (orderParams instanceof CancelOrderByCurrencyPair) { cancelAllAscendexOrdersBySymbol( ((CancelOrderByCurrencyPair) orderParams).getCurrencyPair().toString()); diff --git a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeServiceRaw.java b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeServiceRaw.java index 332cbe2afa7..4cc878e6436 100644 --- a/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeServiceRaw.java +++ b/xchange-ascendex/src/main/java/org/knowm/xchange/ascendex/service/AscendexTradeServiceRaw.java @@ -36,9 +36,7 @@ public AscendexOrderResponse cancelAscendexOrder(AscendexCancelOrderRequestPaylo exchange.getNonceFactory().createValue(), signatureCreator, ACCOUNT_CASH_CATEGORY, - payload.getOrderId(), - payload.getSymbol(), - payload.getTime())); + payload)); } public AscendexOrderResponse cancelAllAscendexOrdersBySymbol(String symbol)