@bcswaper/apis
Version:
bcswaper apis
167 lines (166 loc) • 3.87 kB
TypeScript
export type IsoString = string;
export type ClientParams = {
symbol: string;
ccy: string;
account: any;
options: any;
};
export declare enum ClientSettings {
MaxFills = 200,
OrderbookLength = 20,
GTT = 300,
ListLenths = 120,
GoodTillTime = 2419200,
OrderInterval = 1,
OrderInterval2 = 2
}
export type DydxAccount = {
address: string;
subaccount: number;
privateKey?: string;
mnemonic: string;
};
export type OkxAccount = {
apiKey: string;
passphrase: string;
secretKey: string;
formally: boolean;
};
export type PriceLevel = {
price: number;
size: number;
};
export interface Orderbook {
bids: PriceLevel[];
asks: PriceLevel[];
}
export declare enum CandleResolution {
MIN1 = "1MIN",
MIN5 = "5MINS",
MIN15 = "15MINS",
MIN30 = "30MINS",
HOUR1 = "1HOUR",
HOUR4 = "4HOURS",
DAY1 = "1DAY"
}
export interface Candle {
startedAt: string;
ticker: string;
resolution: CandleResolution;
low: number;
high: number;
open: number;
close: number;
baseTokenVolume: number;
usdVolume: number;
trades: string;
startingOpenInterest: number;
id: string;
}
export declare enum PositionSide {
LONG = "LONG",
SHORT = "SHORT"
}
export interface PositionData {
symbol: string;
side: PositionSide | null;
size: number;
}
export declare enum PositionStatus {
OPEN = "OPEN",
CLOSED = "CLOSED",
LIQUIDATED = "LIQUIDATED"
}
export declare enum OrderSide {
BUY = "BUY",
SELL = "SELL"
}
export declare enum OrderType {
LIMIT = "LIMIT",
MARKET = "MARKET",
STOP_LIMIT = "STOP_LIMIT",
TAKE_PROFIT_LIMIT = "TAKE_PROFIT",
STOP_MARKET = "STOP_MARKET",
TAKE_PROFIT_MARKET = "TAKE_PROFIT_MARKET"
}
export declare enum OrderTimeInForce {
GTT = "GTT",
IOC = "IOC",
FOK = "FOK"
}
export declare enum OrderStatus {
BEST_EFFORT_OPENED = "BEST_EFFORT_OPENED",
OPEN = "OPEN",
PARTIAL = "PARTIALLY_FILLED",
FILLED = "FILLED",
BEST_EFFORT_CANCELED = "BEST_EFFORT_CANCELED",
CANCELED = "CANCELED"
}
export interface Order {
id: string;
account: string;
subaccountId: string;
clientId: number;
side: OrderSide;
size: number;
ticker: string;
price: number;
type: OrderType;
timeInForce: OrderTimeInForce;
postOnly?: boolean;
reduceOnly: boolean;
status: OrderStatus;
orderFlags: string;
totalFilled?: number;
filledPrice?: number;
fee: number;
goodTilBlock?: number;
goodTilBlockTime?: number;
createdAtHeight?: number;
clientMetadata: string;
triggerPrice?: string;
updatedAt?: IsoString;
updatedAtHeight?: number;
}
export interface Fill {
id: string;
account: string;
subaccountId: string;
orderId: string;
side: OrderSide;
size: number;
type: OrderType;
ticker: string;
price: number;
fee: number;
createdAt?: IsoString;
quoteAmount: number;
}
export declare enum SubTypes {
Account = "account",
Position = "position",
Order = "order",
Deal = "deal",
Tick = "tick",
Candles = "candles",
Orderbook = "orderbook",
Trades = "trades"
}
export type CallBackFuncs = {
accountFunc?: (accountInfo: AccountInfo) => Promise<void>;
positionFunc?: (positions: PositionData[]) => Promise<void>;
orderFunc?: (order: Order) => Promise<void>;
fillFunc?: (fill: Fill) => Promise<void>;
tickFunc?: (price: number) => Promise<void>;
candleFunc?: (candle: Candle, resolution: CandleResolution) => Promise<void>;
orderBookFunc?: () => Promise<void>;
tradesFunc?: () => Promise<void>;
};
export interface AccountInfo {
account: string;
subaccount: number;
equity: number;
balance: number;
positions: PositionData[];
asset: number;
}