Skip to content

Commit 484e513

Browse files
committed
throw warning if proposerEthConsensusVersion is incorrect
1 parent ee4b16b commit 484e513

File tree

1 file changed

+49
-9
lines changed

1 file changed

+49
-9
lines changed

services/api/service.go

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,15 +1461,10 @@ func (api *RelayAPI) innerHandleGetPayload(w http.ResponseWriter, req *http.Requ
14611461
return
14621462
}
14631463

1464-
if api.isFulu(uint64(slot)) && payload.Fulu == nil {
1465-
log.Warn("Not a fulu payload.")
1466-
api.RespondError(w, http.StatusBadRequest, "Non-Fulu payload detected and rejected. You need to update mev-boost!")
1467-
return
1468-
}
1469-
1470-
if api.isElectra(uint64(slot)) && payload.Electra == nil {
1471-
log.Warn("Not an electra payload.")
1472-
api.RespondError(w, http.StatusBadRequest, "Non-Electra payload detected and rejected. You need to update mev-boost!")
1464+
err = api.checkPayloadAndHeaderVersion(payload, uint64(slot), proposerEthConsensusVersion)
1465+
if err != nil {
1466+
log.WithError(err).Warn("error checking payload and header version")
1467+
api.RespondError(w, http.StatusBadRequest, fmt.Sprintf("error checking payload and header version: %s", err.Error()))
14731468
return
14741469
}
14751470

@@ -1821,6 +1816,51 @@ func (api *RelayAPI) innerHandleGetPayload(w http.ResponseWriter, req *http.Requ
18211816
log.Info("execution payload delivered")
18221817
}
18231818

1819+
func (api *RelayAPI) checkPayloadAndHeaderVersion(payload *common.VersionedSignedBlindedBeaconBlock, slot uint64, proposerEthConsensusVersion string) error {
1820+
switch api.getForkFromSlot(slot) {
1821+
case spec.DataVersionFulu:
1822+
if proposerEthConsensusVersion != common.EthConsensusVersionFulu {
1823+
return errors.Errorf("Fulu payload with wrong consensus version. Expected: %s, Got: %s", common.EthConsensusVersionFulu, proposerEthConsensusVersion)
1824+
}
1825+
if payload.Fulu == nil {
1826+
return errors.New("Non-Fulu payload detected and rejected. You need to update mev-boost!")
1827+
}
1828+
1829+
case spec.DataVersionElectra:
1830+
if proposerEthConsensusVersion != common.EthConsensusVersionElectra {
1831+
return errors.Errorf("Electra payload with wrong consensus version. Expected: %s, Got: %s", common.EthConsensusVersionElectra, proposerEthConsensusVersion)
1832+
}
1833+
if payload.Electra == nil {
1834+
return errors.New("Non-Electra payload detected and rejected. You need to update mev-boost!")
1835+
}
1836+
1837+
case spec.DataVersionDeneb:
1838+
if proposerEthConsensusVersion != common.EthConsensusVersionDeneb {
1839+
return errors.Errorf("Deneb payload with wrong consensus version. Expected: %s, Got: %s", common.EthConsensusVersionDeneb, proposerEthConsensusVersion)
1840+
}
1841+
if payload.Deneb == nil {
1842+
return errors.New("Non-Deneb payload detected and rejected. You need to update mev-boost!")
1843+
}
1844+
1845+
case spec.DataVersionCapella:
1846+
if proposerEthConsensusVersion != common.EthConsensusVersionCapella {
1847+
return errors.Errorf("Capella payload with wrong consensus version. Expected: %s, Got: %s", common.EthConsensusVersionCapella, proposerEthConsensusVersion)
1848+
}
1849+
if payload.Capella == nil {
1850+
return errors.New("Non-Capella payload detected and rejected. You need to update mev-boost!")
1851+
}
1852+
1853+
case spec.DataVersionBellatrix:
1854+
if proposerEthConsensusVersion != common.EthConsensusVersionBellatrix {
1855+
return errors.Errorf("Bellatrix payload with wrong consensus version. Expected: %s, Got: %s", common.EthConsensusVersionBellatrix, proposerEthConsensusVersion)
1856+
}
1857+
if payload.Bellatrix == nil {
1858+
return errors.New("Non-Bellatrix payload detected and rejected. You need to update mev-boost!")
1859+
}
1860+
}
1861+
return nil
1862+
}
1863+
18241864
// respondGetPayloadSSZ responds to the proposer in SSZ
18251865
func (api *RelayAPI) respondGetPayloadSSZ(w http.ResponseWriter, result *builderApi.VersionedSubmitBlindedBlockResponse) {
18261866
// Serialize the response

0 commit comments

Comments
 (0)