Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Commit 171af18

Browse files
committed
Bug fix and improvemtns
1 parent c7e73e1 commit 171af18

14 files changed

+97
-64
lines changed

src/main/java/com/binance/api/client/BinanceApiFuturesRestClient.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,25 @@ public interface BinanceApiFuturesRestClient {
4646
* @return an order
4747
*/
4848
Order getOrderStatus(OrderStatusRequest orderStatusRequest);
49+
50+
/**
51+
* Start a new user data stream.
52+
*
53+
* @return a listen key that can be used with data streams
54+
*/
55+
String startUserDataStream();
56+
57+
/**
58+
* PING a user data stream to prevent a time out.
59+
*
60+
* @param listenKey listen key that identifies a data stream
61+
*/
62+
void keepAliveUserDataStream(String listenKey);
63+
64+
/**
65+
* Close out a new user data stream.
66+
*
67+
* @param listenKey listen key that identifies a data stream
68+
*/
69+
void closeUserDataStream(String listenKey);
4970
}

src/main/java/com/binance/api/client/BinanceApiMarginRestClient.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,6 @@ public interface BinanceApiMarginRestClient {
5353
*/
5454
List<Trade> getMyTrades(String symbol);
5555

56-
// User stream endpoints
57-
58-
/**
59-
* Start a new user data stream.
60-
*
61-
* @return a listen key that can be used with data streams
62-
*/
63-
String startUserDataStream();
64-
65-
/**
66-
* PING a user data stream to prevent a time out.
67-
*
68-
* @param listenKey listen key that identifies a data stream
69-
*/
70-
void keepAliveUserDataStream(String listenKey);
71-
7256
/**
7357
* Execute transfer between spot account and margin account
7458
* @param asset asset to repay
@@ -122,6 +106,4 @@ public interface BinanceApiMarginRestClient {
122106
* @return loan records
123107
*/
124108
LoanQueryResult queryLoan(String asset, String txId);
125-
126-
127109
}

src/main/java/com/binance/api/client/BinanceApiRestClient.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.binance.api.client.domain.account.*;
44
import com.binance.api.client.domain.account.request.*;
5-
import com.binance.api.client.domain.general.Asset;
65
import com.binance.api.client.domain.general.ExchangeInfo;
76
import com.binance.api.client.domain.market.*;
87

