diff --git a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java index 0af50e198..e0cd92bf2 100644 --- a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java +++ b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java @@ -9,7 +9,8 @@ * User data update event which can be of two types: * * 1) outboundAccountInfo, whenever there is a change in the account (e.g. balance of an asset) - * 2) executionReport, whenever there is a trade or an order + * 2) outboundAccountPosition, the change in account balances caused by an event. + * 3) executionReport, whenever there is a trade or an order */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonDeserialize(using = UserDataUpdateEventDeserializer.class) @@ -62,6 +63,8 @@ public String toString() { .append("eventTime", eventTime); if (eventType == UserDataUpdateEventType.ACCOUNT_UPDATE) { sb.append("accountUpdateEvent", accountUpdateEvent); + } else if (eventType == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { + sb.append("accountPositionUpdateEvent", accountUpdateEvent); } else { sb.append("orderTradeUpdateEvent", orderTradeUpdateEvent); } @@ -70,6 +73,7 @@ public String toString() { public enum UserDataUpdateEventType { ACCOUNT_UPDATE("outboundAccountInfo"), + ACCOUNT_POSITION_UPDATE("outboundAccountPosition"), ORDER_TRADE_UPDATE("executionReport"); private final String eventTypeId; @@ -87,6 +91,8 @@ public static UserDataUpdateEventType fromEventTypeId(String eventTypeId) { return ACCOUNT_UPDATE; } else if (ORDER_TRADE_UPDATE.eventTypeId.equals(eventTypeId)) { return ORDER_TRADE_UPDATE; + } else if (ACCOUNT_POSITION_UPDATE.eventTypeId.equals(eventTypeId)) { + return ACCOUNT_POSITION_UPDATE; } throw new IllegalArgumentException("Unrecognized user data update event type id: " + eventTypeId); } diff --git a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java index afc584636..8ef548e39 100644 --- a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java +++ b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java @@ -38,7 +38,8 @@ public UserDataUpdateEvent deserialize(JsonParser jp, DeserializationContext ctx userDataUpdateEvent.setEventType(userDataUpdateEventType); userDataUpdateEvent.setEventTime(eventTime); - if (userDataUpdateEventType == UserDataUpdateEventType.ACCOUNT_UPDATE) { + if (userDataUpdateEventType == UserDataUpdateEventType.ACCOUNT_UPDATE || + userDataUpdateEventType == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { AccountUpdateEvent accountUpdateEvent = getUserDataUpdateEventDetail(json, AccountUpdateEvent.class, mapper); userDataUpdateEvent.setAccountUpdateEvent(accountUpdateEvent); } else { // userDataUpdateEventType == UserDataUpdateEventType.ORDER_TRADE_UPDATE @@ -56,4 +57,4 @@ public T getUserDataUpdateEventDetail(String json, Class clazz, ObjectMap throw new BinanceApiException(e); } } -} \ No newline at end of file +}