binance
Version:
Professional Node.js & JavaScript SDK for Binance REST APIs & WebSockets, with TypeScript & end-to-end tests.
278 lines (277 loc) • 8.98 kB
TypeScript
export type numberInString = string | number;
export type ExchangeSymbol = string;
export type BooleanString = 'true' | 'false';
export type BooleanStringCapitalised = 'TRUE' | 'FALSE';
export type BinanceBaseUrlKey = 'spot' | 'spot1' | 'spot2' | 'spot3' | 'spot4' | 'spottest' | 'usdmtest' | 'usdm' | 'coinm' | 'coinmtest' | 'voptions' | 'voptionstest' | 'papi' | 'www';
/**
* Time in force. Note: `GTE_GTC` is not officially documented, use at your own risk.
*/
export type OrderTimeInForce = 'GTC' | 'IOC' | 'FOK' | 'GTX' | 'GTE_GTC' | 'GTD';
export type StringBoolean = 'TRUE' | 'FALSE';
export type SideEffects = 'MARGIN_BUY' | 'AUTO_REPAY' | 'NO_SIDE_EFFECT' | 'AUTO_BORROW_REPAY' | 'NO_SIDE_EFFECT';
/**
* ACK = confirmation of order acceptance (no placement/fill information)
* RESULT = fill state
* FULL = fill state + detail on fills and other detail
*/
export type OrderResponseType = 'ACK' | 'RESULT' | 'FULL';
export type OrderIdProperty = 'newClientOrderId' | 'newClientStrategyId' | 'listClientOrderId' | 'limitClientOrderId' | 'stopClientOrderId' | 'aboveClientOrderId' | 'belowClientOrderId' | 'workingClientOrderId' | 'pendingAboveClientOrderId' | 'pendingBelowClientOrderId' | 'pendingClientOrderId' | 'clientAlgoId';
export type OrderSide = 'BUY' | 'SELL';
export type OrderStatus = 'NEW' | 'PARTIALLY_FILLED' | 'FILLED' | 'CANCELED' | 'PENDING_CANCEL' | 'REJECTED' | 'EXPIRED';
export type OrderExecutionType = 'NEW' | 'CANCELED' | 'REJECTED' | 'TRADE' | 'EXPIRED';
export type OCOStatus = 'RESPONSE' | 'EXEC_STARTED' | 'ALL_DONE';
export type OCOOrderStatus = 'EXECUTING' | 'ALL_DONE' | 'REJECT';
export type OrderType = 'LIMIT' | 'LIMIT_MAKER' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT';
export type OrderListOrderType = 'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT';
export type SelfTradePreventionMode = 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE';
export interface BasicAssetParam {
asset: string;
}
export interface BasicSymbolParam {
symbol: string;
isIsolated?: StringBoolean;
}
export interface SymbolArrayParam {
symbols: string[];
}
export interface BasicAssetPaginatedParams {
asset?: string;
startTime?: number;
endTime?: number;
limit?: number;
}
export interface BasicSymbolPaginatedParams {
symbol?: string;
startTime?: number;
endTime?: number;
limit?: number;
}
export interface SymbolPrice {
symbol: string;
price: numberInString;
time?: number;
}
export interface OrderBookParams {
symbol: string;
limit?: 5 | 10 | 20 | 50 | 100 | 500 | 1000 | 5000;
}
export type KlineInterval = '1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M';
export interface GetOrderParams {
symbol: string;
orderId?: number;
origClientOrderId?: string;
}
export interface GetOrderModifyHistoryParams {
symbol: string;
orderId?: number;
origClientOrderId?: string;
startTime?: number;
endTime?: number;
limit?: number;
}
export interface HistoricalTradesParams {
symbol: string;
limit?: number;
fromId?: number;
}
export interface KlinesParams {
symbol: string;
interval: KlineInterval;
startTime?: number;
endTime?: number;
timeZone?: string;
limit?: number;
}
export type Kline = [
number,
numberInString,
numberInString,
numberInString,
numberInString,
numberInString,
number,
numberInString,
number,
numberInString,
numberInString,
numberInString
];
/** @deprecated `FuturesKline` will be removed soon. Use `Kline` instead. **/
export type FuturesKline = Kline;
export interface RecentTradesParams {
symbol: string;
limit?: number;
}
export interface CancelOrderParams {
symbol: string;
orderId?: number;
origClientOrderId?: string;
}
export interface AmendKeepPriorityParams {
symbol: string;
orderId?: number;
origClientOrderId?: string;
newClientOrderId?: string;
newQty: numberInString;
}
export interface CancelOCOParams {
symbol: string;
orderListId?: number;
listClientOrderId?: string;
newClientOrderId?: string;
}
export interface NewOCOParams {
symbol: string;
listClientOrderId?: string;
side: OrderSide;
quantity: number;
limitClientOrderId?: string;
limitStrategyId?: number;
limitStrategyType?: number;
price: number;
limitIcebergQty?: number;
trailingDelta?: number;
stopClientOrderId?: string;
stopPrice: number;
stopStrategyId?: number;
stopStrategyType?: number;
stopLimitPrice?: number;
stopIcebergQty?: number;
stopLimitTimeInForce?: OrderTimeInForce;
newOrderRespType?: OrderResponseType;
/** For isolated margin trading only */
isIsolated?: StringBoolean;
/** Define a side effect, only for margin trading */
sideEffectType?: SideEffects;
}
export interface NewOrderListParams<T extends OrderResponseType = OrderResponseType> {
symbol: string;
listClientOrderId?: string;
side: OrderSide;
quantity: number;
aboveType: OrderListOrderType;
aboveClientOrderId?: string;
aboveIcebergQty?: number;
abovePrice?: number;
aboveStopPrice?: number;
aboveTrailingDelta?: number;
aboveTimeInForce?: OrderTimeInForce;
aboveStrategyId?: number;
aboveStrategyType?: number;
belowType: OrderListOrderType;
belowClientOrderId?: string;
belowIcebergQty?: number;
belowPrice?: number;
belowStopPrice?: number;
belowTrailingDelta?: number;
belowTimeInForce?: OrderTimeInForce;
belowStrategyId?: number;
belowStrategyType?: number;
newOrderRespType?: T;
selfTradePreventionMode?: SelfTradePreventionMode;
}
export interface SymbolFromPaginatedRequestFromId {
symbol: string;
fromId?: number;
startTime?: number;
endTime?: number;
limit?: number;
}
export interface GetAllOrdersParams {
symbol: string;
orderId?: number;
startTime?: number;
endTime?: number;
limit?: number;
}
export interface RateLimiter {
rateLimitType: 'REQUEST_WEIGHT' | 'ORDERS' | 'RAW_REQUESTS';
interval: 'SECOND' | 'MINUTE' | 'DAY';
intervalNum: number;
limit: number;
}
export interface SymbolPriceFilter {
filterType: 'PRICE_FILTER';
minPrice: numberInString;
maxPrice: numberInString;
tickSize: numberInString;
}
export interface SymbolPercentPriceFilter {
filterType: 'PERCENT_PRICE';
multiplierUp: numberInString;
multiplierDown: numberInString;
avgPriceMins: number;
}
export interface SymbolLotSizeFilter {
filterType: 'LOT_SIZE';
minQty: numberInString;
maxQty: numberInString;
stepSize: numberInString;
}
export interface SymbolMinNotionalFilter {
filterType: 'NOTIONAL';
minNotional: numberInString;
applyMinToMarket: boolean;
maxNotional: numberInString;
applyMaxToMarket: boolean;
avgPriceMins: number;
}
export interface SymbolIcebergPartsFilter {
filterType: 'ICEBERG_PARTS';
limit: number;
}
export interface SymbolMarketLotSizeFilter {
filterType: 'MARKET_LOT_SIZE';
minQty: numberInString;
maxQty: numberInString;
stepSize: numberInString;
}
export interface SymbolMaxOrdersFilter {
filterType: 'MAX_NUM_ORDERS';
maxNumOrders: number;
}
export interface SymbolMaxAlgoOrdersFilter {
filterType: 'MAX_NUM_ALGO_ORDERS';
maxNumAlgoOrders: number;
}
export interface SymbolMaxIcebergOrdersFilter {
filterType: 'MAX_NUM_ICEBERG_ORDERS';
maxNumIcebergOrders: number;
}
export interface SymbolMaxPositionFilter {
filterType: 'MAX_POSITION';
maxPosition: numberInString;
}
export type SymbolFilter = SymbolPriceFilter | SymbolPercentPriceFilter | SymbolLotSizeFilter | SymbolMinNotionalFilter | SymbolIcebergPartsFilter | SymbolMarketLotSizeFilter | SymbolMaxOrdersFilter | SymbolMaxAlgoOrdersFilter | SymbolMaxIcebergOrdersFilter | SymbolMaxPositionFilter;
export interface ExchangeMaxNumOrdersFilter {
filterType: 'EXCHANGE_MAX_NUM_ORDERS';
maxNumOrders: number;
}
export interface ExchangeMaxAlgoOrdersFilter {
filterType: 'EXCHANGE_MAX_ALGO_ORDERS';
maxNumAlgoOrders: number;
}
export type ExchangeFilter = ExchangeMaxNumOrdersFilter | ExchangeMaxAlgoOrdersFilter;
export type OrderBookPrice = numberInString;
export type OrderBookAmount = numberInString;
export type OrderBookRow = [OrderBookPrice, OrderBookAmount];
export type OrderBookPriceFormatted = number;
export type OrderBookAmountFormatted = number;
export type OrderBookRowFormatted = [
OrderBookPriceFormatted,
OrderBookAmountFormatted
];
export interface GenericCodeMsgError {
code: number;
msg: string;
}
export interface RowsWithTotal<T> {
rows: T[];
total: number;
}
export interface CoinStartEndLimit {
coin?: string;
startTime?: number;
endTime?: number;
limit?: number;
}