UNPKG

node-binance-api

Version:

Binance API for node https://github.com/ccxt/node-binance-api

593 lines (543 loc) 14.6 kB
// trying to keep them compatible with // https://github.com/ViewBlock/binance-api-node/blob/master/index.d.ts export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' export type Interval = | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M' export type OrderType = | 'LIMIT' | 'MARKET' | 'STOP' | 'STOP_MARKET' | 'TAKE_PROFIT' | 'TAKE_PROFIT_MARKET' | 'LIMIT_MAKER' | 'TRAILING_STOP_MARKET' export type OrderSide = 'BUY' | 'SELL' export type OrderStatus = | 'CANCELED' | 'EXPIRED' | 'FILLED' | 'NEW' | 'PARTIALLY_FILLED' | 'PENDING_CANCEL' | 'REJECTED' export type TimeInForce = 'GTC' | 'IOC' | 'FOK' | 'GTE_GTC' | 'GTD' export interface Response { code: number msg: string } export interface Candle { openTime: number open: string high: string low: string close: string volume: string closeTime: number quoteVolume?: string trades: number baseAssetVolume?: string quoteAssetVolume: string } export interface OrderFill { tradeId: number price: string qty: string commission: string commissionAsset: string } export interface Order { clientOrderId: string cummulativeQuoteQty: string executedQty: string fills?: OrderFill[] icebergQty?: string isIsolated?: boolean isWorking: boolean orderId: number orderListId: number origQty: string price: string side: OrderSide status: OrderStatus stopPrice?: string symbol: string time: number timeInForce: TimeInForce transactTime?: number type: OrderType updateTime: number } export interface FuturesOrder { clientOrderId: string cumQty: string cumQuote: string executedQty: string orderId: number avgPrice: string origQty: string price: string reduceOnly: boolean side: OrderSide positionSide: PositionSide status: OrderStatus stopPrice: string closePosition: boolean symbol: string timeInForce: TimeInForce type: OrderType origType: OrderType activatePrice: string priceRate: string updateTime: number workingType: WorkingType } export type PositionSide = 'BOTH' | 'SHORT' | 'LONG' export type WorkingType = 'MARK_PRICE' | 'CONTRACT_PRICE' // export type symbol = string; // eslint-disable-next-line export type Callback = (...args: any) => any; export interface IConstructorArgs { APIKEY: string; APISECRET: string; PRIVATEKEY: string; // when using RSA/EDCSA keys PRIVATEKEYPASSWORD: string; // when using RSA/EDCSA keys recvWindow: number; useServerTime: boolean; reconnect: boolean; test: boolean; hedgeMode: boolean; httpsProxy: string; socksProxy: string; domain: string; headers: Record<string, any>; // eslint-disable-next-line log: (...args: any[]) => void; verbose: boolean; keepAlive: boolean; localAddress: boolean; family: boolean; urls: Partial<{ base: string; wapi: string; sapi: string; fapi: string; fapiTest: string; stream: string; combineStream: string; fstream: string; fstreamSingle: string; fstreamTest: string; fstreamSingleTest: string; dstream: string; dstreamSingle: string; dstreamTest: string; dstreamSingleTest: string; }>; timeOffset: number; } export interface IWebsocketsMethods { // deprecated, using it for backward compatibility /* eslint-disable */ userData(all_updates_callback?: Callback, balance_callback?: Callback, execution_callback?: Callback, subscribed_callback?: Callback, list_status_callback?: Callback); userMarginData(call_updates_callback?: Callback, balance_callback?: Callback, executionCallback?: Callback, subscribedCallback?: Callback, list_statusCallback?: Callback); depthCacheStaggered(symbols :string |string[], callback?: Callback, limit?: number, stagger?: number); userFutureData(all_updates_callback?: Callback, margin_callCallback?: Callback, account_updateCallback?: Callback, order_updateCallback?: Callback, subscribedCallback?: Callback); userDeliveryData(all_updates_callback?: Callback, margin_callCallback?: Callback, account_updateCallback?: Callback, order_updateCallback?: Callback, subscribedCallback?: Callback): any; subscribeCombined(url: string, callback: Callback, reconnect?: Callback, opened_callback?: Callback); subscribe(endpoint: string, callback: Callback, reconnect?: Callback, opened_callback?: Callback); subscriptions(...args: any): any; futuresSubcriptions(...args: any): any; deliverySubcriptions(...args: any): any; terminate(endpoint: string): any; futuresTerminate(endpoint: string, reconnect?: boolean) deliveryTerminate(endpoint: string, reconnect?: boolean) depth(...args: any): any; depthCache(symbols: string[] | string, callback?: Callback, limit?: number): any; clearDepthCache(symbols: string | string[]): any; depthCacheStaggered(symbols: string[] | string, callback: Callback, limit?: number, stagger?: number) aggTrades(symbols: string | string[], callback: Callback): any; trades(symbols: string | string[], callback: Callback): string; chart(symbols: string | string[], interval: Interval, callback?: Callback, limit?: number) candlesticks(symbols: string | string[], interval: Interval, callback: Callback) miniTicker(callback: Callback): string; bookTickers(symbol: string | string[], callback?: Callback): string; prevDay(symbols: string | string[] | undefined, callback?: Callback, singleCallback?: Callback) futuresCandlesticks(symbols: string[] | string, interval: Interval, callback: Callback) futuresTicker(symbol?: string, callback?: Callback) futuresMiniTicker(symbol?: string, callback?: Callback) futuresAggTrades(symbols: string[] | string, callback: Callback) futuresMarkPrice(symbol?: string, callback?: Callback, speed?: string) futuresLiquidation(symbol?: string, callback?: Callback) futuresTicker(symbol?: string, callback?: Callback) futuresBookTicker(symbol?: string, callback?: Callback) futuresChart(symbols: string[] | string, interval: Interval, callback: Callback, limit?: number) deliveryAggTrade(symbols: string[] | string, callback: Callback) deliveryMarkPrice(symbol?: string, callback?: Callback, speed?: string) deliveryLiquidation(symbol?: string, callback?: Callback) deliveryTicker(symbol?: string, callback?: Callback) deliveryMiniTicker(symbol?: string, callback?: Callback) deliveryBookTicker(symbol?: string, callback?: Callback) deliveryChart(symbols: string[] | string, interval: Interval, callback: Callback, limit?: number) deliveryCandlesticks(symbols: string[] | string, interval: Interval, callback: Callback) } export interface FundingRate { symbol: string fundingRate: string fundingTime: number time: number } export interface PositionRisk { entryPrice: string marginType: 'isolated' | 'cross' isAutoAddMargin: string isolatedMargin: string leverage: string liquidationPrice: string markPrice: string maxNotionalValue: string positionAmt: string symbol: string unRealizedProfit: string positionSide: PositionSide notional: string isolatedWallet: string updateTime: number } export interface CancelOrder{ symbol: string origClientOrderId: string orderId: number orderListId: number clientOrderId: string price: string origQty: string executedQty: string cummulativeQuoteQty: string status: string timeInForce: string type: OrderType side: OrderSide } export interface AggregatedTrade { aggId: number symbol: string price: string quantity: string firstId: number lastId: number timestamp: number isBuyerMaker: boolean wasBestPrice?: boolean } export interface Trade { id: number price: string qty: string quoteQty: string time: number isBuyerMaker: boolean isBestMatch: boolean } export interface MyTrade { id: number symbol: string orderId: number orderListId: number price: string qty: string quoteQty: string commission: string commissionAsset: string time: number isBuyer: boolean isMaker: boolean isBestMatch: boolean } export type WithdrawStatus = 0 | 1 | 2 | 3 | 4 | 5 | 6 export interface WithdrawHistoryResponse { [index: number]: { id: string amount: string transactionFee: string address: string coin: string txId: string applyTime: number status: WithdrawStatus network: string transferType?: number withdrawOrderId?: string } } export interface DepositHistoryResponse { [index: number]: { insertTime: number amount: string coin: string network: string address: string txId: string status: DepositStatus addressTag?: string transferType?: number confirmTimes?: string } } export interface CancelOrder { symbol: string origClientOrderId: string orderId: number orderListId: number clientOrderId: string price: string origQty: string executedQty: string cummulativeQuoteQty: string status: string timeInForce: string type: OrderType side: OrderSide } export interface FuturesUserTrade { buyer: boolean commission: string commissionAsset: string id: number maker: boolean orderId: number price: string qty: string quoteQty: string realizedPnl: string side: OrderSide positionSide: PositionSide symbol: string time: number } export interface DepositAddress { address: string tag: string coin: string url: string } export interface WithdrawResponse { id: string } export type DepositStatus = 0 | 1 export interface FuturesCancelAllOpenOrder { code: number msg: string } export interface OrderBook { symbol: string lastUpdateId: number asks: Bid[] bids: Bid[] } export interface Bid { price: string quantity: string } export interface BookTicker { symbol: string bidPrice: string bidQty: string askPrice: string askQty: string } export interface DailyStats { symbol: string priceChange: string priceChangePercent: string weightedAvgPrice: string prevClosePrice: string lastPrice: string lastQty: string bidPrice: string bidQty: string askPrice: string askQty: string openPrice: string highPrice: string lowPrice: string volume: string quoteVolume: string openTime: number closeTime: number firstId: number // First tradeId lastId: number // Last tradeId count: number // Trade count } export interface Ticker { eventType: string eventTime: number symbol: string priceChange: string priceChangePercent: string weightedAvg: string prevDayClose: string curDayClose: string closeTradeQuantity: string bestBid: string bestBidQnt: string bestAsk: string bestAskQnt: string open: string high: string low: string volume: string volumeQuote: string openTime: number closeTime: number firstTradeId: number lastTradeId: number totalTrades: number } // export { // Interval as interval, // string as symbol, // Callback as callback, // IConstructorArgs // } export type TradingType = 'MARGIN' | 'SPOT' export interface Account { accountType: TradingType balances: AssetBalance[] buyerCommission: number canDeposit: boolean canTrade: boolean canWithdraw: boolean makerCommission: number permissions: TradingType[] sellerCommission: number takerCommission: number updateTime: number } export interface AssetBalance { asset: string free: string locked: string } export interface FuturesAccountInfo { feeTier: number canTrade: boolean canDeposit: boolean canWithdraw: boolean updateTime: number totalInitialMargin: string totalMaintMargin: string totalWalletBalance: string totalUnrealizedProfit: string totalMarginBalance: string totalPositionInitialMargin: string totalOpenOrderInitialMargin: string totalCrossWalletBalance: string totalCrossUnPnl: string availableBalance: string maxWithdrawAmount: string assets: FuturesAsset[] positions: FuturesAccountPosition[] } export interface FuturesAccountPosition { symbol: string initialMargin: string maintMargin: string unrealizedProfit: string positionInitialMargin: string openOrderInitialMargin: string leverage: string isolated: boolean entryPrice: string maxNotional: string positionSide: PositionSide positionAmt: string notional: string isolatedWallet: string updateTime: number bidNotional: string askNotional: string } export type FuturesAssetType = | 'DOT' | 'BTC' | 'SOL' | 'BNB' | 'ETH' | 'ADA' | 'USDT' | 'XRP' | 'BUSD' export type FuturesAsset = { asset: FuturesAssetType walletBalance: string unrealizedProfit: string marginBalance: string maintMargin: string initialMargin: string positionInitialMargin: string openOrderInitialMargin: string maxWithdrawAmount: string crossWalletBalance: string crossUnPnl: string availableBalance: string marginAvailable: boolean updateTime: number } export interface FuturesBalance { accountAlias: string asset: string balance: string crossWalletBalance: string crossUnPnl: string availableBalance: string maxWithdrawAmount: string } export interface QueryOrder { clientOrderId: string cummulativeQuoteQty: string executedQty: string icebergQty: string isWorking: boolean orderId: number orderListId: number origQty: string origQuoteOrderQty: string price: string side: OrderSide status: OrderStatus stopPrice: string symbol: string time: number timeInForce: TimeInForce type: OrderType updateTime: number } export interface PremiumIndex { symbol: string markPrice: string indexPrice: string lastFundingRate: string nextFundingTime: number estimatedSettlePrice: string time: number } export interface OpenInterest { openInterest: string symbol: string time: number }