diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go index fbb2c474ff8b..c34215ceee94 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer.go @@ -16,6 +16,7 @@ import ( "github.com/prysmaticlabs/prysm/v4/beacon-chain/cache" "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/feed" blockfeed "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/feed/block" + "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/feed/operation" "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/helpers" "github.com/prysmaticlabs/prysm/v4/beacon-chain/core/transition" "github.com/prysmaticlabs/prysm/v4/beacon-chain/db/kv" @@ -315,9 +316,14 @@ func (vs *Server) broadcastAndReceiveBlobs(ctx context.Context, sidecars []*ethp if err != nil { return errors.Wrap(err, "ROBlob creation failed") } - if err := vs.BlobReceiver.ReceiveBlob(ctx, blocks.NewVerifiedROBlob(readOnlySc)); err != nil { + verifiedBlob := blocks.NewVerifiedROBlob(readOnlySc) + if err := vs.BlobReceiver.ReceiveBlob(ctx, verifiedBlob); err != nil { return errors.Wrap(err, "receive blob failed") } + vs.OperationNotifier.OperationFeed().Send(&feed.Event{ + Type: operation.BlobSidecarReceived, + Data: &operation.BlobSidecarReceivedData{Blob: &verifiedBlob}, + }) } return nil } diff --git a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go index 36baadf0bcd3..c705797592c8 100644 --- a/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go +++ b/beacon-chain/rpc/prysm/v1alpha1/validator/proposer_test.go @@ -799,8 +799,9 @@ func TestProposer_ProposeBlock_OK(t *testing.T) { P2P: mockp2p.NewTestP2P(t), BlockBuilder: &builderTest.MockBuilderService{HasConfigured: tt.useBuilder, PayloadCapella: emptyPayloadCapella(), PayloadDeneb: emptyPayloadDeneb(), BlobBundle: &enginev1.BlobsBundle{KzgCommitments: [][]byte{bytesutil.PadTo([]byte{0x01}, 48)}, Proofs: [][]byte{{0x02}}, Blobs: [][]byte{{0x03}}}}, - BeaconDB: db, - BlobReceiver: c, + BeaconDB: db, + BlobReceiver: c, + OperationNotifier: c.OperationNotifier(), } blockToPropose := tt.block(bsRoot) res, err := proposerServer.ProposeBeaconBlock(context.Background(), blockToPropose)