@bcswaper/apis
Version:
bcswaper apis
59 lines (58 loc) • 3.01 kB
TypeScript
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>;