Skip to content

Commit

Permalink
feat(): updated websocket topics
Browse files Browse the repository at this point in the history
  • Loading branch information
JJ-Cro committed Oct 17, 2024
1 parent 4d60b85 commit 33918a5
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 3 deletions.
120 changes: 117 additions & 3 deletions src/types/websockets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ export type WsMessageFuturesUserDataEventRaw =
| WsMessageFuturesUserDataOrderTradeUpdateEventRaw
| WsMessageFuturesUserDataAccountConfigUpdateEventRaw
| WsMessageFuturesUserDataCondOrderTriggerRejectEventRaw
| WsMessageFuturesUserDataTradeLiteEventRaw;
| WsMessageFuturesUserDataTradeLiteEventRaw
| WsMessageFuturesUserDataStrategyUpdateRaw
| WsMessageFuturesUserDataGridUpdateRaw
| WsMessageFuturesUserDataContractInfoRaw;

// TODO: consistent across USDM vs COINM?
export type WsMessageFuturesUserDataEventFormatted =
Expand All @@ -61,7 +64,10 @@ export type WsMessageFuturesUserDataEventFormatted =
| WsMessageFuturesUserDataTradeUpdateEventFormatted
| WsMessageFuturesUserDataAccountConfigUpdateEventFormatted
| WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted
| WsMessageFuturesUserDataTradeLiteEventFormatted;
| WsMessageFuturesUserDataTradeLiteEventFormatted
| WsMessageFuturesUserDataStrategyUpdateFormatted
| WsMessageFuturesUserDataGridUpdateFormatted
| WsMessageFuturesUserDataContractInfoFormatted;

export type WsRawMessage =
| WsMessageKlineRaw
Expand Down Expand Up @@ -755,7 +761,7 @@ export interface WsMessageFuturesUserDataOrderTradeUpdateEventRaw
pP: boolean; // ignore
si: numberInString; // ignore
ss: numberInString; // ignore
V: string;
V: string;
pm: string;
gtd: number;
};
Expand Down Expand Up @@ -927,3 +933,111 @@ export interface WsMessageForceOrderRaw extends WsSharedBase {
T: number;
};
}

export interface WsMessageFuturesUserDataStrategyUpdateRaw
extends WsSharedBase {
e: 'STRATEGY_UPDATE'; // Event Type
T: number; // Transaction Time
E: number; // Event Time
su: {
si: number; // Strategy ID
st: string; // Strategy Type
ss: string; // Strategy Status
s: string; // Symbol
ut: number; // Update Time
c: number; // opCode
};
}

export interface WsMessageFuturesUserDataStrategyUpdateFormatted
extends WsSharedBase {
eventType: 'STRATEGY_UPDATE';
transactionTime: number;
eventTime: number;
strategy: {
strategyId: number;
strategyType: string;
strategyStatus: string;
symbol: string;
updateTime: number;
opCode: number;
};
}

export interface WsMessageFuturesUserDataGridUpdateRaw extends WsSharedBase {
e: 'GRID_UPDATE'; // Event Type
T: number; // Transaction Time
E: number; // Event Time
gu: {
si: number; // Strategy ID
st: string; // Strategy Type
ss: string; // Strategy Status
s: string; // Symbol
r: numberInString; // Realized PNL
up: numberInString; // Unmatched Average Price
uq: numberInString; // Unmatched Qty
uf: numberInString; // Unmatched Fee
mp: numberInString; // Matched PNL
ut: number; // Update Time
};
}

export interface WsMessageFuturesUserDataGridUpdateFormatted
extends WsSharedBase {
eventType: 'GRID_UPDATE';
transactionTime: number;
eventTime: number;
grid: {
strategyId: number;
strategyType: string;
strategyStatus: string;
symbol: string;
realizedPnl: number;
unmatchedAveragePrice: number;
unmatchedQuantity: number;
unmatchedFee: number;
matchedPnl: number;
updateTime: number;
};
}

export interface WsMessageFuturesUserDataContractInfoRaw extends WsSharedBase {
e: 'contractInfo'; // Event Type
E: number; // Event Time
s: string; // Symbol
ps: string; // Pair
ct: string; // Contract type
dt: number; // Delivery date time
ot: number; // onboard date time
cs: string; // Contract status
bks: {
bs: number; // Notional bracket
bnf: number; // Floor notional of this bracket
bnc: number; // Cap notional of this bracket
mmr: number; // Maintenance ratio for this bracket
cf: number; // Auxiliary number for quick calculation
mi: number; // Min leverage for this bracket
ma: number; // Max leverage for this bracket
}[];
}

export interface WsMessageFuturesUserDataContractInfoFormatted
extends WsSharedBase {
eventType: 'contractInfo';
eventTime: number;
symbol: string;
pair: string;
contractType: string;
deliveryDateTime: number;
onboardDateTime: number;
contractStatus: string;
notionalBrackets: {
notionalBracket: number;
floorNotional: number;
capNotional: number;
maintenanceRatio: number;
auxiliaryNumber: number;
minLeverage: number;
maxLeverage: number;
}[];
}
55 changes: 55 additions & 0 deletions src/util/beautifier-maps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -434,4 +434,59 @@ export const BEAUTIFIER_EVENT_MAP = {
z: 'orderFilledAccumulatedQuantity',
T: 'orderTradeTime',
},

contractInfo: {
e: 'contractInfo', // Event Type
E: 'eventTime', // Event Time
s: 'symbol', // Symbol
ps: 'pair', // Pair
ct: 'contractType', // Contract type
dt: 'deliveryDateTime', // Delivery date time
ot: 'onboardDateTime', // onboard date time
cs: 'contractStatus', // Contract status
bks: 'notionalBrackets',
},
notionalBrackets: {
bs: 'notionalBracket', // Notional bracket
bnf: 'floorNotional', // Floor notional of this bracket
bnc: 'capNotional', // Cap notional of this bracket
mmr: 'maintenanceRatio', // Maintenance ratio for this bracket
cf: 'auxiliaryNumber', // Auxiliary number for quick calculation
mi: 'minLeverage', // Min leverage for this bracket
ma: 'maxLeverage', // Max leverage for this bracket
},

gridUpdate: {
e: 'GRID_UPDATE', // Event Type
T: 'transactionTime', // Transaction Time
E: 'eventTime', // Event Time
gu: 'grid',
},
grid: {
si: 'strategyId', // Strategy ID
st: 'strategyType', // Strategy Type
ss: 'strategyStatus', // Strategy Status
s: 'symbol', // Symbol
r: 'realizedPnl', // Realized PNL
up: 'unmatchedAveragePrice', // Unmatched Average Price
uq: 'unmatchedQty', // Unmatched Qty
uf: 'unmatchedFee', // Unmatched Fee
mp: 'matchedPnl', // Matched PNL
ut: 'updateTime', // Update Time
},

strategyUpdate: {
e: 'STRATEGY_UPDATE', // Event Type
T: 'transactionTime', // Transaction Time
E: 'eventTime', // Event Time
su: 'strategy',
},
strategy: {
si: 'strategyId', // Strategy ID
st: 'strategyType', // Strategy Type
ss: 'strategyStatus', // Strategy Status
s: 'symbol', // Symbol
ut: 'updateTime', // Update Time
c: 'opCode', // opCode
},
};

0 comments on commit 33918a5

Please sign in to comment.