@@ -10,8 +10,8 @@ import (
1010 "strings"
1111 "time"
1212
13- "github.com/attestantio/go-eth2-client/spec"
1413 "github.com/ethpandaops/checkpointz/pkg/beacon"
14+ "github.com/ethpandaops/checkpointz/pkg/beacon/ssz"
1515 "github.com/ethpandaops/checkpointz/pkg/service/checkpointz"
1616 "github.com/ethpandaops/checkpointz/pkg/service/eth"
1717 "github.com/julienschmidt/httprouter"
@@ -26,6 +26,7 @@ type Handler struct {
2626
2727 eth * eth.Handler
2828 checkpointz * checkpointz.Handler
29+ sszEncoder * ssz.Encoder
2930 publicURL string
3031 brandName string
3132 brandImageURL string
@@ -39,6 +40,7 @@ func NewHandler(log logrus.FieldLogger, beac beacon.FinalityProvider, config *be
3940
4041 eth : eth .NewHandler (log , beac , "checkpointz" ),
4142 checkpointz : checkpointz .NewHandler (log , beac ),
43+ sszEncoder : beac .SSZEncoder (),
4244 publicURL : config .Frontend .PublicURL ,
4345 brandName : config .Frontend .BrandName ,
4446 brandImageURL : config .Frontend .BrandImageURL ,
@@ -171,47 +173,14 @@ func (h *Handler) handleEthV2BeaconBlocks(ctx context.Context, r *http.Request,
171173 return NewInternalServerErrorResponse (nil ), err
172174 }
173175
174- var rsp = & HTTPResponse {}
175-
176- switch strings .ToLower (block .Version .String ()) {
177- case spec .DataVersionPhase0 .String ():
178- rsp = NewSuccessResponse (ContentTypeResolvers {
179- ContentTypeJSON : block .Phase0 .MarshalJSON ,
180- ContentTypeSSZ : block .Phase0 .MarshalSSZ ,
181- })
182- case spec .DataVersionAltair .String ():
183- rsp = NewSuccessResponse (ContentTypeResolvers {
184- ContentTypeJSON : block .Altair .MarshalJSON ,
185- ContentTypeSSZ : block .Altair .MarshalSSZ ,
186- })
187- case spec .DataVersionBellatrix .String ():
188- rsp = NewSuccessResponse (ContentTypeResolvers {
189- ContentTypeJSON : block .Bellatrix .MarshalJSON ,
190- ContentTypeSSZ : block .Bellatrix .MarshalSSZ ,
191- })
192- case spec .DataVersionCapella .String ():
193- rsp = NewSuccessResponse (ContentTypeResolvers {
194- ContentTypeJSON : block .Capella .MarshalJSON ,
195- ContentTypeSSZ : block .Capella .MarshalSSZ ,
196- })
197- case spec .DataVersionDeneb .String ():
198- rsp = NewSuccessResponse (ContentTypeResolvers {
199- ContentTypeJSON : block .Deneb .MarshalJSON ,
200- ContentTypeSSZ : block .Deneb .MarshalSSZ ,
201- })
202- case spec .DataVersionElectra .String ():
203- rsp = NewSuccessResponse (ContentTypeResolvers {
204- ContentTypeJSON : block .Electra .MarshalJSON ,
205- ContentTypeSSZ : block .Electra .MarshalSSZ ,
206- })
207- case spec .DataVersionFulu .String ():
208- rsp = NewSuccessResponse (ContentTypeResolvers {
209- ContentTypeJSON : block .Fulu .MarshalJSON ,
210- ContentTypeSSZ : block .Fulu .MarshalSSZ ,
211- })
212- default :
213- return NewInternalServerErrorResponse (nil ), errors .New ("unknown block version" )
214- }
176+ rsp := NewSuccessResponse (ContentTypeResolvers {
177+ ContentTypeJSON : func () ([]byte , error ) {
178+ return h .sszEncoder .EncodeBlockJSON (block )
179+ },
180+ ContentTypeSSZ : func () ([]byte , error ) {
181+ return h .sszEncoder .EncodeBlockSSZ (block )
182+ },
183+ })
215184
216185 rsp .AddExtraData ("version" , block .Version .String ())
217186 rsp .AddExtraData ("execution_optimistic" , false )
@@ -251,24 +220,7 @@ func (h *Handler) handleEthV2DebugBeaconStates(ctx context.Context, r *http.Requ
251220
252221 rsp := NewSuccessResponse (ContentTypeResolvers {
253222 ContentTypeSSZ : func () ([]byte , error ) {
254- switch strings .ToLower (state .Version .String ()) {
255- case spec .DataVersionPhase0 .String ():
256- return state .Phase0 .MarshalSSZ ()
257- case spec .DataVersionAltair .String ():
258- return state .Altair .MarshalSSZ ()
259- case spec .DataVersionBellatrix .String ():
260- return state .Bellatrix .MarshalSSZ ()
261- case spec .DataVersionCapella .String ():
262- return state .Capella .MarshalSSZ ()
263- case spec .DataVersionDeneb .String ():
264- return state .Deneb .MarshalSSZ ()
265- case spec .DataVersionElectra .String ():
266- return state .Electra .MarshalSSZ ()
267- case "fulu" :
268- return state .Fulu .MarshalSSZ ()
269- default :
270- return nil , fmt .Errorf ("unknown state version: %s" , state .Version .String ())
271- }
223+ return h .sszEncoder .EncodeStateSSZ (state )
272224 },
273225 })
274226
0 commit comments