Skip to content

Commit d699ff3

Browse files
committed
1 parent 66febf2 commit d699ff3

File tree

5 files changed

+18
-16
lines changed

5 files changed

+18
-16
lines changed

beacon_chain/beacon_node_light_client.nim

+1-2
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

+10-6
Original file line numberDiff line numberDiff line change
@@ -1058,10 +1058,12 @@ proc sendNewPayloadToSingleEL(connection: ELConnection,
10581058

10591059
proc sendNewPayloadToSingleEL(connection: ELConnection,
10601060
payload: engine_api.ExecutionPayloadV3,
1061-
versioned_hashes: seq[engine_api.VersionedHash]):
1061+
versioned_hashes: seq[engine_api.VersionedHash],
1062+
parent_beacon_block_root: FixedBytes[32]):
10621063
Future[PayloadStatusV1] {.async.} =
10631064
let rpcClient = await connection.connectedRpcClient()
1064-
return await rpcClient.engine_newPayloadV3(payload, versioned_hashes)
1065+
return await rpcClient.engine_newPayloadV3(
1066+
payload, versioned_hashes, parent_beacon_block_root)
10651067

10661068
type
10671069
StatusRelation = enum
@@ -1153,23 +1155,25 @@ proc processResponse[ELResponseType](
11531155
url2 = connections[idx].engineUrl.url,
11541156
status2 = status
11551157

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

beacon_chain/gossip_processing/block_processor.nim

+4-5
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

+2-2
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)