UNPKG

@bcswaper/apis

Version:

bcswaper apis

138 lines (137 loc) 4.08 kB
import { OrderSide } from "@dydxprotocol/v4-client-js"; import { AccountInfo, Candle, CandleResolution, ClientParams, Order, Orderbook } from "../../context"; import { AbstractClient } from "../../client"; export declare class DydxClient extends AbstractClient { private dydxAccInfo; private indexerClient?; private validatorClient?; private compositeClient?; private localWallet?; private subaccount; private socketClient?; private accountHandler; private candlesHandler; private marketsHandler; private orderbookHandler; private tradesHandler; /** * Configuration for the dYdX Indexer API. This configuration specifies the endpoints * for the Indexer API and WebSocket connections. */ private mainnetIndexerConfig; /** * Configuration for the dYdX Validator API. This configuration includes the endpoint * for the Validator API and settings related to the blockchain network, such as * denominations and decimals for various tokens. */ private mainnetValidatorConfig; private mainnetNetwork; constructor(clientParams: ClientParams); initialize(): Promise<void>; /** * Creates a Socket Client for real-time WebSocket communication with the dYdX API. * * @param onOpen - Callback function invoked when the WebSocket connection is opened. * @param onClose - Callback function invoked when the WebSocket connection is closed. * @param onMessage - Callback function invoked when a message is received from the WebSocket. * @returns The SocketClient instance. */ createSocketClient(): void; getPrice(): number; getOrderbook(): Orderbook; getAccountInfo(): AccountInfo; getCandles(resolution: CandleResolution): Candle[]; /** * 计算短期单有效期切块数 * @returns 最大+20 */ private calculateGoodTilBlock; /** * 下短期单 * @param side 方向 * @param price 价格 * @param size 数量 */ shortTermOrder(clientId: number, side: OrderSide, price: number, size: number): Promise<void>; /** * 下短期单 * @param side * @param price * @param size * @param timeInForce * @param reduceOnly */ private placeShortTermOrder; /** * 市价下单 * @param side * @param price * @param size * @param timeInForce * @param reduceOnly */ private placeMarketOrder; /** * 市价买 * @param price * @param size */ buy(clientId: number, price: number, size: number): Promise<void>; /** * 市价卖 * @param price * @param size * @param clientId */ sell(clientId: number, price: number, size: number): Promise<void>; /** * 市价平仓 * @param side * @param price * @param size */ close(clientId: number, side: OrderSide, price: number, size: number): Promise<void>; /** * 限价下单 * @param side 方向 * @param price 价格 * @param size 数量 * @param goodTillTime */ private placeLimitOrder; /** * 限价买 * @param price * @param size * @param goodTillTime */ buyLimit(clientId: number, price: number, size: number, goodTillTime?: number): Promise<void>; /** * 限价卖 * @param price * @param size * @param clientId * @param goodTillTime */ sellLimit(clientId: number, price: number, size: number, goodTillTime?: number): Promise<void>; /** * 限价平仓 * @param side * @param price * @param size */ closeLimit(clientId: number, side: OrderSide, price: number, size: number, goodTillTime?: number): Promise<void>; /** * 撤单 * @param order 原订单 */ cancel(order: Order): Promise<void>; destroy(): void; } export declare enum ChannelTypes { Subaccounts = "v4_subaccounts", Markets = "v4_markets", Orderbook = "v4_orderbook", Candles = "v4_candles", Trades = "v4_trades" }