From 9613fe72a7e3c7b38d5ab2fb0002c91a8032eed5 Mon Sep 17 00:00:00 2001 From: coffeepots Date: Tue, 12 Jun 2018 16:51:07 +0100 Subject: [PATCH] Efficiency of `checkGet` improved --- eth-rpc/client.nim | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/eth-rpc/client.nim b/eth-rpc/client.nim index 9a5d216..86e4fcc 100644 --- a/eth-rpc/client.nim +++ b/eth-rpc/client.nim @@ -41,14 +41,15 @@ macro checkGet(node: JsonNode, fieldName: string, "Message is missing required field \"" & `fieldName` & "\"") if `n`.kind != `jKind`.JsonNodeKind: raise newException(ValueError, - "Expected " & $(`jKind`.JsonNodeKind) & ", got " & $`node`[`fieldName`].kind) + "Expected " & $(`jKind`.JsonNodeKind) & ", got " & $`n`.kind) case jKind - of JBool: result.add(quote do: `node`[`fieldName`].getBool) - of JInt: result.add(quote do: `node`[`fieldName`].getInt) - of JString: result.add(quote do: `node`[`fieldName`].getStr) - of JFloat: result.add(quote do: `node`[`fieldName`].getFloat) - of JObject: result.add(quote do: `node`[`fieldName`].getObject) + of JBool: result.add(quote do: `n`.getBool) + of JInt: result.add(quote do: `n`.getInt) + of JString: result.add(quote do: `n`.getStr) + of JFloat: result.add(quote do: `n`.getFloat) + of JObject: result.add(quote do: `n`.getObject) else: discard + echo "!!!", result.repr proc processMessage(self: RpcClient, line: string) = let node = parseJson(line) @@ -63,7 +64,7 @@ proc processMessage(self: RpcClient, line: string) = if not self.awaiting.hasKey(id): raise newException(ValueError, "Cannot find message id \"" & node["id"].str & "\"") - + let errorNode = node{"error"} if errorNode.isNil or errorNode.kind == JNull: var res = node{"result"}