From 96c2d05b1f655b2f3a03cb650525c2fcc3ae839b Mon Sep 17 00:00:00 2001 From: Arnaud Date: Thu, 10 Apr 2025 09:36:07 +0200 Subject: [PATCH] Catch errors in close method --- ethers/providers/jsonrpc/subscriptions.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ethers/providers/jsonrpc/subscriptions.nim b/ethers/providers/jsonrpc/subscriptions.nim index 6ce0e02..7e19c38 100644 --- a/ethers/providers/jsonrpc/subscriptions.nim +++ b/ethers/providers/jsonrpc/subscriptions.nim @@ -84,10 +84,13 @@ method unsubscribe*(subscriptions: JsonRpcSubscriptions, {.async: (raises: [CancelledError]), base.} = raiseAssert "not implemented " -method close*(subscriptions: JsonRpcSubscriptions) {.async: (raises: [SubscriptionError, CancelledError]), base.} = +method close*(subscriptions: JsonRpcSubscriptions) {.async: (raises: []), base.} = let ids = toSeq subscriptions.callbacks.keys for id in ids: - await subscriptions.unsubscribe(id) + try: + await subscriptions.unsubscribe(id) + except CatchableError as e: + error "WS unsubscription failed", error = e.msg, id = id proc getCallback(subscriptions: JsonRpcSubscriptions, id: JsonNode): ?SubscriptionCallback {. raises:[].} =