Fix SingleOrList parser
This commit is contained in:
parent
744b4e2dc3
commit
4ab592bddb
|
@ -194,3 +194,18 @@ suite "JSON-RPC Quantity":
|
|||
let c = JrpcConv.decode(x, RtBlockIdentifier)
|
||||
check c.kind == bidNumber
|
||||
check c.number == 77
|
||||
|
||||
let d = JrpcConv.decode("\"10\"", RtBlockIdentifier)
|
||||
check d.kind == bidAlias
|
||||
check d.alias == "10"
|
||||
|
||||
expect JsonReaderError:
|
||||
let d = JrpcConv.decode("10", RtBlockIdentifier)
|
||||
discard d
|
||||
|
||||
test "check address or list":
|
||||
let a = AddressOrList(kind: slkNull)
|
||||
let x = JrpcConv.encode(a)
|
||||
let c = JrpcConv.decode(x, AddressOrList)
|
||||
check c.kind == slkNull
|
||||
|
||||
|
|
|
@ -154,6 +154,10 @@ func valid(hex: string): bool =
|
|||
if hex.len >= 2:
|
||||
if hex[0] == '0' and hex[1] in {'x', 'X'}:
|
||||
start = 2
|
||||
else:
|
||||
return false
|
||||
else:
|
||||
return false
|
||||
|
||||
for i in start..<hex.len:
|
||||
let x = hex[i]
|
||||
|
@ -329,6 +333,7 @@ proc readValue*[T](r: var JsonReader[JrpcConv], val: var SingleOrList[T])
|
|||
r.readValue(val.list)
|
||||
of JsonValueKind.Null:
|
||||
val = SingleOrList[T](kind: slkNull)
|
||||
r.parseNull()
|
||||
else:
|
||||
r.raiseUnexpectedValue("TopicOrList unexpected token kind =" & $tok)
|
||||
|
||||
|
|
Loading…
Reference in New Issue