From 414c7dd1f2ec40ce58d1b29a34abfc5c3d721099 Mon Sep 17 00:00:00 2001 From: coffeepots Date: Tue, 15 May 2018 19:06:51 +0100 Subject: [PATCH] process `stint`s to json strings rather than arrays --- eth-rpc/server/jsonconverters.nim | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/eth-rpc/server/jsonconverters.nim b/eth-rpc/server/jsonconverters.nim index 5c8de6b..9cc1d2a 100644 --- a/eth-rpc/server/jsonconverters.nim +++ b/eth-rpc/server/jsonconverters.nim @@ -1,21 +1,14 @@ -import json, stint +import json, stint, strutils -iterator bytes(i: UInt256|Int256): byte = - let b = cast[ptr array[32, byte]](i.unsafeaddr) - var pos = 0 - while pos < 32: - yield b[pos] - pos += 1 +template stintStr(n: UInt256|Int256): JsonNode = + var s = n.toString + if s.len mod 2 != 0: s = "0" & s + s = "0x" & s + %s -proc `%`*(n: UInt256): JsonNode = - result = newJArray() - for elem in n.bytes: - result.add(%int(elem)) +proc `%`*(n: UInt256): JsonNode = n.stintStr -proc `%`*(n: Int256): JsonNode = - result = newJArray() - for elem in n.bytes: - result.add(%int(elem)) +proc `%`*(n: Int256): JsonNode = n.stintStr proc `%`*(n: byte{not lit}): JsonNode = result = newJInt(int(n))