aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-watcher/src/types.ts
diff options
context:
space:
mode:
authorkao <zichongkao@gmail.com>2018-12-15 17:23:08 +0800
committerkao <zichongkao@gmail.com>2018-12-15 17:25:23 +0800
commit6bb2ef923894a3572c3fa824c3bf1a69759eb43a (patch)
treea5fe3a4665056aa9e0c714a1c98c5ec7d1343eed /packages/order-watcher/src/types.ts
parentd9b58848346a4be41684eea244e393afaab6a617 (diff)
downloaddexon-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.ts50
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;
}