Skip to content

Commit

Permalink
feat: Add new event types and mock implementations
Browse files Browse the repository at this point in the history
  • Loading branch information
mattevans committed Jan 8, 2025
1 parent 7c341fa commit 3ff5283
Show file tree
Hide file tree
Showing 15 changed files with 433 additions and 10 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ require (
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/dig v1.18.0 // indirect
go.uber.org/fx v1.22.2 // indirect
go.uber.org/mock v0.4.0 // indirect
go.uber.org/mock v0.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.26.0 // indirect
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
Expand Down
10 changes: 9 additions & 1 deletion internal/events/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import (
"github.com/ethpandaops/xatu/pkg/proto/xatu"
)

//go:generate mockgen -package mock -destination mock/event.mock.go github.com/ethpandaops/contributoor/internal/events Event
//go:generate mockgen -package mock -destination mock/beacon_data_provider.mock.go github.com/ethpandaops/contributoor/internal/events BeaconDataProvider

// BeaconDataProvider defines the interface for getting beacon chain data needed by events.
type BeaconDataProvider interface {
// GetWallclock returns the wallclock for the beacon chain.
Expand All @@ -19,7 +22,12 @@ type BeaconDataProvider interface {
// GetEpochFromSlot returns the wallclock epoch for a given slot number.
GetEpochFromSlot(slot uint64) ethwallclock.Epoch
// GetValidatorIndex returns the validator index for a given position in a committee.
GetValidatorIndex(epoch phase0.Epoch, slot phase0.Slot, committeeIndex phase0.CommitteeIndex, position uint64) (phase0.ValidatorIndex, error)
GetValidatorIndex(
epoch phase0.Epoch,
slot phase0.Slot,
committeeIndex phase0.CommitteeIndex,
position uint64,
) (phase0.ValidatorIndex, error)
}

// Event is the interface that all events must implement.
Expand Down
112 changes: 112 additions & 0 deletions internal/events/mock/beacon_data_provider.mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

111 changes: 111 additions & 0 deletions internal/events/mock/event.mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion internal/events/v1/attestation.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@ type AttestationEvent struct {
recvTime time.Time
}

func NewAttestationEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *phase0.Attestation, recvTime time.Time) *AttestationEvent {
func NewAttestationEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *phase0.Attestation,
recvTime time.Time,
) *AttestationEvent {
return &AttestationEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/blob_sidecar.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type BlobSidecarEvent struct {
recvTime time.Time
}

func NewBlobSidecarEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *eth2v1.BlobSidecarEvent, recvTime time.Time) *BlobSidecarEvent {
func NewBlobSidecarEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *eth2v1.BlobSidecarEvent,
recvTime time.Time,
) *BlobSidecarEvent {
return &BlobSidecarEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/block.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type BlockEvent struct {
recvTime time.Time
}

func NewBlockEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *eth2v1.BlockEvent, recvTime time.Time) *BlockEvent {
func NewBlockEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *eth2v1.BlockEvent,
recvTime time.Time,
) *BlockEvent {
return &BlockEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/chain_reorg.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type ChainReorgEvent struct {
recvTime time.Time
}

func NewChainReorgEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *eth2v1.ChainReorgEvent, recvTime time.Time) *ChainReorgEvent {
func NewChainReorgEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *eth2v1.ChainReorgEvent,
recvTime time.Time,
) *ChainReorgEvent {
return &ChainReorgEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/contribution_and_proof.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type ContributionAndProofEvent struct {
recvTime time.Time
}

func NewContributionAndProofEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *altair.SignedContributionAndProof, recvTime time.Time) *ContributionAndProofEvent {
func NewContributionAndProofEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *altair.SignedContributionAndProof,
recvTime time.Time,
) *ContributionAndProofEvent {
return &ContributionAndProofEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/finalized_checkpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type FinalizedCheckpointEvent struct {
recvTime time.Time
}

func NewFinalizedCheckpointEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *eth2v1.FinalizedCheckpointEvent, recvTime time.Time) *FinalizedCheckpointEvent {
func NewFinalizedCheckpointEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *eth2v1.FinalizedCheckpointEvent,
recvTime time.Time,
) *FinalizedCheckpointEvent {
return &FinalizedCheckpointEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
8 changes: 7 additions & 1 deletion internal/events/v1/head.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ type HeadEvent struct {
recvTime time.Time
}

func NewHeadEvent(log logrus.FieldLogger, beacon events.BeaconDataProvider, meta *xatu.Meta, data *eth2v1.HeadEvent, recvTime time.Time) *HeadEvent {
func NewHeadEvent(
log logrus.FieldLogger,
beacon events.BeaconDataProvider,
meta *xatu.Meta,
data *eth2v1.HeadEvent,
recvTime time.Time,
) *HeadEvent {
return &HeadEvent{
BaseEvent: events.NewBaseEvent(meta),
data: data,
Expand Down
Loading

0 comments on commit 3ff5283

Please sign in to comment.