fix: update go-eth2-client to v0.26.0 and adapt event handling

This commit is contained in:
Sam Calder-Mason
2025-07-04 18:26:49 +10:00
parent 3059aa270f
commit b2c0ae3fa2
4 changed files with 16 additions and 16 deletions

View File

@@ -103,7 +103,10 @@ func process(ctx context.Context, data *dataIn) (*dataOut, error) {
if !jsonOutput && !sszOutput {
fmt.Println("")
}
err := data.eth2Client.(eth2client.EventsProvider).Events(ctx, []string{"head"}, headEventHandler)
err := data.eth2Client.(eth2client.EventsProvider).Events(ctx, &api.EventsOpts{
Topics: []string{"head"},
HeadHandler: headEventHandler,
})
if err != nil {
return nil, errors.Wrap(err, "failed to start block stream")
}
@@ -212,15 +215,8 @@ func processElectraBlock(ctx context.Context,
return nil
}
func headEventHandler(event *apiv1.Event) {
ctx := context.Background()
// Only interested in head events.
if event.Topic != "head" {
return
}
blockID := fmt.Sprintf("%#x", event.Data.(*apiv1.HeadEvent).Block[:])
func headEventHandler(ctx context.Context, headEvent *apiv1.HeadEvent) {
blockID := fmt.Sprintf("%#x", headEvent.Block[:])
blockResponse, err := results.eth2Client.(eth2client.SignedBeaconBlockProvider).SignedBeaconBlock(ctx, &api.SignedBeaconBlockOpts{
Block: blockID,
})

View File

@@ -19,7 +19,8 @@ import (
"fmt"
eth2client "github.com/attestantio/go-eth2-client"
api "github.com/attestantio/go-eth2-client/api/v1"
"github.com/attestantio/go-eth2-client/api"
apiv1 "github.com/attestantio/go-eth2-client/api/v1"
"github.com/pkg/errors"
)
@@ -28,7 +29,10 @@ func process(ctx context.Context, data *dataIn) error {
return errors.New("no data")
}
err := data.eth2Client.(eth2client.EventsProvider).Events(ctx, data.topics, eventHandler)
err := data.eth2Client.(eth2client.EventsProvider).Events(ctx, &api.EventsOpts{
Topics: data.topics,
Handler: eventHandler,
})
if err != nil {
return errors.Wrap(err, "failed to connect for events")
}
@@ -38,7 +42,7 @@ func process(ctx context.Context, data *dataIn) error {
return nil
}
func eventHandler(event *api.Event) {
func eventHandler(event *apiv1.Event) {
if event.Data == nil {
return
}