@bcswaper/apis
Version:
bcswaper apis
138 lines (137 loc) • 4.08 kB
TypeScript
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"
}