mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-18 17:37:33 +00:00
Fix /api/eth/v1/validator/duties/attester/{epoch} request body ValidatorIndex issues.
This commit is contained in:
parent
c56cb0a485
commit
d443801818
@ -151,6 +151,23 @@ proc readValue*(reader: var JsonReader[RestJson], value: var ValidatorIndex) {.
|
|||||||
else:
|
else:
|
||||||
reader.raiseUnexpectedValue($res.error())
|
reader.raiseUnexpectedValue($res.error())
|
||||||
|
|
||||||
|
## RestValidatorIndex
|
||||||
|
proc writeValue*(writer: var JsonWriter[RestJson],
|
||||||
|
value: RestValidatorIndex) {.
|
||||||
|
raises: [IOError, Defect].} =
|
||||||
|
writeValue(writer, Base10.toString(uint64(value)))
|
||||||
|
|
||||||
|
proc readValue*(reader: var JsonReader[RestJson],
|
||||||
|
value: var RestValidatorIndex) {.
|
||||||
|
raises: [IOError, SerializationError, Defect].} =
|
||||||
|
let svalue = reader.readValue(string)
|
||||||
|
let res = Base10.decode(uint64, svalue)
|
||||||
|
if res.isOk():
|
||||||
|
let v = res.get()
|
||||||
|
value = RestValidatorIndex(v)
|
||||||
|
else:
|
||||||
|
reader.raiseUnexpectedValue($res.error())
|
||||||
|
|
||||||
## CommitteeIndex
|
## CommitteeIndex
|
||||||
proc writeValue*(writer: var JsonWriter[RestJson], value: CommitteeIndex) {.
|
proc writeValue*(writer: var JsonWriter[RestJson], value: CommitteeIndex) {.
|
||||||
raises: [IOError, Defect].} =
|
raises: [IOError, Defect].} =
|
||||||
|
@ -48,11 +48,26 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) =
|
|||||||
block:
|
block:
|
||||||
if contentBody.isNone():
|
if contentBody.isNone():
|
||||||
return RestApiResponse.jsonError(Http400, "Empty request's body")
|
return RestApiResponse.jsonError(Http400, "Empty request's body")
|
||||||
let dres = decodeBody(seq[ValidatorIndex], contentBody.get())
|
let dres = decodeBody(seq[RestValidatorIndex], contentBody.get())
|
||||||
if dres.isErr():
|
if dres.isErr():
|
||||||
return RestApiResponse.jsonError(Http400, "Unable to decode " &
|
return RestApiResponse.jsonError(Http400, "Unable to decode " &
|
||||||
"list of validator indexes", $dres.error())
|
"list of validator indexes", $dres.error())
|
||||||
dres.get()
|
var res: seq[ValidatorIndex]
|
||||||
|
let items = dres.get()
|
||||||
|
for item in items:
|
||||||
|
let vres = item.toValidatorIndex()
|
||||||
|
if vres.isErr():
|
||||||
|
case vres.error()
|
||||||
|
of ValidatorIndexError.TooHighValue:
|
||||||
|
return RestApiResponse.jsonError(Http400,
|
||||||
|
"Incorrect validator index value")
|
||||||
|
of ValidatorIndexError.UnsupportedValue:
|
||||||
|
return RestApiResponse.jsonError(Http500,
|
||||||
|
"Unsupported validator index value")
|
||||||
|
res.add(vres.get())
|
||||||
|
if len(res) == 0:
|
||||||
|
return RestApiResponse.jsonError(Http400, "Empty indexes list")
|
||||||
|
res
|
||||||
let qepoch =
|
let qepoch =
|
||||||
block:
|
block:
|
||||||
if epoch.isErr():
|
if epoch.isErr():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user