diff --git a/README.md b/README.md
index e90c3ed4c..ee9bf1795 100755
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ binance-java-api is a lightweight Java library for interacting with the [Binance
com.binance.api
binance-api-client
- 1.0.0
+ 1.0.2
```
diff --git a/pom.xml b/pom.xml
index 67e7af532..a57d63dbf 100755
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.binance.api
binance-api-client
- 1.0.1
+ 1.0.2
The MIT License
diff --git a/src/main/java/com/binance/api/client/BinanceApiSwapRestClient.java b/src/main/java/com/binance/api/client/BinanceApiSwapRestClient.java
index f7baf2c2e..eb6f053b6 100755
--- a/src/main/java/com/binance/api/client/BinanceApiSwapRestClient.java
+++ b/src/main/java/com/binance/api/client/BinanceApiSwapRestClient.java
@@ -2,8 +2,6 @@
import com.binance.api.client.domain.SwapRemoveType;
import com.binance.api.client.domain.account.*;
-import retrofit2.Call;
-import retrofit2.http.Query;
import java.util.List;
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..1877ff1e7 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,
+ NOTIONAL,
+ TRAILING_DELTA,
+ PERCENT_PRICE_BY_SIDE,
// Exchange
EXCHANGE_MAX_NUM_ORDERS,
- EXCHANGE_MAX_ALGO_ORDERS
+ EXCHANGE_MAX_ALGO_ORDERS,
+
}
\ No newline at end of file
diff --git a/src/main/java/com/binance/api/client/domain/general/SymbolFilter.java b/src/main/java/com/binance/api/client/domain/general/SymbolFilter.java
index e6a8b98c8..6ed2a8610 100755
--- a/src/main/java/com/binance/api/client/domain/general/SymbolFilter.java
+++ b/src/main/java/com/binance/api/client/domain/general/SymbolFilter.java
@@ -8,6 +8,8 @@
* The PRICE_FILTER defines the price rules for a symbol.
*
* The LOT_SIZE filter defines the quantity (aka "lots" in auction terms) rules for a symbol.
+ *
+ * The NOTIONAL filter defines the acceptable notional range allowed for an order on a symbol.
*
* The MIN_NOTIONAL filter defines the minimum notional value allowed for an order on a symbol. An order's notional value is the price * quantity.
*
@@ -77,6 +79,30 @@ public class SymbolFilter {
*/
private String limit;
+ private String minTrailingAboveDelta;
+
+ private String maxTrailingAboveDelta;
+
+ private String minTrailingBelowDelta;
+
+ private String maxTrailingBelowDelta;
+
+ private String bidMultiplierUp;
+
+ private String bidMultiplierDown;
+
+ private String askMultiplierUp;
+
+ private String askMultiplierDown;
+
+ private String avgPriceMins;
+
+ private String applyMinToMarket;
+
+ private String applyMaxToMarket;
+
+ private String maxNotional;
+
public FilterType getFilterType() {
return filterType;
}
@@ -157,4 +183,101 @@ public String getLimit() {
public void setLimit(String limit) {
this.limit = limit;
}
+
+ public String getMinTrailingAboveDelta() {
+ return this.minTrailingAboveDelta;
+ }
+
+ public void setMinTrailingAboveDelta(String trailingDelta) {
+ this.minTrailingAboveDelta = trailingDelta;
+ }
+
+ public String getMaxTrailingAboveDelta() {
+ return this.maxTrailingAboveDelta;
+ }
+
+ public void setMaxTrailingAboveDelta(String trailingDelta) {
+ this.maxTrailingAboveDelta = trailingDelta;
+ }
+
+ public String getMinTrailingBelowDelta() {
+ return this.minTrailingBelowDelta;
+ }
+
+ public void setMinTrailingBelowDelta(String trailingDelta) {
+ this.minTrailingBelowDelta = trailingDelta;
+ }
+
+ public String getMaxTrailingBelowDelta() {
+ return this.maxTrailingBelowDelta;
+ }
+
+ public void setMaxTrailingBelowDelta(String trailingDelta) {
+ this.maxTrailingBelowDelta = trailingDelta;
+ }
+
+ public String getBidMultiplierUp() {
+ return bidMultiplierUp;
+ }
+
+ public void setBidMultiplierUp(String bidMultiplierUp) {
+ this.bidMultiplierUp = bidMultiplierUp;
+ }
+
+ public String getBidMultiplierDown() {
+ return bidMultiplierDown;
+ }
+
+ public void setBidMultiplierDown(String bidMultiplierDown) {
+ this.bidMultiplierDown = bidMultiplierDown;
+ }
+
+ public String getAskMultiplierUp() {
+ return askMultiplierUp;
+ }
+
+ public void setAskMultiplierUp(String askMultiplierUp) {
+ this.askMultiplierUp = askMultiplierUp;
+ }
+
+ public String getAskMultiplierDown() {
+ return askMultiplierDown;
+ }
+
+ public void setAskMultiplierDown(String askMultiplierDown) {
+ this.askMultiplierDown = askMultiplierDown;
+ }
+
+ public String getAvgPriceMins() {
+ return avgPriceMins;
+ }
+
+ public void setAvgPriceMins(String avgPriceMins) {
+ this.avgPriceMins = avgPriceMins;
+ }
+
+ public String getApplyMinToMarket() {
+ return applyMinToMarket;
+ }
+
+ public void setApplyMinToMarket(String applyMinToMarket) {
+ this.applyMinToMarket = applyMinToMarket;
+ }
+
+ public String getApplyMaxToMarket() {
+ return applyMaxToMarket;
+ }
+
+ public void setApplyMaxToMarket(String applyMaxToMarket) {
+ this.applyMaxToMarket = applyMaxToMarket;
+ }
+
+ public String getMaxNotional() {
+ return maxNotional;
+ }
+
+ public void setMaxNotional(String maxNotional) {
+ this.maxNotional = maxNotional;
+ }
+
}
diff --git a/src/main/java/com/binance/api/client/domain/market/OrderBookEntryDeserializer.java b/src/main/java/com/binance/api/client/domain/market/OrderBookEntryDeserializer.java
index 4a65e253b..a0e9ddf04 100755
--- a/src/main/java/com/binance/api/client/domain/market/OrderBookEntryDeserializer.java
+++ b/src/main/java/com/binance/api/client/domain/market/OrderBookEntryDeserializer.java
@@ -1,6 +1,5 @@
package com.binance.api.client.domain.market;
-import com.binance.api.client.domain.market.OrderBookEntry;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.DeserializationContext;
diff --git a/src/test/java/com/binance/api/domain/general/ExchangeInfoDeserializerTest.java b/src/test/java/com/binance/api/domain/general/ExchangeInfoDeserializerTest.java
index 94467915b..6539d5fba 100755
--- a/src/test/java/com/binance/api/domain/general/ExchangeInfoDeserializerTest.java
+++ b/src/test/java/com/binance/api/domain/general/ExchangeInfoDeserializerTest.java
@@ -69,6 +69,26 @@ public void testExchangeInfoDeserialization() {
" }, {\n" +
" \"filterType\": \"MIN_NOTIONAL\",\n" +
" \"minNotional\": \"0.00100000\"\n" +
+ " }, {\n" +
+ " \"filterType\": \"TRAILING_DELTA\",\n" +
+ " \"minTrailingAboveDelta\": 10,\n" +
+ " \"maxTrailingAboveDelta\": 2000,\n" +
+ " \"minTrailingBelowDelta\": 10,\n" +
+ " \"maxTrailingBelowDelta\": 2000\n" +
+ " }, {\n" +
+ " \"filterType\": \"PERCENT_PRICE_BY_SIDE\",\n" +
+ " \"bidMultiplierUp\": \"5\",\n" +
+ " \"bidMultiplierDown\": \"0.2\",\n" +
+ " \"askMultiplierUp\": \"5\",\n" +
+ " \"askMultiplierDown\": \"0.2\",\n" +
+ " \"avgPriceMins\": \"5\"\n" +
+ " }, {\n" +
+ " \"filterType\": \"NOTIONAL\",\n" +
+ " \"minNotional\": \"0.00010000\",\n" +
+ " \"applyMinToMarket\": true,\n" +
+ " \"maxNotional\": \"9000000.00000000\",\n" +
+ " \"applyMaxToMarket\": false,\n" +
+ " \"avgPriceMins\": \"5\"\n" +
" }]\n" +
" }]" +
"}";
@@ -98,7 +118,7 @@ public void testExchangeInfoDeserialization() {
assertFalse(symbolInfo.isIcebergAllowed());
List symbolFilters = symbolInfo.getFilters();
- assertEquals(symbolFilters.size(), 3);
+ assertEquals(symbolFilters.size(), 6);
SymbolFilter priceFilter = symbolFilters.get(0);
assertEquals(priceFilter.getFilterType(), FilterType.PRICE_FILTER);
@@ -115,6 +135,30 @@ public void testExchangeInfoDeserialization() {
SymbolFilter minNotionalFilter = symbolFilters.get(2);
assertEquals(minNotionalFilter.getFilterType(), FilterType.MIN_NOTIONAL);
assertEquals(minNotionalFilter.getMinNotional(), "0.00100000");
+
+ SymbolFilter trailingDeltaFilter = symbolFilters.get(3);
+ assertEquals(trailingDeltaFilter.getFilterType(), FilterType.TRAILING_DELTA);
+ assertEquals(trailingDeltaFilter.getMinTrailingAboveDelta(), "10");
+ assertEquals(trailingDeltaFilter.getMaxTrailingAboveDelta(), "2000");
+ assertEquals(trailingDeltaFilter.getMinTrailingBelowDelta(), "10");
+ assertEquals(trailingDeltaFilter.getMaxTrailingBelowDelta(), "2000");
+
+ SymbolFilter percentPriceBySideFilter = symbolFilters.get(4);
+ assertEquals(percentPriceBySideFilter.getFilterType(), FilterType.PERCENT_PRICE_BY_SIDE);
+ assertEquals(percentPriceBySideFilter.getBidMultiplierUp(), "5");
+ assertEquals(percentPriceBySideFilter.getBidMultiplierDown(), "0.2");
+ assertEquals(percentPriceBySideFilter.getAskMultiplierUp(), "5");
+ assertEquals(percentPriceBySideFilter.getAskMultiplierDown(), "0.2");
+ assertEquals(percentPriceBySideFilter.getAvgPriceMins(), "5");
+
+ SymbolFilter notionalFilter = symbolFilters.get(5);
+ assertEquals(notionalFilter.getFilterType(), FilterType.NOTIONAL);
+ assertEquals(notionalFilter.getMinNotional(), "0.00010000");
+ assertEquals(notionalFilter.getApplyMinToMarket(), "true");
+ assertEquals(notionalFilter.getMaxNotional(), "9000000.00000000");
+ assertEquals(notionalFilter.getApplyMaxToMarket(), "false");
+ assertEquals(notionalFilter.getAvgPriceMins(), "5");
+
} catch (IOException e) {
fail();
}