1+ package com .binance .api .client ;
2+
3+ import com .binance .api .client .domain .TransferType ;
4+ import com .binance .api .client .domain .account .*;
5+ import com .binance .api .client .domain .account .request .CancelOrderRequest ;
6+ import com .binance .api .client .domain .account .request .CancelOrderResponse ;
7+ import com .binance .api .client .domain .account .request .OrderRequest ;
8+ import com .binance .api .client .domain .account .request .OrderStatusRequest ;
9+ import com .binance .api .client .domain .event .ListenKey ;
10+
11+ import java .util .List ;
12+
13+ /**
14+ * Binance API façade, supporting asynchronous/non-blocking access Binance's Margin REST API.
15+ */
16+ public interface BinanceApiAsyncMarginRestClient {
17+
18+ // Account endpoints
19+
20+ /**
21+ * Get current margin account information (async).
22+ */
23+ void getAccount (Long recvWindow , Long timestamp , BinanceApiCallback <MarginAccount > callback );
24+
25+ /**
26+ * Get current margin account information using default parameters (async).
27+ */
28+ void getAccount (BinanceApiCallback <MarginAccount > callback );
29+
30+ /**
31+ * Get all open orders on margin account for a symbol (async).
32+ *
33+ * @param orderRequest order request parameters
34+ * @param callback the callback that handles the response
35+ */
36+ void getOpenOrders (OrderRequest orderRequest , BinanceApiCallback <List <Order >> callback );
37+
38+ /**
39+ * Send in a new margin order (async).
40+ *
41+ * @param order the new order to submit.
42+ * @return a response containing details about the newly placed order.
43+ */
44+ void newOrder (NewOrder order , BinanceApiCallback <NewOrderResponse > callback );
45+
46+ /**
47+ * Cancel an active margin order (async).
48+ *
49+ * @param cancelOrderRequest order status request parameters
50+ */
51+ void cancelOrder (CancelOrderRequest cancelOrderRequest , BinanceApiCallback <CancelOrderResponse > callback );
52+
53+ /**
54+ * Check margin order's status (async).
55+ *
56+ * @param orderStatusRequest order status request options/filters
57+ * @return an order
58+ */
59+ void getOrderStatus (OrderStatusRequest orderStatusRequest , BinanceApiCallback <Order > callback );
60+
61+ /**
62+ * Get margin trades for a specific symbol (async).
63+ *
64+ * @param symbol symbol to get trades from
65+ * @return a list of trades
66+ */
67+ void getMyTrades (String symbol , BinanceApiCallback <List <Trade >> callback );
68+
69+ // User stream endpoints
70+
71+ /**
72+ * Start a new user data stream (async).
73+ *
74+ * @return a listen key that can be used with data streams
75+ */
76+ void startUserDataStream (BinanceApiCallback <ListenKey > callback );
77+
78+ /**
79+ * PING a user data stream to prevent a time out (async).
80+ *
81+ * @param listenKey listen key that identifies a data stream
82+ */
83+ void keepAliveUserDataStream (String listenKey , BinanceApiCallback <Void > callback );
84+
85+ /**
86+ * Execute transfer between spot account and margin account
87+ * @param asset asset to repay
88+ * @param amount amount to repay
89+ * @return transaction id
90+ */
91+ void transfer (String asset , String amount , TransferType type , BinanceApiCallback <MarginTransaction > callback );
92+
93+ /**
94+ * Apply for a loan
95+ * @param asset asset to repay
96+ * @param amount amount to repay
97+ * @return transaction id
98+ */
99+ void borrow (String asset , String amount , BinanceApiCallback <MarginTransaction > callback );
100+
101+ /**
102+ * Repay loan for margin account
103+ * @param asset asset to repay
104+ * @param amount amount to repay
105+ * @return transaction id
106+ */
107+ void repay (String asset , String amount , BinanceApiCallback <MarginTransaction > callback );
108+
109+ }
0 commit comments