diff --git a/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/paris/test-cases/06_update_forkchoice_invalid_payload_attributes.json b/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/paris/test-cases/06_update_forkchoice_invalid_payload_attributes.json index 4014e14a6ff..0ddf1cf0553 100644 --- a/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/paris/test-cases/06_update_forkchoice_invalid_payload_attributes.json +++ b/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/paris/test-cases/06_update_forkchoice_invalid_payload_attributes.json @@ -20,9 +20,9 @@ "jsonrpc": "2.0", "id": 67, "error": { - "code": -38003, - "message": "Invalid payload attributes" + "code": -32602, + "message": "Invalid withdrawals" } }, "statusCode": 200 -} \ No newline at end of file +} diff --git a/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/shanghai/test-cases/05_shanghai_prepare_payload_invalid_null_withdrawals.json b/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/shanghai/test-cases/05_shanghai_prepare_payload_invalid_null_withdrawals.json index ec5e2251791..8af8a4d3911 100644 --- a/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/shanghai/test-cases/05_shanghai_prepare_payload_invalid_null_withdrawals.json +++ b/acceptance-tests/tests/src/acceptanceTest/resources/jsonrpc/engine/shanghai/test-cases/05_shanghai_prepare_payload_invalid_null_withdrawals.json @@ -20,9 +20,9 @@ "jsonrpc" : "2.0", "id" : 67, "error" : { - "code" : -32602, - "message" : "Invalid withdrawals" + "code" : -38003, + "message" : "Invalid payload attributes" } }, "statusCode" : 200 -} \ No newline at end of file +} diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdated.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdated.java index 6aa2918d2ee..3f0037ac1ae 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdated.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdated.java @@ -184,7 +184,7 @@ public JsonRpcResponse syncResponse(final JsonRpcRequestContext requestContext) if (!getWithdrawalsValidator( protocolSchedule.get(), newHead, maybePayloadAttributes.get().getTimestamp()) .validateWithdrawals(withdrawals)) { - return new JsonRpcErrorResponse(requestId, RpcErrorType.INVALID_WITHDRAWALS_PARAMS); + return new JsonRpcErrorResponse(requestId, getInvalidPayloadAttributesError()); } } diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV1.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV1.java index 6397afdda3c..bd920e88553 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV1.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV1.java @@ -57,4 +57,9 @@ protected boolean requireTerminalPoWBlockValidation() { protected RpcErrorType getInvalidParametersError() { return RpcErrorType.INVALID_PAYLOAD_ATTRIBUTES; } + + @Override + protected RpcErrorType getInvalidPayloadAttributesError() { + return RpcErrorType.INVALID_WITHDRAWALS_PARAMS; + } } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java index aff11e33535..83f78cabb00 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineForkchoiceUpdatedTest.java @@ -240,7 +240,7 @@ public void shouldReturnValidWithoutFinalizedWithPayload() { var payloadParams = new EnginePayloadAttributesParameter( - String.valueOf(defaultPayloadTimestamp()), + String.valueOf(mockHeader.getTimestamp() + 1), Bytes32.fromHexStringLenient("0xDEADBEEF").toHexString(), Address.ECREC.toString(), null, @@ -431,7 +431,7 @@ public void shouldIgnoreUpdateToOldHeadAndNotPreparePayload() { var payloadParams = new EnginePayloadAttributesParameter( - String.valueOf(defaultPayloadTimestamp()), + String.valueOf(mockHeader.getTimestamp() + 1), Bytes32.fromHexStringLenient("0xDEADBEEF").toHexString(), Address.ECREC.toString(), null, @@ -483,7 +483,7 @@ public void shouldReturnInvalidIfPayloadTimestampNotGreaterThanHead() { mockHeader.getHash(), Hash.ZERO, mockParent.getHash()), Optional.of(payloadParams)); - assertInvalidForkchoiceState(resp, RpcErrorType.INVALID_PAYLOAD_ATTRIBUTES); + assertInvalidForkchoiceState(resp, expectedInvalidPayloadError()); verify(engineCallListener, times(1)).executionEngineCalled(); } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV2Test.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV2Test.java index 4e4b3e4c023..a10c0337adf 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV2Test.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/EngineForkchoiceUpdatedV2Test.java @@ -93,6 +93,6 @@ protected String getMethodName() { @Override protected RpcErrorType expectedInvalidPayloadError() { - return RpcErrorType.INVALID_WITHDRAWALS_PARAMS; + return RpcErrorType.INVALID_PAYLOAD_ATTRIBUTES; } }