diff --git a/beacon_chain/consensus_object_pools/consensus_manager.nim b/beacon_chain/consensus_object_pools/consensus_manager.nim index 6616de53cf..31ecb767fb 100644 --- a/beacon_chain/consensus_object_pools/consensus_manager.nim +++ b/beacon_chain/consensus_object_pools/consensus_manager.nim @@ -362,7 +362,8 @@ proc prepareNextSlot*( when consensusFork >= ConsensusFork.Gloas: PayloadAttributesV4.init(timestamp, prevRandao, feeRecipient, get_expected_withdrawals(forkyState.data).withdrawals, - beaconHead.blck.bid.root, proposalSlot) + beaconHead.blck.bid.root, proposalSlot, + self[].getGasLimit(nextProposer)) else: # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/cancun.md#payloadattributesv3 PayloadAttributesV3.init(timestamp, prevRandao, feeRecipient, diff --git a/beacon_chain/el/el_manager.nim b/beacon_chain/el/el_manager.nim index 236506e603..dfa1f81ff3 100644 --- a/beacon_chain/el/el_manager.nim +++ b/beacon_chain/el/el_manager.nim @@ -456,6 +456,7 @@ func init*( withdrawals: sink seq[capella.Withdrawal], consensusHead: Eth2Digest, slot: Slot, + targetGasLimit: uint64, ): T = T( timestamp: Quantity timestamp, @@ -464,6 +465,7 @@ func init*( withdrawals: withdrawals.toEngineWithdrawals(), parentBeaconBlockRoot: consensusHead.to(Hash32), slotNumber: Quantity(slot), + targetGasLimit: Quantity(targetGasLimit), ) func init( diff --git a/beacon_chain/validators/block_payloads.nim b/beacon_chain/validators/block_payloads.nim index 5b44fa41d9..488aec173f 100644 --- a/beacon_chain/validators/block_payloads.nim +++ b/beacon_chain/validators/block_payloads.nim @@ -403,6 +403,7 @@ proc getExecutionPayload*( PayloadAttributesV4.init( timestamp, prevRandao, feeRecipient, withdrawals, beaconHead.blck.bid.root, slot, + node.consensusManager[].getGasLimit(validator_pubkey), ) else: PayloadAttributesV3.init( diff --git a/tests/test_el_manager.nim b/tests/test_el_manager.nim index ae716fff31..07624f82a8 100644 --- a/tests/test_el_manager.nim +++ b/tests/test_el_manager.nim @@ -440,7 +440,7 @@ suite "EL Manager - getPayload": state = ForkchoiceStateV1.init(ZERO_HASH, ZERO_HASH, ZERO_HASH) attrs = PayloadAttributesV4.init( 0'u64, ZERO_HASH, default(Eth1Address), - default(seq[capella.Withdrawal]), ZERO_HASH, Slot(1)) + default(seq[capella.Withdrawal]), ZERO_HASH, Slot(1), 60_000_000'u64) resp = waitFor manager.getPayload(gloas.ExecutionPayloadForSigning, state, attrs)