@@ -30,6 +30,7 @@ import (
3030 apiv1capella "github.com/attestantio/go-eth2-client/api/v1/capella"
3131 apiv1deneb "github.com/attestantio/go-eth2-client/api/v1/deneb"
3232 apiv1electra "github.com/attestantio/go-eth2-client/api/v1/electra"
33+ apiv1fulu "github.com/attestantio/go-eth2-client/api/v1/fulu"
3334 "github.com/attestantio/go-eth2-client/spec"
3435 "github.com/attestantio/go-eth2-client/spec/altair"
3536 "github.com/attestantio/go-eth2-client/spec/bellatrix"
@@ -229,6 +230,9 @@ func (*Service) confirmProposalData(_ context.Context,
229230 return nil
230231}
231232
233+ // skipcq: GO-R1005
234+ // Complexity is due to handling all Ethereum protocol versions.
235+ // Each version requires specific signing logic for blinded/unblinded proposals.
232236func (s * Service ) signProposalData (ctx context.Context ,
233237 proposal * api.VersionedProposal ,
234238 duty * beaconblockproposer.Duty ,
@@ -336,6 +340,22 @@ func (s *Service) signProposalData(ctx context.Context,
336340 Blobs : proposal .Electra .Blobs ,
337341 }
338342 }
343+ case spec .DataVersionFulu :
344+ if proposal .Blinded {
345+ signedProposal .FuluBlinded = & apiv1electra.SignedBlindedBeaconBlock {
346+ Message : proposal .FuluBlinded ,
347+ Signature : sig ,
348+ }
349+ } else {
350+ signedProposal .Fulu = & apiv1fulu.SignedBlockContents {
351+ SignedBlock : & electra.SignedBeaconBlock {
352+ Message : proposal .Fulu .Block ,
353+ Signature : sig ,
354+ },
355+ KZGProofs : proposal .Fulu .KZGProofs ,
356+ Blobs : proposal .Fulu .Blobs ,
357+ }
358+ }
339359 default :
340360 return nil , errors .New ("unhandled proposal version" )
341361 }
@@ -369,6 +389,9 @@ func (s *Service) auctionBlock(ctx context.Context,
369389 return auctionResults , nil
370390}
371391
392+ // skipcq: GO-R1005
393+ // Complexity is due to handling all Ethereum protocol versions.
394+ // Each version requires specific logic to convert blinded to unblinded blocks.
372395func (s * Service ) unblindProposal (ctx context.Context ,
373396 proposal * api.VersionedSignedProposal ,
374397 providers []builderclient.UnblindedProposalProvider ,
@@ -398,6 +421,7 @@ func (s *Service) unblindProposal(ctx context.Context,
398421 Capella : proposal .CapellaBlinded ,
399422 Deneb : proposal .DenebBlinded ,
400423 Electra : proposal .ElectraBlinded ,
424+ Fulu : proposal .FuluBlinded ,
401425 },
402426 })
403427
@@ -457,6 +481,9 @@ func (s *Service) unblindProposal(ctx context.Context,
457481 case spec .DataVersionElectra :
458482 proposal .ElectraBlinded = nil
459483 proposal .Electra = signedBlock .Electra
484+ case spec .DataVersionFulu :
485+ proposal .FuluBlinded = nil
486+ proposal .Fulu = signedBlock .Fulu
460487 default :
461488 return fmt .Errorf ("unsupported version %v" , proposal .Version )
462489 }
0 commit comments