From 4320eb5f43f756b52bcc5ddf24ec048b0bd42829 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 14 Oct 2024 20:39:30 +1300 Subject: [PATCH 1/3] 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); From 8d21b3d30bd149b88bdd6c0d7a9e74b2139d9f13 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 14 Oct 2024 20:46:10 +1300 Subject: [PATCH 2/3] PR comments --- .../executionclient/web3j/Web3JExecutionEngineClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 6eed83dd565..85d8b00e78b 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,7 +184,7 @@ public SafeFuture> newPayloadV4( final List executionRequests) { final List expectedBlobVersionedHashes = blobVersionedHashes.stream().map(VersionedHash::toHexString).toList(); - final List executionRequestsHexList = + final List expectedExecutionRequests = executionRequests.stream().map(Bytes::toHexString).toList(); final Request web3jRequest = new Request<>( @@ -193,7 +193,7 @@ public SafeFuture> newPayloadV4( executionPayload, expectedBlobVersionedHashes, parentBeaconBlockRoot.toHexString(), - executionRequestsHexList), + expectedExecutionRequests), web3JClient.getWeb3jService(), PayloadStatusV1Web3jResponse.class); return web3JClient.doRequest(web3jRequest, EL_ENGINE_BLOCK_EXECUTION_TIMEOUT); From a31d4b6bde8c1fec762a0dba66baf6d9f4821619 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Mon, 14 Oct 2024 20:47:14 +1300 Subject: [PATCH 3/3] Revert --- .../executionclient/web3j/Web3JExecutionEngineClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 85d8b00e78b..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,7 +184,7 @@ public SafeFuture> newPayloadV4( final List executionRequests) { final List expectedBlobVersionedHashes = blobVersionedHashes.stream().map(VersionedHash::toHexString).toList(); - final List expectedExecutionRequests = + final List executionRequestsHexList = executionRequests.stream().map(Bytes::toHexString).toList(); final Request web3jRequest = new Request<>( @@ -193,7 +193,7 @@ public SafeFuture> newPayloadV4( executionPayload, expectedBlobVersionedHashes, parentBeaconBlockRoot.toHexString(), - expectedExecutionRequests), + executionRequestsHexList), web3JClient.getWeb3jService(), PayloadStatusV1Web3jResponse.class); return web3JClient.doRequest(web3jRequest, EL_ENGINE_BLOCK_EXECUTION_TIMEOUT);