Skip to content

Commit b4c4f09

Browse files
authored
1 parent 99264d7 commit b4c4f09

File tree

5 files changed

+18
-16
lines changed

5 files changed

+18
-16
lines changed

beacon_chain/beacon_node_light_client.nim

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ proc initLightClient*(
5151

5252
if not blckPayload.block_hash.isZero:
5353
# engine_newPayloadV1
54-
discard await node.elManager.newExecutionPayload(
55-
blck.message.body)
54+
discard await node.elManager.newExecutionPayload(blck.message)
5655

5756
# Retain optimistic head for other `forkchoiceUpdated` callers.
5857
# May temporarily block `forkchoiceUpdatedV1` calls, e.g., Geth:

beacon_chain/el/el_manager.nim

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,10 +1059,12 @@ proc sendNewPayloadToSingleEL(connection: ELConnection,
10591059

10601060
proc sendNewPayloadToSingleEL(connection: ELConnection,
10611061
payload: engine_api.ExecutionPayloadV3,
1062-
versioned_hashes: seq[engine_api.VersionedHash]):
1062+
versioned_hashes: seq[engine_api.VersionedHash],
1063+
parent_beacon_block_root: FixedBytes[32]):
10631064
Future[PayloadStatusV1] {.async.} =
10641065
let rpcClient = await connection.connectedRpcClient()
1065-
return await rpcClient.engine_newPayloadV3(payload, versioned_hashes)
1066+
return await rpcClient.engine_newPayloadV3(
1067+
payload, versioned_hashes, parent_beacon_block_root)
10661068

10671069
type
10681070
StatusRelation = enum
@@ -1154,23 +1156,25 @@ proc processResponse[ELResponseType](
11541156
url2 = connections[idx].engineUrl.url,
11551157
status2 = status
11561158

1157-
proc sendNewPayload*(m: ELManager, blockBody: SomeForkyBeaconBlockBody):
1159+
proc sendNewPayload*(m: ELManager, blck: SomeForkyBeaconBlock):
11581160
Future[PayloadExecutionStatus] {.async.} =
11591161
let
11601162
earlyDeadline = sleepAsync(chronos.seconds 1)
11611163
startTime = Moment.now
11621164
deadline = sleepAsync(NEWPAYLOAD_TIMEOUT)
1163-
payload = blockBody.execution_payload.asEngineExecutionPayload
1165+
payload = blck.body.execution_payload.asEngineExecutionPayload
11641166
requests = m.elConnections.mapIt:
11651167
let req =
11661168
when payload is engine_api.ExecutionPayloadV3:
11671169
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-alpha.1/specs/deneb/beacon-chain.md#process_execution_payload
11681170
# Verify the execution payload is valid
11691171
# [Modified in Deneb] Pass `versioned_hashes` to Execution Engine
11701172
let versioned_hashes = mapIt(
1171-
blockBody.blob_kzg_commitments,
1173+
blck.body.blob_kzg_commitments,
11721174
engine_api.VersionedHash(kzg_commitment_to_versioned_hash(it)))
1173-
sendNewPayloadToSingleEL(it, payload, versioned_hashes)
1175+
sendNewPayloadToSingleEL(
1176+
it, payload, versioned_hashes,
1177+
FixedBytes[32] blck.parent_root.data)
11741178
elif payload is engine_api.ExecutionPayloadV1 or
11751179
payload is engine_api.ExecutionPayloadV2:
11761180
sendNewPayloadToSingleEL(it, payload)

beacon_chain/gossip_processing/block_processor.nim

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -303,11 +303,10 @@ from ../spec/datatypes/capella import
303303
from ../spec/datatypes/deneb import SignedBeaconBlock, asTrusted, shortLog
304304

305305
proc newExecutionPayload*(
306-
elManager: ELManager,
307-
blockBody: SomeForkyBeaconBlockBody):
306+
elManager: ELManager, blck: SomeForkyBeaconBlock):
308307
Future[Opt[PayloadExecutionStatus]] {.async.} =
309308

310-
template executionPayload: untyped = blockBody.execution_payload
309+
template executionPayload: untyped = blck.body.execution_payload
311310

312311
if not elManager.hasProperlyConfiguredConnection:
313312
if elManager.hasConnection:
@@ -322,7 +321,7 @@ proc newExecutionPayload*(
322321
executionPayload = shortLog(executionPayload)
323322

324323
try:
325-
let payloadStatus = await elManager.sendNewPayload(blockBody)
324+
let payloadStatus = await elManager.sendNewPayload(blck)
326325

327326
debug "newPayload: succeeded",
328327
parentHash = executionPayload.parent_hash,
@@ -349,7 +348,7 @@ proc getExecutionValidity(
349348

350349
try:
351350
let executionPayloadStatus = await elManager.newExecutionPayload(
352-
blck.message.body)
351+
blck.message)
353352
if executionPayloadStatus.isNone:
354353
return NewPayloadStatus.noResponse
355354

beacon_chain/nimbus_light_client.nim

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ programMain:
113113
template payload(): auto = blck.message.body.execution_payload
114114

115115
if elManager != nil and not payload.block_hash.isZero:
116-
discard await elManager.newExecutionPayload(blck.message.body)
116+
discard await elManager.newExecutionPayload(blck.message)
117117
discard await elManager.forkchoiceUpdated(
118118
headBlockHash = payload.block_hash,
119119
safeBlockHash = payload.block_hash, # stub value
@@ -124,7 +124,7 @@ programMain:
124124
template payload(): auto = blck.message.body.execution_payload
125125

126126
if elManager != nil and not payload.block_hash.isZero:
127-
discard await elManager.newExecutionPayload(blck.message.body)
127+
discard await elManager.newExecutionPayload(blck.message)
128128
discard await elManager.forkchoiceUpdated(
129129
headBlockHash = payload.block_hash,
130130
safeBlockHash = payload.block_hash, # stub value

0 commit comments

Comments
 (0)