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

Commit 751820c

Browse files
committed
implemented /fapi/v1/leverage and /fapi/v1/marginType
1 parent 00aa240 commit 751820c

18 files changed

Lines changed: 306 additions & 21 deletions

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.binance.api.client.impl;
1+
package com.binance.api.client.api;
22

33
import com.binance.api.client.constant.BinanceApiConstants;
44
import com.binance.api.client.domain.OrderSide;

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

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
package com.binance.api.client.impl;
1+
package com.binance.api.client.api;
22

33
import com.binance.api.client.constant.BinanceApiConstants;
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;
77
import com.binance.api.client.domain.event.ListenKey;
8-
import com.binance.api.client.domain.general.Asset;
98
import com.binance.api.client.domain.general.ExchangeInfo;
109
import com.binance.api.client.domain.general.ServerTime;
1110
import com.binance.api.client.domain.market.*;
@@ -81,18 +80,26 @@ Call<Order> getOrderStatus(@Query("symbol") String symbol, @Query("orderId") Lon
8180

8281
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
8382
@DELETE("/fapi/v1/order")
84-
Call<CancelOrderResponse> cancelOrder(@Query("symbol") String symbol, @Query("orderId") Long orderId,
85-
@Query("origClientOrderId") String origClientOrderId, @Query("newClientOrderId") String newClientOrderId,
86-
@Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
83+
Call<CancelOrderResponse> cancelOrder(@Query("symbol") String symbol,
84+
@Query("orderId") Long orderId,
85+
@Query("origClientOrderId") String origClientOrderId,
86+
@Query("newClientOrderId") String newClientOrderId,
87+
@Query("recvWindow") Long recvWindow,
88+
@Query("timestamp") Long timestamp);
8789

8890
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
8991
@GET("/fapi/v1/openOrders")
90-
Call<List<Order>> getOpenOrders(@Query("symbol") String symbol, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
92+
Call<List<Order>> getOpenOrders(@Query("symbol") String symbol,
93+
@Query("recvWindow") Long recvWindow,
94+
@Query("timestamp") Long timestamp);
9195

9296
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
9397
@GET("/fapi/v1/allOrders")
94-
Call<List<Order>> getAllOrders(@Query("symbol") String symbol, @Query("orderId") Long orderId,
95-
@Query("limit") Integer limit, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);
98+
Call<List<Order>> getAllOrders(@Query("symbol") String symbol,
99+
@Query("orderId") Long orderId,
100+
@Query("limit") Integer limit,
101+
@Query("recvWindow") Long recvWindow,
102+
@Query("timestamp") Long timestamp);
96103

97104
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
98105
@GET("/fapi/v2/account")
@@ -111,4 +118,18 @@ Call<List<Order>> getAllOrders(@Query("symbol") String symbol, @Query("orderId")
111118
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER)
112119
@DELETE("/fapi/v1/listenKey")
113120
Call<Void> closeAliveUserDataStream(@Query("listenKey") String listenKey);
121+
122+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
123+
@POST("/fapi/v1/leverage")
124+
Call<LeverageResponse> changeInitialLeverage(@Query("symbol") String symbol,
125+
@Query("leverage") Integer leverage,
126+
@Query("recvWindow") Long recvWindow,
127+
@Query("timestamp") Long timestamp);
128+
129+
@Headers(BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER)
130+
@POST("/fapi/v1/marginType")
131+
Call<Void> changeMarginType(@Query("symbol") String symbol,
132+
@Query("marginType") MarginType marginType,
133+
@Query("recvWindow") Long recvWindow,
134+
@Query("timestamp") Long timestamp);
114135
}

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

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

3-
import com.binance.api.client.domain.account.FuturesAccount;
4-
import com.binance.api.client.domain.account.FuturesNewOrder;
5-
import com.binance.api.client.domain.account.FuturesNewOrderResponse;
3+
import com.binance.api.client.domain.account.*;
64

75
public interface BinanceApiFuturesRestClient extends BinanceApiGeneralRestClient {
86

@@ -18,4 +16,16 @@ public interface BinanceApiFuturesRestClient extends BinanceApiGeneralRestClient
1816
* @return a response containing details about the newly placed order.
1917
*/
2018
FuturesNewOrderResponse newOrder(FuturesNewOrder order);
19+
20+
21+
/**
22+
* Change leverage
23+
*
24+
* @param leverageRequest
25+
* @return LeverageResponse
26+
*/
27+
LeverageResponse changeInitialLeverage(LeverageRequest leverageRequest);
28+
29+
void changeMarginType(MarginTypeRequest marginTypeRequest);
30+
2131
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.binance.api.client.domain;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
5+
/**
6+
* Binance futures margin types
7+
*
8+
* @author Mahdi Sheikh Hosseini
9+
*/
10+
@JsonIgnoreProperties(ignoreUnknown = true)
11+
public enum MarginType {
12+
ISOLATED, CROSSED;
13+
}

src/main/java/com/binance/api/client/domain/account/FuturesAccount.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,13 @@ public FuturesAssetBalance getAssetBalance(final String symbol) {
182182
.orElse(FuturesAssetBalance.of(symbol));
183183
}
184184

185+
public FuturesPosition getPosition(final String symbol) {
186+
return positions.stream()
187+
.filter(e -> e.getSymbol().equals(symbol))
188+
.findFirst()
189+
.orElse(null);
190+
}
191+
185192
@Override
186193
public String toString() {
187194
return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.binance.api.client.domain.account;
2+
3+
import com.binance.api.client.constant.BinanceApiConstants;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5+
import org.apache.commons.lang3.builder.ToStringBuilder;
6+
7+
@JsonIgnoreProperties(ignoreUnknown = true)
8+
public class LeverageRequest {
9+
10+
private String symbol;
11+
private int leverage;
12+
private long recvWindow;
13+
private long timestamp;
14+
15+
public LeverageRequest() {
16+
this.timestamp = System.currentTimeMillis();
17+
this.recvWindow = BinanceApiConstants.DEFAULT_RECEIVING_WINDOW;
18+
}
19+
20+
public LeverageRequest(String symbol, int leverage) {
21+
this.symbol = symbol;
22+
this.leverage = leverage;
23+
this.timestamp = System.currentTimeMillis();
24+
this.recvWindow = BinanceApiConstants.DEFAULT_RECEIVING_WINDOW;
25+
}
26+
27+
public String getSymbol() {
28+
return symbol;
29+
}
30+
31+
public void setSymbol(String symbol) {
32+
this.symbol = symbol;
33+
}
34+
35+
public int getLeverage() {
36+
return leverage;
37+
}
38+
39+
public void setLeverage(int leverage) {
40+
this.leverage = leverage;
41+
}
42+
43+
public long getRecvWindow() {
44+
return recvWindow;
45+
}
46+
47+
public void setRecvWindow(long recvWindow) {
48+
this.recvWindow = recvWindow;
49+
}
50+
51+
public long getTimestamp() {
52+
return timestamp;
53+
}
54+
55+
public void setTimestamp(long timestamp) {
56+
this.timestamp = timestamp;
57+
}
58+
59+
@Override
60+
public String toString() {
61+
return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
62+
.append("symbol", symbol)
63+
.append("leverage", leverage)
64+
.append("recvWindow", recvWindow)
65+
.append("timestamp", timestamp)
66+
.toString();
67+
}
68+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.binance.api.client.domain.account;
2+
3+
import com.binance.api.client.constant.BinanceApiConstants;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5+
import org.apache.commons.lang3.builder.ToStringBuilder;
6+
7+
@JsonIgnoreProperties(ignoreUnknown = true)
8+
public class LeverageResponse {
9+
10+
private String symbol;
11+
private int leverage;
12+
private String maxNotionalValue;
13+
14+
public int getLeverage() {
15+
return leverage;
16+
}
17+
18+
public void setLeverage(int leverage) {
19+
this.leverage = leverage;
20+
}
21+
22+
public String getMaxNotionalValue() {
23+
return maxNotionalValue;
24+
}
25+
26+
public void setMaxNotionalValue(String maxNotionalValue) {
27+
this.maxNotionalValue = maxNotionalValue;
28+
}
29+
30+
public String getSymbol() {
31+
return symbol;
32+
}
33+
34+
public void setSymbol(String symbol) {
35+
this.symbol = symbol;
36+
}
37+
38+
@Override
39+
public String toString() {
40+
return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
41+
.append("symbol", symbol)
42+
.append("leverage", leverage)
43+
.append("maxNotionalValue", maxNotionalValue)
44+
.toString();
45+
}
46+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.binance.api.client.domain.account;
2+
3+
import com.binance.api.client.constant.BinanceApiConstants;
4+
import com.binance.api.client.domain.MarginType;
5+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
6+
import org.apache.commons.lang3.builder.ToStringBuilder;
7+
8+
/**
9+
* @author Mahdi Sheikh Hosseini
10+
*/
11+
@JsonIgnoreProperties(ignoreUnknown = true)
12+
public class MarginTypeRequest {
13+
14+
private String symbol;
15+
private MarginType marginType;
16+
private long recvWindow;
17+
private long timestamp;
18+
19+
public MarginTypeRequest() {
20+
this.timestamp = System.currentTimeMillis();
21+
this.recvWindow = BinanceApiConstants.DEFAULT_RECEIVING_WINDOW;
22+
}
23+
24+
public MarginTypeRequest(String symbol, MarginType marginType) {
25+
this.symbol = symbol;
26+
this.marginType = marginType;
27+
this.timestamp = System.currentTimeMillis();
28+
this.recvWindow = BinanceApiConstants.DEFAULT_RECEIVING_WINDOW;
29+
}
30+
31+
public String getSymbol() {
32+
return symbol;
33+
}
34+
35+
public void setSymbol(String symbol) {
36+
this.symbol = symbol;
37+
}
38+
39+
public MarginType getMarginType() {
40+
return marginType;
41+
}
42+
43+
public void setMarginType(MarginType marginType) {
44+
this.marginType = marginType;
45+
}
46+
47+
public long getRecvWindow() {
48+
return recvWindow;
49+
}
50+
51+
public void setRecvWindow(long recvWindow) {
52+
this.recvWindow = recvWindow;
53+
}
54+
55+
public long getTimestamp() {
56+
return timestamp;
57+
}
58+
59+
public void setTimestamp(long timestamp) {
60+
this.timestamp = timestamp;
61+
}
62+
63+
@Override
64+
public String toString() {
65+
return new ToStringBuilder(this, BinanceApiConstants.TO_STRING_BUILDER_STYLE)
66+
.append("symbol", symbol)
67+
.append("marginType", marginType)
68+
.append("recvWindow", recvWindow)
69+
.append("timestamp", timestamp)
70+
.toString();
71+
}
72+
73+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.binance.api.client.impl;
22

33
import com.binance.api.client.api.BinanceApiError;
4+
import com.binance.api.client.api.BinanceApiService;
45
import com.binance.api.client.exception.BinanceApiException;
56
import com.binance.api.client.security.AuthenticationInterceptor;
67
import okhttp3.Dispatcher;

src/main/java/com/binance/api/client/impl/async/BinanceApiAsyncFuturesRestClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import com.binance.api.client.domain.account.request.OrderStatusRequest;
1414
import com.binance.api.client.impl.BinanceApiCallbackAdapter;
1515
import com.binance.api.client.impl.BinanceApiServiceGenerator;
16-
import com.binance.api.client.impl.BinanceFuturesApiService;
16+
import com.binance.api.client.api.BinanceFuturesApiService;
1717

1818
import java.util.List;
1919

0 commit comments

Comments
 (0)