diff options
author | kao <zichongkao@gmail.com> | 2018-12-15 17:23:08 +0800 |
---|---|---|
committer | kao <zichongkao@gmail.com> | 2018-12-15 17:25:23 +0800 |
commit | 6bb2ef923894a3572c3fa824c3bf1a69759eb43a (patch) | |
tree | a5fe3a4665056aa9e0c714a1c98c5ec7d1343eed /packages/order-watcher/src/types.ts | |
parent | d9b58848346a4be41684eea244e393afaab6a617 (diff) | |
download | dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar.gz dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar.bz2 dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar.lz dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar.xz dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.tar.zst dexon-sol-tools-6bb2ef923894a3572c3fa824c3bf1a69759eb43a.zip |
Respond to CR
Diffstat (limited to 'packages/order-watcher/src/types.ts')
-rw-r--r-- | packages/order-watcher/src/types.ts | 50 |
1 files changed, 40 insertions, 10 deletions
diff --git a/packages/order-watcher/src/types.ts b/packages/order-watcher/src/types.ts index 7f6219732..90d383660 100644 --- a/packages/order-watcher/src/types.ts +++ b/packages/order-watcher/src/types.ts @@ -32,8 +32,8 @@ export enum InternalOrderWatcherError { WethNotInTokenRegistry = 'WETH_NOT_IN_TOKEN_REGISTRY', } -export enum OrderWatcherAction { - // Actions initiated by the user. +export enum OrderWatcherMethod { + // Methods initiated by the user. GetStats = 'GET_STATS', AddOrder = 'ADD_ORDER', RemoveOrder = 'REMOVE_ORDER', @@ -46,16 +46,46 @@ export enum OrderWatcherAction { // Users have to create a json object of this format and attach it to // the data field of their WebSocket message to interact with the server. -export interface WebSocketRequest { - action: OrderWatcherAction; - signedOrder?: SignedOrder; - orderHash?: string; +export type WebSocketRequest = AddOrderRequest | RemoveOrderRequest | GetStatsRequest; + +interface AddOrderRequest { + id: string; + jsonrpc: string; + method: OrderWatcherMethod.AddOrder; + params: { signedOrder: SignedOrder }; +} + +interface RemoveOrderRequest { + id: string; + jsonrpc: string; + method: OrderWatcherMethod.RemoveOrder; + params: { orderHash: string }; +} + +interface GetStatsRequest { + id: string; + jsonrpc: string; + method: OrderWatcherMethod.GetStats; } // Users should expect a json object of this format in the data field // of the WebSocket messages that the server sends out. -export interface WebSocketResponse { - action: OrderWatcherAction | null; - success: boolean; - result: any; +export type WebSocketResponse = SuccessfulWebSocketResponse | ErrorWebSocketResponse; + +interface SuccessfulWebSocketResponse { + id: string | null; // id is null for UPDATE + jsonrpc: string; + method: OrderWatcherMethod; + result: OrderState | GetStatsResult | undefined; // result is undefined for ADD_ORDER and REMOVE_ORDER +} + +interface ErrorWebSocketResponse { + id: null; + jsonrpc: string; + method: null; + error: string; +} + +export interface GetStatsResult { + orderCount: number; } |