UNPKG

okx-api

Version:

Complete Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests

136 lines (135 loc) 5.44 kB
import { OrderIdRequest } from './types/rest/request/trade.js'; import { OrderResult } from './types/rest/response/private-trade.js'; import { WSAPIResponse } from './types/websockets/ws-api.js'; import { WSAPIAmendOrderRequestV5, WSAPIAmendSpreadOrderRequestV5, WSAPICancelSpreadOrderRequestV5, WSAPIMassCancelOrdersRequestV5, WSAPIPlaceOrderRequestV5, WSAPIPlaceSpreadOrderRequestV5, WSAPISpreadMassCancelOrdersRequestV5 } from './types/websockets/ws-api-request.js'; import { WSAPICancelOrderResultV5, WSAPISpreadAmendOrderResultV5, WSAPISpreadCancelOrderResultV5, WSAPISpreadPlaceOrderResultV5 } from './types/websockets/ws-api-response.js'; import { WSClientConfigurableOptions } from './types/websockets/ws-general.js'; import { DefaultLogger } from './util/logger.js'; import { WebsocketClient } from './websocket-client.js'; /** * Configurable options specific to only the REST-like WebsocketAPIClient */ export interface WSAPIClientConfigurableOptions { /** * Default: true * * Attach default event listeners, which will console log any high level * events (opened/reconnecting/reconnected/etc). * * If you disable this, you should set your own event listeners * on the embedded WS Client `wsApiClient.getWSClient().on(....)`. */ attachEventListeners: boolean; } /** * This is a minimal Websocket API wrapper around the WebsocketClient. It allows you to use the WebSocket API in a promise-driven way, send a request and await the response. * * Note: You can also directly use the sendWSAPIRequest() method to make WS API calls, but some * may find the below methods slightly more intuitive. * * Refer to the WS API promises example for a more detailed example on using sendWSAPIRequest() directly: * https://github.com/tiagosiebler/okx-api/blob/master/examples/ws-api-trade-raw.ts */ export declare class WebsocketAPIClient { private wsClient; private options; constructor(options?: WSClientConfigurableOptions & Partial<WSAPIClientConfigurableOptions>, logger?: DefaultLogger); getWSClient(): WebsocketClient; setTimeOffsetMs(newOffset: number): void; /** * * * OKX WebSocket API Methods * * */ /** * Submit a new order * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-order */ submitNewOrder(params: WSAPIPlaceOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'order'>>; /** * Submit multiple orders in a batch * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-place-multiple-orders */ submitMultipleOrders(params: WSAPIPlaceOrderRequestV5[]): Promise<WSAPIResponse<OrderResult[], 'batch-orders'>>; /** * Cancel a single order * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-order */ cancelOrder(params: OrderIdRequest): Promise<WSAPIResponse<[WSAPICancelOrderResultV5], 'cancel-order'>>; /** * Cancel multiple orders * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-cancel-multiple-orders */ cancelMultipleOrders(params: OrderIdRequest[]): Promise<WSAPIResponse<WSAPICancelOrderResultV5[], 'batch-cancel-orders'>>; /** * Amend a single order * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-order */ amendOrder(params: WSAPIAmendOrderRequestV5): Promise<WSAPIResponse<[OrderResult], 'amend-order'>>; /** * Amend multiple orders * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-amend-multiple-orders */ amendMultipleOrders(params: WSAPIAmendOrderRequestV5[]): Promise<WSAPIResponse<[OrderResult], 'batch-amend-orders'>>; /** * Mass cancel orders * * https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-mass-cancel-order */ massCancelOrders(params: WSAPIMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{ result: boolean; }], 'mass-cancel'>>; /** * Submit a new spread order * * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-place-order */ submitSpreadOrder(params: WSAPIPlaceSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadPlaceOrderResultV5], 'sprd-order'>>; /** * Amend a spread order * * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-amend-order */ amendSpreadOrder(params: WSAPIAmendSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadAmendOrderResultV5], 'sprd-amend-order'>>; /** * Cancel a spread order * * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-order */ cancelSpreadOrder(params: WSAPICancelSpreadOrderRequestV5): Promise<WSAPIResponse<[WSAPISpreadCancelOrderResultV5], 'sprd-cancel-order'>>; /** * Mass cancel spread orders * * https://www.okx.com/docs-v5/en/#spread-trading-websocket-trade-api-ws-cancel-all-orders */ massCancelSpreadOrders(params: WSAPISpreadMassCancelOrdersRequestV5): Promise<WSAPIResponse<[{ result: boolean; }], 'sprd-mass-cancel'>>; /** * * * * * * * * Private methods for handling some of the convenience/automation provided by the WS API Client * * * * * * * */ connectWSAPI(): Promise<unknown[]>; private setupDefaultEventListeners; }