UNPKG

@nexex/orderbook

Version:
61 lines (60 loc) 2.38 kB
import { Dex } from '@nexex/api'; import { OrderbookEvent, OrderbookOrder, OrderSide, PlainDexOrder } from '@nexex/types'; import { Market, OrderAggregate, OrderbookAggregate } from '@nexex/types/orderbook'; import BigNumber from 'bignumber.js'; import { Subject } from 'rxjs'; import { ObConfig } from '../global/global.model'; import { OrderService } from '../order/order.service'; import { Orderbook } from './orderbook.types'; export declare class OrderbookService { private orderService; private dex; private config; private events$; private ready; private orderbookMap; constructor(orderService: OrderService, dex: Dex, config: ObConfig, events$: Subject<OrderbookEvent>); whenReady(): Promise<void>; /** * * @param baseTokenAddr * @param quoteTokenAddr * @throws error */ getOrderbook(baseTokenAddr: string, quoteTokenAddr: string): Orderbook; /** * * @param marketId * @throws error */ getOrderbookById(marketId: string): Orderbook; getOrderbooks(): Orderbook[]; getMarkets(): Promise<Market[]>; /** * * @param order * @throws OrderbookNotExist */ addOrder(order: OrderbookOrder): string; findOrderMarket(makerTokenAddress: string, takerTokenAddress: string): Orderbook; updateBalance(marketId: string, orderHash: string, side: OrderSide, baseAmount: BigNumber, quoteAmount: BigNumber, lastUpdate: Date): void; delistOrder(marketId: string, orderHash: string, side: OrderSide): void; validateOrder(plainOrder: PlainDexOrder): Promise<OrderbookOrder>; getSnapshot(marketId: string, limit: number, minimal: boolean): Promise<{ bids: unknown[]; asks: unknown[]; }>; queryOrderAggregateByPrice(marketId: string, side: OrderSide, price: string | BigNumber, decimals: number): Promise<OrderAggregate>; buildFillUpToTx(marketId: string, side: OrderSide, orderHashs: string[]): Promise<PlainDexOrder[]>; topOrders(marketId: string, limit: number, decimals?: number): Promise<OrderbookAggregate>; /** * 1) get market list from config * 2) load orders of each market from db * 3) register listener of ipfs for each market */ protected init(): Promise<void>; private topBidOrders; private topAskOrders; private loadOrderbook; private getTokenAddress; }