From 6b92e88e11322f53e7a0a445d5bf47689a915ff8 Mon Sep 17 00:00:00 2001 From: spencer-tb Date: Thu, 10 Aug 2023 15:44:31 +0100 Subject: [PATCH] eth/catalyst/api.go: Return InvalidParams error if cancun fields used within NewPayloadV2. --- eth/catalyst/api.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 9690d43307..c76600b22b 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -461,6 +461,14 @@ func (api *ConsensusAPI) NewPayloadV2(params engine.ExecutableData) (engine.Payl if params.Withdrawals == nil { return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(errors.New("nil withdrawals post-shanghai")) } + if !api.eth.BlockChain().Config().IsCancun(new(big.Int).SetUint64(params.Number), params.Timestamp) { + if params.ExcessBlobGas != nil { + return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(errors.New("non-nil excessBlobGas pre-cancun")) + } + if params.BlobGasUsed != nil { + return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(errors.New("non-nil blobGasUsed pre-cancun")) + } + } } else if params.Withdrawals != nil { return engine.PayloadStatusV1{Status: engine.INVALID}, engine.InvalidParams.With(errors.New("non-nil withdrawals pre-shanghai")) }