UNPKG

@bcswaper/apis

Version:

bcswaper apis

59 lines (58 loc) 3.01 kB
import { AccountInfo, CallBackFuncs, Candle, CandleResolution, ClientParams, Fill, Order, Orderbook, OrderSide, SubTypes } from "./context"; export interface Client { running: boolean; getPrice(): number; getOrderbook(): Orderbook; getCandles(resolution: CandleResolution): Candle[]; getAccountInfo(): AccountInfo; initialize(): void; subscribe(subTypes: SubTypes, callback: (price: number) => void): void; subscribe(subTypes: SubTypes, callback: (order: Order) => void): void; subscribe(subTypes: SubTypes, callback: (fill: Fill) => void): void; subscribeCandle(resolution: CandleResolution, callback: (candle: Candle, resolution: CandleResolution) => void): void; shortTermOrder?(clientId: number, side: OrderSide, price: number, size: number): void; buy(clientId: number, price: number, size: number): void; sell(clientId: number, price: number, size: number): void; close(clientId: number, side: OrderSide, price: number, size: number): void; buyLimit(clientId: number, price: number, size: number): void; sellLimit(clientId: number, price: number, size: number): void; closeLimit(clientId: number, side: OrderSide, price: number, size: number, goodTillTime: number): void; cancel(order: Order): void; destroy(): void; } export declare abstract class AbstractClient implements Client { running: boolean; protected symbol: string; protected ccy: string; protected clientCallBackFuncs: CallBackFuncs; protected clientCandleMap: Map<CandleResolution, number>; constructor(clientParams: ClientParams); abstract getPrice(): number; abstract getOrderbook(): Orderbook; abstract getCandles(resolution: CandleResolution): Candle[]; abstract getAccountInfo(): AccountInfo; initialize(): Promise<void>; subscribe(subTypes: SubTypes, callback: any): void; subscribeCandle(resolution: any, callback: (candle: Candle, resolution: CandleResolution) => void): void; abstract buy(clientId: number, price: number, size: number): void; abstract sell(clientId: number, price: number, size: number): void; abstract close(clientId: number, side: OrderSide, price: number, size: number): void; abstract buyLimit(clientId: number, price: number, size: number): void; abstract sellLimit(clientId: number, price: number, size: number): void; abstract closeLimit(clientId: number, side: OrderSide, price: number, size: number, goodTillTime: number): void; abstract cancel(order: Order): void; destroy(): void; } export declare enum ClientSettings { MaxFills = 200, OrderbookLength = 20, GTT = 300, ListLenths = 120, GoodTillTime = 2419200, OrderInterval = 1, OrderInterval2 = 2 } export declare const isoToEpochSeconds: (isoTime: string) => number; export declare const isObjectEmpty: (obj: any) => boolean; export declare const conlog: (...message: any[]) => Promise<void>; export declare const conerr: (...message: any[]) => Promise<void>;