diff --git a/package.json b/package.json index 6912058..8a55f87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "okx-api", - "version": "1.1.5", + "version": "1.1.6", "description": "Complete & robust Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/rest-client.ts b/src/rest-client.ts index 8646990..73240d8 100644 --- a/src/rest-client.ts +++ b/src/rest-client.ts @@ -9,7 +9,6 @@ import { MarginMode, numberInString, Ticker, - AlgoOrderRequest, AmendOrderRequest, CancelAlgoOrderRequest, OrderIdRequest, @@ -99,6 +98,11 @@ import { APIMarket, Instrument, PosMode, + PlaceAlgoOrderRequest, + AlgoOrderDetailsRequest, + AlgoOrderDetailsResult, + AmendAlgoOrderRequest, + AmendAlgoOrderResult, } from './types'; import { ASSET_BILL_TYPE } from './constants'; @@ -214,6 +218,18 @@ export class RestClient extends BaseRestClient { return this.postPrivate('/api/v5/trade/order-algo', params); } + getAlgoOrderDetails( + params: AlgoOrderDetailsRequest + ): Promise { + return this.getPrivate('/api/v5/trade/order-algo', params); + } + + amendAlgoOrder( + params: AmendAlgoOrderRequest + ): Promise { + return this.postPrivate('/api/v5/trade/amend-algos', params); + } + cancelAlgoOrder( params: CancelAlgoOrderRequest[] ): Promise { @@ -562,9 +578,7 @@ export class RestClient extends BaseRestClient { return this.getPrivate('/api/v5/account/config'); } - setPositionMode( - posMode: PosMode - ): Promise { + setPositionMode(posMode: PosMode): Promise { return this.postPrivate('/api/v5/account/set-position-mode', { posMode }); } diff --git a/src/types/rest/request/trade.ts b/src/types/rest/request/trade.ts index 1b8a69b..5c9caae 100644 --- a/src/types/rest/request/trade.ts +++ b/src/types/rest/request/trade.ts @@ -80,6 +80,26 @@ export interface AmendOrderRequest { newPx?: string; } +export interface AlgoOrderDetailsRequest { + algoId: string; + algoClOrdId: string; +} + +export interface AmendAlgoOrderRequest { + instId: string; + algoId?: string; + algoClOrdId?: string; + cxlOnFail?: boolean; + reqId?: string; + newSz?: string; + newTpTriggerPx?: string; + newTpOrdPx?: string; + newSlTriggerPx?: string; + newSlOrdPx?: string; + newTpTriggerPxType?: 'last' | 'index' | 'mark'; + newSlTriggerPxType?: 'last' | 'index' | 'mark'; +} + export interface CancelAlgoOrderRequest { algoId: string; instId: string; diff --git a/src/types/rest/response/private-trade.ts b/src/types/rest/response/private-trade.ts index 5cee165..e412c7f 100644 --- a/src/types/rest/response/private-trade.ts +++ b/src/types/rest/response/private-trade.ts @@ -1,4 +1,12 @@ -import { AlgoOrderState, AlgoOrderType, AlgoPositionSide, OrderState, OrderType, PositionSide, numberInString } from '../shared'; +import { + AlgoOrderState, + AlgoOrderType, + AlgoPositionSide, + OrderState, + OrderType, + PositionSide, + numberInString, +} from '../shared'; export interface OrderResult { clOrdId: string; @@ -113,7 +121,7 @@ export interface OrderListItem { algoClOrdId: string; algoId: string; uTime: string; - } +} export interface HistoricOrder { instType: string; @@ -191,6 +199,58 @@ export interface AlgoOrderResult { sMsg: string; } +export interface AmendAlgoOrderResult extends AlgoOrderResult { + reqId: string; +} + +export interface AlgoOrderDetailsResult { + instType: string; + instId: string; + ordId: string; + ordIdList: string[]; + ccy: string; + clOrdId: string; + algoId: string; + attachAlgoOrds: any[]; + sz: string; + closeFraction: string; + ordType: string; + side: string; + posSide: string; + tdMode: string; + tgtCcy: string; + state: string; + lever: string; + tpTriggerPx: string; + tpTriggerPxType: string; + tpOrdPx: string; + slTriggerPx: string; + slTriggerPxType: string; + triggerPx: string; + triggerPxType: string; + ordPx: string; + actualSz: string; + actualPx: string; + actualSide: string; + pxVar: string; + pxSpread: string; + pxLimit: string; + szLimit: string; + tag: string; + timeInterval: string; + callbackRatio: string; + callbackSpread: string; + activePx: string; + moveTriggerPx: string; + reduceOnly: string; + triggerTime: string; + last: string; + failCode: string; + algoClOrdId: string; + amendPxOnTriggerType: string; + cTime: string; +} + export interface AlgoOrderListItem { activePx: string; actualPx: string; @@ -229,7 +289,7 @@ export interface AlgoOrderListItem { timeInterval: string; tpOrdPx: string; tpTriggerPx: string; - tpTriggerPxType: string; + tpTriggerPxType: string; triggerPx: string; reduceOnly: string; triggerPxType: string; @@ -241,54 +301,52 @@ export interface AlgoOrderListItem { amendPxOnTriggerType: string; } - export interface HistoricAlgoOrder { activePx: string; actualPx: string; actualSide: string; actualSz: string; algoClOrdId: string; - algoId:string; + algoId: string; attachAlgoOrds: any[]; cTime: string; callbackRatio: string; callbackSpread: string; - ccy:string; + ccy: string; clOrdId: string; closeFraction: string; failCode: string; - instId:string; + instId: string; instType: string; last: string; lever: string; moveTriggerPx: string; ordId: string; - ordIdList:string[]; + ordIdList: string[]; ordPx: string; ordType: AlgoOrderType; posSide: AlgoPositionSide; pxLimit: string; pxSpread: string; pxVar: string; - quickMgnType:string; + quickMgnType: string; reduceOnly: string; side: string; slOrdPx: string; slTriggerPx: string; - slTriggerPxType:string; + slTriggerPxType: string; state: AlgoOrderState; sz: string; szLimit: string; - tag:string; - tdMode:string; - tgtCcy:string; - timeInterval:string; + tag: string; + tdMode: string; + tgtCcy: string; + timeInterval: string; tpOrdPx: string; tpTriggerPx: string; - tpTriggerPxType:string; - triggerPx:string; + tpTriggerPxType: string; + triggerPx: string; triggerPxType: string; triggerTime: string; amendPxOnTriggerType: string; } -