Skip to content

Commit ddad30f

Browse files
authored
Adopt latest changes to request hash computation (#6718)
* Adopt latest changes to request hash computation The `requestType` of empty lists is no longer part of the requests hash. - ethereum/EIPs#8989 * Avoid nested computeDigest scopes
1 parent cd8de2f commit ddad30f

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

beacon_chain/spec/helpers.nim

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -460,15 +460,16 @@ func computeRequestsHash(
460460
WITHDRAWAL_REQUEST_TYPE = 0x01'u8 # EIP-7002
461461
CONSOLIDATION_REQUEST_TYPE = 0x02'u8 # EIP-7251
462462

463+
template individualHash(requestType, requestList): Digest =
464+
computeDigest:
465+
h.update([requestType.byte])
466+
for request in requestList:
467+
h.update SSZ.encode(request)
468+
463469
let requestsHash = computeDigest:
464470
template mixInRequests(requestType, requestList): untyped =
465-
block:
466-
let hash = computeDigest:
467-
bind h
468-
h.update([requestType.byte])
469-
for request in requestList:
470-
h.update SSZ.encode(request)
471-
h.update(hash.data)
471+
if requestList.len > 0:
472+
h.update(individualHash(requestType, requestList).data)
472473

473474
static:
474475
doAssert DEPOSIT_REQUEST_TYPE < WITHDRAWAL_REQUEST_TYPE

0 commit comments

Comments
 (0)