From 6b0f34a1e0f08e20f81bb4d25bcec384a1a7725a Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Fri, 22 May 2026 19:39:02 +0200 Subject: [PATCH] fix(indexer): populate ExecutionExtraData from payload envelope on Gloas+ For EIP-7732 (Gloas+) blocks the execution payload lives in a separate envelope, so body.ExecutionPayload is nil and getBlockExecutionExtraData returns (nil, nil). The in-memory BlockBodyIndex therefore had an empty ExtraData, which made the filtered-blocks NOT filter never exclude matching cached blocks (the empty-string short-circuit treated every block as "no extra data"). Read ExtraData from payload.Message.Payload.ExtraData alongside the other execution fields, mirroring the writedb path. --- indexer/beacon/block.go | 1 + 1 file changed, 1 insertion(+) diff --git a/indexer/beacon/block.go b/indexer/beacon/block.go index 913a52cb..3c0e64e3 100644 --- a/indexer/beacon/block.go +++ b/indexer/beacon/block.go @@ -465,6 +465,7 @@ func (block *Block) setBlockIndex(body *all.SignedBeaconBlock, payload *all.Sign blockIndex.EthTransactionCount = uint64(len(payload.Message.Payload.Transactions)) blockIndex.GasUsed = payload.Message.Payload.GasUsed blockIndex.GasLimit = payload.Message.Payload.GasLimit + blockIndex.ExecutionExtraData = payload.Message.Payload.ExtraData } if blockSize, err := getBlockSize(block.dynSsz, body); err == nil {