Skip to content

Commit

Permalink
engineapi: Fix req list check (#12180)
Browse files Browse the repository at this point in the history
Cherry pick #11191

Co-authored-by: Somnath <[email protected]>
  • Loading branch information
yperbasis and somnathb1 authored Oct 2, 2024
1 parent 60684fe commit e5cc56f
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions turbo/engineapi/engine_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,16 @@ func (s *EngineServer) checkWithdrawalsPresence(time uint64, withdrawals types.W
return nil
}

func (s *EngineServer) checkRequestsPresence(time uint64, requests types.Requests) error {
if !s.config.IsPrague(time) && requests != nil {
return &rpc.InvalidParamsError{Message: "requests before Prague"}
func (s *EngineServer) checkRequestsPresence(time uint64, payload *engine_types.ExecutionPayload) error {
if !s.config.IsPrague(time) {
if payload.DepositRequests != nil || payload.WithdrawalRequests != nil || payload.ConsolidationRequests != nil {
return &rpc.InvalidParamsError{Message: "requests before Prague"}
}
}
if s.config.IsPrague(time) && requests == nil {
return &rpc.InvalidParamsError{Message: "missing requests list"}
if s.config.IsPrague(time) {
if payload.DepositRequests == nil || payload.WithdrawalRequests == nil || payload.ConsolidationRequests == nil {
return &rpc.InvalidParamsError{Message: "missing requests list"}
}
}
return nil
}
Expand Down Expand Up @@ -175,14 +179,16 @@ func (s *EngineServer) newPayload(ctx context.Context, req *engine_types.Executi
}

var requests types.Requests
if version >= clparams.ElectraVersion && req.DepositRequests != nil {
if err := s.checkRequestsPresence(header.Time, req); err != nil {
return nil, err
}
if version >= clparams.ElectraVersion {
requests = make(types.Requests, 0)
requests = append(requests, req.DepositRequests.Requests()...)
requests = append(requests, req.WithdrawalRequests.Requests()...)
requests = append(requests, req.ConsolidationRequests.Requests()...)
}
if err := s.checkRequestsPresence(header.Time, requests); err != nil {
return nil, err
}

if requests != nil {
rh := types.DeriveSha(requests)
header.RequestsRoot = &rh
Expand Down

0 comments on commit e5cc56f

Please sign in to comment.