diff --git a/xchange-gateio-v4/src/main/java/org/knowm/xchange/gateio/GateioAdapters.java b/xchange-gateio-v4/src/main/java/org/knowm/xchange/gateio/GateioAdapters.java index 8cfa3ae57fd..fa9ff63050c 100644 --- a/xchange-gateio-v4/src/main/java/org/knowm/xchange/gateio/GateioAdapters.java +++ b/xchange-gateio-v4/src/main/java/org/knowm/xchange/gateio/GateioAdapters.java @@ -103,7 +103,7 @@ public GateioOrder toGateioOrder(MarketOrder marketOrder) { return GateioOrder.builder() .currencyPair((CurrencyPair) marketOrder.getInstrument()) .side(marketOrder.getType()) - .clientOrderId(marketOrder.getUserReference()) + .clientOrderId("t-"+marketOrder.getUserReference()) .account("spot") .type("market") .timeInForce("ioc") @@ -116,7 +116,7 @@ public GateioOrder toGateioOrder(LimitOrder limitOrder) { return GateioOrder.builder() .currencyPair((CurrencyPair) limitOrder.getInstrument()) .side(limitOrder.getType()) - .clientOrderId(limitOrder.getUserReference()) + .clientOrderId("t-"+limitOrder.getUserReference()) .account("spot") .type("limit") .timeInForce("gtc") @@ -147,8 +147,12 @@ public Order toOrder(GateioOrder gateioOrder) { builder.cumulativeAmount(gateioOrder.getFilledTotalQuote()); } else if (orderType == OrderType.ASK) { - BigDecimal filledAssetAmount = gateioOrder.getFilledTotalQuote().divide(gateioOrder.getAvgDealPrice(), MathContext.DECIMAL32); - builder.cumulativeAmount(filledAssetAmount); + if(gateioOrder.getAvgDealPrice()==null||gateioOrder.getFilledTotalQuote()==null){ + builder.cumulativeAmount(BigDecimal.ZERO); + }else { + BigDecimal filledAssetAmount = gateioOrder.getFilledTotalQuote().divide(gateioOrder.getAvgDealPrice(), MathContext.DECIMAL32); + builder.cumulativeAmount(filledAssetAmount); + } } else { throw new IllegalArgumentException("Can't map " + orderType); diff --git a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingAdapters.java b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingAdapters.java index 4b5dd913dc7..e3da0b187d4 100644 --- a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingAdapters.java +++ b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingAdapters.java @@ -94,7 +94,7 @@ public OrderBook toOrderBook(GateioOrderBookNotification notification) { Stream asks = orderBookPayload.getAsks().stream() .map(priceSizeEntry -> new LimitOrder(OrderType.ASK, priceSizeEntry.getSize(), orderBookPayload.getCurrencyPair(), null, null, priceSizeEntry.getPrice())); - Stream bids = orderBookPayload.getAsks().stream() + Stream bids = orderBookPayload.getBids().stream() .map(priceSizeEntry -> new LimitOrder(OrderType.BID, priceSizeEntry.getSize(), orderBookPayload.getCurrencyPair(), null, null, priceSizeEntry.getPrice())); return new OrderBook(Date.from(orderBookPayload.getTimestamp()), asks, bids); diff --git a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingExchange.java b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingExchange.java index c36b8f5a9e9..f913441054f 100644 --- a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingExchange.java +++ b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingExchange.java @@ -16,12 +16,13 @@ public class GateioStreamingExchange extends GateioExchange implements Streaming private StreamingMarketDataService streamingMarketDataService; private StreamingTradeService streamingTradeService; private StreamingAccountService streamingAccountService; + public static final String WS_CHANNEL_URI = "wss://api.gateio.ws/ws/v4/"; public GateioStreamingExchange() {} @Override public Completable connect(ProductSubscription... args) { - streamingService = new GateioStreamingService(exchangeSpecification.getSslUri(), exchangeSpecification.getApiKey(), exchangeSpecification.getSecretKey()); + streamingService = new GateioStreamingService(getApiUrl(), exchangeSpecification.getApiKey(), exchangeSpecification.getSecretKey()); applyStreamingSpecification(exchangeSpecification, streamingService); streamingMarketDataService = new GateioStreamingMarketDataService(streamingService); streamingTradeService = new GateioStreamingTradeService(streamingService); @@ -30,6 +31,11 @@ public Completable connect(ProductSubscription... args) { return streamingService.connect(); } + + private String getApiUrl() { + return WS_CHANNEL_URI; + } + @Override public Completable disconnect() { GateioStreamingService service = streamingService; diff --git a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingMarketDataService.java b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingMarketDataService.java index 462650cfb96..3f07b1c6ee5 100644 --- a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingMarketDataService.java +++ b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/GateioStreamingMarketDataService.java @@ -35,7 +35,8 @@ public GateioStreamingMarketDataService(GateioStreamingService service) { @Override public Observable getOrderBook(CurrencyPair currencyPair, Object... args) { Integer orderBookLevel = (Integer) ArrayUtils.get(args, 0, MAX_DEPTH_DEFAULT); - Duration updateSpeed = (Duration) ArrayUtils.get(args, 1, UPDATE_INTERVAL_DEFAULT); + Integer updateTime = Integer.parseInt(ArrayUtils.get(args, 1, UPDATE_INTERVAL_DEFAULT).toString()); + Duration updateSpeed = Duration.ofMillis(updateTime); return service .subscribeChannel(Config.SPOT_ORDERBOOK_CHANNEL, new Object[]{currencyPair, orderBookLevel, updateSpeed}) .map(GateioOrderBookNotification.class::cast) diff --git a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/config/Config.java b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/config/Config.java index 0d373586d85..ea987643f3a 100644 --- a/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/config/Config.java +++ b/xchange-stream-gateio/src/main/java/info/bitrich/xchangestream/gateio/config/Config.java @@ -13,7 +13,7 @@ @Data public final class Config { - public static final String V4_URL = "wss://api.gateio.ws/ws/v4/"; + public static final String V4_URL = "https://api.gateio.ws/"; public static final String SPOT_ORDERBOOK_CHANNEL = "spot.order_book"; public static final String SPOT_TRADES_CHANNEL = "spot.trades";