@@ -259,7 +258,6 @@ public interface BinanceApiRestClient {
259258
DepositAddress getDepositAddress(String asset);
260259

261260
// User stream endpoints
262-
263261
/**
264262
* Start a new user data stream.
265263
*

src/main/java/com/binance/api/client/impl/BinanceApiFuturesRestClientImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,19 @@ public Order getOrderStatus(OrderStatusRequest orderStatusRequest) {
5959
orderStatusRequest.getOrderId(), orderStatusRequest.getOrigClientOrderId(),
6060
orderStatusRequest.getRecvWindow(), orderStatusRequest.getTimestamp()));
6161
}
62+
63+
@Override
64+
public String startUserDataStream() {
65+
return executeSync(binanceApiService.startUserDataStream()).toString();
66+
}
67+
68+
@Override
69+
public void keepAliveUserDataStream(String listenKey) {
70+
executeSync(binanceApiService.keepAliveUserDataStream(listenKey));
71+
}
72+
73+
@Override
74+
public void closeUserDataStream(String listenKey) {
75+
executeSync(binanceApiService.closeAliveUserDataStream(listenKey));
76+
}
6277
}

src/main/java/com/binance/api/client/impl/BinanceApiMarginRestClientImpl.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,6 @@ public List<Trade> getMyTrades(String symbol) {
6262
return executeSync(binanceApiService.getMyTrades(symbol, null, null, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, System.currentTimeMillis()));
6363
}
6464

65-
// user stream endpoints
66-
67-
@Override
68-
public String startUserDataStream() {
69-
return executeSync(binanceApiService.startMarginUserDataStream()).toString();
70-
}
71-
72-
@Override
73-
public void keepAliveUserDataStream(String listenKey) {
74-
executeSync(binanceApiService.keepAliveMarginUserDataStream(listenKey));
75-
}
76-
7765
@Override
7866
public MarginTransaction transfer(String asset, String amount, TransferType type) {
7967
long timestamp = System.currentTimeMillis();
@@ -115,4 +103,5 @@ public MarginTransaction repay(String asset, String amount) {
115103
long timestamp = System.currentTimeMillis();
116104
return executeSync(binanceApiService.repay(asset, amount, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp));
117105
}
106+
118107
}

src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,16 +221,15 @@ public DepositAddress getDepositAddress(String asset) {
221221
System.currentTimeMillis()));
222222
}
223223

224-
// User stream endpoints
225-
224+
// user stream endpoints
226225
@Override
227226
public String startUserDataStream() {
228-
return executeSync(binanceApiService.startUserDataStream()).toString();
227+
return executeSync(binanceApiService.startMarginUserDataStream()).toString();
229228
}
230229

231230
@Override
232231
public void keepAliveUserDataStream(String listenKey) {
233-
executeSync(binanceApiService.keepAliveUserDataStream(listenKey));
232+
executeSync(binanceApiService.keepAliveMarginUserDataStream(listenKey));
234233
}
235234

236235
@Override

src/main/java/com/binance/api/client/impl/BinanceApiService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,15 +152,15 @@ Call<WithdrawResult> withdraw(@Query("asset") String asset, @Query("address") St
152152
// User stream endpoints
153153

154154
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
155-
@POST("/api/v1/userDataStream")
155+
@POST("/api/v3/userDataStream")
156156
Call<ListenKey> startUserDataStream();
157157

158158
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
159-
@PUT("/api/v1/userDataStream")
159+
@PUT("/api/v3/userDataStream")
160160
Call<Void> keepAliveUserDataStream(@Query("listenKey") String listenKey);
161161

162162
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
163-
@DELETE("/api/v1/userDataStream")
163+
@DELETE("/api/v3/userDataStream")
164164
Call<Void> closeAliveUserDataStream(@Query("listenKey") String listenKey);
165165

166166
// Margin Account endpoints

src/main/java/com/binance/api/client/impl/BinanceFuturesApiService.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.binance.api.client.domain.*;
55
import com.binance.api.client.domain.account.*;
66
import com.binance.api.client.domain.account.request.CancelOrderResponse;
7+
import com.binance.api.client.domain.event.ListenKey;
78
import com.binance.api.client.domain.general.Asset;
89
import com.binance.api.client.domain.general.ExchangeInfo;
910
import com.binance.api.client.domain.general.ServerTime;
@@ -100,4 +101,17 @@ Call<List<Order>> getAllOrders(@Query("symbol") String symbol, @Query("orderId")
100101
@GET("/fapi/v2/account")
101102
Call<FuturesAccount> getAccount(@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
102103

104+
// User stream endpoints
105+
106+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
107+
@POST("/fapi/v1/listenKey")
108+
Call<ListenKey> startUserDataStream();
109+
110+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
111+
@PUT("/fapi/v1/listenKey")
112+
Call<Void> keepAliveUserDataStream(@Query("listenKey") String listenKey);
113+
114+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
115+
@DELETE("/fapi/v1/listenKey")
116+
Call<Void> closeAliveUserDataStream(@Query("listenKey") String listenKey);
103117
}

src/test/java/com/binance/api/examples/MarginUserDataStreamExample.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.binance.api.examples;
22

3-
import com.binance.api.client.BinanceApiMarginRestClient;
3+
import com.binance.api.client.BinanceApiRestClient;
44
import com.binance.api.client.BinanceApiWebSocketClient;
55
import com.binance.api.client.domain.event.AccountUpdateEvent;
66
import com.binance.api.client.domain.event.OrderTradeUpdateEvent;
@@ -15,10 +15,12 @@
1515
* as well as update on trades/orders on a user account.
1616
*/
1717
public class MarginUserDataStreamExample {
18+
private static final String API_KEY = "";
19+
private static final String SECRET_KEY = "";
1820

1921
public static void main(String[] args) {
20-
BinanceSpotApiClientFactory factory = BinanceAbstractFactory.createSpotFactory("YOUR_API_KEY", "YOUR_SECRET");
21-
BinanceApiMarginRestClient client = factory.newMarginRestClient();
22+
BinanceSpotApiClientFactory factory = BinanceAbstractFactory.createSpotFactory(API_KEY, SECRET_KEY);
23+
BinanceApiRestClient client = factory.newRestClient();
2224

2325
// First, we obtain a listenKey which is required to interact with the user data stream
2426
String listenKey = client.startUserDataStream();

src/test/java/com/binance/api/examples/futures/FuturesAccountExample.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
*/
1111
public class FuturesAccountExample {
1212
private static final String SYMBOL = "LINKUSDT";
13+
private static final String API_KEY = "";
14+
private static final String SECRET_KEY = "";
1315

1416
public static void main(String[] args) {
15-
BinanceFuturesApiClientFactory factory = BinanceAbstractFactory.createFuturesFactory("YOUR_API_KEY", "YOUR_SECRET");
17+
BinanceFuturesApiClientFactory factory = BinanceAbstractFactory.createFuturesFactory(API_KEY, SECRET_KEY);
1618
BinanceApiFuturesRestClient client = factory.newFuturesRestClient();
1719

1820
FuturesAccount account = client.getAccount();

0 commit comments

Comments
 (0)