From 80a50c1eb037d877b94b57becb2994c8e6fc1769 Mon Sep 17 00:00:00 2001 From: Luke Steyn Date: Wed, 22 Nov 2023 14:37:11 +0100 Subject: [PATCH 1/7] Better error handling --- src/wsConnectionManager.ts | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/wsConnectionManager.ts b/src/wsConnectionManager.ts index 8b7283f..226cb89 100644 --- a/src/wsConnectionManager.ts +++ b/src/wsConnectionManager.ts @@ -28,8 +28,15 @@ const wss = new WebSocketServer({ server, path: '/ws' }); const REDIS_HOST = process.env.REDIS_HOST || 'localhost'; const REDIS_PORT = process.env.REDIS_PORT || '6379'; const WS_PORT = process.env.WS_PORT || '3000'; + +console.log(`WS LISTENER PORT : ${WS_PORT}`); + const REDIS_PASSWORD = process.env.REDIS_PASSWORD; +const safeGetRawChannelFromMessage = (message: any): string => { + return message?.channel; +}; + const getRedisChannelFromMessage = (message: any): string => { const channel = message.channel; const marketName = message.market?.toUpperCase(); @@ -119,7 +126,17 @@ async function main() { try { redisChannel = getRedisChannelFromMessage(parsedMessage); } catch (error) { - ws.send(JSON.stringify({ error: error.message })); + const requestChannel = safeGetRawChannelFromMessage(parsedMessage); + if (requestChannel) { + ws.send( + JSON.stringify({ + channel: requestChannel, + error: error.message, + }) + ); + } else { + ws.close(1003, JSON.stringify({ error: error.message })); + } return; } @@ -165,7 +182,17 @@ async function main() { try { redisChannel = getRedisChannelFromMessage(parsedMessage); } catch (error) { - ws.send(JSON.stringify({ error: error.message })); + const requestChannel = safeGetRawChannelFromMessage(parsedMessage); + if (requestChannel) { + ws.send( + JSON.stringify({ + channel: requestChannel, + error: error.message, + }) + ); + } else { + ws.close(1003, JSON.stringify({ error: error.message })); + } return; } const subscribers = channelSubscribers.get(redisChannel); From a24757f3740986a58de3d7ee6d44033c64a8a852 Mon Sep 17 00:00:00 2001 From: Luke Steyn Date: Wed, 22 Nov 2023 15:49:51 +0100 Subject: [PATCH 2/7] Added handling for last_update messages --- src/wsConnectionManager.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/wsConnectionManager.ts b/src/wsConnectionManager.ts index 226cb89..cb383aa 100644 --- a/src/wsConnectionManager.ts +++ b/src/wsConnectionManager.ts @@ -166,12 +166,17 @@ async function main() { // Fetch and send last message if (redisChannel.includes('orderbook')) { + const lastUpdateChannel = `last_update_${redisChannel}`; const lastMessage = await lastMessageRetriever.client.get( - `last_update_${redisChannel}` + lastUpdateChannel ); + if (lastMessage !== null) { ws.send( - JSON.stringify({ channel: redisChannel, data: lastMessage }) + JSON.stringify({ + channel: lastUpdateChannel, + data: lastMessage, + }) ); } } From 005a118e84a3b217fbb826c9782f71d2acb96c5a Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 16:17:51 +0000 Subject: [PATCH 3/7] Bumping sdk dependency to 2.45.0-beta.5 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e3d2fde..22a6962 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "license": "Apache-2.0", "dependencies": { - "@drift-labs/sdk": "2.45.0-beta.4", + "@drift-labs/sdk": "2.45.0-beta.5", "@opentelemetry/api": "^1.1.0", "@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/exporter-prometheus": "^0.31.0", diff --git a/yarn.lock b/yarn.lock index 88549ca..86038d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,10 +80,10 @@ enabled "2.0.x" kuler "^2.0.0" -"@drift-labs/sdk@2.45.0-beta.4": - version "2.45.0-beta.4" - resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.45.0-beta.4.tgz#237d5d1fd55fef60964ab359536fc03ff757eedd" - integrity sha512-NNbWXEnFyL99J0fyByV20gtsN0DnwAz3hoscVPWi+ejqhEqgfcuc1BVqtLX1lwSiWsxDQnIMGz437HSuFimaVQ== +"@drift-labs/sdk@2.45.0-beta.5": + version "2.45.0-beta.5" + resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.45.0-beta.5.tgz#3b77a5aeea82d397441a26823a8ddaa4e3c457d6" + integrity sha512-lBJIUEiSdEu4D4MRgX31/HdQSd8k8olco3B5nDaERJIqPUWu5uWJ4DaKHZ/WnOsIl3nBsILnYe+KGiG+NVbgpg== dependencies: "@coral-xyz/anchor" "0.28.1-beta.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2" From 62fb2da42ebbc540257211e20af8911150d981ac Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 20:52:11 +0000 Subject: [PATCH 4/7] Bumping sdk dependency to 2.45.0-beta.6 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 22a6962..a4f442d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "license": "Apache-2.0", "dependencies": { - "@drift-labs/sdk": "2.45.0-beta.5", + "@drift-labs/sdk": "2.45.0-beta.6", "@opentelemetry/api": "^1.1.0", "@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/exporter-prometheus": "^0.31.0", diff --git a/yarn.lock b/yarn.lock index 86038d7..953110c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,10 +80,10 @@ enabled "2.0.x" kuler "^2.0.0" -"@drift-labs/sdk@2.45.0-beta.5": - version "2.45.0-beta.5" - resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.45.0-beta.5.tgz#3b77a5aeea82d397441a26823a8ddaa4e3c457d6" - integrity sha512-lBJIUEiSdEu4D4MRgX31/HdQSd8k8olco3B5nDaERJIqPUWu5uWJ4DaKHZ/WnOsIl3nBsILnYe+KGiG+NVbgpg== +"@drift-labs/sdk@2.45.0-beta.6": + version "2.45.0-beta.6" + resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.45.0-beta.6.tgz#062f13e64a118c29c32e01997c321b5f013faf5b" + integrity sha512-wjAIsqhg9Nm4khuDXc6BlbAYyAj+vXp2/hfMLwOd6BGcwR+qdZm20nqW3oXCHg3fAC8jxXx9pW6KvM8buTApWA== dependencies: "@coral-xyz/anchor" "0.28.1-beta.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2" From 6dd67fb4583017650fa759a363f97438c45fee99 Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 22:09:38 +0000 Subject: [PATCH 5/7] Bumping sdk dependency to 2.46.0-beta.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a4f442d..df9d5f0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "license": "Apache-2.0", "dependencies": { - "@drift-labs/sdk": "2.45.0-beta.6", + "@drift-labs/sdk": "2.46.0-beta.0", "@opentelemetry/api": "^1.1.0", "@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/exporter-prometheus": "^0.31.0", diff --git a/yarn.lock b/yarn.lock index 953110c..62c23ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,10 +80,10 @@ enabled "2.0.x" kuler "^2.0.0" -"@drift-labs/sdk@2.45.0-beta.6": - version "2.45.0-beta.6" - resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.45.0-beta.6.tgz#062f13e64a118c29c32e01997c321b5f013faf5b" - integrity sha512-wjAIsqhg9Nm4khuDXc6BlbAYyAj+vXp2/hfMLwOd6BGcwR+qdZm20nqW3oXCHg3fAC8jxXx9pW6KvM8buTApWA== +"@drift-labs/sdk@2.46.0-beta.0": + version "2.46.0-beta.0" + resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.46.0-beta.0.tgz#066e544b2e818f3320d378d5e77bba2c8b6addd5" + integrity sha512-BJ15b9/r6htxEy06rC7bJ/L7FXlsyNjmdeZPYPP/TGyuHn1MCjuJ5c7ZAsS0rFkIlazpHOXDKACOBEqQpFeZmQ== dependencies: "@coral-xyz/anchor" "0.28.1-beta.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2" From 588e5e066097bb6ec4948f6f19b2658cc7203f61 Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 22:33:24 +0000 Subject: [PATCH 6/7] Bumping sdk dependency to 2.46.0-beta.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index df9d5f0..d35a628 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "license": "Apache-2.0", "dependencies": { - "@drift-labs/sdk": "2.46.0-beta.0", + "@drift-labs/sdk": "2.46.0-beta.1", "@opentelemetry/api": "^1.1.0", "@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/exporter-prometheus": "^0.31.0", diff --git a/yarn.lock b/yarn.lock index 62c23ff..3fa51b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,10 +80,10 @@ enabled "2.0.x" kuler "^2.0.0" -"@drift-labs/sdk@2.46.0-beta.0": - version "2.46.0-beta.0" - resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.46.0-beta.0.tgz#066e544b2e818f3320d378d5e77bba2c8b6addd5" - integrity sha512-BJ15b9/r6htxEy06rC7bJ/L7FXlsyNjmdeZPYPP/TGyuHn1MCjuJ5c7ZAsS0rFkIlazpHOXDKACOBEqQpFeZmQ== +"@drift-labs/sdk@2.46.0-beta.1": + version "2.46.0-beta.1" + resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.46.0-beta.1.tgz#0fea7be51a07180479418ee559fa916ee306db9b" + integrity sha512-r5edKj5UlZPn6ChWab9vlBWVeHQayszF/RdLr/IU4+iAYcT0VYSbkI53WmB86z6ox07uBK9VGvtPQlfKtrVh0A== dependencies: "@coral-xyz/anchor" "0.28.1-beta.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2" From 5a410833730fa32b99010521a81a987a59477b25 Mon Sep 17 00:00:00 2001 From: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 21:59:59 +0000 Subject: [PATCH 7/7] Bumping sdk dependency to 2.47.0-beta.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d35a628..8b3b820 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "lib/index.js", "license": "Apache-2.0", "dependencies": { - "@drift-labs/sdk": "2.46.0-beta.1", + "@drift-labs/sdk": "2.47.0-beta.0", "@opentelemetry/api": "^1.1.0", "@opentelemetry/auto-instrumentations-node": "^0.31.1", "@opentelemetry/exporter-prometheus": "^0.31.0", diff --git a/yarn.lock b/yarn.lock index 3fa51b3..ef5f335 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,10 +80,10 @@ enabled "2.0.x" kuler "^2.0.0" -"@drift-labs/sdk@2.46.0-beta.1": - version "2.46.0-beta.1" - resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.46.0-beta.1.tgz#0fea7be51a07180479418ee559fa916ee306db9b" - integrity sha512-r5edKj5UlZPn6ChWab9vlBWVeHQayszF/RdLr/IU4+iAYcT0VYSbkI53WmB86z6ox07uBK9VGvtPQlfKtrVh0A== +"@drift-labs/sdk@2.47.0-beta.0": + version "2.47.0-beta.0" + resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.47.0-beta.0.tgz#2c29d46aa1b9aaacc716bf980117e8060a92ae8d" + integrity sha512-6CGjwu1OzeuI9VG7CrZzRc4kbdfXxcLSuq33se0WukPbK9yNgprCpm4S49Xk7ubx+019DbeTAwxzajXo+V6DgQ== dependencies: "@coral-xyz/anchor" "0.28.1-beta.2" "@ellipsis-labs/phoenix-sdk" "^1.4.2"