mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-18 09:53:48 +00:00
fix error code
This commit is contained in:
parent
0afc3dde89
commit
767801ac69
2 changed files with 23 additions and 12 deletions
|
|
@ -265,18 +265,6 @@ func ExecutableDataToBlockNoHash(data ExecutableData, versionedHashes []common.H
|
|||
|
||||
var requestsHash *common.Hash
|
||||
if requests != nil {
|
||||
var last byte
|
||||
for _, req := range requests {
|
||||
// No empty requests.
|
||||
if len(req) < 2 {
|
||||
return nil, fmt.Errorf("empty request: %v", req)
|
||||
}
|
||||
// Check that requests are ordered by their type.
|
||||
if req[0] < last {
|
||||
return nil, fmt.Errorf("invalid request order: %v", req)
|
||||
}
|
||||
last = req[0]
|
||||
}
|
||||
h := types.CalcRequestsHash(requests)
|
||||
requestsHash = &h
|
||||
}
|
||||
|
|
|
|||
|
|
@ -638,6 +638,9 @@ func (api *ConsensusAPI) NewPayloadV4(params engine.ExecutableData, versionedHas
|
|||
return engine.PayloadStatusV1{Status: engine.INVALID}, engine.UnsupportedFork.With(errors.New("newPayloadV4 must only be called for prague payloads"))
|
||||
}
|
||||
requests := convertRequests(executionRequests)
|
||||
if err := validateRequests(requests); err != nil {
|
||||
return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(err)
|
||||
}
|
||||
return api.newPayload(params, versionedHashes, beaconRoot, requests, false)
|
||||
}
|
||||
|
||||
|
|
@ -727,6 +730,9 @@ func (api *ConsensusAPI) NewPayloadWithWitnessV4(params engine.ExecutableData, v
|
|||
return engine.PayloadStatusV1{Status: engine.INVALID}, engine.UnsupportedFork.With(errors.New("newPayloadWithWitnessV4 must only be called for prague payloads"))
|
||||
}
|
||||
requests := convertRequests(executionRequests)
|
||||
if err := validateRequests(requests); err != nil {
|
||||
return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(err)
|
||||
}
|
||||
return api.newPayload(params, versionedHashes, beaconRoot, requests, true)
|
||||
}
|
||||
|
||||
|
|
@ -1287,3 +1293,20 @@ func convertRequests(hex []hexutil.Bytes) [][]byte {
|
|||
}
|
||||
return req
|
||||
}
|
||||
|
||||
// validateRequests checks that requests are ordered by their type and are not empty.
|
||||
func validateRequests(requests [][]byte) error {
|
||||
var last byte
|
||||
for _, req := range requests {
|
||||
// No empty requests.
|
||||
if len(req) < 2 {
|
||||
return fmt.Errorf("empty request: %v", req)
|
||||
}
|
||||
// Check that requests are ordered by their type.
|
||||
if req[0] < last {
|
||||
return fmt.Errorf("invalid request order: %v", req)
|
||||
}
|
||||
last = req[0]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue