From 458399a9885b155844e485a23abad0ff181ed5e2 Mon Sep 17 00:00:00 2001 From: Derek Guenther Date: Thu, 8 May 2025 20:14:14 -0400 Subject: [PATCH] eth/catalyst: allow duplicate blob hashes --- eth/catalyst/api.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index a24923f104..623a09c585 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -590,12 +590,12 @@ func (api *ConsensusAPI) GetBlobsV2(hashes []common.Hash) ([]*engine.BlobAndProo // pull up the blob hashes var ( res = make([]*engine.BlobAndProofV2, len(hashes)) - index = make(map[common.Hash]int) + index = make(map[common.Hash][]int) sidecars = api.eth.TxPool().GetBlobs(hashes) ) for i, hash := range hashes { - index[hash] = i + index[hash] = append(index[hash], i) } for i, sidecar := range sidecars { if res[i] != nil { @@ -611,15 +611,17 @@ func (api *ConsensusAPI) GetBlobsV2(hashes []common.Hash) ([]*engine.BlobAndProo } blobHashes := sidecar.BlobHashes() for bIdx, hash := range blobHashes { - if idx, ok := index[hash]; ok { + if idxes, ok := index[hash]; ok { proofs := sidecar.CellProofsAt(bIdx) var cellProofs []hexutil.Bytes for _, proof := range proofs { cellProofs = append(cellProofs, proof[:]) } - res[idx] = &engine.BlobAndProofV2{ - Blob: sidecar.Blobs[bIdx][:], - CellProofs: cellProofs, + for _, idx := range idxes { + res[idx] = &engine.BlobAndProofV2{ + Blob: sidecar.Blobs[bIdx][:], + CellProofs: cellProofs, + } } } }