okex-api
Version:
A modern, asynchronous, and easy-to-use [Okx API](https://www.okx.com/docs-v5) wrapper for Node.js/bun/Web Browser/Cloudflare workers.
241 lines (240 loc) • 5.51 kB
TypeScript
import type { WsChannelSubUnSubRequestArg, WsTradeOp } from './request';
export interface WsEvent {
event: 'error' | 'login' | 'subscribe' | 'unsubscribe' | 'channel-conn-count';
code?: string;
msg?: string;
arg?: any;
data?: any;
}
export interface WsDataEvent<T = any> {
arg: WsChannelSubUnSubRequestArg;
data: T;
}
export interface WsLoginEvent extends WsEvent {
event: 'login';
}
export interface WsChannelConnInfoEvent extends WsEvent {
event: 'channel-conn-count';
channel: string;
connId: string;
connCount: string;
}
export type WsResponse = WsEvent;
export interface WsTicker {
instType: string;
instId: string;
last: string;
lastSz: string;
askPx: string;
askSz: string;
bidPx: string;
bidSz: string;
open24h: string;
high24h: string;
low24h: string;
sodUtc0: string;
sodUtc8: string;
volCcy24h: string;
vol24h: string;
ts: string;
}
export interface WsAccount {
adjEq: string;
borrowFroz: string;
imr: string;
isoEq: string;
mgnRatio: string;
mmr: string;
notionalUsd: string;
notionalUsdForBorrow: string;
notionalUsdForFutures: string;
notionalUsdForOption: string;
notionalUsdForSwap: string;
ordFroz: string;
totalEq: string;
uTime: string;
upl: string;
details: {
availBal: string;
availEq: string;
borrowFroz: string;
cashBal: string;
ccy: string;
coinUsdPrice: string;
crossLiab: string;
collateralEnabled: boolean;
disEq: string;
eq: string;
eqUsd: string;
smtSyncEq: string;
spotCopyTradingEq: string;
fixedBal: string;
frozenBal: string;
imr: string;
interest: string;
isoEq: string;
isoLiab: string;
isoUpl: string;
liab: string;
maxLoan: string;
mgnRatio: string;
mmr: string;
notionalLever: string;
ordFrozen: string;
rewardBal: string;
spotInUseAmt: string;
clSpotInUseAmt: string;
maxSpotInUseAmt: string;
spotIsoBal: string;
stgyEq: string;
twap: string;
uTime: string;
upl: string;
uplLiab: string;
spotBal: string;
openAvgPx: string;
accAvgPx: string;
spotUpl: string;
spotUplRatio: string;
totalPnl: string;
totalPnlRatio: string;
}[];
}
export interface WsOrder {
accFillSz: string;
amendResult: string;
avgPx: string;
cTime: string;
category: string;
ccy: string;
clOrdId: string;
code: string;
execType: string;
fee: string;
feeCcy: string;
fillFee: string;
fillFeeCcy: string;
fillNotionalUsd: string;
fillPx: string;
fillSz: string;
fillPnl: string;
fillTime: string;
fillPxVol: string;
fillPxUsd: string;
fillMarkVol: string;
fillFwdPx: string;
fillMarkPx: string;
instId: string;
instType: string;
lever: string;
msg: string;
notionalUsd: string;
ordId: string;
ordType: string;
pnl: string;
posSide: string;
px: string;
pxUsd: string;
pxVol: string;
pxType: string;
rebate: string;
rebateCcy: string;
reduceOnly: string;
reqId: string;
side: string;
attachAlgoClOrdId: string;
slOrdPx: string;
slTriggerPx: string;
slTriggerPxType: string;
source: string;
state: string;
stpId: string;
stpMode: string;
sz: string;
tag: string;
tdMode: string;
tgtCcy: string;
tpOrdPx: string;
tpTriggerPx: string;
tpTriggerPxType: string;
tradeId: string;
lastPx: string;
quickMgnType: string;
algoClOrdId: string;
algoId: string;
amendSource: string;
cancelSource: string;
isTpLimit: string;
uTime: string;
}
export interface WsPosition {
instType: string;
instId: string;
lever: string;
mgnMode: string;
posId: string;
posSide: string;
pos: string;
posCcy: string;
availPos: string;
avgPx: string;
upl: string;
uplRatio: string;
uplLastPx: string;
uplRatioLastPx: string;
liqPx: string;
markPx: string;
imr: string;
margin: string;
mgnRatio: string;
mmr: string;
tradeId: string;
ccy: string;
last: string;
realizedPnl: string;
settledPnl: string;
pnl: string;
}
export interface WsTradeRequest<T> {
id: string;
op: WsTradeOp;
args: T[];
}
export interface WsOrderArg {
instId: string;
tdMode: 'isolated' | 'cross' | 'cash' | 'spot_isolated';
ccy?: string;
clOrdId?: string;
tag?: string;
side: 'buy' | 'sell';
posSide?: 'net' | 'long' | 'short';
ordType: 'market' | 'limit' | 'post_only' | 'ioc' | 'fok' | 'optimal_limit_ioc' | 'mmp' | 'mmp_and_post_only';
px?: string;
sz: string;
reduceOnly?: boolean;
tgtCcy?: string;
stpMode?: 'cancel_maker' | 'cancel_taker' | 'cancel_both';
}
export interface WsCancelOrderArg {
instId: string;
ordId: string;
clOrdId?: string;
}
export interface WsTradeOrderResult {
clOrdId: string;
ordId: string;
ts: string;
sCode: string;
sMsg: string;
reqId?: string;
tag?: string;
}
export interface WsTradeOpEvent {
id: string;
op: WsTradeOp;
data: WsTradeOrderResult[];
code: string;
msg: string;
inTime: string;
outTime: string;
}