@@ -12,6 +12,7 @@ import (
1212 builderApi "github.com/attestantio/go-builder-client/api"
1313 denebApi "github.com/attestantio/go-builder-client/api/deneb"
1414 builderSpec "github.com/attestantio/go-builder-client/spec"
15+ eth2ApiV1Bellatrix "github.com/attestantio/go-eth2-client/api/v1/bellatrix"
1516 eth2ApiV1Capella "github.com/attestantio/go-eth2-client/api/v1/capella"
1617 eth2ApiV1Deneb "github.com/attestantio/go-eth2-client/api/v1/deneb"
1718 eth2ApiV1Electra "github.com/attestantio/go-eth2-client/api/v1/electra"
@@ -26,7 +27,8 @@ import (
2627)
2728
2829type Payload interface {
29- * eth2ApiV1Capella.SignedBlindedBeaconBlock |
30+ * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock |
31+ * eth2ApiV1Capella.SignedBlindedBeaconBlock |
3032 * eth2ApiV1Deneb.SignedBlindedBeaconBlock |
3133 * eth2ApiV1Electra.SignedBlindedBeaconBlock
3234}
@@ -135,6 +137,13 @@ func processPayload[P Payload](m *BoostService, log *logrus.Entry, ua UserAgent,
135137func verifyPayload [P Payload ](payload P , log * logrus.Entry , response * builderApi.VersionedSubmitBlindedBlockResponse ) error {
136138 // Step 1: verify version
137139 switch any (payload ).(type ) {
140+ case * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock :
141+ if response .Version != spec .DataVersionBellatrix {
142+ log .WithFields (logrus.Fields {
143+ "version" : response .Version ,
144+ }).Error ("response version was not bellatrix" )
145+ return errInvalidVersion
146+ }
138147 case * eth2ApiV1Capella.SignedBlindedBeaconBlock :
139148 if response .Version != spec .DataVersionCapella {
140149 log .WithFields (logrus.Fields {
@@ -166,6 +175,10 @@ func verifyPayload[P Payload](payload P, log *logrus.Entry, response *builderApi
166175
167176 // Step 3: verify post-conditions
168177 switch block := any (payload ).(type ) {
178+ case * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock :
179+ if err := verifyBlockhash (log , payload , response .Bellatrix .BlockHash ); err != nil {
180+ return err
181+ }
169182 case * eth2ApiV1Capella.SignedBlindedBeaconBlock :
170183 if err := verifyBlockhash (log , payload , response .Capella .BlockHash ); err != nil {
171184 return err
@@ -225,6 +238,14 @@ func verifyKZGCommitments(log *logrus.Entry, blobs *denebApi.BlobsBundle, commit
225238
226239func prepareLogger [P Payload ](log * logrus.Entry , payload P , userAgent UserAgent , slotUID string ) * logrus.Entry {
227240 switch block := any (payload ).(type ) {
241+ case * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock :
242+ return log .WithFields (logrus.Fields {
243+ "ua" : userAgent ,
244+ "slot" : block .Message .Slot ,
245+ "blockHash" : block .Message .Body .ExecutionPayloadHeader .BlockHash .String (),
246+ "parentHash" : block .Message .Body .ExecutionPayloadHeader .ParentHash .String (),
247+ "slotUID" : slotUID ,
248+ })
228249 case * eth2ApiV1Capella.SignedBlindedBeaconBlock :
229250 return log .WithFields (logrus.Fields {
230251 "ua" : userAgent ,
@@ -255,6 +276,8 @@ func prepareLogger[P Payload](log *logrus.Entry, payload P, userAgent UserAgent,
255276
256277func slot [P Payload ](payload P ) uint64 {
257278 switch block := any (payload ).(type ) {
279+ case * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock :
280+ return uint64 (block .Message .Slot )
258281 case * eth2ApiV1Capella.SignedBlindedBeaconBlock :
259282 return uint64 (block .Message .Slot )
260283 case * eth2ApiV1Deneb.SignedBlindedBeaconBlock :
@@ -267,6 +290,8 @@ func slot[P Payload](payload P) uint64 {
267290
268291func blockHash [P Payload ](payload P ) phase0.Hash32 {
269292 switch block := any (payload ).(type ) {
293+ case * eth2ApiV1Bellatrix.SignedBlindedBeaconBlock :
294+ return block .Message .Body .ExecutionPayloadHeader .BlockHash
270295 case * eth2ApiV1Capella.SignedBlindedBeaconBlock :
271296 return block .Message .Body .ExecutionPayloadHeader .BlockHash
272297 case * eth2ApiV1Deneb.SignedBlindedBeaconBlock :
0 commit comments