binance-exchange / binance-java-api

binance-java-api is a lightweight Java library for the Binance API, supporting synchronous and asynchronous requests, as well as event streaming using WebSockets.
MIT License
831 stars 628 forks source link

Change in api callers InvalidFormatException #383

Closed LexProfi closed 3 years ago

LexProfi commented 3 years ago

Recently, I began to receive an error.

com.binance.api.client.exception.BinanceApiException: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.binance.api.client.domain.general.RateLimitType` from String "RAW_REQUESTS": value not one of declared Enum instance names: [REQUEST_WEIGHT, ORDERS]
 at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 311] (through reference chain: com.binance.api.client.domain.general.ExchangeInfo["rateLimits"]->java.util.ArrayList[3]->com.binance.api.client.domain.general.RateLimit["rateLimitType"])
        at com.binance.api.client.impl.BinanceApiServiceGenerator.executeSync(BinanceApiServiceGenerator.java:79)
        at com.binance.api.client.impl.BinanceApiRestClientImpl.getExchangeInfo(BinanceApiRestClientImpl.java:44)
        at com.lex.replicator.mind.Client.exesOrder(Client.java:520)
        at com.lex.replicator.mind.Client.rebalanced(Client.java:319)
        at com.lex.GooseApplication.lambda$main$5(GooseApplication.java:123)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.binance.api.client.domain.general.RateLimitType` from String "RAW_REQUESTS": value not one of declared Enum instance names: [REQUEST_WEIGHT, ORDERS]
 at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 311] (through reference chain: com.binance.api.client.domain.general.ExchangeInfo["rateLimits"]->java.util.ArrayList[3]->com.binance.api.client.domain.general.RateLimit["rateLimitType"])
        at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
        at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1548)
        at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:910)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeAltString(EnumDeserializer.java:255)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:179)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
        at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
        at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
        at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
        at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
        at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
        at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
        at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
        at com.binance.api.client.impl.BinanceApiServiceGenerator.executeSync(BinanceApiServiceGenerator.java:71)
        ... 9 more

Previously, the code worked fine, what has changed in the binance api?

mcourteaux commented 3 years ago
❯ gd
diff --git a/src/main/java/com/binance/api/client/domain/general/RateLimitType.java b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
index 25775da..b9b064c 100755
--- a/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
+++ b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  */
 @JsonIgnoreProperties(ignoreUnknown = true)
 public enum RateLimitType {
+  RAW_REQUESTS,^M
   REQUEST_WEIGHT,
   ORDERS
 }
LexProfi commented 3 years ago
❯ gd
 diff --git a / src / main / java / com / binance / api / client / domain / general / RateLimitType.java b / src / main / java / com / binance / api / client / domain / general / RateLimitType .Ява
индекс 25775da..b9b064c 100755
--- a / src / main / java / com / binance / api / client / domain / general / RateLimitType.java 
+++ b / src / main / java / com / binance / api / client / domain / general / RateLimitType .java 
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  * /
 @JsonIgnoreProperties (ignoreUnknown = true)
 public enum RateLimitType {
+   RAW_REQUESTS, ^ M
   REQUEST_WEIGHT,
   ЗАКАЗЫ
 }

Clarify - where were these changes made? Are they not in the current repository?

remote: Enumerating objects: 172, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (75/75), done.
remote: Total 172 (delta 51), reused 113 (delta 30), pack-reused 5
Receiving objects: 100% (172/172), 41.64 KiB | 5.95 MiB/s, done.
Resolving deltas: 100% (54/54), completed with 3 local objects.
From https://github.com/binance-exchange/binance-java-api
   7781ee0..dc6b4bc  master     -> origin/master
Updating 7781ee0..dc6b4bc
Fast-forward
 README.md                                                                                |   2 +-
 pom.xml                                                                                  |   6 ++--
 src/main/java/com/binance/api/client/BinanceApiClientFactory.java                        |  45 +++++++++++++++++++++++++-
 src/main/java/com/binance/api/client/BinanceApiRestClient.java                           |  44 +++++++++++++++++++++++---
 src/main/java/com/binance/api/client/config/BinanceApiConfig.java                        |  30 ++++++++++++++++++
 src/main/java/com/binance/api/client/constant/Util.java                                  |   2 +-
 src/main/java/com/binance/api/client/domain/ContingencyType.java                         |   8 +++++
 src/main/java/com/binance/api/client/domain/OCOOrderStatus.java                          |  10 ++++++
 src/main/java/com/binance/api/client/domain/OCOStatus.java                               |  10 ++++++
 src/main/java/com/binance/api/client/domain/account/DustTransferResponse.java            |  52 ++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOCO.java                          | 241 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOCOResponse.java                  |  88 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOrder.java                        |  43 ++++++++++++++++---------
 src/main/java/com/binance/api/client/domain/account/Order.java                           |  50 ++++++++++++++++++-----------
 src/main/java/com/binance/api/client/domain/account/OrderList.java                       | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/OrderReport.java                     | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/SubAccountTransfer.java              |  20 ++++++++++++
 src/main/java/com/binance/api/client/domain/account/TransferResult.java                  |  91 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/AllOrderListRequest.java     |  77 +++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderListRequest.java  |  83 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderListResponse.java |   9 ++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderResponse.java     |  34 +++++++++++++-------
 src/main/java/com/binance/api/client/domain/account/request/OrderListStatusRequest.java  |  55 ++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java                  |  32 +++++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiService.java                         |  28 +++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiServiceGenerator.java                |  19 ++++++++++-
 src/main/java/com/binance/api/client/impl/BinanceApiWebSocketClientImpl.java             |   2 +-
 27 files changed, 1310 insertions(+), 56 deletions(-)
mcourteaux commented 3 years ago

I'm not sure what you are asking: it's indicated in the git diff:

+++ b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java

which is indeed in this repository. Don't forget to run mvn install after applying these changes.

joaopsilva commented 3 years ago

Thanks for clarifying @mcourteaux , closing this one.