From 127c9c9b0d3af3490407f31c7a24013efd249a51 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Tue, 27 Jun 2023 14:07:36 +0200 Subject: [PATCH] Formatting --- ethers/providers/jsonrpc/subscriptions.nim | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/ethers/providers/jsonrpc/subscriptions.nim b/ethers/providers/jsonrpc/subscriptions.nim index f7a2d8c..a6034e7 100644 --- a/ethers/providers/jsonrpc/subscriptions.nim +++ b/ethers/providers/jsonrpc/subscriptions.nim @@ -34,7 +34,9 @@ method unsubscribe(subscriptions: JsonRpcSubscriptions, raiseAssert "not implemented" method unsubscribe(subscription: JsonRpcSubscription) {.async.} = - await subscription.subscriptions.unsubscribe(subscription.id) + let subscriptions = subscription.subscriptions + let id = subscription.id + await subscriptions.unsubscribe(id) proc getCallback(subscriptions: JsonRpcSubscriptions, id: JsonNode): ?SubscriptionCallback = @@ -51,10 +53,20 @@ proc getCallback(subscriptions: JsonRpcSubscriptions, type WebSocketSubscriptions = ref object of JsonRpcSubscriptions +proc new*(_: type JsonRpcSubscriptions, + client: RpcWebSocketClient): JsonRpcSubscriptions = + let subscriptions = WebSocketSubscriptions(client: client) + proc subscriptionHandler(arguments: JsonNode) {.upraises:[].} = + if id =? arguments["subscription"].catch and + callback =? subscriptions.getCallback(id): + callback(id, arguments) + client.setMethodHandler("eth_subscription", subscriptionHandler) + subscriptions + method subscribeBlocks(subscriptions: WebSocketSubscriptions, onBlock: BlockHandler): - Future[JsonRpcSubscription] - {.async.} = + Future[JsonRpcSubscription] + {.async.} = proc callback(id, arguments: JsonNode) = if blck =? Block.fromJson(arguments["result"]).catch: asyncSpawn onBlock(blck) @@ -80,16 +92,6 @@ method unsubscribe(subscriptions: WebSocketSubscriptions, subscriptions.callbacks.del(id) discard await subscriptions.client.eth_unsubscribe(id) -proc new*(_: type JsonRpcSubscriptions, - client: RpcWebSocketClient): JsonRpcSubscriptions = - let subscriptions = WebSocketSubscriptions(client: client) - proc subscriptionHandler(arguments: JsonNode) {.upraises:[].} = - if id =? arguments["subscription"].catch and - callback =? subscriptions.getCallback(id): - callback(id, arguments) - client.setMethodHandler("eth_subscription", subscriptionHandler) - subscriptions - # Polling type