Skip to content

Commit 132d3e6

Browse files
author
corey
committed
fix GetBlobSidecarsEnhanced
1 parent df65943 commit 132d3e6

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

node/derivation/beacon.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,11 @@ func (cl *L1BeaconClient) GetBlobSidecars(ctx context.Context, ref L1BlockRef, h
131131
if err := cl.apiReq(ctx, &resp, builder.String()); err != nil {
132132
return nil, fmt.Errorf("%w: failed to fetch blob sidecars for slot %v block %v", err, slot, ref)
133133
}
134-
if len(hashes) != len(resp.Data) {
135-
return nil, fmt.Errorf("expected %v sidecars but got %v", len(hashes), len(resp.Data))
134+
// Some Beacon nodes may ignore the indices parameter and return all sidecars for the slot.
135+
// We only need to ensure we have at least the number of sidecars we requested.
136+
// The sidecarFromSidecars function will filter and match the correct ones by index.
137+
if len(resp.Data) < len(hashes) {
138+
return nil, fmt.Errorf("expected at least %v sidecars but got %v", len(hashes), len(resp.Data))
136139
}
137140

138141
return resp.Data, nil

node/derivation/beacon_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ func TestGetBlob(t *testing.T) {
4141
fmt.Println(indexedBlobHashes)
4242
header, err := l1Client.HeaderByNumber(context.Background(), big.NewInt(int64(lg.BlockNumber)))
4343
require.NoError(t, err)
44-
var bts eth.BlobTxSidecar
44+
var bts []*BlobSidecar
4545
if len(indexedBlobHashes) != 0 {
46-
bts, err = l1BeaconClient.GetBlobSidecar(context.Background(), L1BlockRef{
46+
bts, err = l1BeaconClient.GetBlobSidecarsEnhanced(context.Background(), L1BlockRef{
4747
Time: header.Time,
4848
}, indexedBlobHashes)
4949
require.NoError(t, err)
5050
}
51-
t.Log(len(bts.Blobs))
51+
t.Log(len(bts))
5252
}
5353

5454
}

0 commit comments

Comments
 (0)