Skip to content

Commit ee6addd

Browse files
authored
feat(client): add margin capital flow and interest history endpoints (#681)
* feat(client): add margin capital flow and interest history endpoints * export types
1 parent 4d144ed commit ee6addd

3 files changed

Lines changed: 137 additions & 1 deletion

File tree

index.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,9 @@ export {
114114
MarginMaxBorrow,
115115
MarginOrderParams,
116116
MarginOrderOcoParams,
117-
MarginEndpoints
117+
MarginEndpoints,
118+
CapitalFlowType,
119+
MarginInterestHistory
118120
} from './types/margin';
119121

120122
export * from './types/portfolio-margin';

src/http-client.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,8 @@ export default opts => {
745745
marginMyTrades: payload => privCall('/sapi/v1/margin/myTrades', payload),
746746
marginRepay: payload => privCall('/sapi/v1/margin/repay', payload, 'POST'),
747747
marginLoan: payload => privCall('/sapi/v1/margin/loan', payload, 'POST'),
748+
marginCapitalFlow: payload => privCall('/sapi/v1/margin/capital-flow', payload),
749+
marginInterestHistory: payload => privCall('/sapi/v1/margin/interestHistory', payload),
748750
marginIsolatedAccount: payload => privCall('/sapi/v1/margin/isolated/account', payload),
749751
marginMaxBorrow: payload => privCall('/sapi/v1/margin/maxBorrowable', payload),
750752
marginCreateIsolated: payload =>
@@ -757,6 +759,8 @@ export default opts => {
757759
privCall('/sapi/v1/margin/isolated/account', payload, 'DELETE'),
758760
enableMarginAccount: payload =>
759761
privCall('/sapi/v1/margin/isolated/account', payload, 'POST'),
762+
isolatedMarginAllPairs: payload => privCall('/sapi/v1/margin/isolated/allPairs', payload),
763+
isolatedMarginAccount: payload => privCall('/sapi/v1/margin/isolated/account', payload),
760764
marginAccount: () => privCall('/sapi/v1/margin/account'),
761765

762766
// Portfolio Margin endpoints

types/margin.d.ts

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,25 @@ export interface MarginAsset {
1010
netAsset: string;
1111
}
1212

13+
export type CapitalFlowType =
14+
| 'TRANSFER'
15+
| 'BORROW'
16+
| 'REPAY'
17+
| 'BUY_INCOME'
18+
| 'BUY_EXPENSE'
19+
| 'SELL_INCOME'
20+
| 'SELL_EXPENSE'
21+
| 'TRADING_COMMISSION'
22+
| 'BUY_LIQUIDATION'
23+
| 'SELL_LIQUIDATION'
24+
| 'REPAY_LIQUIDATION'
25+
| 'OTHER_LIQUIDATION'
26+
| 'LIQUIDATION_FEE'
27+
| 'SMALL_BALANCE_CONVERT'
28+
| 'COMMISSION_RETURN'
29+
| 'SMALL_CONVERT'
30+
31+
1332
export interface MarginAccountInfo {
1433
borrowEnabled: boolean;
1534
marginLevel: string;
@@ -93,11 +112,61 @@ export interface MarginOrderOcoParams extends Omit<MarginOrderParams, 'type'> {
93112
limitTimeInForce?: TimeInForce;
94113
}
95114

115+
export interface MarginInterestHistory {
116+
txId: string;
117+
interestAccuredTime: number;
118+
asset: string;
119+
rawAsset?: string;
120+
principal: string;
121+
interest: string;
122+
interestRate: string;
123+
type: string;
124+
isolatedSymbol: string;
125+
}
126+
96127
export interface MarginEndpoints extends BinanceRestClient {
97128
// Account endpoints
98129
marginAccountInfo(): Promise<MarginAccountInfo>;
130+
marginCapitalFlow(params?: {
131+
asset?: string;
132+
/**
133+
* Required when querying isolated data
134+
*/
135+
symbol?: string;
136+
type?: CapitalFlowType;
137+
/**
138+
* Only supports querying the data of the last 90 days
139+
*/
140+
startTime?: number;
141+
endTime?: number;
142+
fromId?: number;
143+
/**
144+
* The number of data items returned each time is limited. Default 500; Max 1000.
145+
*/
146+
limit?: number;
147+
recvWindow?: number;
148+
}): Promise<
149+
{
150+
id: number;
151+
tranId: number;
152+
timestamp: number;
153+
asset: string;
154+
symbol: string;
155+
type: CapitalFlowType;
156+
amount: number;
157+
}[]
158+
>;
99159
marginIsolatedAccount(params: { symbols: string }): Promise<MarginIsolatedAccount>;
100160
marginMaxBorrow(params: { asset: string; isolatedSymbol?: string }): Promise<MarginMaxBorrow>;
161+
marginInterestHistory(params: {
162+
asset?: string;
163+
isolatedSymbol?: string;
164+
startTime?: number;
165+
endTime?: number;
166+
current?: number;
167+
size?: number;
168+
timestamp?: number;
169+
}): Promise<{ total: number; rows: MarginInterestHistory[] }>;
101170
marginCreateIsolated(params: { base: string; quote: string }): Promise<{ success: boolean; symbol: string }>;
102171
marginIsolatedTransfer(params: {
103172
asset: string;
@@ -129,6 +198,67 @@ export interface MarginEndpoints extends BinanceRestClient {
129198
}>;
130199
disableMarginAccount(params: { symbol: string }): Promise<{ success: boolean; symbol: string }>;
131200
enableMarginAccount(params: { symbol: string }): Promise<{ success: boolean; symbol: string }>;
201+
isolatedMarginAllPairs(params: {
202+
symbol?: string
203+
}): Promise<
204+
{
205+
base: string;
206+
isBuyAllowed: boolean;
207+
isMarginTrade: boolean;
208+
isSellAllowed: boolean;
209+
quote: string;
210+
symbol: string;
211+
}[]
212+
>;
213+
isolatedMarginAccount(params: {
214+
/**
215+
* Max 5 symbols can be sent; separated by ",". e.g. "BTCUSDT,BNBUSDT,ADAUSDT"
216+
*/
217+
symbols?: string;
218+
recvWindow?: number;
219+
}): Promise<{
220+
assets: {
221+
baseAsset: {
222+
asset: string;
223+
borrowEnabled: boolean;
224+
borrowed: number;
225+
free: number;
226+
interest: number;
227+
locked: number;
228+
netAsset: number;
229+
netAssetOfBtc: number;
230+
repayEnabled: boolean;
231+
totalAsset: number;
232+
},
233+
quoteAsset: {
234+
asset: string;
235+
borrowEnabled: boolean;
236+
borrowed: number;
237+
free: number;
238+
interest: number;
239+
locked: number;
240+
netAsset: number;
241+
netAssetOfBtc: number;
242+
repayEnabled: boolean;
243+
totalAsset: number;
244+
};
245+
symbol: string;
246+
isolatedCreated: boolean;
247+
enabled: boolean;
248+
marginLevel: number;
249+
marginLevelStatus:
250+
| 'EXCESSIVE'
251+
| 'NORMAL'
252+
| 'MARGIN_CALL'
253+
| 'PRE_LIQUIDATION'
254+
| 'FORCE_LIQUIDATION';
255+
marginRatio: number;
256+
indexPrice: number;
257+
liquidatePrice: number;
258+
liquidateRate: number;
259+
tradeEnabled: boolean;
260+
}[]
261+
}>;
132262
marginAccount(): Promise<MarginAccountInfo>;
133263

134264
// Order endpoints

0 commit comments

Comments
 (0)