Skip to content

Commit

Permalink
feat: Add eth/v1 proto package to blob sidecar event
Browse files Browse the repository at this point in the history
  • Loading branch information
mattevans committed Jan 8, 2025
1 parent 49fad66 commit 0a55e10
Showing 1 changed file with 33 additions and 4 deletions.
37 changes: 33 additions & 4 deletions internal/events/v1/blob_sidecar.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import (

eth2v1 "github.com/attestantio/go-eth2-client/api/v1"
"github.com/ethpandaops/contributoor/internal/events"
xatuethv1 "github.com/ethpandaops/xatu/pkg/proto/eth/v1"
"github.com/ethpandaops/xatu/pkg/proto/xatu"
"github.com/google/uuid"
"google.golang.org/protobuf/types/known/timestamppb"
"google.golang.org/protobuf/types/known/wrapperspb"
)

// BlobSidecarEvent represents a blob sidecar event.
Expand Down Expand Up @@ -36,23 +38,50 @@ func (e *BlobSidecarEvent) Data() interface{} {
}

func (e *BlobSidecarEvent) Decorated() *xatu.DecoratedEvent {
//TODO(@matty): Populate event data.
decorated := &xatu.DecoratedEvent{
Meta: e.Meta(),
Event: &xatu.Event{
Name: xatu.Event_BEACON_API_ETH_V1_EVENTS_BLOB_SIDECAR,
DateTime: timestamppb.New(e.recvTime),
Id: uuid.New().String(),
},
Data: &xatu.DecoratedEvent_EthV1EventsBlobSidecar{},
Data: &xatu.DecoratedEvent_EthV1EventsBlobSidecar{
EthV1EventsBlobSidecar: &xatuethv1.EventBlobSidecar{
BlockRoot: xatuethv1.RootAsString(e.data.BlockRoot),
Slot: &wrapperspb.UInt64Value{Value: uint64(e.data.Slot)},
Index: &wrapperspb.UInt64Value{Value: uint64(e.data.Index)},
KzgCommitment: xatuethv1.KzgCommitmentToString(e.data.KZGCommitment),
VersionedHash: xatuethv1.VersionedHashToString(e.data.VersionedHash),
},
},
}

if e.beacon == nil {
return decorated
}

//TODO(@matty): Populate additional data.
extra := &xatu.ClientMeta_AdditionalEthV1EventsBlobSidecarData{}
var (
blobSlot = e.beacon.GetSlot(uint64(e.data.Slot))
epoch = e.beacon.GetEpochFromSlot(uint64(e.data.Slot))
)

extra := &xatu.ClientMeta_AdditionalEthV1EventsBlobSidecarData{
Slot: &xatu.SlotV2{
Number: &wrapperspb.UInt64Value{Value: blobSlot.Number()},
StartDateTime: timestamppb.New(blobSlot.TimeWindow().Start()),
},
Epoch: &xatu.EpochV2{
Number: &wrapperspb.UInt64Value{Value: epoch.Number()},
StartDateTime: timestamppb.New(epoch.TimeWindow().Start()),
},
Propagation: &xatu.PropagationV2{
SlotStartDiff: &wrapperspb.UInt64Value{
//nolint:gosec // not concerned in reality
Value: uint64(e.recvTime.Sub(blobSlot.TimeWindow().Start()).Milliseconds()),
},
},
}

decorated.Meta.Client.AdditionalData = &xatu.ClientMeta_EthV1EventsBlobSidecar{
EthV1EventsBlobSidecar: extra,
}
Expand Down

0 comments on commit 0a55e10

Please sign in to comment.