From 4320eb5f43f756b52bcc5ddf24ec048b0bd42829 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 14 Oct 2024 20:39:30 +1300 Subject: [PATCH] Fix engine_newPayloadV4 executionRequests serialization --- .../executionclient/web3j/Web3JExecutionEngineClientTest.java | 4 ++++ .../executionclient/web3j/Web3JExecutionEngineClient.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClientTest.java b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClientTest.java index e9a70f36b0c..0f6e6be5fa8 100644 --- a/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClientTest.java +++ b/ethereum/executionclient/src/integration-test/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClientTest.java @@ -355,6 +355,10 @@ public void newPayloadV4_shouldBuildRequestAndResponseSuccessfully() { assertThat(((List) requestData.get("params")).get(2)) .asString() .isEqualTo(parentBeaconBlockRoot.toHexString()); + assertThat(((List) requestData.get("params")).get(3)) + .asInstanceOf(LIST) + .containsExactlyElementsOf( + executionRequests.stream().map(Bytes::toHexString).collect(Collectors.toList())); } @TestTemplate diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClient.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClient.java index c47e6f87b61..6eed83dd565 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClient.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/web3j/Web3JExecutionEngineClient.java @@ -184,6 +184,8 @@ public SafeFuture> newPayloadV4( final List executionRequests) { final List expectedBlobVersionedHashes = blobVersionedHashes.stream().map(VersionedHash::toHexString).toList(); + final List executionRequestsHexList = + executionRequests.stream().map(Bytes::toHexString).toList(); final Request web3jRequest = new Request<>( "engine_newPayloadV4", @@ -191,7 +193,7 @@ public SafeFuture> newPayloadV4( executionPayload, expectedBlobVersionedHashes, parentBeaconBlockRoot.toHexString(), - executionRequests), + executionRequestsHexList), web3JClient.getWeb3jService(), PayloadStatusV1Web3jResponse.class); return web3JClient.doRequest(web3jRequest, EL_ENGINE_BLOCK_EXECUTION_TIMEOUT);