diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 1e019ffb15a0..835a8309d49d 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -180,11 +180,11 @@ func (api *ConsensusAPI) ForkchoiceUpdatedV2(update engine.ForkchoiceStateV1, pa if params != nil { switch { case params.BeaconRoot != nil: - return engine.STATUS_INVALID, attributesErr("unexpected beacon root") + return engine.STATUS_INVALID, paramsErr("unexpected beacon root") case api.checkFork(params.Timestamp, forks.Paris) && params.Withdrawals != nil: - return engine.STATUS_INVALID, attributesErr("withdrawals before shanghai") + return engine.STATUS_INVALID, paramsErr("withdrawals before shanghai") case api.checkFork(params.Timestamp, forks.Shanghai) && params.Withdrawals == nil: - return engine.STATUS_INVALID, attributesErr("missing withdrawals") + return engine.STATUS_INVALID, paramsErr("missing withdrawals") case !api.checkFork(params.Timestamp, forks.Paris, forks.Shanghai): return engine.STATUS_INVALID, unsupportedForkErr("fcuV2 must only be called with paris or shanghai payloads") } diff --git a/eth/catalyst/api_test.go b/eth/catalyst/api_test.go index 7eb26065dc39..3d363e37fee0 100644 --- a/eth/catalyst/api_test.go +++ b/eth/catalyst/api_test.go @@ -1205,6 +1205,13 @@ func TestNilWithdrawals(t *testing.T) { if err == nil { t.Fatal("wanted error on fcuv2 with invalid withdrawals") } + var engineErr *engine.EngineAPIError + if !errors.As(err, &engineErr) { + t.Fatalf("expected EngineAPIError, got %T", err) + } + if engineErr.ErrorCode() != -32602 { + t.Fatalf("wrong error code, have %d want %d", engineErr.ErrorCode(), -32602) + } continue } if err != nil { diff --git a/eth/catalyst/witness.go b/eth/catalyst/witness.go index 14ca29e07924..982f1ae1e32f 100644 --- a/eth/catalyst/witness.go +++ b/eth/catalyst/witness.go @@ -53,11 +53,11 @@ func (api *ConsensusAPI) ForkchoiceUpdatedWithWitnessV2(update engine.Forkchoice if params != nil { switch { case params.BeaconRoot != nil: - return engine.STATUS_INVALID, attributesErr("unexpected beacon root") + return engine.STATUS_INVALID, paramsErr("unexpected beacon root") case api.checkFork(params.Timestamp, forks.Paris) && params.Withdrawals != nil: - return engine.STATUS_INVALID, attributesErr("withdrawals before shanghai") + return engine.STATUS_INVALID, paramsErr("withdrawals before shanghai") case api.checkFork(params.Timestamp, forks.Shanghai) && params.Withdrawals == nil: - return engine.STATUS_INVALID, attributesErr("missing withdrawals") + return engine.STATUS_INVALID, paramsErr("missing withdrawals") case !api.checkFork(params.Timestamp, forks.Paris, forks.Shanghai): return engine.STATUS_INVALID, unsupportedForkErr("fcuV2 must only be called with paris or shanghai payloads") }