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 { if !jsonOutput && !sszOutput {
fmt.Println("") 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 { if err != nil {
return nil, errors.Wrap(err, "failed to start block stream") return nil, errors.Wrap(err, "failed to start block stream")
} }
@@ -212,15 +215,8 @@ func processElectraBlock(ctx context.Context,
return nil return nil
} }
func headEventHandler(event *apiv1.Event) { func headEventHandler(ctx context.Context, headEvent *apiv1.HeadEvent) {
ctx := context.Background() blockID := fmt.Sprintf("%#x", headEvent.Block[:])
// Only interested in head events.
if event.Topic != "head" {
return
}
blockID := fmt.Sprintf("%#x", event.Data.(*apiv1.HeadEvent).Block[:])
blockResponse, err := results.eth2Client.(eth2client.SignedBeaconBlockProvider).SignedBeaconBlock(ctx, &api.SignedBeaconBlockOpts{ blockResponse, err := results.eth2Client.(eth2client.SignedBeaconBlockProvider).SignedBeaconBlock(ctx, &api.SignedBeaconBlockOpts{
Block: blockID, Block: blockID,
}) })

View File

@@ -19,7 +19,8 @@ import (
"fmt" "fmt"
eth2client "github.com/attestantio/go-eth2-client" 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" "github.com/pkg/errors"
) )
@@ -28,7 +29,10 @@ func process(ctx context.Context, data *dataIn) error {
return errors.New("no data") 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 { if err != nil {
return errors.Wrap(err, "failed to connect for events") return errors.Wrap(err, "failed to connect for events")
} }
@@ -38,7 +42,7 @@ func process(ctx context.Context, data *dataIn) error {
return nil return nil
} }
func eventHandler(event *api.Event) { func eventHandler(event *apiv1.Event) {
if event.Data == nil { if event.Data == nil {
return return
} }

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.23.0
toolchain go1.23.2 toolchain go1.23.2
require ( require (
github.com/attestantio/go-eth2-client v0.24.1 github.com/attestantio/go-eth2-client v0.26.0
github.com/ferranbt/fastssz v0.1.4 github.com/ferranbt/fastssz v0.1.4
github.com/gofrs/uuid v4.4.0+incompatible github.com/gofrs/uuid v4.4.0+incompatible
github.com/google/uuid v1.6.0 github.com/google/uuid v1.6.0

4
go.sum
View File

@@ -1,5 +1,5 @@
github.com/attestantio/go-eth2-client v0.24.1 h1:DZ/2O83eUcSfPPs63xF6fdXDe4afA4nlt5j0y2cweOI= github.com/attestantio/go-eth2-client v0.26.0 h1:oDWKvIUJfvr1EBi/w9L6mawYZHOCymjHkml7fZplT20=
github.com/attestantio/go-eth2-client v0.24.1/go.mod h1:/KTLN3WuH1xrJL7ZZrpBoWM1xCCihnFbzequD5L+83o= github.com/attestantio/go-eth2-client v0.26.0/go.mod h1:fvULSL9WtNskkOB4i+Yyr6BKpNHXvmpGZj9969fCrfY=
github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk= github.com/aws/aws-sdk-go v1.55.6 h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk=
github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go v1.55.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=