From d0a79c6a1362e12f6f102e4af99adfef930092db Mon Sep 17 00:00:00 2001 From: Richard Moore Date: Sun, 12 Jul 2020 05:02:08 -0400 Subject: [PATCH] Added destroy to WebSocketProvider. --- .../providers/src.ts/websocket-provider.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/providers/src.ts/websocket-provider.ts b/packages/providers/src.ts/websocket-provider.ts index e447f648f8..1b8958ec1a 100644 --- a/packages/providers/src.ts/websocket-provider.ts +++ b/packages/providers/src.ts/websocket-provider.ts @@ -274,4 +274,22 @@ export class WebSocketProvider extends JsonRpcProvider { this.send("eth_unsubscribe", [ subId ]); }); } + + async destroy(): Promise { + // Wait until we have connected before trying to disconnect + if (this._websocket.readyState === WebSocket.CONNECTING) { + await new Promise((resolve) => { + this._websocket.on("open", () => { + resolve(true); + }); + + this._websocket.on("error", () => { + resolve(false); + }); + }); + } + + // Hangup (navigating away from the page that opened the connection) + this._websocket.close(1001); + } }