mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-22 19:28:20 +00:00
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. - https://github.com/ethereum/EIPs/pull/8989 * Avoid nested computeDigest scopes
This commit is contained in:
parent
cd8de2f061
commit
ddad30f725
@ -460,15 +460,16 @@ func computeRequestsHash(
|
|||||||
WITHDRAWAL_REQUEST_TYPE = 0x01'u8 # EIP-7002
|
WITHDRAWAL_REQUEST_TYPE = 0x01'u8 # EIP-7002
|
||||||
CONSOLIDATION_REQUEST_TYPE = 0x02'u8 # EIP-7251
|
CONSOLIDATION_REQUEST_TYPE = 0x02'u8 # EIP-7251
|
||||||
|
|
||||||
|
template individualHash(requestType, requestList): Digest =
|
||||||
|
computeDigest:
|
||||||
|
h.update([requestType.byte])
|
||||||
|
for request in requestList:
|
||||||
|
h.update SSZ.encode(request)
|
||||||
|
|
||||||
let requestsHash = computeDigest:
|
let requestsHash = computeDigest:
|
||||||
template mixInRequests(requestType, requestList): untyped =
|
template mixInRequests(requestType, requestList): untyped =
|
||||||
block:
|
if requestList.len > 0:
|
||||||
let hash = computeDigest:
|
h.update(individualHash(requestType, requestList).data)
|
||||||
bind h
|
|
||||||
h.update([requestType.byte])
|
|
||||||
for request in requestList:
|
|
||||||
h.update SSZ.encode(request)
|
|
||||||
h.update(hash.data)
|
|
||||||
|
|
||||||
static:
|
static:
|
||||||
doAssert DEPOSIT_REQUEST_TYPE < WITHDRAWAL_REQUEST_TYPE
|
doAssert DEPOSIT_REQUEST_TYPE < WITHDRAWAL_REQUEST_TYPE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user