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 a9bab3f68..062565790 100755 --- a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java +++ b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEvent.java @@ -24,7 +24,7 @@ public class UserDataUpdateEvent { private long eventTime; - private AccountUpdateEvent accountUpdateEvent; + private AccountUpdateEvent outboundAccountPositionUpdateEvent; private BalanceUpdateEvent balanceUpdateEvent; @@ -46,12 +46,20 @@ public void setEventTime(long eventTime) { this.eventTime = eventTime; } + /** + * @Deprecated: left in for backwards compatibility. Use getOutboundAccountPositionUpdateEvent() instead, as that is what the Binance API documentation calls it. + */ + @Deprecated public AccountUpdateEvent getAccountUpdateEvent() { - return accountUpdateEvent; + return outboundAccountPositionUpdateEvent; } - public void setAccountUpdateEvent(AccountUpdateEvent accountUpdateEvent) { - this.accountUpdateEvent = accountUpdateEvent; + public AccountUpdateEvent getOutboundAccountPositionUpdateEvent() { + return outboundAccountPositionUpdateEvent; + } + + public void setOutboundAccountPositionUpdateEvent(AccountUpdateEvent accountUpdateEvent) { + this.outboundAccountPositionUpdateEvent = accountUpdateEvent; } public BalanceUpdateEvent getBalanceUpdateEvent() { @@ -76,7 +84,7 @@ public String toString() { .append("eventType", eventType) .append("eventTime", eventTime); if (eventType == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { - sb.append("accountPositionUpdateEvent", accountUpdateEvent); + sb.append("outboundAccountPositionUpdateEvent", outboundAccountPositionUpdateEvent); } else if (eventType == UserDataUpdateEventType.BALANCE_UPDATE) { sb.append("balanceUpdateEvent", balanceUpdateEvent); } else { @@ -86,8 +94,11 @@ public String toString() { } public enum UserDataUpdateEventType { + /** Corresponds to "outboundAccountPosition" events. */ ACCOUNT_POSITION_UPDATE("outboundAccountPosition"), + /** Corresponds to "balanceUpdate" events. */ BALANCE_UPDATE("balanceUpdate"), + /** Corresponds to "executionReport" events. */ ORDER_TRADE_UPDATE("executionReport"), ; 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 e495b9dff..9e0031efc 100755 --- a/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java +++ b/src/main/java/com/binance/api/client/domain/event/UserDataUpdateEventDeserializer.java @@ -41,7 +41,7 @@ public UserDataUpdateEvent deserialize(JsonParser jp, DeserializationContext ctx if (userDataUpdateEventType == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { AccountUpdateEvent accountUpdateEvent = getUserDataUpdateEventDetail(json, AccountUpdateEvent.class, mapper); - userDataUpdateEvent.setAccountUpdateEvent(accountUpdateEvent); + userDataUpdateEvent.setOutboundAccountPositionUpdateEvent(accountUpdateEvent); } else if (userDataUpdateEventType == UserDataUpdateEventType.BALANCE_UPDATE) { BalanceUpdateEvent balanceUpdateEvent = getUserDataUpdateEventDetail(json, BalanceUpdateEvent.class, mapper); userDataUpdateEvent.setBalanceUpdateEvent(balanceUpdateEvent); diff --git a/src/test/java/com/binance/api/examples/AccountBalanceCacheExample.java b/src/test/java/com/binance/api/examples/AccountBalanceCacheExample.java index 8fcd51118..59978bb93 100755 --- a/src/test/java/com/binance/api/examples/AccountBalanceCacheExample.java +++ b/src/test/java/com/binance/api/examples/AccountBalanceCacheExample.java @@ -9,7 +9,7 @@ import java.util.Map; import java.util.TreeMap; -import static com.binance.api.client.domain.event.UserDataUpdateEvent.UserDataUpdateEventType.ACCOUNT_UPDATE; +import static com.binance.api.client.domain.event.UserDataUpdateEvent.UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE; /** * Illustrates how to use the user data event stream to create a local cache for the balance of an account. @@ -58,9 +58,9 @@ private void startAccountBalanceEventStreaming(String listenKey) { BinanceApiWebSocketClient client = clientFactory.newWebSocketClient(); client.onUserDataUpdateEvent(listenKey, response -> { - if (response.getEventType() == ACCOUNT_UPDATE) { + if (response.getEventType() == ACCOUNT_POSITION_UPDATE) { // Override cached asset balances - for (AssetBalance assetBalance : response.getAccountUpdateEvent().getBalances()) { + for (AssetBalance assetBalance : response.getOutboundAccountPositionUpdateEvent().getBalances()) { accountBalanceCache.put(assetBalance.getAsset(), assetBalance); } System.out.println(accountBalanceCache); diff --git a/src/test/java/com/binance/api/examples/MarginUserDataStreamExample.java b/src/test/java/com/binance/api/examples/MarginUserDataStreamExample.java index d6bab71fd..6a27a5fa4 100755 --- a/src/test/java/com/binance/api/examples/MarginUserDataStreamExample.java +++ b/src/test/java/com/binance/api/examples/MarginUserDataStreamExample.java @@ -28,8 +28,8 @@ public static void main(String[] args) { // Listen for changes in the account webSocketClient.onUserDataUpdateEvent(listenKey, response -> { - if (response.getEventType() == UserDataUpdateEventType.ACCOUNT_UPDATE) { - AccountUpdateEvent accountUpdateEvent = response.getAccountUpdateEvent(); + if (response.getEventType() == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { + AccountUpdateEvent accountUpdateEvent = response.getOutboundAccountPositionUpdateEvent(); // Print new balances of every available asset System.out.println(accountUpdateEvent.getBalances()); } else { diff --git a/src/test/java/com/binance/api/examples/UserDataStreamExample.java b/src/test/java/com/binance/api/examples/UserDataStreamExample.java index 180f5d7b7..b74eed727 100755 --- a/src/test/java/com/binance/api/examples/UserDataStreamExample.java +++ b/src/test/java/com/binance/api/examples/UserDataStreamExample.java @@ -27,8 +27,8 @@ public static void main(String[] args) { // Listen for changes in the account webSocketClient.onUserDataUpdateEvent(listenKey, response -> { - if (response.getEventType() == UserDataUpdateEventType.ACCOUNT_UPDATE) { - AccountUpdateEvent accountUpdateEvent = response.getAccountUpdateEvent(); + if (response.getEventType() == UserDataUpdateEventType.ACCOUNT_POSITION_UPDATE) { + AccountUpdateEvent accountUpdateEvent = response.getOutboundAccountPositionUpdateEvent(); // Print new balances of every available asset System.out.println(accountUpdateEvent.getBalances()); } else {