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

Commit 229060c

Browse files
committed
Fixed issue with repay
1 parent f3e35be commit 229060c

7 files changed

Lines changed: 175 additions & 16 deletions

File tree

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,21 @@ public interface BinanceApiMarginRestClient {
8585
*/
8686
MarginTransaction borrow(String asset, String amount);
8787

88+
/**
89+
* Query loan record
90+
* @param asset asset to query
91+
* @return loan records
92+
*/
93+
RepayQueryResult queryRepay(String asset, long startTime);
94+
95+
/**
96+
* Query loan record
97+
* @param asset asset to query
98+
* @param txId the tranId in POST /sapi/v1/margin/repay
99+
* @return loan records
100+
*/
101+
RepayQueryResult queryRepay(String asset, String txId);
102+
88103
/**
89104
* Repay loan for margin account
90105
* @param asset asset to repay
@@ -100,4 +115,6 @@ public interface BinanceApiMarginRestClient {
100115
* @return loan records
101116
*/
102117
LoanQueryResult queryLoan(String asset, String txId);
118+
119+
103120
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package com.binance.api.client.domain.account;
22

3-
import com.binance.api.client.constant.BinanceApiConstants;
43
import com.binance.api.client.domain.LoanStatus;
54
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
6-
import com.fasterxml.jackson.annotation.JsonProperty;
7-
import org.apache.commons.lang3.builder.ToStringBuilder;
85

96
/**
107
* Represents an executed trade history item.
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.binance.api.client.domain.account;
2+
3+
import com.binance.api.client.domain.LoanStatus;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5+
6+
@JsonIgnoreProperties(ignoreUnknown = true)
7+
public class Repay {
8+
9+
private String amount;
10+
private String asset;
11+
private String interest;
12+
private String principal;
13+
LoanStatus status;
14+
private long timestamp;
15+
private String txId;
16+
17+
public String getAmount() {
18+
return amount;
19+
}
20+
21+
public void setAmount(String amount) {
22+
this.amount = amount;
23+
}
24+
25+
public String getAsset() {
26+
return asset;
27+
}
28+
29+
public void setAsset(String asset) {
30+
this.asset = asset;
31+
}
32+
33+
public String getInterest() {
34+
return interest;
35+
}
36+
37+
public void setInterest(String interest) {
38+
this.interest = interest;
39+
}
40+
41+
public String getPrincipal() {
42+
return principal;
43+
}
44+
45+
public void setPrincipal(String principal) {
46+
this.principal = principal;
47+
}
48+
49+
public LoanStatus getStatus() {
50+
return status;
51+
}
52+
53+
public void setStatus(LoanStatus status) {
54+
this.status = status;
55+
}
56+
57+
public long getTimestamp() {
58+
return timestamp;
59+
}
60+
61+
public void setTimestamp(long timestamp) {
62+
this.timestamp = timestamp;
63+
}
64+
65+
public String getTxId() {
66+
return txId;
67+
}
68+
69+
public void setTxId(String txId) {
70+
this.txId = txId;
71+
}
72+
73+
@Override
74+
public String toString() {
75+
return "Repay{" +
76+
"amount='" + amount + '\'' +
77+
", asset='" + asset + '\'' +
78+
", interest='" + interest + '\'' +
79+
", principal='" + principal + '\'' +
80+
", status=" + status +
81+
", timestamp=" + timestamp +
82+
", txId='" + txId + '\'' +
83+
'}';
84+
}
85+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.binance.api.client.domain.account;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
5+
import java.util.List;
6+
7+
/**
8+
* History of account withdrawals.
9+
*
10+
* @see Withdraw
11+
*/
12+
@JsonIgnoreProperties(ignoreUnknown = true)
13+
public class RepayQueryResult {
14+
15+
private int total;
16+
private List<Repay> rows;
17+
18+
public int getTotal() {
19+
return total;
20+
}
21+
22+
public void setTotal(int total) {
23+
this.total = total;
24+
}
25+
26+
public List<Repay> getRows() {
27+
return rows;
28+
}
29+
30+
public void setRows(List<Repay> rows) {
31+
this.rows = rows;
32+
}
33+
34+
@Override
35+
public String toString() {
36+
return "RepayQueryResult{" +
37+
"total=" + total +
38+
", rows=" + rows +
39+
'}';
40+
}
41+
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,18 @@ public LoanQueryResult queryLoan(String asset, String txId) {
9393
return executeSync(binanceApiService.queryLoan(asset, txId, timestamp));
9494
}
9595

96+
@Override
97+
public RepayQueryResult queryRepay(String asset, String txId) {
98+
long timestamp = System.currentTimeMillis();
99+
return executeSync(binanceApiService.queryRepay(asset, txId, timestamp));
100+
}
101+
102+
@Override
103+
public RepayQueryResult queryRepay(String asset, long startTime) {
104+
long timestamp = System.currentTimeMillis();
105+
return executeSync(binanceApiService.queryRepay(asset, startTime, timestamp));
106+
}
107+
96108
@Override
97109
public MarginTransaction repay(String asset, String amount) {
98110
long timestamp = System.currentTimeMillis();

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,14 @@ Call<WithdrawResult> withdraw(@Query("asset") String asset, @Query("address") St
182182
@GET("/sapi/v1/margin/loan")
183183
Call<LoanQueryResult> queryLoan(@Query("asset") String asset, @Query("txId") String txId, @Query("timestamp") Long timestamp);
184184

185+
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
186+
@GET("/sapi/v1/margin/repay")
187+
Call<RepayQueryResult> queryRepay(@Query("asset") String asset, @Query("txId") String txId, @Query("timestamp") Long timestamp);
188+
189+
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
190+
@GET("/sapi/v1/margin/repay")
191+
Call<RepayQueryResult> queryRepay(@Query("asset") String asset, @Query("startTime") Long starttime, @Query("timestamp") Long timestamp);
192+
185193
@Headers({BinanceApiConstants.ENDPOINT_SECURITY_TYPE_APIKEY_HEADER, BinanceApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER})
186194
@POST("/sapi/v1/margin/repay")
187195
Call<MarginTransaction> repay(@Query("asset") String asset, @Query("amount") String amount, @Query("recvWindow") Long recvWindow, @Query("timestamp") Long timestamp);

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

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,22 @@
22

33
import com.binance.api.client.BinanceApiClientFactory;
44
import com.binance.api.client.BinanceApiMarginRestClient;
5-
import com.binance.api.client.domain.TransferType;
6-
import com.binance.api.client.domain.account.*;
7-
8-
import java.util.List;
5+
import com.binance.api.client.domain.account.MarginTransaction;
6+
import com.binance.api.client.domain.account.RepayQueryResult;
97

108
/**
119
* Examples on how to get margin account information.
1210
*/
1311
public class MarginAccountEndpointsLoanQueryExample {
1412

15-
public static void main(String[] args) {
16-
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance("YOUR_API_KEY", "YOUR_SECRET");
17-
BinanceApiMarginRestClient client = factory.newMarginRestClient();
18-
MarginTransaction borrowed = client.borrow("USDT", "310");
19-
System.out.println(borrowed.getTranId());
20-
LoanQueryResult queryResult = client.queryLoan("USDT", borrowed.getTranId());
21-
Loan loan = queryResult.getRows().get(0);
22-
System.out.println(loan.getStatus());
23-
}
13+
public static void main(String[] args) {
14+
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance("YOUR_API_KEY", "YOUR_SECRET");
15+
BinanceApiMarginRestClient client = factory.newMarginRestClient();
16+
MarginTransaction borrowed = client.borrow("USDT", "310");
17+
System.out.println(borrowed.getTranId());
18+
MarginTransaction repaid = client.repay("USDT", "310");
19+
System.out.println(repaid);
20+
RepayQueryResult repayQueryResult = client.queryRepay("BNB", System.currentTimeMillis() - 1000);
21+
System.out.println(repayQueryResult);
22+
}
2423
}

0 commit comments

Comments
 (0)