@exchanges/binance
Version:
Exchange provider for Binance API
166 lines (165 loc) • 4.58 kB
TypeScript
import { coinM } from '../../../info';
export declare type UserDataResponse = MarginCallResponse | AccountUpdateResponse | OrderTradeUpdateResponse;
export declare type UserDataResponseRaw = MarginCallResponseRaw | AccountUpdateResponseRaw | OrderTradeUpdateResponseRaw;
export interface MarginCallResponse {
eventType: 'MARGIN_CALL';
eventTime: Date;
accountAlias: string;
crossWalletBalance: number;
positionsOfMarginCall: {
symbol: string;
positionSide: coinM.PositionSide;
positionAmount: number;
marginType: coinM.MarginType;
isolatedWallet: number;
markPrice: number;
unrealizedPnL: number;
maintenanceMarginRequired: number;
}[];
}
export interface MarginCallResponseRaw {
e: 'MARGIN_CALL';
E: number;
i: string;
cw: string;
p: {
s: string;
ps: coinM.PositionSide;
pa: string;
mt: coinM.MarginType;
iw: string;
mp: string;
up: string;
mm: string;
}[];
}
export interface AccountUpdateResponse {
eventType: 'ACCOUNT_UPDATE';
eventTime: Date;
transactionTime: Date;
accountAlias: string;
updateData: {
eventReasonType: string;
balances: {
asset: string;
walletBalance: number;
crossWalletBalance: number;
}[];
positions: {
symbol: string;
positionAmount: number;
entryPrice: number;
preFeeAccumulatedRealized: number;
unrealizedPnL: number;
marginType: coinM.MarginType;
isolatedWallet: number;
positionSide: coinM.PositionSide;
}[];
};
}
export interface AccountUpdateResponseRaw {
e: 'ACCOUNT_UPDATE';
E: number;
T: number;
i: string;
a: {
m: string;
B: {
a: string;
wb: string;
cw: string;
}[];
P: {
s: string;
pa: string;
ep: string;
cr: string;
up: string;
mt: coinM.MarginType;
iw: string;
ps: coinM.PositionSide;
}[];
};
}
export interface OrderTradeUpdateResponse {
eventType: 'ORDER_TRADE_UPDATE';
eventTime: Date;
transactionTime: Date;
accountAlias: string;
symbol: string;
clientOrderId: string;
side: coinM.OrderSide;
orderType: coinM.OrderType;
timeInForce: coinM.TimeInForce;
originalQuantity: number;
originalPrice: number;
averagePrice: number;
stopPrice: number;
executionType: coinM.ExecutionType;
orderStatus: coinM.OrderStatus;
orderId: number;
orderLastFilledQuantity: number;
orderFilledAccumulatedQuantity: number;
lastFilledPrice: number;
marginAsset: string;
commissionAsset: string;
commissionAmount: number;
orderTradeTime: Date;
tradeId: number;
realizedProfit: number;
bidQuantityOfBaseAsset: number;
askQuantityOfBaseAsset: number;
isBuyerMaker: boolean;
isReduceOnly: boolean;
stopPriceWorkingType: coinM.WorkingType;
originalOrderType: coinM.OrderType;
positionSide: coinM.PositionSide;
isConditionalOrder: boolean;
activationPrice: number;
callbackRate: number;
isConditionalOrderProtected: boolean;
}
export interface OrderTradeUpdateResponseRaw {
e: 'ORDER_TRADE_UPDATE';
E: number;
T: number;
i: string;
o: {
s: string;
c: string;
S: coinM.OrderSide;
o: coinM.OrderType;
f: coinM.TimeInForce;
q: string;
p: string;
ap: string;
sp: string;
x: coinM.ExecutionType;
X: coinM.OrderStatus;
i: number;
l: string;
z: string;
L: string;
ma: string;
N: string;
n: string;
T: number;
t: number;
rp: string;
b: string;
a: string;
m: boolean;
R: boolean;
wt: coinM.WorkingType;
ot: coinM.OrderType;
ps: coinM.PositionSide;
cp: boolean;
AP: string;
cr: string;
pP: boolean;
};
}
export declare function parseMarginCall(data: MarginCallResponseRaw): MarginCallResponse;
export declare function parseAccountUpdate(data: AccountUpdateResponseRaw): AccountUpdateResponse;
export declare function parseOrderTradeUpdate(data: OrderTradeUpdateResponseRaw): OrderTradeUpdateResponse;
export declare function parseUserData(data: UserDataResponseRaw): UserDataResponse;