falbit-utils
Version:
TypeScript utils for Falcon Arbitrage Strategy
86 lines (80 loc) • 2.78 kB
TypeScript
declare function calculateAmountOut(rIn: number, rOut: number, amountIn: number, fee?: number): number;
declare function calculateAmountIn(rIn: number, rOut: number, amountOut: number, fee?: number): number;
declare const truncate: (num: number, d: number) => number;
type OrderBook = {
price: number;
size: number;
};
type OrderBooks = {
bids: OrderBook[];
asks: OrderBook[];
};
type ReservePool = {
r0: number;
r1: number;
};
type OrderType = "orderbook" | "amm";
declare const buyBase: (asks: OrderBook[], base: number, commission?: number, precisions?: number) => {
base: number;
quote: number;
};
declare const buyQuote: (asks: OrderBook[], quote: number, commission?: number, precisions?: number) => {
base: number;
quote: number;
};
declare const sellBase: (bids: OrderBook[], base: number, commission?: number, precisions?: number) => {
base: number;
quote: number;
};
declare const sellQuote: (bids: OrderBook[], quote: number, commission?: number, precisions?: number) => {
base: number;
quote: number;
};
declare class ArbitrageEngine {
private DEFAULT_PRECISION;
private orderbooks;
private reserves;
updateOrderBooks(exchange: string, pair: string, orderbooks: OrderBooks): void;
updateReserves(exchange: string, pair: string, reserves: ReservePool): void;
getAmountsOut({ route, exchanges, amountIn, fees, precisions, orderTypes, }: {
route: string[];
exchanges: string[];
amountIn: number;
fees?: number[];
precisions?: number[];
orderTypes?: OrderType[];
}): number[];
getAmountOut({ exchange, pair, amountIn, fee, precision, orderType, }: {
exchange: string;
pair: string;
amountIn: number;
fee?: number;
precision?: number;
orderType?: OrderType;
}): {
amountIn: number;
amountOut: number;
};
getAmountIn({ exchange, pair, amountOut, fee, precision, orderType, }: {
exchange: string;
pair: string;
amountOut: number;
fee?: number;
precision?: number;
orderType?: OrderType;
}): {
amountIn: number;
amountOut: number;
};
getOrderBooks(exchange: string, pair: string): OrderBooks | null;
getReserves(exchange: string, pair: string): ReservePool | null;
private _getAmountOutOrderBook;
private _getAmountInOrderBook;
private _getAmountOutAMM;
private _getAmountInAMM;
private _getReverseOrderbooks;
private _getReverseReserves;
private _setOrderBooks;
private _setReserves;
}
export { ArbitrageEngine, OrderBook, OrderBooks, OrderType, ReservePool, buyBase, buyQuote, calculateAmountIn, calculateAmountOut, sellBase, sellQuote, truncate };