diff --git a/pom.xml b/pom.xml
index 67e7af532..2b1ec7dc2 100755
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.binance.api
binance-api-client
- 1.0.1
+ 1.0.9
The MIT License
diff --git a/src/main/java/com/binance/api/client/BinanceApiAsyncRestClient.java b/src/main/java/com/binance/api/client/BinanceApiAsyncRestClient.java
index d0e3b1c01..fe20f0e2d 100755
--- a/src/main/java/com/binance/api/client/BinanceApiAsyncRestClient.java
+++ b/src/main/java/com/binance/api/client/BinanceApiAsyncRestClient.java
@@ -200,6 +200,8 @@ public interface BinanceApiAsyncRestClient {
*/
void cancelOrder(CancelOrderRequest cancelOrderRequest, BinanceApiCallback callback);
+ void cancelOpenOrders(CancelOrderRequest cancelOrderRequest, BinanceApiCallback> callback);
+
/**
* Get all open orders on a symbol (asynchronous).
*
diff --git a/src/main/java/com/binance/api/client/BinanceApiRestClient.java b/src/main/java/com/binance/api/client/BinanceApiRestClient.java
index ebe0b9667..475bf92bf 100755
--- a/src/main/java/com/binance/api/client/BinanceApiRestClient.java
+++ b/src/main/java/com/binance/api/client/BinanceApiRestClient.java
@@ -173,6 +173,8 @@ public interface BinanceApiRestClient {
*/
CancelOrderResponse cancelOrder(CancelOrderRequest cancelOrderRequest);
+ List cancelOpenOrders(CancelOrderRequest cancelOrderRequest);
+
/**
* Get all open orders on a symbol.
*
diff --git a/src/main/java/com/binance/api/client/domain/general/FilterType.java b/src/main/java/com/binance/api/client/domain/general/FilterType.java
index 57c2931db..31ed96fa4 100755
--- a/src/main/java/com/binance/api/client/domain/general/FilterType.java
+++ b/src/main/java/com/binance/api/client/domain/general/FilterType.java
@@ -19,8 +19,12 @@ public enum FilterType {
MARKET_LOT_SIZE,
MAX_NUM_ICEBERG_ORDERS,
MAX_POSITION,
+ PERCENT_PRICE_BY_SIDE,
// Exchange
EXCHANGE_MAX_NUM_ORDERS,
- EXCHANGE_MAX_ALGO_ORDERS
+ EXCHANGE_MAX_ALGO_ORDERS,
+ TRAILING_DELTA,
+
+ NOTIONAL
}
\ No newline at end of file
diff --git a/src/main/java/com/binance/api/client/domain/general/SymbolInfo.java b/src/main/java/com/binance/api/client/domain/general/SymbolInfo.java
index ca2723235..e2e197aae 100755
--- a/src/main/java/com/binance/api/client/domain/general/SymbolInfo.java
+++ b/src/main/java/com/binance/api/client/domain/general/SymbolInfo.java
@@ -5,7 +5,9 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.apache.commons.lang3.builder.ToStringBuilder;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* Symbol information (base/quote).
@@ -13,159 +15,161 @@
@JsonIgnoreProperties(ignoreUnknown = true)
public class SymbolInfo {
- private String symbol;
+ private String symbol;
- private SymbolStatus status;
+ private SymbolStatus status;
- private String baseAsset;
+ private String baseAsset;
- private Integer baseAssetPrecision;
+ private Integer baseAssetPrecision;
- private String quoteAsset;
+ private String quoteAsset;
- private Integer quotePrecision;
+ private Integer quotePrecision;
- private List orderTypes;
+ private List orderTypes;
- private boolean icebergAllowed;
+ private boolean icebergAllowed;
- private boolean ocoAllowed;
+ private boolean ocoAllowed;
- private boolean quoteOrderQtyMarketAllowed;
+ private boolean quoteOrderQtyMarketAllowed;
- private boolean isSpotTradingAllowed;
+ private boolean isSpotTradingAllowed;
- private boolean isMarginTradingAllowed;
+ private boolean isMarginTradingAllowed;
- private List filters;
+ private List filtersList;
+ private Map filtersMap;
- public String getSymbol() {
- return symbol;
- }
+ public String getSymbol() {
+ return symbol;
+ }
- public void setSymbol(String symbol) {
- this.symbol = symbol;
- }
+ public void setSymbol(String symbol) {
+ this.symbol = symbol;
+ }
- public SymbolStatus getStatus() {
- return status;
- }
+ public SymbolStatus getStatus() {
+ return status;
+ }
- public void setStatus(SymbolStatus status) {
- this.status = status;
- }
+ public void setStatus(SymbolStatus status) {
+ this.status = status;
+ }
- public String getBaseAsset() {
- return baseAsset;
- }
+ public String getBaseAsset() {
+ return baseAsset;
+ }
- public void setBaseAsset(String baseAsset) {
- this.baseAsset = baseAsset;
- }
+ public void setBaseAsset(String baseAsset) {
+ this.baseAsset = baseAsset;
+ }
- public Integer getBaseAssetPrecision() {
- return baseAssetPrecision;
- }
+ public Integer getBaseAssetPrecision() {
+ return baseAssetPrecision;
+ }
- public void setBaseAssetPrecision(Integer baseAssetPrecision) {
- this.baseAssetPrecision = baseAssetPrecision;
- }
+ public void setBaseAssetPrecision(Integer baseAssetPrecision) {
+ this.baseAssetPrecision = baseAssetPrecision;
+ }
- public String getQuoteAsset() {
- return quoteAsset;
- }
+ public String getQuoteAsset() {
+ return quoteAsset;
+ }
- public void setQuoteAsset(String quoteAsset) {
- this.quoteAsset = quoteAsset;
- }
+ public void setQuoteAsset(String quoteAsset) {
+ this.quoteAsset = quoteAsset;
+ }
- public Integer getQuotePrecision() {
- return quotePrecision;
- }
+ public Integer getQuotePrecision() {
+ return quotePrecision;
+ }
- public void setQuotePrecision(Integer quotePrecision) {
- this.quotePrecision = quotePrecision;
- }
+ public void setQuotePrecision(Integer quotePrecision) {
+ this.quotePrecision = quotePrecision;
+ }
- public List getOrderTypes() {
- return orderTypes;
- }
+ public List getOrderTypes() {
+ return orderTypes;
+ }
- public void setOrderTypes(List orderTypes) {
- this.orderTypes = orderTypes;
- }
+ public void setOrderTypes(List orderTypes) {
+ this.orderTypes = orderTypes;
+ }
- public boolean isIcebergAllowed() {
- return icebergAllowed;
- }
+ public boolean isIcebergAllowed() {
+ return icebergAllowed;
+ }
- public void setIcebergAllowed(boolean icebergAllowed) {
- this.icebergAllowed = icebergAllowed;
- }
+ public void setIcebergAllowed(boolean icebergAllowed) {
+ this.icebergAllowed = icebergAllowed;
+ }
- public boolean isOcoAllowed() {
- return ocoAllowed;
- }
+ public boolean isOcoAllowed() {
+ return ocoAllowed;
+ }
- public void setOcoAllowed(boolean ocoAllowed) {
- this.ocoAllowed = ocoAllowed;
- }
+ public void setOcoAllowed(boolean ocoAllowed) {
+ this.ocoAllowed = ocoAllowed;
+ }
- public boolean isQuoteOrderQtyMarketAllowed() {
- return quoteOrderQtyMarketAllowed;
- }
+ public boolean isQuoteOrderQtyMarketAllowed() {
+ return quoteOrderQtyMarketAllowed;
+ }
- public void setQuoteOrderQtyMarketAllowed(boolean quoteOrderQtyMarketAllowed) {
- this.quoteOrderQtyMarketAllowed = quoteOrderQtyMarketAllowed;
- }
+ public void setQuoteOrderQtyMarketAllowed(boolean quoteOrderQtyMarketAllowed) {
+ this.quoteOrderQtyMarketAllowed = quoteOrderQtyMarketAllowed;
+ }
- public boolean isSpotTradingAllowed() {
- return isSpotTradingAllowed;
- }
-
- public void setIsSpotTradingAllowed(boolean isSpotTradingAllowed) {
- this.isSpotTradingAllowed = isSpotTradingAllowed;
- }
-
- public boolean isMarginTradingAllowed() {
- return isMarginTradingAllowed;
- }
-
- public void setIsMarginTradingAllowed(boolean isMarginTradingAllowed) {
- this.isMarginTradingAllowed = isMarginTradingAllowed;
- }
-
- public List getFilters() {
- return filters;
- }
-
- public void setFilters(List filters) {
- this.filters = filters;
- }
-
- /**
- * @param filterType filter type to filter for.
- * @return symbol filter information for the provided filter type.
- */
- public SymbolFilter getSymbolFilter(FilterType filterType) {
- return filters.stream()
- .filter(symbolFilter -> symbolFilter.getFilterType() == filterType)
- .findFirst()
- .get();
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
- .append("symbol", symbol)
- .append("status", status)
- .append("baseAsset", baseAsset)
- .append("baseAssetPrecision", baseAssetPrecision)
- .append("quoteAsset", quoteAsset)
- .append("quotePrecision", quotePrecision)
- .append("orderTypes", orderTypes)
- .append("icebergAllowed", icebergAllowed)
- .append("filters", filters)
- .toString();
- }
+ public boolean isSpotTradingAllowed() {
+ return isSpotTradingAllowed;
+ }
+
+ public void setIsSpotTradingAllowed(boolean isSpotTradingAllowed) {
+ this.isSpotTradingAllowed = isSpotTradingAllowed;
+ }
+
+ public boolean isMarginTradingAllowed() {
+ return isMarginTradingAllowed;
+ }
+
+ public void setIsMarginTradingAllowed(boolean isMarginTradingAllowed) {
+ this.isMarginTradingAllowed = isMarginTradingAllowed;
+ }
+
+ public List getFilters() {
+ return filtersList;
+ }
+
+ public void setFilters(List filters) {
+ filtersList = filters;
+ filtersMap = new HashMap<>();
+ for (SymbolFilter filter : filters) {
+ filtersMap.put(filter.getFilterType(), filter);
+ }
+ }
+
+ /**
+ * @param filterType filter type to filter for.
+ * @return symbol filter information for the provided filter type.
+ */
+ public SymbolFilter getSymbolFilter(FilterType filterType) {
+ return filtersMap.get(filterType);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
+ .append("symbol", symbol)
+ .append("status", status)
+ .append("baseAsset", baseAsset)
+ .append("baseAssetPrecision", baseAssetPrecision)
+ .append("quoteAsset", quoteAsset)
+ .append("quotePrecision", quotePrecision)
+ .append("orderTypes", orderTypes)
+ .append("icebergAllowed", icebergAllowed)
+ .append("filters", filtersList)
+ .toString();
+ }
}
diff --git a/src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java b/src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java
index e6ea387b9..9c864b2ca 100755
--- a/src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java
+++ b/src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java
@@ -169,6 +169,12 @@ public void cancelOrder(CancelOrderRequest cancelOrderRequest, BinanceApiCallbac
cancelOrderRequest.getRecvWindow(), cancelOrderRequest.getTimestamp()).enqueue(new BinanceApiCallbackAdapter<>(callback));
}
+ @Override
+ public void cancelOpenOrders(CancelOrderRequest cancelOrderRequest, BinanceApiCallback> callback) {
+ binanceApiService.cancelOpenOrders(cancelOrderRequest.getSymbol(),
+ cancelOrderRequest.getRecvWindow(), cancelOrderRequest.getTimestamp()).enqueue(new BinanceApiCallbackAdapter<>(callback));
+ }
+
@Override
public void getOpenOrders(OrderRequest orderRequest, BinanceApiCallback> callback) {
binanceApiService.getOpenOrders(orderRequest.getSymbol(),
diff --git a/src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java b/src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java
index c80c7a06d..df1591ec7 100755
--- a/src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java
+++ b/src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java
@@ -21,261 +21,268 @@
*/
public class BinanceApiRestClientImpl implements BinanceApiRestClient {
- private final BinanceApiService binanceApiService;
-
- public BinanceApiRestClientImpl(String apiKey, String secret) {
- binanceApiService = createService(BinanceApiService.class, apiKey, secret);
- }
-
- // General endpoints
-
- @Override
- public void ping() {
- executeSync(binanceApiService.ping());
- }
-
- @Override
- public Long getServerTime() {
- return executeSync(binanceApiService.getServerTime()).getServerTime();
- }
-
- @Override
- public ExchangeInfo getExchangeInfo() {
- return executeSync(binanceApiService.getExchangeInfo());
- }
-
- @Override
- public List getAllAssets() {
- return executeSync(binanceApiService
- .getAllAssets(BinanceApiConfig.getAssetInfoApiBaseUrl() + "assetWithdraw/getAllAsset.html"));
- }
-
- // Market Data endpoints
-
- @Override
- public OrderBook getOrderBook(String symbol, Integer limit) {
- return executeSync(binanceApiService.getOrderBook(symbol, limit));
- }
-
- @Override
- public List getTrades(String symbol, Integer limit) {
- return executeSync(binanceApiService.getTrades(symbol, limit));
- }
-
- @Override
- public List getHistoricalTrades(String symbol, Integer limit, Long fromId) {
- return executeSync(binanceApiService.getHistoricalTrades(symbol, limit, fromId));
- }
-
- @Override
- public List getAggTrades(String symbol, String fromId, Integer limit, Long startTime, Long endTime) {
- return executeSync(binanceApiService.getAggTrades(symbol, fromId, limit, startTime, endTime));
- }
-
- @Override
- public List getAggTrades(String symbol) {
- return getAggTrades(symbol, null, null, null, null);
- }
-
- @Override
- public List getCandlestickBars(String symbol, CandlestickInterval interval, Integer limit,
- Long startTime, Long endTime) {
- return executeSync(
- binanceApiService.getCandlestickBars(symbol, interval.getIntervalId(), limit, startTime, endTime));
- }
-
- @Override
- public List getCandlestickBars(String symbol, CandlestickInterval interval) {
- return getCandlestickBars(symbol, interval, null, null, null);
- }
-
- @Override
- public TickerStatistics get24HrPriceStatistics(String symbol) {
- return executeSync(binanceApiService.get24HrPriceStatistics(symbol));
- }
-
- @Override
- public List getAll24HrPriceStatistics() {
- return executeSync(binanceApiService.getAll24HrPriceStatistics());
- }
-
- @Override
- public TickerPrice getPrice(String symbol) {
- return executeSync(binanceApiService.getLatestPrice(symbol));
- }
-
- @Override
- public List getAllPrices() {
- return executeSync(binanceApiService.getLatestPrices());
- }
-
- @Override
- public List getBookTickers() {
- return executeSync(binanceApiService.getBookTickers());
- }
-
- @Override
- public NewOrderResponse newOrder(NewOrder order) {
- final Call call;
- if (order.getQuoteOrderQty() == null) {
- call = binanceApiService.newOrder(order.getSymbol(), order.getSide(), order.getType(),
- order.getTimeInForce(), order.getQuantity(), order.getPrice(), order.getNewClientOrderId(),
- order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
- order.getTimestamp());
- } else {
- call = binanceApiService.newOrderQuoteQty(order.getSymbol(), order.getSide(), order.getType(),
- order.getTimeInForce(), order.getQuoteOrderQty(), order.getPrice(), order.getNewClientOrderId(),
- order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
- order.getTimestamp());
- }
- return executeSync(call);
- }
-
- @Override
- public void newOrderTest(NewOrder order) {
- executeSync(binanceApiService.newOrderTest(order.getSymbol(), order.getSide(), order.getType(),
- order.getTimeInForce(), order.getQuantity(), order.getPrice(), order.getNewClientOrderId(),
- order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
- order.getTimestamp()));
- }
-
- // Account endpoints
-
- @Override
- public Order getOrderStatus(OrderStatusRequest orderStatusRequest) {
- return executeSync(binanceApiService.getOrderStatus(orderStatusRequest.getSymbol(),
- orderStatusRequest.getOrderId(), orderStatusRequest.getOrigClientOrderId(),
- orderStatusRequest.getRecvWindow(), orderStatusRequest.getTimestamp()));
- }
-
- @Override
- public CancelOrderResponse cancelOrder(CancelOrderRequest cancelOrderRequest) {
- return executeSync(
- binanceApiService.cancelOrder(cancelOrderRequest.getSymbol(), cancelOrderRequest.getOrderId(),
- cancelOrderRequest.getOrigClientOrderId(), cancelOrderRequest.getNewClientOrderId(),
- cancelOrderRequest.getRecvWindow(), cancelOrderRequest.getTimestamp()));
- }
-
- @Override
- public List getOpenOrders(OrderRequest orderRequest) {
- return executeSync(binanceApiService.getOpenOrders(orderRequest.getSymbol(), orderRequest.getRecvWindow(),
- orderRequest.getTimestamp()));
- }
-
- @Override
- public List getAllOrders(AllOrdersRequest orderRequest) {
- return executeSync(binanceApiService.getAllOrders(orderRequest.getSymbol(), orderRequest.getOrderId(),
- orderRequest.getLimit(), orderRequest.getRecvWindow(), orderRequest.getTimestamp()));
- }
-
- @Override
- public NewOCOResponse newOCO(NewOCO oco) {
- return executeSync(binanceApiService.newOCO(oco.getSymbol(), oco.getListClientOrderId(), oco.getSide(),
- oco.getQuantity(), oco.getLimitClientOrderId(), oco.getPrice(), oco.getLimitIcebergQty(),
- oco.getStopClientOrderId(), oco.getStopPrice(), oco.getStopLimitPrice(), oco.getStopIcebergQty(),
- oco.getStopLimitTimeInForce(), oco.getNewOrderRespType(), oco.getRecvWindow(), oco.getTimestamp()));
- }
-
- @Override
- public CancelOrderListResponse cancelOrderList(CancelOrderListRequest cancelOrderListRequest) {
- return executeSync(binanceApiService.cancelOrderList(cancelOrderListRequest.getSymbol(), cancelOrderListRequest.getOrderListId(),
- cancelOrderListRequest.getListClientOrderId(), cancelOrderListRequest.getNewClientOrderId(),
- cancelOrderListRequest.getRecvWindow(), cancelOrderListRequest.getTimestamp()));
- }
-
- @Override
- public OrderList getOrderListStatus(OrderListStatusRequest orderListStatusRequest) {
- return executeSync(binanceApiService.getOrderListStatus(orderListStatusRequest.getOrderListId(), orderListStatusRequest.getOrigClientOrderId(),
- orderListStatusRequest.getRecvWindow(), orderListStatusRequest.getTimestamp()));
- }
-
- @Override
- public List getAllOrderList(AllOrderListRequest allOrderListRequest) {
- return executeSync(binanceApiService.getAllOrderList(allOrderListRequest.getFromId(), allOrderListRequest.getStartTime(),
- allOrderListRequest.getEndTime(), allOrderListRequest.getLimit(), allOrderListRequest.getRecvWindow(), allOrderListRequest.getTimestamp()));
- }
-
- @Override
- public Account getAccount(Long recvWindow, Long timestamp) {
- return executeSync(binanceApiService.getAccount(recvWindow, timestamp));
- }
-
- @Override
- public Account getAccount() {
- return getAccount(BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis());
- }
-
- @Override
- public List getMyTrades(String symbol, Integer limit, Long fromId, Long recvWindow, Long timestamp) {
- return executeSync(binanceApiService.getMyTrades(symbol, limit, fromId, recvWindow, timestamp));
- }
-
- @Override
- public List getMyTrades(String symbol, Integer limit) {
- return getMyTrades(symbol, limit, null, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis());
- }
-
- @Override
- public List getMyTrades(String symbol) {
- return getMyTrades(symbol, null, null, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis());
- }
-
- @Override
- public List getMyTrades(String symbol, Long fromId) {
- return getMyTrades(symbol, null, fromId, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis());
- }
-
- @Override
- public WithdrawResult withdraw(String asset, String address, String amount, String name, String addressTag) {
- return executeSync(binanceApiService.withdraw(asset, address, amount, name, addressTag,
- BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis()));
- }
-
- @Override
- public DustTransferResponse dustTranfer(List asset) {
- return executeSync(binanceApiService.dustTransfer(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis()));
- }
-
- @Override
- public DepositHistory getDepositHistory(String asset) {
- return executeSync(binanceApiService.getDepositHistory(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis()));
- }
-
- @Override
- public WithdrawHistory getWithdrawHistory(String asset) {
- return executeSync(binanceApiService.getWithdrawHistory(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis()));
- }
-
- @Override
- public List getSubAccountTransfers() {
- return executeSync(binanceApiService.getSubAccountTransfers(System.currentTimeMillis()));
- }
-
- @Override
- public DepositAddress getDepositAddress(String asset) {
- return executeSync(binanceApiService.getDepositAddress(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
- System.currentTimeMillis()));
- }
-
- // User stream endpoints
-
- @Override
- public String startUserDataStream() {
- return executeSync(binanceApiService.startUserDataStream()).toString();
- }
-
- @Override
- public void keepAliveUserDataStream(String listenKey) {
- executeSync(binanceApiService.keepAliveUserDataStream(listenKey));
- }
-
- @Override
- public void closeUserDataStream(String listenKey) {
- executeSync(binanceApiService.closeAliveUserDataStream(listenKey));
- }
+ private final BinanceApiService binanceApiService;
+
+ public BinanceApiRestClientImpl(String apiKey, String secret) {
+ binanceApiService = createService(BinanceApiService.class, apiKey, secret);
+ }
+
+ // General endpoints
+
+ @Override
+ public void ping() {
+ executeSync(binanceApiService.ping());
+ }
+
+ @Override
+ public Long getServerTime() {
+ return executeSync(binanceApiService.getServerTime()).getServerTime();
+ }
+
+ @Override
+ public ExchangeInfo getExchangeInfo() {
+ return executeSync(binanceApiService.getExchangeInfo());
+ }
+
+ @Override
+ public List getAllAssets() {
+ return executeSync(binanceApiService
+ .getAllAssets(BinanceApiConfig.getAssetInfoApiBaseUrl() + "assetWithdraw/getAllAsset.html"));
+ }
+
+ // Market Data endpoints
+
+ @Override
+ public OrderBook getOrderBook(String symbol, Integer limit) {
+ return executeSync(binanceApiService.getOrderBook(symbol, limit));
+ }
+
+ @Override
+ public List getTrades(String symbol, Integer limit) {
+ return executeSync(binanceApiService.getTrades(symbol, limit));
+ }
+
+ @Override
+ public List getHistoricalTrades(String symbol, Integer limit, Long fromId) {
+ return executeSync(binanceApiService.getHistoricalTrades(symbol, limit, fromId));
+ }
+
+ @Override
+ public List getAggTrades(String symbol, String fromId, Integer limit, Long startTime, Long endTime) {
+ return executeSync(binanceApiService.getAggTrades(symbol, fromId, limit, startTime, endTime));
+ }
+
+ @Override
+ public List getAggTrades(String symbol) {
+ return getAggTrades(symbol, null, null, null, null);
+ }
+
+ @Override
+ public List getCandlestickBars(String symbol, CandlestickInterval interval, Integer limit,
+ Long startTime, Long endTime) {
+ return executeSync(
+ binanceApiService.getCandlestickBars(symbol, interval.getIntervalId(), limit, startTime, endTime));
+ }
+
+ @Override
+ public List getCandlestickBars(String symbol, CandlestickInterval interval) {
+ return getCandlestickBars(symbol, interval, null, null, null);
+ }
+
+ @Override
+ public TickerStatistics get24HrPriceStatistics(String symbol) {
+ return executeSync(binanceApiService.get24HrPriceStatistics(symbol));
+ }
+
+ @Override
+ public List getAll24HrPriceStatistics() {
+ return executeSync(binanceApiService.getAll24HrPriceStatistics());
+ }
+
+ @Override
+ public TickerPrice getPrice(String symbol) {
+ return executeSync(binanceApiService.getLatestPrice(symbol));
+ }
+
+ @Override
+ public List getAllPrices() {
+ return executeSync(binanceApiService.getLatestPrices());
+ }
+
+ @Override
+ public List getBookTickers() {
+ return executeSync(binanceApiService.getBookTickers());
+ }
+
+ @Override
+ public NewOrderResponse newOrder(NewOrder order) {
+ final Call call;
+ if (order.getQuoteOrderQty() == null) {
+ call = binanceApiService.newOrder(order.getSymbol(), order.getSide(), order.getType(),
+ order.getTimeInForce(), order.getQuantity(), order.getPrice(), order.getNewClientOrderId(),
+ order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
+ order.getTimestamp());
+ } else {
+ call = binanceApiService.newOrderQuoteQty(order.getSymbol(), order.getSide(), order.getType(),
+ order.getTimeInForce(), order.getQuoteOrderQty(), order.getPrice(), order.getNewClientOrderId(),
+ order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
+ order.getTimestamp());
+ }
+ return executeSync(call);
+ }
+
+ @Override
+ public void newOrderTest(NewOrder order) {
+ executeSync(binanceApiService.newOrderTest(order.getSymbol(), order.getSide(), order.getType(),
+ order.getTimeInForce(), order.getQuantity(), order.getPrice(), order.getNewClientOrderId(),
+ order.getStopPrice(), order.getIcebergQty(), order.getNewOrderRespType(), order.getRecvWindow(),
+ order.getTimestamp()));
+ }
+
+ // Account endpoints
+
+ @Override
+ public Order getOrderStatus(OrderStatusRequest orderStatusRequest) {
+ return executeSync(binanceApiService.getOrderStatus(orderStatusRequest.getSymbol(),
+ orderStatusRequest.getOrderId(), orderStatusRequest.getOrigClientOrderId(),
+ orderStatusRequest.getRecvWindow(), orderStatusRequest.getTimestamp()));
+ }
+
+ @Override
+ public CancelOrderResponse cancelOrder(CancelOrderRequest cancelOrderRequest) {
+ return executeSync(
+ binanceApiService.cancelOrder(cancelOrderRequest.getSymbol(), cancelOrderRequest.getOrderId(),
+ cancelOrderRequest.getOrigClientOrderId(), cancelOrderRequest.getNewClientOrderId(),
+ cancelOrderRequest.getRecvWindow(), cancelOrderRequest.getTimestamp()));
+ }
+
+ @Override
+ public List cancelOpenOrders(CancelOrderRequest cancelOrderRequest) {
+ return executeSync(
+ binanceApiService.cancelOpenOrders(cancelOrderRequest.getSymbol(),
+ cancelOrderRequest.getRecvWindow(), cancelOrderRequest.getTimestamp()));
+ }
+
+ @Override
+ public List getOpenOrders(OrderRequest orderRequest) {
+ return executeSync(binanceApiService.getOpenOrders(orderRequest.getSymbol(), orderRequest.getRecvWindow(),
+ orderRequest.getTimestamp()));
+ }
+
+ @Override
+ public List getAllOrders(AllOrdersRequest orderRequest) {
+ return executeSync(binanceApiService.getAllOrders(orderRequest.getSymbol(), orderRequest.getOrderId(),
+ orderRequest.getLimit(), orderRequest.getRecvWindow(), orderRequest.getTimestamp()));
+ }
+
+ @Override
+ public NewOCOResponse newOCO(NewOCO oco) {
+ return executeSync(binanceApiService.newOCO(oco.getSymbol(), oco.getListClientOrderId(), oco.getSide(),
+ oco.getQuantity(), oco.getLimitClientOrderId(), oco.getPrice(), oco.getLimitIcebergQty(),
+ oco.getStopClientOrderId(), oco.getStopPrice(), oco.getStopLimitPrice(), oco.getStopIcebergQty(),
+ oco.getStopLimitTimeInForce(), oco.getNewOrderRespType(), oco.getRecvWindow(), oco.getTimestamp()));
+ }
+
+ @Override
+ public CancelOrderListResponse cancelOrderList(CancelOrderListRequest cancelOrderListRequest) {
+ return executeSync(binanceApiService.cancelOrderList(cancelOrderListRequest.getSymbol(), cancelOrderListRequest.getOrderListId(),
+ cancelOrderListRequest.getListClientOrderId(), cancelOrderListRequest.getNewClientOrderId(),
+ cancelOrderListRequest.getRecvWindow(), cancelOrderListRequest.getTimestamp()));
+ }
+
+ @Override
+ public OrderList getOrderListStatus(OrderListStatusRequest orderListStatusRequest) {
+ return executeSync(binanceApiService.getOrderListStatus(orderListStatusRequest.getOrderListId(), orderListStatusRequest.getOrigClientOrderId(),
+ orderListStatusRequest.getRecvWindow(), orderListStatusRequest.getTimestamp()));
+ }
+
+ @Override
+ public List getAllOrderList(AllOrderListRequest allOrderListRequest) {
+ return executeSync(binanceApiService.getAllOrderList(allOrderListRequest.getFromId(), allOrderListRequest.getStartTime(),
+ allOrderListRequest.getEndTime(), allOrderListRequest.getLimit(), allOrderListRequest.getRecvWindow(), allOrderListRequest.getTimestamp()));
+ }
+
+ @Override
+ public Account getAccount(Long recvWindow, Long timestamp) {
+ return executeSync(binanceApiService.getAccount(recvWindow, timestamp));
+ }
+
+ @Override
+ public Account getAccount() {
+ return getAccount(BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis());
+ }
+
+ @Override
+ public List getMyTrades(String symbol, Integer limit, Long fromId, Long recvWindow, Long timestamp) {
+ return executeSync(binanceApiService.getMyTrades(symbol, limit, fromId, recvWindow, timestamp));
+ }
+
+ @Override
+ public List getMyTrades(String symbol, Integer limit) {
+ return getMyTrades(symbol, limit, null, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis());
+ }
+
+ @Override
+ public List getMyTrades(String symbol) {
+ return getMyTrades(symbol, null, null, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis());
+ }
+
+ @Override
+ public List getMyTrades(String symbol, Long fromId) {
+ return getMyTrades(symbol, null, fromId, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis());
+ }
+
+ @Override
+ public WithdrawResult withdraw(String asset, String address, String amount, String name, String addressTag) {
+ return executeSync(binanceApiService.withdraw(asset, address, amount, name, addressTag,
+ BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis()));
+ }
+
+ @Override
+ public DustTransferResponse dustTranfer(List asset) {
+ return executeSync(binanceApiService.dustTransfer(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis()));
+ }
+
+ @Override
+ public DepositHistory getDepositHistory(String asset) {
+ return executeSync(binanceApiService.getDepositHistory(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis()));
+ }
+
+ @Override
+ public WithdrawHistory getWithdrawHistory(String asset) {
+ return executeSync(binanceApiService.getWithdrawHistory(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis()));
+ }
+
+ @Override
+ public List getSubAccountTransfers() {
+ return executeSync(binanceApiService.getSubAccountTransfers(System.currentTimeMillis()));
+ }
+
+ @Override
+ public DepositAddress getDepositAddress(String asset) {
+ return executeSync(binanceApiService.getDepositAddress(asset, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW,
+ System.currentTimeMillis()));
+ }
+
+ // User stream endpoints
+
+ @Override
+ public String startUserDataStream() {
+ return executeSync(binanceApiService.startUserDataStream()).toString();
+ }
+
+ @Override
+ public void keepAliveUserDataStream(String listenKey) {
+ executeSync(binanceApiService.keepAliveUserDataStream(listenKey));
+ }
+
+ @Override
+ public void closeUserDataStream(String listenKey) {
+ executeSync(binanceApiService.closeAliveUserDataStream(listenKey));
+ }
}
diff --git a/src/main/java/com/binance/api/client/impl/BinanceApiService.java b/src/main/java/com/binance/api/client/impl/BinanceApiService.java
index 5825f9844..5a145626a 100755
--- a/src/main/java/com/binance/api/client/impl/BinanceApiService.java
+++ b/src/main/java/com/binance/api/client/impl/BinanceApiService.java
@@ -110,6 +110,11 @@ Call cancelOrder(@Query("symbol") String symbol, @Query("or
@Query("origClientOrderId") String origClientOrderId, @Query("newClientOrderId") String newClientOrderId,
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
+ @Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
+ @DELETE("/api/v3/openOrders")
+ Call> cancelOpenOrders(@Query("symbol") String symbol,
+@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
@GET("/api/v3/openOrders")
Call> getOpenOrders(@Query("symbol") String symbol, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
@@ -123,8 +128,8 @@ Call> getAllOrders(@Query("symbol") String symbol, @Query("orderId")
@POST("/api/v3/order/oco")
Call newOCO(@Query("symbol") String symbol, @Query("listClientOrderId") String listClientOrderId, @Query("side") OrderSide side,
@Query("quantity") String quantity, @Query("limitClientOrderId") String limitClientOrderId, @Query("price") String price,
- @Query("limitIcebergQty") String limitIcebergQty, @Query("stopClientOrderId")String stopClientOrderId, @Query("stopPrice") String stopPrice,
- @Query("stopLimitPrice")String stopLimitPrice, @Query("stopIcebergQty") String stopIcebergQty, @Query("stopLimitTimeInForce") TimeInForce stopLimitTimeInForce,
+ @Query("limitIcebergQty") String limitIcebergQty, @Query("stopClientOrderId") String stopClientOrderId, @Query("stopPrice") String stopPrice,
+ @Query("stopLimitPrice") String stopLimitPrice, @Query("stopIcebergQty") String stopIcebergQty, @Query("stopLimitTimeInForce") TimeInForce stopLimitTimeInForce,
@Query("newOrderRespType") NewOrderResponseType newOrderRespType, @Query("recvWindow") Long recvWindow, @Query("timestamp") long timestamp);
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)