UNPKG

binance-api-networks

Version:

A node API wrapper for Binance (Support Networks SAPI)

1,116 lines (1,022 loc) 30.2 kB
// tslint:disable:interface-name declare module 'binance-api-networks' { export default function(options?: { apiKey?: string apiSecret?: string getTime?: () => number | Promise<number> httpBase?: string httpFutures?: string wsBase?: string wsFutures?: string }): Binance export enum ErrorCodes { UNKNOWN = -1000, DISCONNECTED = -1001, UNAUTHORIZED = -1002, TOO_MANY_REQUESTS = -1003, UNEXPECTED_RESP = -1006, TIMEOUT = -1007, INVALID_MESSAGE = -1013, UNKNOWN_ORDER_COMPOSITION = -1014, TOO_MANY_ORDERS = -1015, SERVICE_SHUTTING_DOWN = -1016, UNSUPPORTED_OPERATION = -1020, INVALID_TIMESTAMP = -1021, INVALID_SIGNATURE = -1022, ILLEGAL_CHARS = -1100, TOO_MANY_PARAMETERS = -1101, MANDATORY_PARAM_EMPTY_OR_MALFORMED = -1102, UNKNOWN_PARAM = -1103, UNREAD_PARAMETERS = -1104, PARAM_EMPTY = -1105, PARAM_NOT_REQUIRED = -1106, NO_DEPTH = -1112, TIF_NOT_REQUIRED = -1114, INVALID_TIF = -1115, INVALID_ORDER_TYPE = -1116, INVALID_SIDE = -1117, EMPTY_NEW_CL_ORD_ID = -1118, EMPTY_ORG_CL_ORD_ID = -1119, BAD_INTERVAL = -1120, BAD_SYMBOL = -1121, INVALID_LISTEN_KEY = -1125, MORE_THAN_XX_HOURS = -1127, OPTIONAL_PARAMS_BAD_COMBO = -1128, INVALID_PARAMETER = -1130, BAD_API_ID = -2008, DUPLICATE_API_KEY_DESC = -2009, INSUFFICIENT_BALANCE = -2010, CANCEL_ALL_FAIL = -2012, NO_SUCH_ORDER = -2013, BAD_API_KEY_FMT = -2014, REJECTED_MBX_KEY = -2015, } export interface Account { accountType: TradingType.MARGIN | TradingType.SPOT balances: AssetBalance[] buyerCommission: number canDeposit: boolean canTrade: boolean canWithdraw: boolean makerCommission: number permissions: TradingType[] sellerCommission: number takerCommission: number updateTime: number } export interface TradeFee { symbol: string maker: number taker: number } export interface TradeFeeResult { tradeFee: TradeFee[] success: boolean } export interface AggregatedTrade { aggId: number symbol: string price: string quantity: string firstId: number lastId: number timestamp: number isBuyerMaker: boolean wasBestPrice: boolean } export interface AssetBalance { asset: string free: string locked: string } export interface DepositAddress { address: string addressTag: string asset: string success: boolean } export interface DepositAddressNetwork { address: string, tag: string, addressTag: string, coin: string, url: string, success: boolean, } export interface WithrawResponse { id: string msg: string success: boolean } export interface DepositHistoryNetworkResponse { depositList: { insertTime: number, amount: number; coin: string; network: string; address: string; txId: string; status: DepositStatus; }[]; success: boolean, } export enum DepositStatus { PENDING = 0, SUCCESS = 1, } export interface DepositHistoryResponse { depositList: { insertTime: number amount: number asset: string address: string txId: string status: DepositStatus }[] success: boolean } export enum WithdrawStatus { EMAIL_SENT = 0, CANCELLED = 1, AWAITING_APPROVAL = 2, REJECTED = 3, PROCESSING = 4, FAILURE = 5, COMPLETED = 6, } export interface WithdrawHistoryResponse { withdrawList: { id: string amount: number transactionFee: number address: string asset: string txId: string applyTime: number status: WithdrawStatus }[] success: boolean } export interface AssetDetail { success: boolean assetDetail: { [asset: string]: { minWithdrawAmount: number depositStatus: boolean withdrawFee: number withdrawStatus: boolean depositTip?: string } } } export type GetOrderOptions = {symbol: string, orderId: number} | {symbol: string, origClientOrderId: string} export interface GetInfo { spot: GetInfoDetails futures: GetInfoDetails } export type GetInfoDetails = { useWeight1m?: string orderCount10s?: string orderCount1m?: string orderCount1h?: string orderCount1d?: string responseTime?: string } export type TransferType = 'MAIN_C2C' | 'MAIN_UMFUTURE' | 'MAIN_CMFUTURE' | 'MAIN_MARGIN' | 'MAIN_MINING' | 'C2C_MAIN' | 'C2C_UMFUTURE' | 'C2C_MINING' | 'UMFUTURE_MAIN' | 'UMFUTURE_C2C' | 'UMFUTURE_MARGIN' | 'CMFUTURE_MAIN' | 'MARGIN_MAIN' | 'MARGIN_UMFUTURE' | 'MINING_MAIN' | 'MINING_UMFUTURE' | 'MINING_C2C' export interface UniversalTransfer { type: TransferType asset: string amount: string recvWindow?: number } export interface UniversalTransferHistory { type: TransferType startTime?: number endTime?: number current?: number size?: number recvWindow?: number } export interface UniversalTransferHistoryResponse { total: string, rows: { asset: string amount: string type: TransferType status: string tranId: number timestamp: number }[] } export interface Binance { getInfo(): GetInfo accountInfo(options?: { useServerTime: boolean }): Promise<Account> tradeFee(): Promise<TradeFeeResult> aggTrades(options?: { symbol: string fromId?: string startTime?: number endTime?: number limit?: number }): Promise<AggregatedTrade[]> allBookTickers(): Promise<{ [key: string]: Ticker }> book(options: { symbol: string; limit?: number }): Promise<OrderBook> exchangeInfo(): Promise<ExchangeInfo> order(options: NewOrder): Promise<Order> orderTest(options: NewOrder): Promise<Order> orderOco(options: NewOcoOrder): Promise<OcoOrder> ping(): Promise<boolean> prices(options?: { symbol?: string }): Promise<{ [index: string]: string }> avgPrice(options?: { symbol: string }): Promise<AvgPriceResult | AvgPriceResult[]> time(): Promise<number> trades(options: { symbol: string; limit?: number }): Promise<TradeResult[]> ws: WebSocket myTrades(options: { symbol: string limit?: number fromId?: number useServerTime?: boolean }): Promise<MyTrade[]> getOrder(options: GetOrderOptions & {useServerTime?: boolean}): Promise<QueryOrderResult> cancelOrder(options: { symbol: string orderId: number useServerTime?: boolean }): Promise<CancelOrderResult> cancelOpenOrders(options: { symbol: string useServerTime?: boolean }): Promise<CancelOrderResult[]> openOrders(options: { symbol?: string; useServerTime?: boolean }): Promise<QueryOrderResult[]> allOrders(options: { symbol?: string; useServerTime?: boolean }): Promise<QueryOrderResult[]> allOrdersOCO(options: { timestamp: number fromId?: number startTime?: number endTime?: number limit?: number recvWindow: number }): Promise<QueryOrderResult[]> dailyStats(options?: { symbol: string }): Promise<DailyStatsResult | DailyStatsResult[]> candles(options: CandlesOptions): Promise<CandleChartResult[]> tradesHistory(options: { symbol: string limit?: number fromId?: number }): Promise<TradeResult[]> depositAddress(options: { asset: string }): Promise<DepositAddress> withdraw(options: { asset: string address: string amount: number name?: string }): Promise<WithrawResponse> assetDetail(): Promise<AssetDetail> withdrawHistory(options: { asset: string status?: number startTime?: number endTime?: number }): Promise<WithdrawHistoryResponse> depositHistory(options: { asset: string status?: number startTime?: number endTime?: number }): Promise<DepositHistoryResponse> depositAddressNetworks(options: { coin: string network?: string }): Promise<DepositAddressNetwork> depositHistoryNetworks(options: { coin?: string status?: number startTime?: number endTime?: number }): Promise<DepositHistoryNetworkResponse> universalTransfer(options: UniversalTransfer): Promise<{tranId: number}> universalTransferHistory(options: UniversalTransferHistory): Promise<UniversalTransferHistoryResponse> futuresPing(): Promise<boolean> futuresTime(): Promise<number> futuresExchangeInfo(): Promise<ExchangeInfo> futuresBook(options: { symbol: string; limit?: number }): Promise<OrderBook> futuresCandles(options: CandlesOptions): Promise<CandleChartResult[]> futuresAggTrades(options?: { symbol: string fromId?: string startTime?: number endTime?: number limit?: number }): Promise<AggregatedTrade[]> futuresTrades(options: { symbol: string; limit?: number }): Promise<TradeResult[]> futuresDailyStats(options?: { symbol: string }): Promise<DailyStatsResult | DailyStatsResult[]> futuresPrices(): Promise<{ [index: string]: string }> futuresAllBookTickers(): Promise<{ [key: string]: Ticker }> futuresMarkPrice(): Promise<MarkPriceResult> futuresAllForceOrders(options?: { symbol?: string startTime?: number endTime?: number limit?: number }): Promise<AllForceOrdersResult[]> futuresFundingRate(options: { symbol: string startTime?: number endTime?: number limit?: number }): Promise<FundingRateResult[]> futuresOrder(options: NewOrder): Promise<Order> futuresCancelOrder(options: { symbol: string orderId: number useServerTime?: boolean }): Promise<CancelOrderResult> futuresOpenOrders(options: { symbol?: string useServerTime?: boolean }): Promise<QueryOrderResult[]> futuresPositionRisk(options?: { recvWindow: number }): Promise<PositionRiskResult[]> futuresAccountBalance(options?: { recvWindow: number }): Promise<FuturesBalanceResult[]> futuresPositionMode(options?: { recvWindow: number }): Promise<PositionModeResult> futuresPositionModeChange(options: { dualSidePosition: string recvWindow: number }): Promise<ChangePositionModeResult> marginOrder(options: NewOrder): Promise<Order> marginAllOrders(options: { symbol: string, useServerTime?: boolean }): Promise<QueryOrderResult[]> marginCancelOrder(options: { symbol: string orderId?: number useServerTime?: boolean }): Promise<CancelOrderResult> marginOpenOrders(options: { symbol?: string; useServerTime?: boolean }): Promise<QueryOrderResult[]> marginRepay(options: { asset: string; amount:number; useServerTime?: boolean }): Promise<{tranId:number}> marginLoan(options: { asset: string; amount:number; useServerTime?: boolean }): Promise<{tranId:number}> marginIsolatedAccount(options?: { symbols?: string; recvWindow?: number }): Promise<IsolatedMarginAccount> marginMaxBorrow(options: {asset: string, isolatedSymbol?: string, recvWindow?: number}): Promise<{amount: string, borrowLimit: string}> marginCreateIsolated(options: {base: string, quote: string, recvWindow?: number}): Promise<{success: boolean, symbol: string}> marginIsolatedTransfer(options: marginIsolatedTransfer): Promise<{tranId: string}> marginIsolatedTransferHistory(options: marginIsolatedTransferHistory): Promise<marginIsolatedTransferHistoryResponse> } export interface HttpError extends Error { code: number url: string } export type UserDataStreamEvent = OutboundAccountInfo | ExecutionReport | BalanceUpdate | OutboundAccountPosition export interface WebSocket { depth: ( pair: string | string[], callback: (depth: Depth) => void, transform?: boolean ) => ReconnectingWebSocketHandler futuresDepth: ( pair: string | string[], callback: (depth: Depth) => void, transform?: boolean ) => ReconnectingWebSocketHandler partialDepth: ( options: { symbol: string; level: number } | { symbol: string; level: number }[], callback: (depth: PartialDepth) => void, transform?: boolean ) => ReconnectingWebSocketHandler futuresPartialDepth: ( options: { symbol: string; level: number } | { symbol: string; level: number }[], callback: (depth: PartialDepth) => void, transform?: boolean ) => ReconnectingWebSocketHandler ticker: ( pair: string | string[], callback: (ticker: Ticker) => void, ) => ReconnectingWebSocketHandler allTickers: (callback: (tickers: Ticker[]) => void) => ReconnectingWebSocketHandler candles: ( pair: string | string[], period: string, callback: (ticker: Candle) => void, ) => ReconnectingWebSocketHandler trades: ( pairs: string | string[], callback: (trade: WSTrade) => void, ) => ReconnectingWebSocketHandler aggTrades: ( pairs: string | string[], callback: (trade: Trade) => void, ) => ReconnectingWebSocketHandler user: (callback: (msg: UserDataStreamEvent) => void) => Promise<ReconnectingWebSocketHandler> marginUser: (callback: (msg: OutboundAccountInfo | ExecutionReport) => void) => Promise<ReconnectingWebSocketHandler> futuresUser: (callback: (msg: OutboundAccountInfo | ExecutionReport) => void) => Promise<ReconnectingWebSocketHandler> } export type WebSocketCloseOptions = { delay: number; fastClose: boolean; keepClosed: boolean; } export type ReconnectingWebSocketHandler = (options?: WebSocketCloseOptions) => void export enum CandleChartInterval { ONE_MINUTE = '1m', THREE_MINUTES = '3m', FIVE_MINUTES = '5m', FIFTEEN_MINUTES = '15m', THIRTY_MINUTES = '30m', ONE_HOUR = '1h', TWO_HOURS = '2h', FOUR_HOURS = '4h', SIX_HOURS = '6h', EIGHT_HOURS = '8h', TWELVE_HOURS = '12h', ONE_DAY = '1d', THREE_DAYS = '3d', ONE_WEEK = '1w', ONE_MONTH = '1M', } export type RateLimitType = 'REQUEST_WEIGHT' | 'ORDERS' export enum TradingType { MARGIN = 'MARGIN', SPOT = 'SPOT', } export type RateLimitInterval = 'SECOND' | 'MINUTE' | 'DAY' export interface ExchangeInfoRateLimit { rateLimitType: RateLimitType interval: RateLimitInterval intervalNum: number limit: number } export type ExchangeFilterType = 'EXCHANGE_MAX_NUM_ORDERS' | 'EXCHANGE_MAX_ALGO_ORDERS' export interface ExchangeFilter { filterType: ExchangeFilterType limit: number } export type SymbolFilterType = | 'PRICE_FILTER' | 'PERCENT_PRICE' | 'LOT_SIZE' | 'MIN_NOTIONAL' | 'MAX_NUM_ORDERS' | 'MAX_ALGO_ORDERS' export interface SymbolPriceFilter { filterType: SymbolFilterType minPrice: string maxPrice: string tickSize: string } export interface SymbolPercentPriceFilter { filterType: SymbolFilterType multiplierDown: string multiplierUp: string avgPriceMins: number } export interface SymbolLotSizeFilter { filterType: SymbolFilterType minQty: string maxQty: string stepSize: string } export interface SymbolMinNotionalFilter { applyToMarket: boolean avgPriceMins: number filterType: SymbolFilterType minNotional: string } export interface SymbolMaxNumOrdersFilter { filterType: SymbolFilterType limit: number } export interface SymbolMaxAlgoOrdersFilter { filterType: SymbolFilterType limit: number } export type SymbolFilter = | SymbolPriceFilter | SymbolPercentPriceFilter | SymbolLotSizeFilter | SymbolMinNotionalFilter | SymbolMaxNumOrdersFilter | SymbolMaxAlgoOrdersFilter export interface Symbol { baseAsset: string baseAssetPrecision: number baseCommissionPrecision: number filters: SymbolFilter[] icebergAllowed: boolean isMarginTradingAllowed: boolean isSpotTradingAllowed: boolean ocoAllowed: boolean orderTypes: OrderType[] quoteAsset: string quoteCommissionPrecision: number quoteOrderQtyMarketAllowed: boolean quotePrecision: number status: string symbol: string } export interface ExchangeInfo { timezone: string serverTime: number rateLimits: ExchangeInfoRateLimit[] exchangeFilters: ExchangeFilter[] symbols: Symbol[] } export interface OrderBook { lastUpdateId: number asks: Bid[] bids: Bid[] } export interface NewOrder { icebergQty?: string newClientOrderId?: string price?: string quantity?: string recvWindow?: number side: OrderSide stopPrice?: string symbol: string timeInForce?: TimeInForce useServerTime?: boolean type: OrderType newOrderRespType?: NewOrderRespType isIsolated?: boolean quoteOrderQty?: string sideEffectType?: SideEffectType } export interface NewOcoOrder { symbol: string listClientOrderId?: string side: OrderSide quantity: string limitClientOrderId?: string price: string limitIcebergQty?: string stopClientOrderId?: string stopPrice: string stopLimitPrice?: string stopIcebergQty?: string stopLimitTimeInForce?: TimeInForce newOrderRespType?: NewOrderRespType recvWindow?: number useServerTime?: boolean } export type SideEffectType = | 'NO_SIDE_EFFECT' | 'MARGIN_BUY' | 'AUTO_REPAY' export interface OrderFill { price: string qty: string commission: string commissionAsset: string } export interface Order { clientOrderId: string cummulativeQuoteQty: string executedQty: string icebergQty?: string orderId: number orderListId: number origQty: string price: string side: OrderSide status: OrderStatus stopPrice?: string symbol: string timeInForce: TimeInForce transactTime: number type: OrderType fills?: OrderFill[] } export interface OcoOrder { orderListId: number contingencyType: ContingencyType listStatusType: ListStatusType listOrderStatus: ListOrderStatus listClientOrderId: string transactionTime: number symbol: string orders: Order[] orderReports: Order[] } export type OrderSide = 'BUY' | 'SELL' export type OrderStatus = | 'CANCELED' | 'EXPIRED' | 'FILLED' | 'NEW' | 'PARTIALLY_FILLED' | 'PENDING_CANCEL' | 'REJECTED' export type OrderType = | 'LIMIT' | 'LIMIT_MAKER' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' export type ListOrderStatus = 'EXECUTING' | 'ALL_DONE' | 'REJECT' export type ListStatusType = 'RESPONSE' | 'EXEC_STARTED' | 'ALL_DONE' export type ContingencyType = 'OCO' export type NewOrderRespType = 'ACK' | 'RESULT' | 'FULL' export type TimeInForce = 'GTC' | 'IOC' | 'FOK' export enum OrderRejectReason { ACCOUNT_CANNOT_SETTLE = 'ACCOUNT_CANNOT_SETTLE', ACCOUNT_INACTIVE = 'ACCOUNT_INACTIVE', DUPLICATE_ORDER = 'DUPLICATE_ORDER', INSUFFICIENT_BALANCE = 'INSUFFICIENT_BALANCE', MARKET_CLOSED = 'MARKET_CLOSED', NONE = 'NONE', ORDER_WOULD_TRIGGER_IMMEDIATELY = 'ORDER_WOULD_TRIGGER_IMMEDIATELY', PRICE_QTY_EXCEED_HARD_LIMITS = 'PRICE_QTY_EXCEED_HARD_LIMITS', UNKNOWN_ACCOUNT = 'UNKNOWN_ACCOUNT', UNKNOWN_INSTRUMENT = 'UNKNOWN_INSTRUMENT', UNKNOWN_ORDER = 'UNKNOWN_ORDER', } export type ExecutionType = 'NEW' | 'CANCELED' | 'REPLACED' | 'REJECTED' | 'TRADE' | 'EXPIRED' export interface Depth { eventType: string eventTime: number symbol: string firstUpdateId: number finalUpdateId: number bidDepth: BidDepth[] askDepth: BidDepth[] } export interface BidDepth { price: string quantity: string } export interface PartialDepth { symbol: string level: number bids: Bid[] asks: Bid[] } export interface Bid { price: string quantity: string } 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 interface Candle { eventType: string eventTime: number symbol: string startTime: number closeTime: number firstTradeId: number lastTradeId: number open: string high: string low: string close: string volume: string trades: number interval: string isFinal: boolean quoteVolume: string buyVolume: string quoteBuyVolume: string } export interface Trade { eventType: string eventTime: number symbol: string price: string quantity: string maker: boolean isBuyerMaker: boolean tradeId: number } export interface WSTrade extends Trade { tradeTime: number buyerOrderId: number sellerOrderId: number } export interface Balances { [key: string]: { available: string locked: string } } export interface OutboundAccountInfo { balances: Balances makerCommissionRate: number takerCommissionRate: number buyerCommissionRate: number sellerCommissionRate: number canTrade: boolean canWithdraw: boolean canDeposit: boolean lastAccountUpdate: number eventType: 'account' eventTime: number } export interface BalanceUpdate { asset: string balanceDelta: string clearTime: number eventTime: number eventType: 'balanceUpdate' } export interface OutboundAccountPosition { balances: AssetBalance[] eventTime: number eventType: 'outboundAccountPosition' lastAccountUpdate: number } export interface ExecutionReport { commission: string // Commission amount commissionAsset: string | null // Commission asset creationTime: number // Order creation time eventTime: number eventType: 'executionReport' executionType: ExecutionType // Current execution type icebergQuantity: string // Iceberg quantity isBuyerMaker: boolean // Is this trade the maker side? isOrderWorking: boolean // Is the order on the book? lastQuoteTransacted: string // Last quote asset transacted quantity (i.e. lastPrice * lastQty); lastTradeQuantity: string // Last executed quantity newClientOrderId: string // Client order ID orderId: number // Order ID orderListId: number // OrderListId orderRejectReason: OrderRejectReason // Order reject reason; will be an error code. orderStatus: OrderStatus // Current order status orderTime: number // Transaction time orderType: OrderType // Order type originalClientOrderId: string | null // Original client order ID; This is the ID of the order being canceled price: string // Order price priceLastTrade: string // Last executed price quantity: string // Order quantity quoteOrderQuantity: string // Quote Order Qty side: OrderSide // Side stopPrice: string // Stop price symbol: string // Symbol timeInForce: TimeInForce // Time in force totalQuoteTradeQuantity: string // Cumulative quote asset transacted quantity totalTradeQuantity: string // Cumulative filled quantity tradeId: number // Trade ID } export interface TradeResult { 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 interface QueryOrderResult { 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: string updateTime: number } export interface CancelOrderResult { symbol: string origClientOrderId: string orderId: number orderListId: number clientOrderId: string price: string origQty: string executedQty: string cummulativeQuoteQty: string status: string timeInForce: string type: string side: string } export interface AvgPriceResult { mins: number price: string } export interface DailyStatsResult { 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 CandlesOptions { symbol: string interval: CandleChartInterval limit?: number startTime?: number endTime?: number } export interface CandleChartResult { openTime: number open: string high: string low: string close: string volume: string closeTime: number quoteVolume: string trades: number baseAssetVolume: string quoteAssetVolume: string } export interface MarkPriceResult { symbol: string markPrice: string lastFundingRate: string nextFundingTime: number time: number } export interface AllForceOrdersResult { symbol: string price: string origQty: string executedQty: string averagePrice: string status: string timeInForce: string type: string side: string time: number } export interface FundingRateResult { symbol: string fundingRate: string fundingTime: number time: number } export interface PositionRiskResult { entryPrice: string marginType: string isAutoAddMargin: string isolatedMargin: string leverage: string liquidationPrice: string markPrice: string maxNotionalValue: string positionAmt: string symbol: string unRealizedProfit: string positionSide: string } export interface FuturesBalanceResult { accountAlias: string asset: string balance: string crossWalletBalance: string crossUnPnl: string availableBalance: string maxWithdrawAmount: string } export interface ChangePositionModeResult { code: number msg: string } export interface PositionModeResult { dualSidePosition: boolean } export interface IsolatedMarginAccount { assets: IsolatedAsset[] totalAssetOfBtc: string totalLiabilityOfBtc: string totalNetAssetOfBtc: string } export interface IsolatedAsset { baseAsset: IsolatedAssetSingle quoteAsset: IsolatedAssetSingle symbol: string isolatedCreated: boolean marginLevel: string marginLevelStatus: 'EXCESSIVE' | 'NORMAL' | 'MARGIN_CALL' | 'PRE_LIQUIDATION' | 'FORCE_LIQUIDATION' marginRatio: string indexPrice: string liquidatePrice: string liquidateRate: string tradeEnabled: boolean } export interface IsolatedAssetSingle { asset: string borrowEnabled: boolean borrowed: string free: string interest: string locked: string netAsset: string netAssetOfBtc: string repayEnabled: boolean totalAsset: string } export interface marginIsolatedTransfer { asset: string symbol: string transFrom: "SPOT" | "ISOLATED_MARGIN" transTo: "SPOT" | "ISOLATED_MARGIN" amount: number recvWindow?: number } export interface marginIsolatedTransferHistory { asset?: string symbol: string transFrom?: "SPOT" | "ISOLATED_MARGIN" transTo?: "SPOT" | "ISOLATED_MARGIN" startTime?: number endTime?: number current?: number size?: number recvWindow?: number } export interface marginIsolatedTransferHistoryResponse { rows: { amount: string asset: string status: string timestamp: number txId: number transFrom: "SPOT" | "ISOLATED_MARGIN" transTo: "SPOT" | "ISOLATED_MARGIN" }[] total: number } }