diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDeneb.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDeneb.java index 2a92511bd64..ae71bab5e4e 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDeneb.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDeneb.java @@ -23,7 +23,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.SpecMilestone; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlobSidecarOld; @@ -32,7 +31,6 @@ import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlindedBlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; @@ -60,17 +58,13 @@ public SafeFuture createUnsignedBlock( final boolean blinded) { return super.createUnsignedBlock( blockSlotState, newSlot, randaoReveal, optionalGraffiti, blinded) - .thenApply(BlockContainer::getBlock) .thenCompose( - block -> { - if (block.isBlinded()) { - return operationSelector - .createBlindedBlobSidecarsSelector() - .apply(block) - .thenApply( - blindedBlobSidecars -> - createBlindedBlockContents(block, blindedBlobSidecars)); + blockContainer -> { + if (blockContainer.isBlinded()) { + return SafeFuture.completedFuture(blockContainer); } + // TODO: add blobs and proofs + final BeaconBlock block = blockContainer.getBlock(); return operationSelector .createBlobSidecarsSelector() .apply(block) @@ -85,17 +79,13 @@ public SafeFuture createUnsignedBlock( final BLSSignature randaoReveal, final Optional optionalGraffiti) { return super.createUnsignedBlock(blockSlotState, newSlot, randaoReveal, optionalGraffiti) - .thenApply(BlockContainer::getBlock) .thenCompose( - block -> { - if (block.isBlinded()) { - return operationSelector - .createBlindedBlobSidecarsSelector() - .apply(block) - .thenApply( - blindedBlobSidecars -> - createBlindedBlockContents(block, blindedBlobSidecars)); + blockContainer -> { + if (blockContainer.isBlinded()) { + return SafeFuture.completedFuture(blockContainer); } + // TODO: add blobs and proofs + final BeaconBlock block = blockContainer.getBlock(); return operationSelector .createBlobSidecarsSelector() .apply(block) @@ -127,13 +117,6 @@ private BlockContents createBlockContents( return schemaDefinitionsDeneb.getBlockContentsSchema().create(block, blobSidecars); } - private BlindedBlockContents createBlindedBlockContents( - final BeaconBlock block, final List blindedBlobSidecars) { - return schemaDefinitionsDeneb - .getBlindedBlockContentsSchema() - .create(block, blindedBlobSidecars); - } - /** use {@link BlockFactoryPhase0} unblinding of the {@link SignedBeaconBlock} */ private SafeFuture unblindBlock( final SignedBlockContainer blindedBlockContainer) { diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java index 5a412bb9b1e..7fb4efe75f3 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactory.java @@ -28,7 +28,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.datastructures.blobs.SignedBlobSidecarsUnblinder; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarSchemaOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; @@ -381,12 +380,6 @@ public Function>> createBlobSidecar }; } - @Deprecated - public Function>> - createBlindedBlobSidecarsSelector() { - return block -> SafeFuture.completedFuture(List.of()); - } - private SafeFuture getBlobsBundle( final ExecutionPayloadResult executionPayloadResult) { return executionPayloadResult diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDenebTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDenebTest.java index be3ad0cfeaa..d76241c963c 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDenebTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockFactoryDenebTest.java @@ -15,9 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -27,15 +25,11 @@ import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlobSidecarOld; -import tech.pegasys.teku.spec.datastructures.blocks.BlindedBlockContainer; +import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.execution.BlobsBundle; import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; @@ -70,20 +64,17 @@ void shouldCreateBlockContents() { } @Test - @Disabled("enable when block production flow for blob sidecar inclusion proof is implemented") - void shouldCreateBlindedBlockContentsWhenBlindedBlockRequested() { + void shouldCreateBlindedBeaconBlockWhenBlindedBlockRequested() { final SszList blobKzgCommitments = prepareBlobKzgCommitments(spec, 3); final BlockContainer blockContainer = assertBlockCreated(1, spec, false, state -> prepareValidPayload(spec, state), true); - assertThat(blockContainer).isInstanceOf(BlindedBlockContents.class); - final BlindedBlockContainer blindedBlockContainer = blockContainer.toBlinded().orElseThrow(); - assertThat(blindedBlockContainer.getBlock().getBody().getOptionalBlobKzgCommitments()) + assertThat(blockContainer).isInstanceOf(BeaconBlock.class); + final BeaconBlock blindedBeaconBlock = (BeaconBlock) blockContainer; + assertThat(blindedBeaconBlock.getBlock().getBody().getOptionalBlobKzgCommitments()) .hasValue(blobKzgCommitments); - assertThat(blindedBlockContainer.getBlindedBlobSidecars()) - .hasValueSatisfying(blindedBlobSidecars -> assertThat(blindedBlobSidecars).hasSize(3)); } @Test @@ -98,7 +89,9 @@ void unblindSignedBlock_shouldPassthroughUnblindedBlockContents() { } @Test - void unblindSignedBlock_shouldUnblindBlockContents() { + @Disabled( + "enable when block production flow for blob sidecar inclusion proof spec is implemented") + void unblindSignedBlock_shouldUnblindBeaconBlock() { final BlobsBundle blobsBundle = prepareBlobsBundle(spec, 3); // let the unblinder verify the kzg commitments @@ -106,43 +99,25 @@ void unblindSignedBlock_shouldUnblindBlockContents() { Optional.of( schemaDefinitions.getBlobKzgCommitmentsSchema().createFromBlobsBundle(blobsBundle)); - final List blindedBlobSidecars = - dataStructureUtil.randomSignedBlindedBlobSidecars(blobsBundle); - final SignedBeaconBlock unblindedBeaconBlock = dataStructureUtil.randomSignedBeaconBlock(); final SignedBeaconBlock blindedBlock = assertBlockBlinded(unblindedBeaconBlock, spec); - final SignedBlindedBlockContents blindedBlockContents = - schemaDefinitions - .getSignedBlindedBlockContentsSchema() - .create(blindedBlock, blindedBlobSidecars); // let the unblinder return a consistent execution payload executionPayload = unblindedBeaconBlock.getMessage().getBody().getOptionalExecutionPayload().orElseThrow(); - final SignedBlockContainer unblindedBlockContents = - assertBlockUnblinded(blindedBlockContents, spec); + final SignedBlockContainer unblindedBlockContainer = assertBlockUnblinded(blindedBlock, spec); // make sure getCachedUnblindedPayload is second in order of method calling final InOrder inOrder = Mockito.inOrder(executionLayer); - inOrder.verify(executionLayer).getUnblindedPayload(blindedBlockContents); - inOrder.verify(executionLayer).getCachedUnblindedPayload(blindedBlockContents.getSlot()); - - assertThat(unblindedBlockContents).isInstanceOf(SignedBlockContents.class); - assertThat(unblindedBlockContents.isBlinded()).isFalse(); - assertThat(unblindedBlockContents.getSignedBlock()).isEqualTo(unblindedBeaconBlock); - assertThat(unblindedBlockContents.getSignedBlobSidecars()) - .hasValueSatisfying( - blobSidecars -> - assertThat(blobSidecars) - .map(SignedBlobSidecarOld::getBlobSidecar) - .map( - blobSidecar -> - schemaDefinitions.getBlindedBlobSidecarSchema().create(blobSidecar)) - .hasSameElementsAs( - blindedBlobSidecars.stream() - .map(SignedBlindedBlobSidecar::getBlindedBlobSidecar) - .collect(Collectors.toList()))); + inOrder.verify(executionLayer).getUnblindedPayload(unblindedBlockContainer); + inOrder.verify(executionLayer).getCachedUnblindedPayload(unblindedBlockContainer.getSlot()); + + assertThat(unblindedBlockContainer).isInstanceOf(SignedBlockContents.class); + assertThat(unblindedBlockContainer.isBlinded()).isFalse(); + assertThat(unblindedBlockContainer.getSignedBlock()).isEqualTo(unblindedBeaconBlock); + assertThat(unblindedBlockContainer.getSignedBlobSidecars()) + .hasValueSatisfying(blobSidecars -> assertThat(blobSidecars).isEmpty()); } @Override diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostBlindedAndUnblindedBlockTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostBlindedAndUnblindedBlockTest.java index c7748a2625a..b29b8620fe3 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostBlindedAndUnblindedBlockTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v1/validator/PostBlindedAndUnblindedBlockTest.java @@ -121,7 +121,7 @@ void shouldReturnOkPostDeneb( final SignedBlockContainer request; if (isBlindedBlock) { - request = dataStructureUtil.randomSignedBlindedBlockContents(UInt64.ONE); + request = dataStructureUtil.randomSignedBlindedBeaconBlock(UInt64.ONE); signedBlockContainerSchema = spec.atSlot(UInt64.ONE).getSchemaDefinitions().getSignedBlindedBlockContainerSchema(); } else { diff --git a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java index 91d4ad07fe2..b40ac957bbb 100644 --- a/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java +++ b/data/beaconrestapi/src/integration-test/java/tech/pegasys/teku/beaconrestapi/v3/GetNewBlockV3IntegrationTest.java @@ -28,7 +28,6 @@ import static tech.pegasys.teku.infrastructure.http.RestApiConstants.HEADER_EXECUTION_PAYLOAD_VALUE; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; -import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import com.google.common.io.Resources; @@ -53,7 +52,6 @@ import tech.pegasys.teku.spec.TestSpecInvocationContextProvider; import tech.pegasys.teku.spec.constants.EthConstants; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadContext; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadResult; @@ -121,7 +119,7 @@ void shouldGetUnblindedBeaconBlockAsSsz() throws IOException { @TestTemplate void shouldGetBlindedBeaconBlockAsJson() throws IOException { - assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX).isLessThanOrEqualTo(CAPELLA); + assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX); final BeaconBlock blindedBeaconBlock = dataStructureUtil.randomBlindedBeaconBlock(ONE); final BLSSignature signature = blindedBeaconBlock.getBlock().getBody().getRandaoReveal(); when(validatorApiChannel.createUnsignedBlock(eq(UInt64.ONE), eq(signature), any())) @@ -134,7 +132,7 @@ void shouldGetBlindedBeaconBlockAsJson() throws IOException { @TestTemplate void shouldGetBlindedBeaconBlockAsSsz() throws IOException { - assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX).isLessThanOrEqualTo(CAPELLA); + assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX); final BeaconBlock blindedBeaconBlock = dataStructureUtil.randomBlindedBeaconBlock(ONE); final BLSSignature signature = blindedBeaconBlock.getBlock().getBody().getRandaoReveal(); when(validatorApiChannel.createUnsignedBlock(eq(UInt64.ONE), eq(signature), any())) @@ -178,38 +176,6 @@ void shouldGetUnBlindedBlockContentPostDenebAsSsz() throws IOException { assertThat(result).isEqualTo(blockContents); } - @TestTemplate - void shouldGetBlindedBlockContentPostDenebAsJson() throws IOException { - assumeThat(specMilestone).isEqualTo(DENEB); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - final BLSSignature signature = blindedBlockContents.getBlock().getBody().getRandaoReveal(); - when(validatorApiChannel.createUnsignedBlock(eq(UInt64.ONE), eq(signature), any())) - .thenReturn(SafeFuture.completedFuture(Optional.of(blindedBlockContents))); - Response response = get(signature, ContentTypes.JSON); - assertResponseWithHeaders(response, true); - final String body = response.body().string(); - assertThat(body).isEqualTo(getExpectedBlockAsJson(specMilestone, true, true)); - } - - @TestTemplate - void shouldGetBlindedBlockContentPostDenebAsSsz() throws IOException { - assumeThat(specMilestone).isEqualTo(DENEB); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - final BLSSignature signature = blindedBlockContents.getBlock().getBody().getRandaoReveal(); - when(validatorApiChannel.createUnsignedBlock(eq(UInt64.ONE), eq(signature), any())) - .thenReturn(SafeFuture.completedFuture(Optional.of(blindedBlockContents))); - Response response = get(signature, ContentTypes.OCTET_STREAM); - assertResponseWithHeaders(response, true); - final BlindedBlockContents result = - (BlindedBlockContents) - spec.getGenesisSchemaDefinitions() - .getBlindedBlockContainerSchema() - .sszDeserialize(Bytes.of(response.body().bytes())); - assertThat(result).isEqualTo(blindedBlockContents); - } - @TestTemplate void shouldFailWhenNoBlockProduced() throws IOException { final BeaconBlock beaconBlock = dataStructureUtil.randomBeaconBlock(ONE); diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json index 09492017933..3c1c998437f 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blinded_blocks.json @@ -3,7 +3,7 @@ "tags" : [ "Validator", "Validator Required Api"], "operationId" : "publishBlindedBlock", "summary" : "Publish a signed blinded block", - "description" : "Submit a signed blinded beacon block to the beacon node to be broadcast and imported. After Deneb, this additionally instructs the beacon node to broadcast and import all given signed blinded blobs. The beacon node performs the required validation.", + "description" : "Submit a signed blinded beacon block to the beacon node to be broadcast and imported. The beacon node performs the required validation.", "requestBody" : { "content" : { "application/octet-stream" : { @@ -25,7 +25,7 @@ }, { "$ref" : "#/components/schemas/SignedBlindedBlockCapella" }, { - "$ref" : "#/components/schemas/SignedBlindedBlockContentsDeneb" + "$ref" : "#/components/schemas/SignedBlindedBlockDeneb" } ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json index bbf99a29381..780c7b97906 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/paths/_eth_v1_beacon_blocks.json @@ -3,7 +3,7 @@ "tags" : [ "Beacon", "Validator Required Api" ], "operationId" : "publishBlock", "summary" : "Publish a signed block", - "description" : "Submit a signed beacon block to the beacon node to be broadcast and imported. After Deneb, this additionally instructs the beacon node to broadcast and import all given signed blobs. The beacon node performs the required validation.", + "description" : "Submit a signed beacon block to the beacon node to be broadcast and imported. After Deneb, this additionally instructs the beacon node to broadcast and import all given blobs. The beacon node performs the required validation.", "requestBody" : { "content" : { "application/octet-stream" : { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlobSidecar.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlobSidecar.json deleted file mode 100644 index 36372f93b28..00000000000 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlobSidecar.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "title" : "BlindedBlobSidecar", - "type" : "object", - "required" : [ "block_root", "index", "slot", "block_parent_root", "proposer_index", "blob_root", "kzg_commitment", "kzg_proof" ], - "properties" : { - "block_root" : { - "type" : "string", - "description" : "Bytes32 hexadecimal", - "example" : "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", - "format" : "byte" - }, - "index" : { - "type" : "string", - "description" : "unsigned 64 bit integer", - "example" : "1", - "format" : "uint64" - }, - "slot" : { - "type" : "string", - "description" : "unsigned 64 bit integer", - "example" : "1", - "format" : "uint64" - }, - "block_parent_root" : { - "type" : "string", - "description" : "Bytes32 hexadecimal", - "example" : "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", - "format" : "byte" - }, - "proposer_index" : { - "type" : "string", - "description" : "unsigned 64 bit integer", - "example" : "1", - "format" : "uint64" - }, - "blob_root" : { - "type" : "string", - "description" : "Bytes32 hexadecimal", - "example" : "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2", - "format" : "byte" - }, - "kzg_commitment" : { - "type" : "string", - "pattern" : "^0x[a-fA-F0-9]{2,}$", - "description" : "Bytes48 hexadecimal", - "format" : "bytes" - }, - "kzg_proof" : { - "type" : "string", - "pattern" : "^0x[a-fA-F0-9]{2,}$", - "description" : "Bytes48 hexadecimal", - "format" : "bytes" - } - } -} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlockContentsDeneb.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlockContentsDeneb.json deleted file mode 100644 index 6892d300d29..00000000000 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/BlindedBlockContentsDeneb.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title" : "BlindedBlockContentsDeneb", - "type" : "object", - "required" : [ "blinded_block", "blinded_blob_sidecars" ], - "properties" : { - "blinded_block" : { - "$ref" : "#/components/schemas/BlindedBlockDeneb" - }, - "blinded_blob_sidecars" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/BlindedBlobSidecar" - } - } - } -} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetNewBlindedBlockResponse.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetNewBlindedBlockResponse.json index b2eff494598..3d1f1d44890 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetNewBlindedBlockResponse.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/GetNewBlindedBlockResponse.json @@ -15,7 +15,7 @@ }, { "$ref" : "#/components/schemas/BlindedBlockCapella" }, { - "$ref" : "#/components/schemas/BlindedBlockContentsDeneb" + "$ref" : "#/components/schemas/BlindedBlockDeneb" } ] }, "version" : { diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json index 19520fc170b..32b48d5a9e0 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/ProduceBlockV3Response.json @@ -40,7 +40,7 @@ }, { "$ref" : "#/components/schemas/BlockContentsDeneb" }, { - "$ref" : "#/components/schemas/BlindedBlockContentsDeneb" + "$ref" : "#/components/schemas/BlindedBlockDeneb" } ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlobSidecar.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlobSidecar.json deleted file mode 100644 index 03a13ae5d2c..00000000000 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlobSidecar.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title" : "SignedBlindedBlobSidecar", - "type" : "object", - "required" : [ "message", "signature" ], - "properties" : { - "message" : { - "$ref" : "#/components/schemas/BlindedBlobSidecar" - }, - "signature" : { - "type" : "string", - "pattern" : "^0x[a-fA-F0-9]{2,}$", - "description" : "SSZ hexadecimal", - "format" : "bytes" - } - } -} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlockContentsDeneb.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlockContentsDeneb.json deleted file mode 100644 index c4373a8d4ea..00000000000 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/beacon/schema/SignedBlindedBlockContentsDeneb.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title" : "SignedBlindedBlockContentsDeneb", - "type" : "object", - "required" : [ "signed_blinded_block", "signed_blinded_blob_sidecars" ], - "properties" : { - "signed_blinded_block" : { - "$ref" : "#/components/schemas/SignedBlindedBlockDeneb" - }, - "signed_blinded_blob_sidecars" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SignedBlindedBlobSidecar" - } - } - } -} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockContentsDENEB.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockContentsDENEB.json deleted file mode 100644 index 1603175b944..00000000000 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockContentsDENEB.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"deneb","execution_payload_blinded":true,"execution_payload_value":"12345","consensus_block_value":"123000000000","data":{"blinded_block":{"slot":"1","proposer_index":"4546042514068846761","parent_root":"0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952","state_root":"0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd","body":{"randao_reveal":"0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc","eth1_data":{"deposit_root":"0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d","deposit_count":"4544390030852162633","block_hash":"0xbb0b0b3fe94fa42a5e0893ff71360feab7459127ca9149e88148b44625f31d08"},"graffiti":"0x0000000000000000000000000000000000000000000000000000000000000000","proposer_slashings":[{"signed_header_1":{"message":{"slot":"4534475127257090569","proposer_index":"4532822644040406441","parent_root":"0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8","state_root":"0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32","body_root":"0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8"},"signature":"0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120"},"signed_header_2":{"message":{"slot":"4534475127257090569","proposer_index":"4532822644040406441","parent_root":"0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3","state_root":"0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d","body_root":"0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc"},"signature":"0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1"}}],"attester_slashings":[{"attestation_1":{"attesting_indices":["4577439708070747082","4575787224854062954","4567524808770642314"],"data":{"slot":"4565872325553958186","index":"4570829775204010570","beacon_block_root":"0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","source":{"epoch":"530960372","root":"0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c"},"target":{"epoch":"531345121","root":"0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587"}},"signature":"0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e"},"attestation_2":{"attesting_indices":["4577439708070747082","4575787224854062954","4567524808770642314"],"data":{"slot":"4552652451230550569","index":"4557609905175570249","beacon_block_root":"0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997184c0317133f980452ec62b2","source":{"epoch":"523265394","root":"0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49"},"target":{"epoch":"523650143","root":"0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34"}},"signature":"0xb4619694384c8eb2975580bcf872825989dbe1a3cb79f1683c64ce3ab62431f6d80b10ae018bb0d4d4c9519e086a731413ef29fe7d0586ced2220a9cab11b70a8cd2dbaaa8e28e2ce6d913f4437e28752d4cbfe17a1fbd433dd22d33ee148ff1"}}],"attestations":[{"aggregation_bits":"0x74b1554fb666e3e860ec50318395beb2ae8b5096aad63d718f47db8d2b08748016a5ada06ffbc38dbd2301b3c62a867c42456e5a77155026b71ed5413673fc7c20c4dc1ff9c121b7db3a38d368c3701b897b0735af9fcc82d6ec854848b8962528a1baeff72c1f6b4eb2d308f9eb5de8784434f354910cac018b64267c4e0d7674bc623b565b13a3c1107fdf9d3f0a5640f18356dd8dcbe88db533e4a090913f089dd061fb1ff28cea27d0620c0cd3382da5f14d330adbd9133aac602af91ca08ce17ae54c2a6c2130309958d42f5cdcd1eba9a62b35705622374106b48b5d7ca186c14b8fa9400d0a8d52fb7f4cc13a123eec141ecd8797e2e8053ed84d732f01","data":{"slot":"4491510546443434056","index":"4489858063226749928","beacon_block_root":"0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14","source":{"epoch":"521534024","root":"0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff"},"target":{"epoch":"521918773","root":"0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3f"}},"signature":"0xa5dc1b5bbb3e2542ed00fb268f1fa5811bfd77e0087eaab35344e4024200d4ec9ccb13f7c46a31f356b5f1aefcb6aba20dd4e5d1e44241c7c88f5d7a78304797c7b896590ef22fee7001ecf223d8fa9034ef61fa178ed7c85a3809142eee614a"},{"aggregation_bits":"0x46bf56516bff2c50ebeb302b670f7b27db51e68a51efed1e99b63758c3a6fbd3a0fa9426b938940e4a4e0750b77bce6fa045a0b3cc248d8e4087da4881773503df892d697725d79b37bdfc63c385e1ab9c3b8cd8c3013109fc99272d6e767f1d849d8947a8c99910a0f0c7400e18eb90fe57898af7f25356a58d4f08a2d83215a4779c5fd89cd02a742d9996bd4080c3f51a22ecebd4380d23eb7b8437d02ab05a6999e6ae33d72c62fcc061b788f3cf9621fd24a3cdc360033015feb5e755406b50f84c9246a4811119f66c676e8998042d7d9aa9af710bd99f09a8d27e4f2391c58213914ade9ad786cd9d0da37c71bbaa6672868922f7c9d71d6578fb47dd01","data":{"slot":"4476638188903342311","index":"4521255257228650249","beacon_block_root":"0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e","source":{"epoch":"526728135","root":"0xa198c43e69db1b65dc2b6a085da00587026a85ff57fa32a2a656dea9617db688"},"target":{"epoch":"525573888","root":"0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9"}},"signature":"0x87551d5158b22f28a8349c16d2e878510a902d867b0e8ea536c68968ccb0f027bf3ca024f95bbd9eb4a0758c1936c43b14ec51038418286ea2d3b27d9d28aa77595ecced40ee414fd4d9b6b489f31807ae53147f5403bd745374779cf7ff5bbc"},{"aggregation_bits":"0xec905db22a79ad923d8dbd56e9fb220ff2326f47e1a30914319a43f311e67310cf970f6b4980af88dfbe819cfaeb1e29e63643aa57d8d06405a3e42db7f14f6e02f5b3caa4e8ed89e0641f7f11ffaca30f70f1deb1d2c91eed1640f5cc89e25dbe71215a155e309a1ee142f0b39dd328fb628e077e1483f265e059dded58326f009d938d26e7c71be9cc8c3e8b78585049aab7a18c3d04562b418c8f6c5bf6505c7dbadfd54b78de55c725febc7aa48d0fdddfb36ee0e58f623d5076d6d43c6385540622670d91dd3521ba80f1f99b0307ed0cca39dd8522210710ebb70fb757d1189654ad266f5d597606514c50dc17131f17493e3d8585b9d09fbc651b666801","data":{"slot":"4508035387200209928","index":"4506382903983525800","beacon_block_root":"0x26809b3ec8ec364791003d38265e95222e7f7efd537750b9e6deb6235a23ba53","source":{"epoch":"524996764","root":"0x9946783e88b272e45092a83c1c9310f154917869992b4516f9e54bd578680694"},"target":{"epoch":"523842518","root":"0x7304843e481bb45a660cdae57581e756478b7a452c9af3a19de3c444c3a6977e"}},"signature":"0xaf85c50db6dad8c04b9a22611e3174fdc57a3cfe255164e0361897353984556c3e7b91b040ec3b59cc29d774aaacf4b204e4e1960b9dd5bf9b72f8c3e09bdd64753a65084567c10b229784fe46be3de016c8add60d84c970943d221882294028"}],"deposits":[{"proof":["0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e"],"data":{"pubkey":"0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960","withdrawal_credentials":"0x09988f43d11dcf2aa7811c9997eb4119e8f153ce791de7a648e0c12a186b0049","amount":"32000000000","signature":"0xa8bc1f3e02db6e899c709b18a5d1e31b00c33cf2aac1de967d0ab37e6f13a859e07dbabdfc975bfb295185f0d561fd831559ada7f2c040b69eb411487ca0e68a575470eb586e1e1545d388f0162758a4fe67f8b734273eedbe94324e6779948a"}}],"voluntary_exits":[{"message":{"epoch":"4858361979461100433","validator_index":"4866624404134455665"},"signature":"0xa2a6993708f79d7b3db30c3968aaf4b706400145cf70fded02b06d54922e54a4c1db14d63860cc632d0b2a8c15efc5280bc57ceed454838f2a0848e03e610e130309d8012aa5eddc1fa84b509fc8178a685baaa0413ec58709e738aae430491d"}],"sync_aggregate":{"sync_committee_bits":"0x02000000","sync_committee_signature":"0x860ddd021623b0457093e3e33cec56fe571fbbe8a52a68ec6660579165513eeea8dc706ba31cdd09c5c7ab60765182cd084061dcb29dde1dd5d5956b404b389f599a34da02cd3a50385a148dd804110335507c0f05bdfdc495e4a4953dafac94"},"execution_payload_header":{"parent_hash":"0xa2a06043d17ac951519956f43432e6811a0a4c5e2b632d78b6e9dd6ceb71bb9e","fee_recipient":"0xb5c15a4371c6a89646dcbd1f07bbfa4e210d4bf0","state_root":"0x14673d43914005ef102bc2f829676150401c46ca721722d5c9f0721e09b707df","receipts_root":"0x27883743308ce433056e2924fdef751d461f455c28e04a8ff771b6e6e417bf69","logs_bloom":"0xee24494351a9466526a5f3a1825538b6331648a60586d0606deeeb8d55f598c9df89ecb52fa777a9130afb129abdc82f6f0a353da6151532072e5e2bb732c4db169a41ed5a90d2a27ac8118ded853750e3cfea35a84ce06aa0db6fa4cabf0d2c2323cb79efe7557ab7d171dee29da3d803090767635e3865480d6d51be175ec27ac8c673211be8e5acb9d15213bfef3b65281fbf8275d76dd19fe76a366f9709f35b5403b32f9b103d03fd44cfff55f742d1349f85ca6bcc53cb37dfcceebf224ac6ffa781c2474dd57c79099935eb51f9c7253e3f0a5462aac7caaa8dbd48cca07f6f33f75519a9e0accbc0a7273c638d72f942580c1275f380f15879db3b56","prev_randao":"0x01464343f1f425aa1be85acd56de4c833a194738bb4ef91a9b6f2f562f565054","block_number":"4891411660974652178","gas_limit":"4889759173463000754","gas_used":"4894716627408020434","timestamp":"4893064144191336306","extra_data":"0x4a4dca439229167a13e413e752937416aad35d1a59464f617ed41e5890a2d6dd","base_fee_per_gas":"42260802649178622237299574612025869510876612752332789515082371171365175922280","block_hash":"0x240bd643529257f0285e4590ab814b7c9dcd5ff6edb4fdec23d297c7dce067c8","transactions_root":"0x372cd043f2dd36351da1acbb7f0a6049a4d05e88a37d26a75153db8fb6411f53","withdrawals_root":"0xdb034f43b15d672031628c76afcc23e92d1349144fbda7a6406da8c57a94e13e","blob_gas_used":"4878191786651244561","excess_blob_gas":"4876539303434560433"},"bls_to_execution_changes":[{"message":{"validator_index":"2934395","from_bls_pubkey":"0xaa7ec4a37dae722143cee2fabacc1e11964fda925d7dc00efc1c3b3a537f414237ee98b5af27a6231ae5097e4a133529","to_execution_address":"0xcf34a143f13a315cc7b8e6161c5104b2d6e85618"},"signature":"0x86c8e92840bfb3b3ab773a6c3f4bbdc36416746bc710630dec288404296db89f63eb25d648a0795e30e6870ea5a6f5b70bf684cbe96b72671398e89a8510991dca3110bff970cf1abec6c3bb3bfd7ba1b37ac1b973ac024bcbad0287d47aa65d"},{"message":{"validator_index":"2393663","from_bls_pubkey":"0xb4de3568fdbb0af339856e6106dfd7808879d0564325ec1deab8e8932c4d173a8d7b04a546a9de867619730b512748b1","to_execution_address":"0xf2a1aa4230a3d3a803b5d735d4c36257dc672d0c"},"signature":"0x8a5025a2a1543e6fa0fd574add3bcb06f96df170dbd82f51995a261559948009eefc0c8fc2c474c387cf52a8c5a698940eeb1fff88b70b5331be065192f46e47c765cbb3678d19a6a84f713e9c9464730649720a6182ea2964188a8dec26c2b4"},{"message":{"validator_index":"469919","from_bls_pubkey":"0x8678ff3eff860e3ea75396d0bb0d548326928ecc62c8c9b30b58f8f3be02e3099ef80f47a13c7fd828412ba9f990c25d","to_execution_address":"0x18e49e426f3a9232ed3aa68c7bd58bf1e96d2b30"},"signature":"0xb47bdd50d8e3ee31806068b3555ea1fc6771e2caf4b06d07394444468feec69e9d153e52ced5b5cbb5f8d44f2e981a060a691dd8cd0d86c4d7928bb908eabca9c2520e9033cfb4e5f13a80d30d4e8de24eb5a09a0e0b734a55811f13edd2fe6a"},{"message":{"validator_index":"85170","from_bls_pubkey":"0x82b07707a61c37b860d0d290ec1c330ad73d0f5970b72c198aaa567ecbd2d2d08e884f2322519c2e17ab2cc3e9bb26de","to_execution_address":"0x740c2043b0ba6147da79c6d14c13c8515f2b41a4"},"signature":"0x8008c559949fc9cab7b9b663aeecf3583273f07c7081afc5327ea39297f5adc1f1d8bb8d9485f1fb157a8bcc291625fd087e435b653ef0020f3fb8e4dc7ba04b6ebc64368aed53b868638cc39a536c0c077d6a08a4831f06e9145d328a52774e"},{"message":{"validator_index":"1317408","from_bls_pubkey":"0x8a5997a79613125f1de5bd526981865c391f914492bf08bea98d89e0b212f554bab770783c094dc2ef1229e5cf6febc0","to_execution_address":"0x9a4e1443f05120d1c5ff9428f324f1eb6c313fc8"},"signature":"0x877005ef02509214e9ede55f546c2b003c0209b7d885ea680d76369fc415180ef4fbbce332fce18608d3533b8d6d284603e52bc79193b0b2128c624332fe1bb1d1e1956361333e0ab171f1bdeee927a169d2ab78498189a9e8f4036cb47b77cf"},{"message":{"validator_index":"932659","from_bls_pubkey":"0x8af5874a9623513bbb3200f80c2679f001ca294967e33f1e201f6720e30f3c8ab69492f3dab696b485436280bd5da4b3","to_execution_address":"0x5999d9423046d981599d9dda377dbeeeaa4f357c"},"signature":"0xb21c09e06746c9cafbb504cf0aced08a807b87f62d57b526d28277802395a420321c8510b91b5e835a9fa47e6cc27d240d0991f1a05798ec502acd18dd8566ae675a05579e71bc8ba327ffb5f92c66c1f58ed89bf2804863cf50b958e79add78"},{"message":{"validator_index":"1852932","from_bls_pubkey":"0x95e6bd6d5246d58b9d56e43c1490b8dfabe87ffc399721bd63de8a38a7a6bcab8399085f3ed777a668f857f591154b73","to_execution_address":"0xe2fd11426e5181a7eb81549e52a9782b7fb613e0"},"signature":"0xb33229dc7bb509bee6290ece9d436db0477fc49ec3cc26e1e298eb72d62d0b4d28e72b271c0c3a9b9f86c44c883086680dc51747dd535a7b0b693302eadd8bf44f802fac281dc91025509a5c6df8bbe7455a3f30d32b2cc27c2322c7f00212d0"},{"message":{"validator_index":"1468183","from_bls_pubkey":"0x98b245d4ae533c7648fd14a7858d17a792e7919a81c31f1db0dd1c0beedaf0fe7c7fc60be0b446238fd5e5c94220a538","to_execution_address":"0xa148d741ae453a587f1f5d509701462ebdd40994"},"signature":"0xb6df5347cf18c72adf3ee1e2e5e942d8b3b7ab160b1f66d4991bab95e7050f302d723406d3410b9275700b3b998f2cd517c4da35e0294235f656d5c53cabc553f02b6a8f0e14a74571029f380c52a935c0230f4507ac486e4cf01ede4d04270f"},{"message":{"validator_index":"2544439","from_bls_pubkey":"0x9866c028838d222cfed5b1ff8215618a8d6a81c3e96a34759e78172fd2d18521fdf686d1601a860a38d3c1fd8c9e22af","to_execution_address":"0xc78acb41eedcf8e16aa52ba73e136fc8cada07b8"},"signature":"0x98ffde69b4d92a4510b5d42ae9bcc05315ed0a20fab2ff6fc8e416678f150d7bfb961da6774e86213ee711a2b065c3d300a13fcf630d7f303c59d848ec47905d2b439e7bb4f3348b6ddc448aa00f7c6eb6f64513182a3d335e2753f66cbec83e"},{"message":{"validator_index":"2315672","from_bls_pubkey":"0x84768946243cfa8d15223bd7222c94a5ce4a610b7aea979ac29d5b6f30e721213ed5b3cef3b4d2e700251be6a3d4dbfa","to_execution_address":"0x23b34c422f5dc8f657e44bec0e51ab2840981d2c"},"signature":"0xb9014738ce2ebfe44a8255a53e34b604f223702435a966b81276bd7967cc1e172a4dbace09be70a1f73b300d83a7a8ec161cdc911b167a8a6489def11edca95a3587eab704e98325ce29eb4f86a477755421b480ca39020c82f07e4977d9e859"},{"message":{"validator_index":"391928","from_bls_pubkey":"0x8b37bcb9abb306bad986453fe618bd0161b29c9f5f1eee2aa91f44ad2ecf75604c38975532425ca87de0e7cdf3cbe44e","to_execution_address":"0x49f540426ff48680416a1a43b562d4c24d9e1b50"},"signature":"0x954da68af7adf486693e9213a63a082fcf1b1ed99c320314b73e64c322470329df27c891348c17b92dc7972dbc7d9b4215c7746c756c1aa2194c7217ab902459290981a0905683fa8563a2a7241f2bc3a3d6e4fca48d9fce1c6c322c4835dc1b"},{"message":{"validator_index":"7179","from_bls_pubkey":"0x8542101a7935a234f5630ac9af421c22079f637d52260c1c6d6aea1011e8d11075c111bd37f037e78399b3c55c7b2c2e","to_execution_address":"0x6c624a41ad5c29cd7d660b626ed53268531df243"},"signature":"0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a"},{"message":{"validator_index":"927452","from_bls_pubkey":"0xa1406a0e7708eb918313d3a1f4fb748174c690e7bc5933f8481b64aff73671f1bd59c3ea53b84d65eb5afd191748eaf8","to_execution_address":"0x92a43e41edf3e75667ecd9b815e75b026023f067"},"signature":"0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d"},{"message":{"validator_index":"542703","from_bls_pubkey":"0xa52467f43393c040dbac590c4fa4fdf260f050357947fa261f2285f35c8381f256c8ab0584c940f30766a40ebc447340","to_execution_address":"0x51ef03412de8a007fc89e26a593f29059e41e61b"},"signature":"0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198"},{"message":{"validator_index":"1774941","from_bls_pubkey":"0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1","to_execution_address":"0x140fb4416e0b76f53fb1c8548d36c1fce3e60300"},"signature":"0x94d7e47981799407b6455afd50007fd6c7736bc24b685c668e8af371e8e917d974e93874db6532a4ae61f4f6deea97bd12c425def40e2d7d3e03f647ad4028145163fb47650087a96647e67c495a101275b8b3fe37498b0b65772b420dd2f400"},{"message":{"validator_index":"1390192","from_bls_pubkey":"0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82","to_execution_address":"0xd3597941adff2ea6d34ed106d18e8eff2105fab3"},"signature":"0x81b3889c3af9b7f316b694fdebb42adad0fb3ded3558ed7e44e0cc7d3e3e176f45e34a4f747b1bbd91786ef0f710e44613a395950e29975e658de1a4569b3ea8f240dc2ba973cd6bf058a0311f2b15ac00a2e447b92ecfb685102c48e1d765c4"}],"blob_kzg_commitments":["0x0cbd67418de2cc74b31707894c29cc66340ef7696dd0e001164f8bb348fb55386ea8621167b756dbe3d0784067bbbefb"]}},"blinded_blob_sidecars":[{"block_root":"0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e","index":"4668326327938047084","slot":"4660063907559659148","block_parent_root":"0x8200a6402ca295554fb9562193cc71d60272d63beeaf2201fdf53e846e77f919","proposer_index":"4663368873993027404","blob_root":"0xa1a5293fcb6f6e54abd1c2db6be9545df9271969c18f7ad3daf3fb72ee1dc3d8","kzg_commitment":"0x1f86d83f0bf91cc0d7e07410828140e0dddbb331dc20b6743f9f79e549b50b11b30c033eee79f00acf434b0250cc3f2e","kzg_proof":"0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b4a2cc99ce8dad0f8165c8eae1794a314"},{"block_root":"0x6b0ac13f8a279ad3abec11bed1a49214f6e7af79b643595df6a38706b338e93b","index":"4592312065610838826","slot":"4597269519555858506","block_parent_root":"0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1","proposer_index":"4587354615960786442","blob_root":"0x35774d1f62023a17189269c8cd7b075db698406c2f190c60a5777308d062d55e","kzg_commitment":"0x924cb53fcabe585d9672e01478b6bbae02eead9d22d5aad151a60e9768fa575140caa776ccbf329e7ad5dd0bfb7a9694","kzg_proof":"0xa56daf3f6a0a38a28bb547404c3fd07b08f1ac2fd99dd38b7f27525f425b0fdcd8e96dd5c720138cc1ed20b8c242fa7a"},{"block_root":"0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c","index":"4582397162015766762","slot":"4627014230341074699","block_parent_root":"0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0","proposer_index":"4630319196774442955","blob_root":"0xd44a6480aa8571ef3c1da5e76f98f9ae88094d9aef9337b5f5fbcd08b4151dae","kzg_commitment":"0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b73909791b9cc30ee6be4782026effa6e9261","kzg_proof":"0x4d1a19402bb984ca4d0005336ba05e1098babeeb0781f5744712934ae78b2a1b2fb17f2b2b4f4cd2bf38699bc136f647"},{"block_root":"0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb","index":"4612141872800982955","slot":"4617099326746002635","block_parent_root":"0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930","proposer_index":"4607184423150930571","blob_root":"0x49d2d3dbea0309a1b08e72d20133c68cf7b3201a0b7dba4927905a21d91788a9","kzg_commitment":"0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0254f5e050f34ae7723b2b8f8a51de9c7","kzg_proof":"0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765bbd6e246409958e656bcafba46ce54cae"}]}} \ No newline at end of file diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockDENEB.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockDENEB.json new file mode 100644 index 00000000000..cc2478fcba0 --- /dev/null +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockDENEB.json @@ -0,0 +1 @@ +{"version":"deneb","execution_payload_blinded":true,"execution_payload_value":"12345","consensus_block_value":"123000000000","data":{"slot":"1","proposer_index":"4666673844721362956","parent_root":"0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef","state_root":"0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e","body":{"randao_reveal":"0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71","eth1_data":{"deposit_root":"0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f","deposit_count":"4658411424342975020","block_hash":"0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379"},"graffiti":"0x0000000000000000000000000000000000000000000000000000000000000000","proposer_slashings":[{"signed_header_1":{"message":{"slot":"4661716390776343276","proposer_index":"4600574485989226763","parent_root":"0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b","state_root":"0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb","body_root":"0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486"},"signature":"0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483"},"signed_header_2":{"message":{"slot":"4661716390776343276","proposer_index":"4600574485989226763","parent_root":"0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6","state_root":"0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26","body_root":"0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1"},"signature":"0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1"}}],"attester_slashings":[{"attestation_1":{"attesting_indices":["4585702132744102314","4590659586689121994","4589007099177470570"],"data":{"slot":"4580744678799082634","index":"4579092195582398506","beacon_block_root":"0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c","source":{"epoch":"533461240","root":"0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565"},"target":{"epoch":"538462976","root":"0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650"}},"signature":"0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc"},"attestation_2":{"attesting_indices":["4585702132744102314","4590659586689121994","4589007099177470570"],"data":{"slot":"4620404293179370891","index":"4618751809962686763","beacon_block_root":"0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b","source":{"epoch":"538078227","root":"0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb"},"target":{"epoch":"536923980","root":"0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5"}},"signature":"0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65"}}],"attestations":[{"aggregation_bits":"0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001","data":{"slot":"4605531939934246443","index":"4610489389584298827","beacon_block_root":"0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b","source":{"epoch":"529421377","root":"0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2"},"target":{"epoch":"529806126","root":"0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd"}},"signature":"0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc"},{"aggregation_bits":"0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101","data":{"slot":"4544390030852162633","index":"4542737547635478505","beacon_block_root":"0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd","source":{"epoch":"527690007","root":"0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8"},"target":{"epoch":"528074756","root":"0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8"}},"signature":"0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120"},{"aggregation_bits":"0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301","data":{"slot":"4529517677607038185","index":"4574134745932346122","beacon_block_root":"0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947","source":{"epoch":"532884117","root":"0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31"},"target":{"epoch":"531729870","root":"0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672"}},"signature":"0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683"}],"deposits":[{"proof":["0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c"],"data":{"pubkey":"0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d","withdrawal_credentials":"0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c","amount":"32000000000","signature":"0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb"}}],"voluntary_exits":[{"message":{"epoch":"4562567354825622634","validator_index":"4564219838042306762"},"signature":"0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e"}],"sync_aggregate":{"sync_committee_bits":"0x01000000","sync_committee_signature":"0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206"},"execution_payload_header":{"parent_hash":"0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49","fee_recipient":"0xbf886c3ec849316e3b187793c3a4398b6097768d","state_root":"0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34","receipts_root":"0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9","logs_bloom":"0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d078748f9069c96e9d6a2801cf607000a52447e46e1bef4e056ee30d4bd3517aaf7bf65ba04dd28c3a4a14b8dc72a300f051722a6814fa3931d90a82d23285d4c1127b6c67bbc4f8682ddbf9b31eb3114c26dccc5330109d6f17799339c2d7ed7e4e3a7de5d515106aaec7be6d78be3e21806d6d30c39b77c75dcf354b63033fb200b3b9dc023d948278f0956c0ee99323da0162f2a84b6a95749d2fa1d4e089af416d412ccd992683f7e41f7b496ca04f9f463806e3643d1c07f39d2a65f84e97b7dfaafac740d1e03f30923a4270fcf651ad2ca3737859a524e86e02229a55abd1a7","prev_randao":"0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4","block_number":"4489858063226749928","gas_limit":"4481595642848361992","gas_used":"4479943159631677864","timestamp":"4484900609281730248","extra_data":"0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789","base_fee_per_gas":"91973405088222260025272995045243630915786868313949746451634391325697029602367","block_hash":"0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca","transactions_root":"0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a","withdrawals_root":"0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be","blob_gas_used":"4476638188903342311","excess_blob_gas":"4521255257228650249"},"bls_to_execution_changes":[{"message":{"validator_index":"573888","from_bls_pubkey":"0xb8343e90edaecc9df1223293465ec067b3c9804f43e25817d27f1f4785bc5f554462032370781d9c65ab27bcc3d21415","to_execution_address":"0xdafbb23e48beb933bcf49f8ad83a43ee157382b5"},"signature":"0xa519e1354ad927358404a58bdc19113e5fd97d5cc19943888e22105ee943ca216a14898283fc3712500ba767de00022905e4198939b44a5f5a43fa0c87252969c56a26345135572101b257f87245a5e42fb2407a0ee67a6c2d039bf908b9aa8b"},{"message":{"validator_index":"189139","from_bls_pubkey":"0xa9ddce0cab5b51d3d2c710396b85e3fd7a87f1738fb5cfd5a7b25dbb483c167a80e785cb4ca7250c14a60cc282b1d9b8","to_execution_address":"0x9946783e88b272e45092a83c1c9310f154917869"},"signature":"0x8edfb3b9ed80067d0626019a1be330bac43c7ecd813f7ce781d0e6e34fb583803e9d2b047ad3294d6d3a54d020c68231085f7d9085d0afefb047def063a4698277e66d4a560f4b5bbd16586976f0bcf90177c00abd4a1b4cbd0ac393e5b904b5"},{"message":{"validator_index":"2357271","from_bls_pubkey":"0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960","to_execution_address":"0x09988f43d11dcf2aa7811c9997eb4119e8f153ce"},"signature":"0x8ca190827c66ff26c1fa594eae169b7efbd84c9456304f2194df7b0c204b0a29ac53034c9b20e4977b8e8b46d6b246da03a9337d3bf5e6f7ac941407a2a3437d7e2c0dcacda29b7623141833e02b4b12350ccaf8b27dbf96b3c520078f49efe2"},{"message":{"validator_index":"1972522","from_bls_pubkey":"0x8db8ee645b614f990839e4d98fdbf921263bb62cd917fb4eff9084dff23d7cc453f6cc645ad8b869aa9d31a6b9560630","to_execution_address":"0xc8e25443111288db3b1f254bdb430f1c27104a82"},"signature":"0xb0c3172e9bab8d04faa5d27f9818c36ad61a71b114f5bd9dbe77306be3edef2bcb56c215511ba76145006daec95f24be0f1f0dd24377cf7b440b5cdc7d0b520d6b64c539eaacaf14875d49c293af5974751bb0ce2daafde3bd01e097a466e75f"},{"message":{"validator_index":"48778","from_bls_pubkey":"0x8ba697cdd6f8c34a1fb96a4c88f03360d19515ccc4e1ea24aa5e80075d821059806a0047e6bbf5d908d312d1902aff5d","to_execution_address":"0xee24494351a9466526a5f3a1825538b6331648a6"},"signature":"0x87fadfd11bc5612e06c59d576c91599bc21095531fcc27a177967de7b521c377ee7a2b10d0fadf38779089929cfe136518757803c369b4ce94873e28d7d9cdf54c31a53ed86b07f76ea6104ee65d76de02267a4b736c949785ef233cbb73ad4a"},{"message":{"validator_index":"2820011","from_bls_pubkey":"0xa32a5f28ae7d36f888820160335232fc42ef994b4f93acf6a8659762b2ec52ca79354cc07c73a229b529bfcebc705eff","to_execution_address":"0x4a4dca439229167a13e413e752937416aad35d1a"},"signature":"0xa2089742415bdf32fa2dde853661a095ac24d273413687ae04fabb99ae2982700bcdb885d239e32543ffb95763a43e690cb1bf3a33df40d24e12c46d150e9c59dd63f960dec39712dabf74c08a55ba1bcb6db664ff9d5b2261da353e4374466c"},{"message":{"validator_index":"896267","from_bls_pubkey":"0xb679b4b686530827b2a201eb2b18454e9a5758d7257737b29bb215b9f354c2ff57e912b19d4a051556187aa24c97371b","to_execution_address":"0x708fbe43d1c0d403fd69e23dfaa49db0b6d95b3e"},"signature":"0x8da9cee45a3046b209da332512a6b4e4d7c89768f55998eb79ee236b4fb1fbcea87e0bba7b05d19ea7b8c5ea6dc0081e17a7ad0ec41566a0c6d9e127b87691e1d5b823fd178069e3f30091dcdbb44c36408656941755177c45bc976bf270289d"},{"message":{"validator_index":"511518","from_bls_pubkey":"0x83b8c61b63de768821cbd82ee3c67c81bb848163d6af0186ffe1ca3936d283bb4cab886f3fbc7f6336fec3da8d542c76","to_execution_address":"0x92fcc742102977503966d35cb217fc55bd583232"},"signature":"0x8c90298abaed4b5124cff46e41c9a4ed2b2baa0d2089add6b64c70dc7547f1a83bed76aba1fac6d36605beea72734b490b7b98994c7c65fdb436286b0df898731f6ad536e5a603da85ec8cc4488b94dc8c61e11363d1cc18733382dca51c7008"},{"message":{"validator_index":"1431791","from_bls_pubkey":"0xa532ee397fdd9e388888d90f712e13b085ad5043402debe1caf3dabbb514ed0d06f7c897e4e2795fd018cd672bfa8948","to_execution_address":"0xb83ebc4250c035da23eca1b3592925f0c95e3056"},"signature":"0x8fb8cb9373db269dd2a05fe0a07484db022a95b06c03807426a352499fcb65c55f8c388fd4cddbdd9936d5fe5ac5898e0d8b58ae09a73bdc7e584fe9940d3aa967607a0c4a1ad1ce5ccc0ad83f63a273e140ae0510f709cd0c214b645d68e3f4"},{"message":{"validator_index":"1047042","from_bls_pubkey":"0xb7d85608c3cf919ee72c0481283b468c2825850f6f6028c000cb19bff464556973909667d0353582d673e1049795f20c","to_execution_address":"0x778981428fb4ee8ab889aa659e81f2f2087d260a"},"signature":"0xa1079cff71763f60894927a0ac68cfff88642e5ec4e11d1f63ce7d7b15f2567842c80c0238a0f6e4d38ac2a9d09787c50c87daba460e05a0336332f1d37b65fed7526c5eb51a84d3a0169d09ddaf271d13710d22469e8dffde8859d50a2dd0a1"},{"message":{"validator_index":"2279280","from_bls_pubkey":"0xa46cb4c6f51759dd36e897cf8f5f8a774dbb5968defec8bcd85b9ec0f3d873a6569fabde6c6cf3fa5dc77e910bc39938","to_execution_address":"0x3aa93143d0d7c378fbb0904fd1788aea4c2244ee"},"signature":"0x988ea703ce8fcbd5bc7811c49e1eede7061ce461966a9a52f03afdecb157f065a1993fd71ea29c6769121610fc9e3e190eff938fb8c2f77dcf5f511208ad23cf427c05dd207b6c6004ba2a1ee3b6a84949e39db4ef1ee254635d3527010f7794"},{"message":{"validator_index":"1894531","from_bls_pubkey":"0xa18343c3306dae4ff3c78428069a4ae7876f0ad620219648b99b4bfaeea1d7898df50d508533e756f5903efbdf585076","to_execution_address":"0xf9f3f64210cc7c298f4e990115d157ed8b403aa2"},"signature":"0xa120e4f3144799db31e7487d25cbe6d8724f0076f23fdd7ff1f00b24b304a93a97862a3ebecb5e1b91018a0496a3c4020004b5d49571f4b9a3faf0f9d8f1f067d7005b5600db18872732313acf1350e1bec278384f3e0fe28d43f00203ae10e7"},{"message":{"validator_index":"2970787","from_bls_pubkey":"0xb23734206f673528ad12bad1b7815a9db722d7a5afffdfac97e17d453fcd2616a804619bd9f8db50b9547a357b1f5813","to_execution_address":"0x2036eb4250633bb379d46758bce28087974638c6"},"signature":"0x8de01f498b48fd1df0c20529228b7e8616c7bfc35457d392404110e394db4c884dad325363be1f2a83ac383486cdea460e78e89a728ac9464f71dfbc685ac8be3fb9ecb21d67a6c105354c58bfb78f2adf7ee65f5a4d7fbe5989e522b52daccf"},{"message":{"validator_index":"2430055","from_bls_pubkey":"0xb490d2df5759bb5115690df9aa805cddc1787b17fc3984ec400d03ccd5c6da6dbc54a724816ccf0c86b4b23e4daf0b17","to_execution_address":"0x42a3f4418ecbddffb5d058777555df2c9ec50eba"},"signature":"0x909ac7032213a33af76294ec19617f3fd9859bb22201e0502ae7187debe740c5cb0367ef03e944eab7fdc5ab23d303f916904a1ca5f7aadbcfbab89bdd82931dd7ff3e0efdd1135698f54774989ddd6d8ee07bebff863718c927072564a547bb"},{"message":{"validator_index":"506311","from_bls_pubkey":"0xa2810855686190fded08fbafafc427d3540a58c2b391c0d05a71be7a4d1aff2b4ea501c8e4c1ebb79cb49f1991ada976","to_execution_address":"0x68e5e841ce629c89a05627ce1c6708c7aacb0cde"},"signature":"0xa108770fd60463dfc982d8725440e47c54730329420bcf05a969e4937d06e468385b53c4a5f6c69e55a775f358fa0948171dedf3bb0ccc1679280251b7abe4cc644e10b46bcdaddd590951541bda68373c8a8dcbfb86d3cb97822a5dfc21f481"},{"message":{"validator_index":"121562","from_bls_pubkey":"0x8deafeba9f0184ffa1f3d1422b9d97d6975fc4d5a21df265b48b6e831d6aee5a6236b3d5fb9e03cab1e0795f3dd45206","to_execution_address":"0xc40d6a420fe36b9e8d954713eca4442721892252"},"signature":"0xb489851f8a8fd535ee14505b9ae32ab27cd8d5e637236f491f71bfc987316491ef3f1b7670378875580eb247993d82511128502ea093d108730e070bb8c5919b39e78893139b3f1a499e885b15d385073e227d6a4e85ba0413ab9e2481d0b8da"}],"blob_kzg_commitments":["0xb1ec6f426f978c599752e0e7181c305a1b8623c06088b5480b9aad7fe5f419d6c81a8f6862abe50a5e8cadf8649d347c","0x109252428f11e9b162a1e4c03bc8965b3a951e9aef7381ebf01fff6828d9ae8bbeb86d42469047b0c205fd55488427fc","0x23b34c422f5dc8f657e44bec0e51ab2840981d2ca63caaa51da14231033a661656d833a140f1279e0a1e40020f4c8be2","0xea4f5e424f7a2a28771b166a93b66dc12d8f207683e22f77941d78d8741740768f79e18451ce86d434d576fdbaf45f2f","0xfd705842efc5096d6c5e7d95673f828e34921f0839ab5831c29ebba04e78f7002799a7e34b2f67c27bedb9a981bcc315","0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695"]}}} \ No newline at end of file diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/MilestoneDependentTypesUtil.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/MilestoneDependentTypesUtil.java index d7d5d97085b..ebf54a3613f 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/MilestoneDependentTypesUtil.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/MilestoneDependentTypesUtil.java @@ -84,9 +84,7 @@ public static DeserializableTypeDefinition slot // SignedBeaconBlock getSlot(json, "message", "slot") // SignedBlockContents - .or(() -> getSlot(json, "signed_block", "message", "slot")) - // SignedBlindedBlockContents - .or(() -> getSlot(json, "signed_blinded_block", "message", "slot")); + .or(() -> getSlot(json, "signed_block", "message", "slot")); final SpecMilestone milestone = schemaDefinitionCache.milestoneAtSlot( slot.orElseThrow(() -> new BadRequestException("Could not locate slot in JSON data"))); diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlock.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlock.java index b112bb22126..a0268b7adab 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlock.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlock.java @@ -101,9 +101,7 @@ private static EndpointMetadata getEndpointMetaData( .operationId("publishBlindedBlock") .summary("Publish a signed blinded block") .description( - "Submit a signed blinded beacon block to the beacon node to be broadcast and imported." - + " After Deneb, this additionally instructs the beacon node to broadcast and import all given signed blinded blobs." - + " The beacon node performs the required validation.") + "Submit a signed blinded beacon block to the beacon node to be broadcast and imported. The beacon node performs the required validation.") .tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED) .requestBodyType( getSchemaDefinitionForAllSupportedMilestones( diff --git a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlock.java b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlock.java index 045c4560183..818159f57e5 100644 --- a/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlock.java +++ b/data/beaconrestapi/src/main/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlock.java @@ -72,7 +72,7 @@ private static EndpointMetadata createMetadata( .summary("Publish a signed block") .description( "Submit a signed beacon block to the beacon node to be broadcast and imported." - + " After Deneb, this additionally instructs the beacon node to broadcast and import all given signed blobs." + + " After Deneb, this additionally instructs the beacon node to broadcast and import all given blobs." + " The beacon node performs the required validation.") .tags(TAG_BEACON, TAG_VALIDATOR_REQUIRED) .requestBodyType( diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/AbstractGetNewBlockTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/AbstractGetNewBlockTest.java index 5e902c93f2b..11ea44ec693 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/AbstractGetNewBlockTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/AbstractGetNewBlockTest.java @@ -33,7 +33,6 @@ import tech.pegasys.teku.spec.SpecMilestone; import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.util.DataStructureUtil; import tech.pegasys.teku.storage.client.ChainDataUnavailableException; @@ -68,18 +67,17 @@ void shouldReturnBlockWithoutGraffiti() throws Exception { } @Test - void shouldReturnBlindedBlockContentsPostDeneb() throws Exception { + void shouldReturnBlindedBeaconBlockPostDeneb() throws Exception { spec = TestSpecFactory.createMinimalDeneb(); dataStructureUtil = new DataStructureUtil(spec); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - doReturn(SafeFuture.completedFuture(Optional.of(blindedBlockContents))) + final BeaconBlock blindedBeaconBLock = dataStructureUtil.randomBlindedBeaconBlock(ONE); + doReturn(SafeFuture.completedFuture(Optional.of(blindedBeaconBLock))) .when(validatorDataProvider) .getUnsignedBeaconBlockAtSlot(ONE, signature, Optional.empty(), isBlindedBlocks()); handler.handleRequest(request); - assertThat(request.getResponseBody()).isEqualTo(blindedBlockContents); + assertThat(request.getResponseBody()).isEqualTo(blindedBeaconBLock); } @Test diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlockTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlockTest.java index 2ff37743ddc..46ac20c2faf 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlockTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/PostBlindedBlockTest.java @@ -21,9 +21,7 @@ import tech.pegasys.teku.beaconrestapi.AbstractPostBlockTest; import tech.pegasys.teku.infrastructure.http.ContentTypes; import tech.pegasys.teku.infrastructure.restapi.endpoints.RestApiEndpoint; -import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; public class PostBlindedBlockTest extends AbstractPostBlockTest { @@ -49,18 +47,4 @@ void shouldAcceptBlindedBlockAsSsz() throws Exception { Optional.of(ContentTypes.OCTET_STREAM)); assertThat(result).isEqualTo(data); } - - @Test - void shouldAcceptBlindedBlockContentsAsSsz() throws Exception { - setupDeneb(); - final SignedBlindedBlockContents data = - dataStructureUtil.randomSignedBlindedBlockContents(UInt64.ONE); - final SignedBlindedBlockContents result = - handler - .getMetadata() - .getRequestBody( - new ByteArrayInputStream(data.sszSerialize().toArrayUnsafe()), - Optional.of(ContentTypes.OCTET_STREAM)); - assertThat(result).isEqualTo(data); - } } diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java index c7cb6583030..b84fcba7870 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v3/validator/GetNewBlockV3Test.java @@ -31,7 +31,6 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ZERO; import static tech.pegasys.teku.spec.SpecMilestone.ALTAIR; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; -import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import com.fasterxml.jackson.core.JsonProcessingException; @@ -57,7 +56,6 @@ import tech.pegasys.teku.spec.constants.EthConstants; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadResult; import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; @@ -90,7 +88,7 @@ public void setup(final TestSpecInvocationContextProvider.SpecContext specContex @TestTemplate void shouldHandleBlindedBeaconBlocks() throws Exception { - assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX).isLessThanOrEqualTo(CAPELLA); + assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX); final BeaconBlock blindedBeaconBlock = dataStructureUtil.randomBlindedBeaconBlock(ONE); final BlockContainerAndMetaData blockContainerAndMetaData = new BlockContainerAndMetaData<>( @@ -171,34 +169,6 @@ void shouldHandleUnBlindedBlockContentsPostDeneb() throws Exception { .isEqualTo(consensusBlockValue.toDecimalString()); } - @TestTemplate - void shouldHandleBlindedBlockContentsPostDeneb() throws Exception { - assumeThat(specMilestone).isGreaterThanOrEqualTo(DENEB); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - final BlockContainerAndMetaData blockContainerAndMetaData = - new BlockContainerAndMetaData<>( - blindedBlockContents, - spec.getGenesisSpec().getMilestone(), - executionPayloadValue, - consensusBlockValue); - doReturn(SafeFuture.completedFuture(Optional.of(blockContainerAndMetaData))) - .when(validatorDataProvider) - .produceBlock(ONE, signature, Optional.empty()); - - handler.handleRequest(request); - - assertThat(request.getResponseCode()).isEqualTo(HttpStatusCodes.SC_OK); - assertThat(request.getResponseBody()).isEqualTo(blockContainerAndMetaData); - assertThat(request.getHeader(HEADER_CONSENSUS_VERSION)) - .isEqualTo(Version.fromMilestone(blockContainerAndMetaData.specMilestone()).name()); - assertThat(request.getHeader(HEADER_EXECUTION_PAYLOAD_BLINDED)).isEqualTo("true"); - assertThat(request.getHeader(HEADER_EXECUTION_PAYLOAD_VALUE)) - .isEqualTo(executionPayloadValue.toDecimalString()); - assertThat(request.getHeader(HEADER_CONSENSUS_BLOCK_VALUE)) - .isEqualTo(consensusBlockValue.toDecimalString()); - } - @TestTemplate void shouldThrowExceptionWhenEmptyBlock() throws Exception { doReturn(SafeFuture.completedFuture(Optional.empty())) diff --git a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerBlockProductionManagerImplTest.java b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerBlockProductionManagerImplTest.java index 87a366fdb9e..66fd5cb93bc 100644 --- a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerBlockProductionManagerImplTest.java +++ b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerBlockProductionManagerImplTest.java @@ -42,7 +42,6 @@ import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlindedBlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.builder.BuilderBid; import tech.pegasys.teku.spec.datastructures.builder.BuilderPayload; import tech.pegasys.teku.spec.datastructures.builder.ExecutionPayloadAndBlobsBundle; @@ -284,7 +283,7 @@ public void postDeneb_builderOffline() throws Exception { final SafeFuture unblindedPayload = blockProductionManager.getUnblindedPayload( - dataStructureUtil.randomSignedBlindedBlockContents(slot)); + dataStructureUtil.randomSignedBlindedBeaconBlock(slot)); assertThat(unblindedPayload.get()).isEqualTo(localPayload); verifyNoMoreInteractions(builderClient); @@ -325,18 +324,18 @@ public void postDeneb_builderOnline() throws Exception { verifyBuilderCalled(slot, executionPayloadContext); verifyEngineCalled(executionPayloadContext, slot); - final SignedBlindedBlockContents signedBlindedBlockContents = - dataStructureUtil.randomSignedBlindedBlockContents(slot); + final SignedBeaconBlock signedBlindedBeaconBlock = + dataStructureUtil.randomSignedBlindedBeaconBlock(slot); final ExecutionPayloadAndBlobsBundle payloadAndBlobsBundle = - prepareBuilderGetPayloadResponseWithBlobs(signedBlindedBlockContents); + prepareBuilderGetPayloadResponseWithBlobs(signedBlindedBeaconBlock); // we expect result from the builder - assertThat(blockProductionManager.getUnblindedPayload(signedBlindedBlockContents)) + assertThat(blockProductionManager.getUnblindedPayload(signedBlindedBeaconBlock)) .isCompletedWithValue(payloadAndBlobsBundle); // we expect both builder and local engine have been called - verify(builderClient).getPayload(signedBlindedBlockContents.getSignedBlock()); + verify(builderClient).getPayload(signedBlindedBeaconBlock); verifyNoMoreInteractions(executionClientHandler); verifySourceCounter(Source.BUILDER, FallbackReason.NONE); } @@ -377,11 +376,10 @@ public void postDeneb_noBuilder() throws Exception { .contains(executionPayloadResult); // we will hit builder client by this call - final SignedBlindedBlockContents signedBlindedBlockContents = - dataStructureUtil.randomSignedBlindedBlockContents(slot); - assertThatThrownBy( - () -> blockProductionManager.getUnblindedPayload(signedBlindedBlockContents)); - verify(builderClient).getPayload(signedBlindedBlockContents.getSignedBlock()); + final SignedBeaconBlock signedBlindedBeaconBlock = + dataStructureUtil.randomSignedBlindedBeaconBlock(slot); + assertThatThrownBy(() -> blockProductionManager.getUnblindedPayload(signedBlindedBeaconBlock)); + verify(builderClient).getPayload(signedBlindedBeaconBlock); } private void setupDeneb() { diff --git a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerManagerImplTest.java b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerManagerImplTest.java index b399289b1cf..7688f5e2d15 100644 --- a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerManagerImplTest.java +++ b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ExecutionLayerManagerImplTest.java @@ -960,9 +960,7 @@ private void verifyFallbackToLocalEL( .orElse(fallbackData.getExecutionPayload()); final SignedBlockContainer signedBlindedBlockContainer = - fallbackData.getBlobsBundle().isPresent() - ? dataStructureUtil.randomSignedBlindedBlockContents(slot) - : dataStructureUtil.randomSignedBlindedBeaconBlock(slot); + dataStructureUtil.randomSignedBlindedBeaconBlock(slot); // we expect result from the cached payload assertThat( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/Spec.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/Spec.java index e9cdd9ba0cf..b706773f11e 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/Spec.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/Spec.java @@ -51,7 +51,6 @@ import tech.pegasys.teku.spec.constants.Domain; import tech.pegasys.teku.spec.datastructures.attestation.ValidatableAttestation; import tech.pegasys.teku.spec.datastructures.blobs.SignedBlobSidecarsUnblinder; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; @@ -446,12 +445,6 @@ public Bytes computeSigningRoot(BlobSidecarOld blobSidecar, Bytes32 domain) { return atSlot(blobSidecar.getSlot()).miscHelpers().computeSigningRoot(blobSidecar, domain); } - public Bytes computeSigningRoot(BlindedBlobSidecar blindedBlobSidecar, Bytes32 domain) { - return atSlot(blindedBlobSidecar.getSlot()) - .miscHelpers() - .computeSigningRoot(blindedBlobSidecar, domain); - } - public Bytes computeSigningRoot(BeaconBlockHeader blockHeader, Bytes32 domain) { return atSlot(blockHeader.getSlot()).miscHelpers().computeSigningRoot(blockHeader, domain); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlock.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlock.java index 5dacc202a67..72786f776f9 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlock.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlock.java @@ -27,7 +27,7 @@ public class BeaconBlock extends Container5 - implements BeaconBlockSummary, BlockContainer, BlindedBlockContainer { + implements BeaconBlockSummary, BlockContainer { BeaconBlock(final BeaconBlockSchema type, TreeNode backingNode) { super(type, backingNode); @@ -118,11 +118,6 @@ public BeaconBlock getBlock() { return this; } - @Override - public Optional toBlinded() { - return isBlinded() ? Optional.of(this) : Optional.empty(); - } - @Override public boolean isBlinded() { return getBody().isBlinded(); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlindedBlockContainer.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlindedBlockContainer.java deleted file mode 100644 index 81b665652e2..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlindedBlockContainer.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks; - -import java.util.List; -import java.util.Optional; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; - -public interface BlindedBlockContainer extends BlockContainer { - - default Optional> getBlindedBlobSidecars() { - return Optional.empty(); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlockContainer.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlockContainer.java index bcf349bbcce..0cfbf899898 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlockContainer.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/BlockContainer.java @@ -34,15 +34,12 @@ default UInt64 getSlot() { return getBlock().getSlot(); } + @Deprecated default Optional> getBlobSidecars() { return Optional.empty(); } - default Optional toBlinded() { - return Optional.empty(); - } - default boolean isBlinded() { - return toBlinded().isPresent(); + return getBlock().isBlinded(); } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockContainer.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockContainer.java index f4446344671..9f281570c41 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockContainer.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/SignedBlockContainer.java @@ -39,6 +39,7 @@ default Bytes32 getRoot() { return getSignedBlock().getRoot(); } + @Deprecated default Optional> getSignedBlobSidecars() { return Optional.empty(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContents.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContents.java deleted file mode 100644 index 6f4ede5a392..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContents.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import java.util.List; -import java.util.Optional; -import tech.pegasys.teku.infrastructure.ssz.SszList; -import tech.pegasys.teku.infrastructure.ssz.containers.Container2; -import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BlindedBlockContainer; - -public class BlindedBlockContents - extends Container2> - implements BlindedBlockContainer { - - BlindedBlockContents(final BlindedBlockContentsSchema type, final TreeNode backingNode) { - super(type, backingNode); - } - - public BlindedBlockContents( - final BlindedBlockContentsSchema schema, - final BeaconBlock beaconBlock, - final List blindedBlobSidecars) { - super( - schema, - beaconBlock, - schema.getBlindedBlobSidecarsSchema().createFromElements(blindedBlobSidecars)); - } - - @Override - public BeaconBlock getBlock() { - return getField0(); - } - - @Override - public Optional> getBlindedBlobSidecars() { - return Optional.of(getField1().asList()); - } - - @Override - public Optional toBlinded() { - return Optional.of(this); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsSchema.java deleted file mode 100644 index 682f1e0f907..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsSchema.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import java.util.List; -import tech.pegasys.teku.infrastructure.ssz.SszList; -import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; -import tech.pegasys.teku.infrastructure.ssz.schema.SszFieldName; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -import tech.pegasys.teku.spec.config.SpecConfigDeneb; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecarSchema; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockSchema; -import tech.pegasys.teku.spec.datastructures.blocks.BlockContainerSchema; - -public class BlindedBlockContentsSchema - extends ContainerSchema2> - implements BlockContainerSchema { - - static final SszFieldName FIELD_BLINDED_BLOB_SIDECARS = () -> "blinded_blob_sidecars"; - - BlindedBlockContentsSchema( - final String containerName, - final SpecConfigDeneb specConfig, - final BeaconBlockSchema beaconBlockSchema, - final BlindedBlobSidecarSchema blindedBlobSidecarSchema) { - super( - containerName, - namedSchema("blinded_block", beaconBlockSchema), - namedSchema( - FIELD_BLINDED_BLOB_SIDECARS, - SszListSchema.create(blindedBlobSidecarSchema, specConfig.getMaxBlobsPerBlock()))); - } - - public static BlindedBlockContentsSchema create( - final SpecConfigDeneb specConfig, - final BlindedBlobSidecarSchema blindedBlobSidecarSchema, - final BeaconBlockSchema beaconBlockSchema, - final String containerName) { - return new BlindedBlockContentsSchema( - containerName, specConfig, beaconBlockSchema, blindedBlobSidecarSchema); - } - - public BlindedBlockContents create( - final BeaconBlock beaconBlock, final List blindedBlobSidecars) { - return new BlindedBlockContents(this, beaconBlock, blindedBlobSidecars); - } - - @Override - public BlindedBlockContents createFromBackingNode(final TreeNode node) { - return new BlindedBlockContents(this, node); - } - - @SuppressWarnings("unchecked") - public SszListSchema getBlindedBlobSidecarsSchema() { - return (SszListSchema) - getChildSchema(getFieldIndex(FIELD_BLINDED_BLOB_SIDECARS)); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContents.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContents.java deleted file mode 100644 index 8597bbda47f..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContents.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import java.util.List; -import java.util.Optional; -import tech.pegasys.teku.infrastructure.ssz.SszList; -import tech.pegasys.teku.infrastructure.ssz.containers.Container2; -import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBlindedBlockContainer; - -public class SignedBlindedBlockContents - extends Container2< - SignedBlindedBlockContents, SignedBeaconBlock, SszList> - implements SignedBlindedBlockContainer { - - SignedBlindedBlockContents( - final SignedBlindedBlockContentsSchema type, final TreeNode backingNode) { - super(type, backingNode); - } - - public SignedBlindedBlockContents( - final SignedBlindedBlockContentsSchema schema, - final SignedBeaconBlock signedBeaconBlock, - final List signedBlindedBlobSidecars) { - super( - schema, - signedBeaconBlock, - schema.getSignedBlindedBlobSidecarsSchema().createFromElements(signedBlindedBlobSidecars)); - } - - @Override - public SignedBeaconBlock getSignedBlock() { - return getField0(); - } - - @Override - public Optional> getSignedBlindedBlobSidecars() { - return Optional.of(getField1().asList()); - } - - @Override - public Optional toBlinded() { - return Optional.of(this); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsSchema.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsSchema.java deleted file mode 100644 index 575d39559d9..00000000000 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsSchema.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import java.util.List; -import tech.pegasys.teku.infrastructure.ssz.SszList; -import tech.pegasys.teku.infrastructure.ssz.containers.ContainerSchema2; -import tech.pegasys.teku.infrastructure.ssz.schema.SszFieldName; -import tech.pegasys.teku.infrastructure.ssz.schema.SszListSchema; -import tech.pegasys.teku.infrastructure.ssz.tree.TreeNode; -import tech.pegasys.teku.spec.config.SpecConfigDeneb; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecarSchema; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlockSchema; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainerSchema; - -public class SignedBlindedBlockContentsSchema - extends ContainerSchema2< - SignedBlindedBlockContents, SignedBeaconBlock, SszList> - implements SignedBlockContainerSchema { - - static final SszFieldName FIELD_BLOB_SIDECARS = () -> "signed_blinded_blob_sidecars"; - - SignedBlindedBlockContentsSchema( - final String containerName, - final SpecConfigDeneb specConfig, - final SignedBeaconBlockSchema signedBeaconBlockSchema, - final SignedBlindedBlobSidecarSchema signedBlindedBlobSidecarSchema) { - super( - containerName, - namedSchema("signed_blinded_block", signedBeaconBlockSchema), - namedSchema( - FIELD_BLOB_SIDECARS, - SszListSchema.create( - signedBlindedBlobSidecarSchema, specConfig.getMaxBlobsPerBlock()))); - } - - public static SignedBlindedBlockContentsSchema create( - final SpecConfigDeneb specConfig, - final SignedBlindedBlobSidecarSchema signedBlindedBlobSidecarSchema, - final SignedBeaconBlockSchema signedBeaconBlockSchema, - final String containerName) { - return new SignedBlindedBlockContentsSchema( - containerName, specConfig, signedBeaconBlockSchema, signedBlindedBlobSidecarSchema); - } - - public SignedBlindedBlockContents create( - final SignedBeaconBlock signedBeaconBlock, - final List signedBlindedBlobSidecars) { - return new SignedBlindedBlockContents(this, signedBeaconBlock, signedBlindedBlobSidecars); - } - - @Override - public SignedBlindedBlockContents createFromBackingNode(final TreeNode node) { - return new SignedBlindedBlockContents(this, node); - } - - @SuppressWarnings("unchecked") - public SszListSchema getSignedBlindedBlobSidecarsSchema() { - return (SszListSchema) getFieldSchema1(); - } -} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsDeneb.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsDeneb.java index 5723aab1048..adbf2528d55 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsDeneb.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/schemas/SchemaDefinitionsDeneb.java @@ -39,9 +39,7 @@ import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BeaconBlockBodySchemaDenebImpl; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BlindedBeaconBlockBodySchemaDeneb; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BlindedBeaconBlockBodySchemaDenebImpl; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContentsSchema; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContentsSchema; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContentsSchema; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContentsSchema; import tech.pegasys.teku.spec.datastructures.builder.BlobsBundleSchema; import tech.pegasys.teku.spec.datastructures.builder.BuilderBidSchema; @@ -89,8 +87,6 @@ public class SchemaDefinitionsDeneb extends SchemaDefinitionsCapella { private final SignedBlindedBlobSidecarSchema signedBlindedBlobSidecarSchema; private final BlockContentsSchema blockContentsSchema; private final SignedBlockContentsSchema signedBlockContentsSchema; - private final BlindedBlockContentsSchema blindedBlockContentsSchema; - private final SignedBlindedBlockContentsSchema signedBlindedBlockContentsSchema; private final BlobsBundleSchema blobsBundleSchema; private final ExecutionPayloadAndBlobsBundleSchema executionPayloadAndBlobsBundleSchema; private final BlobSidecarsByRootRequestMessageSchema blobSidecarsByRootRequestMessageSchema; @@ -153,18 +149,6 @@ public SchemaDefinitionsDeneb(final SpecConfigDeneb specConfig) { signedBlobSidecarOldSchema, signedBeaconBlockSchema, "SignedBlockContentsDeneb"); - this.blindedBlockContentsSchema = - BlindedBlockContentsSchema.create( - specConfig, - blindedBlobSidecarSchema, - blindedBeaconBlockSchema, - "BlindedBlockContentsDeneb"); - this.signedBlindedBlockContentsSchema = - SignedBlindedBlockContentsSchema.create( - specConfig, - signedBlindedBlobSidecarSchema, - signedBlindedBeaconBlockSchema, - "SignedBlindedBlockContentsDeneb"); this.blobsBundleSchema = new BlobsBundleSchema("BlobsBundleDeneb", blobSchema, blobKzgCommitmentsSchema, specConfig); this.executionPayloadAndBlobsBundleSchema = @@ -225,7 +209,7 @@ public BlockContainerSchema getBlockContainerSchema() { @Override public BlockContainerSchema getBlindedBlockContainerSchema() { - return getBlindedBlockContentsSchema().castTypeToBlockContainer(); + return getBlindedBeaconBlockSchema().castTypeToBlockContainer(); } @Override @@ -235,7 +219,7 @@ public SignedBlockContainerSchema getSignedBlockContainerS @Override public SignedBlockContainerSchema getSignedBlindedBlockContainerSchema() { - return getSignedBlindedBlockContentsSchema().castTypeToSignedBlockContainer(); + return getSignedBlindedBeaconBlockSchema().castTypeToSignedBlockContainer(); } @Override @@ -299,18 +283,10 @@ public BlockContentsSchema getBlockContentsSchema() { return blockContentsSchema; } - public BlindedBlockContentsSchema getBlindedBlockContentsSchema() { - return blindedBlockContentsSchema; - } - public SignedBlockContentsSchema getSignedBlockContentsSchema() { return signedBlockContentsSchema; } - public SignedBlindedBlockContentsSchema getSignedBlindedBlockContentsSchema() { - return signedBlindedBlockContentsSchema; - } - public BlobsBundleSchema getBlobsBundleSchema() { return blobsBundleSchema; } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/DeletableSigner.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/DeletableSigner.java index 180a07d4ee5..d37a75a8382 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/DeletableSigner.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/DeletableSigner.java @@ -23,8 +23,6 @@ import tech.pegasys.teku.infrastructure.async.ExceptionThrowingFutureSupplier; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -65,18 +63,6 @@ public SafeFuture signBlock(final BeaconBlock block, final ForkInf return sign(() -> delegate.signBlock(block, forkInfo)); } - @Override - public SafeFuture signBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - return sign(() -> delegate.signBlobSidecar(blobSidecar, forkInfo)); - } - - @Override - public SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - return sign(() -> delegate.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)); - } - @Override public SafeFuture signAttestationData( final AttestationData attestationData, final ForkInfo forkInfo) { diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/LocalSigner.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/LocalSigner.java index 8ce49fb024a..df5a1beed7f 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/LocalSigner.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/LocalSigner.java @@ -25,8 +25,6 @@ import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -124,18 +122,6 @@ public SafeFuture signValidatorRegistration( return sign(signingRootUtil.signingRootForValidatorRegistration(validatorRegistration)); } - @Override - public SafeFuture signBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - return sign(signingRootUtil.signingRootForBlobSidecar(blobSidecar, forkInfo)); - } - - @Override - public SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - return sign(signingRootUtil.signingRootForBlindedBlobSidecar(blindedBlobSidecar, forkInfo)); - } - private SafeFuture signingRootFromSyncCommitteeUtils( final UInt64 slot, final Function createSigningRoot) { return SafeFuture.of(() -> createSigningRoot.apply(spec.getSyncCommitteeUtilRequired(slot))); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/Signer.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/Signer.java index bff05f62769..89246a2375f 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/Signer.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/Signer.java @@ -19,8 +19,6 @@ import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -38,11 +36,6 @@ public interface Signer { SafeFuture signBlock(BeaconBlock block, ForkInfo forkInfo); - SafeFuture signBlobSidecar(BlobSidecarOld blobSidecar, ForkInfo forkInfo); - - SafeFuture signBlindedBlobSidecar( - BlindedBlobSidecar blindedBlobSidecar, ForkInfo forkInfo); - SafeFuture signAttestationData(AttestationData attestationData, ForkInfo forkInfo); SafeFuture signAggregationSlot(UInt64 slot, ForkInfo forkInfo); diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SigningRootUtil.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SigningRootUtil.java index 1f8185d39cf..2f31b262822 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SigningRootUtil.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SigningRootUtil.java @@ -19,8 +19,6 @@ import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.SpecVersion; import tech.pegasys.teku.spec.constants.Domain; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlockHeader; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; @@ -49,28 +47,6 @@ public Bytes signingRootForSignBlock(final BeaconBlock block, final ForkInfo for return spec.computeSigningRoot(block, getDomainForSignBlock(block.getSlot(), forkInfo)); } - public Bytes signingRootForBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - final Bytes32 domain = - spec.getDomain( - Domain.DOMAIN_BLOB_SIDECAR, - spec.computeEpochAtSlot(blobSidecar.getSlot()), - forkInfo.getFork(), - forkInfo.getGenesisValidatorsRoot()); - return spec.computeSigningRoot(blobSidecar, domain); - } - - public Bytes signingRootForBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - final Bytes32 domain = - spec.getDomain( - Domain.DOMAIN_BLOB_SIDECAR, - spec.computeEpochAtSlot(blindedBlobSidecar.getSlot()), - forkInfo.getFork(), - forkInfo.getGenesisValidatorsRoot()); - return spec.computeSigningRoot(blindedBlobSidecar, domain); - } - public Bytes signingRootForSignBlockHeader( final BeaconBlockHeader blockHeader, final ForkInfo forkInfo) { return spec.computeSigningRoot( diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSigner.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSigner.java index 1d7d1f97fa5..635dcc9eb58 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSigner.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSigner.java @@ -22,8 +22,6 @@ import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -65,18 +63,6 @@ public SafeFuture signBlock(final BeaconBlock block, final ForkInf .thenCompose(__ -> delegate.signBlock(block, forkInfo)); } - @Override - public SafeFuture signBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - return delegate.signBlobSidecar(blobSidecar, forkInfo); - } - - @Override - public SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - return delegate.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo); - } - @Override public SafeFuture signAttestationData( final AttestationData attestationData, final ForkInfo forkInfo) { diff --git a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsPropertyTest.java b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsPropertyTest.java index 79b14b816b7..cceb307a0e8 100644 --- a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsPropertyTest.java +++ b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsPropertyTest.java @@ -17,13 +17,11 @@ import net.jqwik.api.ForAll; import net.jqwik.api.Property; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.propertytest.suppliers.blocks.BeaconBlockSupplier; import tech.pegasys.teku.spec.propertytest.suppliers.blocks.SignedBeaconBlockSupplier; import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.bellatrix.BlindedBeaconBlockSupplier; import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.bellatrix.SignedBlindedBeaconBlockSupplier; -import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb.SignedBlindedBlockContentsSupplier; import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb.SignedBlockContentsSupplier; public class BeaconBlockInvariantsPropertyTest { @@ -70,14 +68,4 @@ void extractSlotFromSignedBlockContents( signedBlockContents.sszSerialize())) .isEqualTo(signedBlockContents.getSlot()); } - - @Property - void extractSlotFromSignedBlindedBlockContents( - @ForAll(supplier = SignedBlindedBlockContentsSupplier.class) - final SignedBlindedBlockContents signedBlindedBlockContents) { - assertThat( - BeaconBlockInvariants.extractSignedBlockContainerSlot( - signedBlindedBlockContents.sszSerialize())) - .isEqualTo(signedBlindedBlockContents.getSlot()); - } } diff --git a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsPropertyTest.java b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsPropertyTest.java deleted file mode 100644 index 61e551430e4..00000000000 --- a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/BlindedBlockContentsPropertyTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import static tech.pegasys.teku.spec.propertytest.util.PropertyTestHelper.assertDeserializeMutatedThrowsExpected; -import static tech.pegasys.teku.spec.propertytest.util.PropertyTestHelper.assertRoundTrip; - -import com.fasterxml.jackson.core.JsonProcessingException; -import net.jqwik.api.ForAll; -import net.jqwik.api.Property; -import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb.BlindedBlockContentsSupplier; - -public class BlindedBlockContentsPropertyTest { - - @Property - void roundTrip( - @ForAll(supplier = BlindedBlockContentsSupplier.class) - final BlindedBlockContents blindedBlockContents) - throws JsonProcessingException { - assertRoundTrip(blindedBlockContents); - } - - @Property - void deserializeMutated( - @ForAll(supplier = BlindedBlockContentsSupplier.class) - final BlindedBlockContents blindedBlockContents, - @ForAll final int seed) { - assertDeserializeMutatedThrowsExpected(blindedBlockContents, seed); - } -} diff --git a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsPropertyTest.java b/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsPropertyTest.java deleted file mode 100644 index ee851ab5074..00000000000 --- a/ethereum/spec/src/property-test/java/tech/pegasys/teku/spec/datastructures/blocks/versions/deneb/SignedBlindedBlockContentsPropertyTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.datastructures.blocks.versions.deneb; - -import static tech.pegasys.teku.spec.propertytest.util.PropertyTestHelper.assertDeserializeMutatedThrowsExpected; -import static tech.pegasys.teku.spec.propertytest.util.PropertyTestHelper.assertRoundTrip; - -import com.fasterxml.jackson.core.JsonProcessingException; -import net.jqwik.api.ForAll; -import net.jqwik.api.Property; -import tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb.SignedBlindedBlockContentsSupplier; - -public class SignedBlindedBlockContentsPropertyTest { - - @Property - void roundTrip( - @ForAll(supplier = SignedBlindedBlockContentsSupplier.class) - final SignedBlindedBlockContents signedBlindedBlockContents) - throws JsonProcessingException { - assertRoundTrip(signedBlindedBlockContents); - } - - @Property - void deserializeMutated( - @ForAll(supplier = SignedBlindedBlockContentsSupplier.class) - final SignedBlindedBlockContents signedBlindedBlockContents, - @ForAll final int seed) { - assertDeserializeMutatedThrowsExpected(signedBlindedBlockContents, seed); - } -} diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsTest.java index 6b7d16c44f8..b5a803a6e0b 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/BeaconBlockInvariantsTest.java @@ -23,7 +23,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.SpecMilestone; import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.networks.Eth2Network; import tech.pegasys.teku.spec.util.DataStructureUtil; @@ -71,17 +70,6 @@ void shouldExtractSlotFromSignedBlockContents(final UInt64 slot) { .isEqualTo(slot); } - @ParameterizedTest - @MethodSource("slotNumbers") - void shouldExtractSlotFromSignedBlindedBlockContents(final UInt64 slot) { - final SignedBlindedBlockContents blindedBlockContents = - dataStructureUtil.randomSignedBlindedBlockContents(slot); - assertThat( - BeaconBlockInvariants.extractSignedBlockContainerSlot( - blindedBlockContents.sszSerialize())) - .isEqualTo(slot); - } - @ParameterizedTest @MethodSource("blocksFromMilestones") void shouldExtractSlotFromAllMilestones(final SignedBeaconBlock block) { diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/BlindBlockUtilTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/BlindBlockUtilTest.java index 2c283a46c41..f74e62fbf65 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/BlindBlockUtilTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/logic/common/util/BlindBlockUtilTest.java @@ -24,20 +24,17 @@ import tech.pegasys.teku.spec.TestSpecContext; import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBlindedBlockContainer; import tech.pegasys.teku.spec.util.DataStructureUtil; @TestSpecContext(milestone = {SpecMilestone.BELLATRIX, SpecMilestone.CAPELLA, SpecMilestone.DENEB}) class BlindBlockUtilTest { - private SpecMilestone specMilestone; private DataStructureUtil dataStructureUtil; private BlindBlockUtil blindBlockUtil; @BeforeEach void setUp(final SpecContext specContext) { final Spec spec = specContext.getSpec(); - specMilestone = specContext.getSpecMilestone(); dataStructureUtil = specContext.getDataStructureUtil(); final SpecVersion specVersion = spec.forMilestone(specContext.getSpecMilestone()); blindBlockUtil = specVersion.getBlindBlockUtil().orElseThrow(); @@ -56,17 +53,9 @@ void shouldBlindAndUnblindBlock() { assertThat(signedBlindedBeaconBlock.getMessage().getBody().getOptionalExecutionPayloadHeader()) .isNotEmpty(); - final SignedBlindedBlockContainer signedBlindedBlockContainer; - if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.DENEB)) { - signedBlindedBlockContainer = - dataStructureUtil.randomSignedBlindedBlockContents(signedBlindedBeaconBlock); - } else { - signedBlindedBlockContainer = signedBlindedBeaconBlock; - } - final SafeFuture signedBeaconBlockSafeFuture = blindBlockUtil.unblindSignedBeaconBlock( - signedBlindedBlockContainer, + signedBlindedBeaconBlock, unblinder -> unblinder.setExecutionPayloadSupplier( () -> diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/DeletableSignerTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/DeletableSignerTest.java index fee8da66755..0341f4c79c0 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/DeletableSignerTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/DeletableSignerTest.java @@ -30,8 +30,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -46,8 +44,6 @@ public class DeletableSignerTest { private final Spec spec = TestSpecFactory.createMinimalAltair(); private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); - private final DataStructureUtil dataStructureUtilDeneb = - new DataStructureUtil(TestSpecFactory.createMinimalDeneb()); final SyncCommitteeUtil syncCommitteeUtil = spec.getSyncCommitteeUtilRequired(UInt64.ONE); private final ForkInfo forkInfo = dataStructureUtil.randomForkInfo(); @@ -73,44 +69,6 @@ void signBlock_shouldNotSignWhenDisabled() { verify(delegate, never()).signBlock(block, forkInfo); } - @Test - void signBlobSidecar_shouldSignWhenActive() { - final BeaconBlock block = dataStructureUtilDeneb.randomBeaconBlock(6); - final BlobSidecarOld blobSidecar = - dataStructureUtilDeneb.randomBlobSidecarOld(block.getRoot(), UInt64.valueOf(2)); - when(delegate.signBlobSidecar(blobSidecar, forkInfo)).thenReturn(signatureFuture); - assertThatSafeFuture(signer.signBlobSidecar(blobSidecar, forkInfo)) - .isCompletedWithValue(signature); - } - - @Test - void signBlobSidecar_shouldNotSignWhenDisabled() { - final BeaconBlock block = dataStructureUtilDeneb.randomBeaconBlock(6); - final BlobSidecarOld blobSidecar = - dataStructureUtilDeneb.randomBlobSidecarOld(block.getRoot(), UInt64.valueOf(2)); - signer.delete(); - assertThatSafeFuture(signer.signBlobSidecar(blobSidecar, forkInfo)) - .isCompletedExceptionallyWith(SignerNotActiveException.class); - verify(delegate, never()).signBlobSidecar(blobSidecar, forkInfo); - } - - @Test - void signBlindedBlobSidecar_shouldSignWhenActive() { - final BlindedBlobSidecar blindedBlobSidecar = dataStructureUtilDeneb.randomBlindedBlobSidecar(); - when(delegate.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)).thenReturn(signatureFuture); - assertThatSafeFuture(signer.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)) - .isCompletedWithValue(signature); - } - - @Test - void signBlindedBlobSidecar_shouldNotSignWhenDisabled() { - final BlindedBlobSidecar blindedBlobSidecar = dataStructureUtilDeneb.randomBlindedBlobSidecar(); - signer.delete(); - assertThatSafeFuture(signer.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)) - .isCompletedExceptionallyWith(SignerNotActiveException.class); - verify(delegate, never()).signBlindedBlobSidecar(blindedBlobSidecar, forkInfo); - } - @Test void createRandaoReveal_shouldCreateWhenActive() { when(delegate.createRandaoReveal(UInt64.ONE, forkInfo)).thenReturn(signatureFuture); diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/LocalSignerTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/LocalSignerTest.java index ad749194904..3ed9e55604a 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/LocalSignerTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/LocalSignerTest.java @@ -25,8 +25,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -88,58 +86,6 @@ public void shouldSignBlindedBlock() { .isCompletedWithValue(expectedSignature); } - @Test - public void shouldSignBlobSidecar() { - final UInt64 slot = UInt64.valueOf(10); - final BeaconBlock block = dataStructureUtilDeneb.randomBlindedBeaconBlock(slot); - final BlobSidecarOld blobSidecar = - dataStructureUtilDeneb - .createRandomBlobSidecarBuilder() - .forBlock(block) - .index(UInt64.valueOf(2)) - .build(); - final BLSSignature expectedSignature = - BLSSignature.fromBytesCompressed( - Bytes.fromBase64String( - "g2gwxuzLti3gnykvswX9BazzZjOJKDJPsPdKAueMe3Q18vKlQ6mr2P+z2XDZgHzZEFkCgGpAa6bbmB/NxSNywI8tJsy0ecrgFfX0uIK1CJpfnpboU8L4F3rqaVj/rGhh")); - - final SafeFuture result = signer.signBlobSidecar(blobSidecar, fork); - asyncRunner.executeQueuedActions(); - - assertThat(result) - .withFailMessage( - "expected: %s\nbut was: %s", - expectedSignature.toBytesCompressed().toBase64String(), - result.getImmediately().toBytesCompressed().toBase64String()) - .isCompletedWithValue(expectedSignature); - } - - @Test - public void shouldSignBlindedBlobSidecar() { - final UInt64 slot = UInt64.valueOf(10); - final BeaconBlock block = dataStructureUtilDeneb.randomBlindedBeaconBlock(slot); - final BlindedBlobSidecar blindedBlobSidecar = - dataStructureUtilDeneb - .createRandomBlobSidecarBuilder() - .forBlock(block) - .index(UInt64.valueOf(2)) - .buildBlinded(); - final BLSSignature expectedSignature = - BLSSignature.fromBytesCompressed( - Bytes.fromBase64String( - "g2gwxuzLti3gnykvswX9BazzZjOJKDJPsPdKAueMe3Q18vKlQ6mr2P+z2XDZgHzZEFkCgGpAa6bbmB/NxSNywI8tJsy0ecrgFfX0uIK1CJpfnpboU8L4F3rqaVj/rGhh")); - - final SafeFuture result = signer.signBlindedBlobSidecar(blindedBlobSidecar, fork); - asyncRunner.executeQueuedActions(); - - assertThat(result) - .withFailMessage( - "expected: %s\nbut was: %s", - expectedSignature.toBytesCompressed().toBase64String(), - result.getImmediately().toBytesCompressed().toBase64String()) - .isCompletedWithValue(expectedSignature); - } - @Test public void shouldCreateRandaoReveal() { final BLSSignature expectedSignature = diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSignerTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSignerTest.java index b872fed63e1..f338afc224b 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSignerTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/signatures/SlashingProtectedSignerTest.java @@ -25,8 +25,6 @@ import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -39,9 +37,6 @@ class SlashingProtectedSignerTest { private final DataStructureUtil dataStructureUtil = new DataStructureUtil(TestSpecFactory.createMinimalAltair()); - private final DataStructureUtil dataStructureUtilDeneb = - new DataStructureUtil(TestSpecFactory.createMinimalDeneb()); - private final BLSPublicKey publicKey = dataStructureUtil.randomPublicKey(); private final ForkInfo forkInfo = dataStructureUtil.randomForkInfo(); private final BLSSignature signature = dataStructureUtil.randomSignature(); @@ -75,24 +70,6 @@ void signBlock_shouldNotSignWhenSlashingProtectionRejects() { .isCompletedExceptionallyWith(SlashableConditionException.class); } - @Test - void signBlobSidecar_shouldAlwaysSign() { - final BeaconBlock block = dataStructureUtilDeneb.randomBeaconBlock(6); - final BlobSidecarOld blobSidecar = - dataStructureUtilDeneb.randomBlobSidecarOld(block.getRoot(), UInt64.valueOf(2)); - when(delegate.signBlobSidecar(blobSidecar, forkInfo)).thenReturn(signatureFuture); - assertThatSafeFuture(signer.signBlobSidecar(blobSidecar, forkInfo)) - .isCompletedWithValue(signature); - } - - @Test - void signBlindedBlobSidecar_shouldAlwaysSign() { - final BlindedBlobSidecar blindedBlobSidecar = dataStructureUtilDeneb.randomBlindedBlobSidecar(); - when(delegate.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)).thenReturn(signatureFuture); - assertThatSafeFuture(signer.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo)) - .isCompletedWithValue(signature); - } - @Test void signAttestationData_shouldSignWhenSlashingProtectionAllowsIt() { final AttestationData attestationData = dataStructureUtil.randomAttestationData(); diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/signatures/NoOpSigner.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/signatures/NoOpSigner.java index 779f5f7a85f..05f6de611f2 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/signatures/NoOpSigner.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/generator/signatures/NoOpSigner.java @@ -19,8 +19,6 @@ import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -48,18 +46,6 @@ public SafeFuture signBlock(final BeaconBlock block, final ForkInf return new SafeFuture<>(); } - @Override - public SafeFuture signBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - return new SafeFuture<>(); - } - - @Override - public SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - return new SafeFuture<>(); - } - @Override public SafeFuture signAttestationData( final AttestationData attestationData, final ForkInfo forkInfo) { diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/BlindedBlockContentsSupplier.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/BlindedBlockContentsSupplier.java deleted file mode 100644 index d8161e48d2b..00000000000 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/BlindedBlockContentsSupplier.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb; - -import tech.pegasys.teku.spec.SpecMilestone; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; -import tech.pegasys.teku.spec.propertytest.suppliers.DataStructureUtilSupplier; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class BlindedBlockContentsSupplier extends DataStructureUtilSupplier { - - public BlindedBlockContentsSupplier() { - super(DataStructureUtil::randomBlindedBlockContents, SpecMilestone.DENEB); - } -} diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/SignedBlindedBlockContentsSupplier.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/SignedBlindedBlockContentsSupplier.java deleted file mode 100644 index 33e3e1fd0b6..00000000000 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/propertytest/suppliers/blocks/versions/deneb/SignedBlindedBlockContentsSupplier.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.spec.propertytest.suppliers.blocks.versions.deneb; - -import tech.pegasys.teku.spec.SpecMilestone; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; -import tech.pegasys.teku.spec.propertytest.suppliers.DataStructureUtilSupplier; -import tech.pegasys.teku.spec.util.DataStructureUtil; - -public class SignedBlindedBlockContentsSupplier - extends DataStructureUtilSupplier { - - public SignedBlindedBlockContentsSupplier() { - super(DataStructureUtil::randomSignedBlindedBlockContents, SpecMilestone.DENEB); - } -} diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java index 91c5cd9c9c0..46886b725df 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/util/DataStructureUtil.java @@ -112,9 +112,7 @@ import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregate; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregateSchema; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.deneb.BeaconBlockBodyDeneb; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.builder.BlobsBundleSchema; import tech.pegasys.teku.spec.datastructures.builder.BuilderBid; @@ -1807,20 +1805,13 @@ public BeaconState randomBeaconState(final int validatorCount, final int numItem ? extends AbstractBeaconStateBuilder> stateBuilder( final SpecMilestone milestone, final int validatorCount, final int numItemsInSszLists) { - switch (milestone) { - case PHASE0: - return stateBuilderPhase0(validatorCount, numItemsInSszLists); - case ALTAIR: - return stateBuilderAltair(validatorCount, numItemsInSszLists); - case BELLATRIX: - return stateBuilderBellatrix(validatorCount, numItemsInSszLists); - case CAPELLA: - return stateBuilderCapella(validatorCount, numItemsInSszLists); - case DENEB: - return stateBuilderDeneb(validatorCount, numItemsInSszLists); - default: - throw new IllegalArgumentException("Unsupported milestone: " + milestone); - } + return switch (milestone) { + case PHASE0 -> stateBuilderPhase0(validatorCount, numItemsInSszLists); + case ALTAIR -> stateBuilderAltair(validatorCount, numItemsInSszLists); + case BELLATRIX -> stateBuilderBellatrix(validatorCount, numItemsInSszLists); + case CAPELLA -> stateBuilderCapella(validatorCount, numItemsInSszLists); + case DENEB -> stateBuilderDeneb(validatorCount, numItemsInSszLists); + }; } public BeaconStateBuilderPhase0 stateBuilderPhase0() { @@ -2340,42 +2331,6 @@ public BlockContents randomBlockContents(final UInt64 slot) { .create(beaconBlock, blobSidecarList); } - public BlindedBlockContents randomBlindedBlockContents() { - return randomBlindedBlockContents(randomSlot()); - } - - public BlindedBlockContents randomBlindedBlockContents(final UInt64 slot) { - final List blindedBlobSidecars = - randomBlindedBlobSidecars(randomNumberOfBlobsPerBlock()); - final BeaconBlock blindedBeaconBlock = randomBlindedBeaconBlock(slot); - return getDenebSchemaDefinitions(slot) - .getBlindedBlockContentsSchema() - .create(blindedBeaconBlock, blindedBlobSidecars); - } - - public SignedBlindedBlockContents randomSignedBlindedBlockContents() { - return randomSignedBlindedBlockContents(randomSlot()); - } - - public SignedBlindedBlockContents randomSignedBlindedBlockContents( - final SignedBeaconBlock signedBlindedBeaconBlock) { - final UInt64 slot = signedBlindedBeaconBlock.getSlot(); - return getDenebSchemaDefinitions(slot) - .getSignedBlindedBlockContentsSchema() - .create( - signedBlindedBeaconBlock, - randomSignedBlindedBlobSidecars(randomNumberOfBlobsPerBlock())); - } - - public SignedBlindedBlockContents randomSignedBlindedBlockContents(final UInt64 slot) { - final List signedBlindedBlobSidecars = - randomSignedBlindedBlobSidecars(randomNumberOfBlobsPerBlock()); - final SignedBeaconBlock signedBlindedBeaconBlock = randomSignedBlindedBeaconBlock(slot); - return getDenebSchemaDefinitions(slot) - .getSignedBlindedBlockContentsSchema() - .create(signedBlindedBeaconBlock, signedBlindedBlobSidecars); - } - public SignedBlobSidecarOld randomSignedBlobSidecar(final UInt64 index) { return new RandomBlobSidecarOldBuilder().index(index).buildSigned(); } diff --git a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerDenebIntegrationTest.java b/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerDenebIntegrationTest.java deleted file mode 100644 index 062499888cf..00000000000 --- a/validator/client/src/integration-test/java/tech/pegasys/teku/validator/client/signer/ExternalSignerDenebIntegrationTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright Consensys Software Inc., 2023 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package tech.pegasys.teku.validator.client.signer; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockserver.model.HttpRequest.request; -import static org.mockserver.model.HttpResponse.response; -import static tech.pegasys.teku.api.schema.deneb.BlindedBlobSidecar.fromInternalBlindedBlobSidecar; -import static tech.pegasys.teku.api.schema.deneb.BlindedBlobSidecar.fromInternalBlobSidecar; -import static tech.pegasys.teku.validator.client.signer.ExternalSignerTestUtil.createForkInfo; -import static tech.pegasys.teku.validator.client.signer.ExternalSignerTestUtil.validateMetrics; -import static tech.pegasys.teku.validator.client.signer.ExternalSignerTestUtil.verifySignRequest; - -import java.util.Map; -import org.apache.tuweni.bytes.Bytes; -import org.junit.jupiter.api.Test; -import tech.pegasys.teku.bls.BLSSignature; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; - -public class ExternalSignerDenebIntegrationTest extends AbstractExternalSignerIntegrationTest { - - @Override - public Spec getSpec() { - return TestSpecFactory.createMinimalDeneb(); - } - - @Test - void shouldSignBlobSidecar() throws Exception { - final BlobSidecarOld blobSidecar = dataStructureUtil.randomBlobSidecarOld(); - final BLSSignature expectedSignature = - BLSSignature.fromBytesCompressed( - Bytes.fromBase64String( - "luIZGEgsjSbFo4MEPVeqaqqm1AnnTODcxFy9gPmdAywVmDIpqkzYed8DJ2l4zx5WAejUTox+NO5HQ4M2APMNovd7FuqnCSVUEftrL4WtJqegPrING2ZCtVTrcaUzFpUQ")); - client.when(request()).respond(response().withBody(expectedSignature.toString())); - - final BLSSignature response = externalSigner.signBlobSidecar(blobSidecar, forkInfo).join(); - assertThat(response).isEqualTo(expectedSignature); - - final Bytes signingRoot = signingRootUtil.signingRootForBlobSidecar(blobSidecar, forkInfo); - final SignType signtype = SignType.BLOB_SIDECAR; - final Map metadata = - Map.of( - "fork_info", - createForkInfo(forkInfo), - "blob_sidecar", - fromInternalBlobSidecar(blobSidecar)); - final SigningRequestBody signingRequestBody = - new SigningRequestBody(signingRoot, signtype, metadata); - verifySignRequest(client, KEYPAIR.getPublicKey().toString(), signingRequestBody); - validateMetrics(metricsSystem, 1, 0, 0); - } - - @Test - void shouldSignBlindedBlobSidecar() throws Exception { - final BlindedBlobSidecar blindedBlobSidecar = dataStructureUtil.randomBlindedBlobSidecar(); - final BLSSignature expectedSignature = - BLSSignature.fromBytesCompressed( - Bytes.fromBase64String( - "luIZGEgsjSbFo4MEPVeqaqqm1AnnTODcxFy9gPmdAywVmDIpqkzYed8DJ2l4zx5WAejUTox+NO5HQ4M2APMNovd7FuqnCSVUEftrL4WtJqegPrING2ZCtVTrcaUzFpUQ")); - client.when(request()).respond(response().withBody(expectedSignature.toString())); - - final BLSSignature response = - externalSigner.signBlindedBlobSidecar(blindedBlobSidecar, forkInfo).join(); - assertThat(response).isEqualTo(expectedSignature); - - final Bytes signingRoot = - signingRootUtil.signingRootForBlindedBlobSidecar(blindedBlobSidecar, forkInfo); - final SignType signtype = SignType.BLOB_SIDECAR; - final Map metadata = - Map.of( - "fork_info", - createForkInfo(forkInfo), - "blob_sidecar", - fromInternalBlindedBlobSidecar(blindedBlobSidecar)); - final SigningRequestBody signingRequestBody = - new SigningRequestBody(signingRoot, signtype, metadata); - verifySignRequest(client, KEYPAIR.getPublicKey().toString(), signingRequestBody); - validateMetrics(metricsSystem, 1, 0, 0); - } -} diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/BlockContainerSignerDeneb.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/BlockContainerSignerDeneb.java index 9917d71c3e5..0c0a7dae461 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/BlockContainerSignerDeneb.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/BlockContainerSignerDeneb.java @@ -13,14 +13,9 @@ package tech.pegasys.teku.validator.client.signer; -import java.util.Collections; import java.util.List; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; @@ -46,43 +41,21 @@ public SafeFuture sign( final Validator validator, final ForkInfo forkInfo) { final BeaconBlock unsignedBlock = unsignedBlockContainer.getBlock(); - return unsignedBlockContainer - .toBlinded() - .map( - // Blinded flow - blindedBlockContainer -> { - final List blindedBlobSidecars = - blindedBlockContainer.getBlindedBlobSidecars().orElse(Collections.emptyList()); - return signBlock(unsignedBlock, validator, forkInfo) - .thenCombine( - signBlindedBlobSidecars(blindedBlobSidecars, validator, forkInfo), - this::createSignedBlindedBlockContents); - }) - .orElseGet( - // Unblinded flow - () -> { - final List blobSidecars = - unsignedBlockContainer.getBlobSidecars().orElse(Collections.emptyList()); - return signBlock(unsignedBlock, validator, forkInfo) - .thenCombine( - signBlobSidecars(blobSidecars, validator, forkInfo), - this::createSignedBlockContents); + return signBlock(unsignedBlock, validator, forkInfo) + .thenApply( + signedBlock -> { + // Blinded flow + if (signedBlock.isBlinded()) { + return signedBlock; + } + // Unblinded flow + // TODO: add proofs and blobs + return schemaDefinitions + .getSignedBlockContentsSchema() + .create(signedBlock, List.of()); }); } - private SignedBlockContainer createSignedBlockContents( - final SignedBeaconBlock signedBlock, final List signedBlobSidecars) { - return schemaDefinitions.getSignedBlockContentsSchema().create(signedBlock, signedBlobSidecars); - } - - private SignedBlockContainer createSignedBlindedBlockContents( - final SignedBeaconBlock signedBlock, - final List signedBlindedBlobSidecars) { - return schemaDefinitions - .getSignedBlindedBlockContentsSchema() - .create(signedBlock, signedBlindedBlobSidecars); - } - private SafeFuture signBlock( final BeaconBlock unsignedBlock, final Validator validator, final ForkInfo forkInfo) { return validator @@ -90,52 +63,4 @@ private SafeFuture signBlock( .signBlock(unsignedBlock, forkInfo) .thenApply(signature -> SignedBeaconBlock.create(spec, unsignedBlock, signature)); } - - private SafeFuture> signBlobSidecars( - final List unsignedBlobSidecars, - final Validator validator, - final ForkInfo forkInfo) { - return SafeFuture.collectAll( - unsignedBlobSidecars.stream() - .map(unsignedBlobSidecar -> signBlobSidecar(unsignedBlobSidecar, validator, forkInfo))); - } - - private SafeFuture signBlobSidecar( - final BlobSidecarOld unsignedBlobSidecar, - final Validator validator, - final ForkInfo forkInfo) { - return validator - .getSigner() - .signBlobSidecar(unsignedBlobSidecar, forkInfo) - .thenApply( - signature -> - schemaDefinitions - .getSignedBlobSidecarOldSchema() - .create(unsignedBlobSidecar, signature)); - } - - private SafeFuture> signBlindedBlobSidecars( - final List unsignedBlindedBlobSidecars, - final Validator validator, - final ForkInfo forkInfo) { - return SafeFuture.collectAll( - unsignedBlindedBlobSidecars.stream() - .map( - unsignedBlindedBlobSidecar -> - signBlindedBlobSidecar(unsignedBlindedBlobSidecar, validator, forkInfo))); - } - - private SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar unsignedBlindedBlobSidecar, - final Validator validator, - final ForkInfo forkInfo) { - return validator - .getSigner() - .signBlindedBlobSidecar(unsignedBlindedBlobSidecar, forkInfo) - .thenApply( - signature -> - schemaDefinitions - .getSignedBlindedBlobSidecarSchema() - .create(unsignedBlindedBlobSidecar, signature)); - } } diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/ExternalSigner.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/ExternalSigner.java index 2737f8f0245..ad66438de1a 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/ExternalSigner.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/signer/ExternalSigner.java @@ -13,8 +13,6 @@ package tech.pegasys.teku.validator.client.signer; -import static tech.pegasys.teku.api.schema.deneb.BlindedBlobSidecar.fromInternalBlindedBlobSidecar; -import static tech.pegasys.teku.api.schema.deneb.BlindedBlobSidecar.fromInternalBlobSidecar; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_OK; import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_PRECONDITION_FAILED; @@ -48,8 +46,6 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.provider.JsonProvider; import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.operations.AggregateAndProof; @@ -129,30 +125,6 @@ public SafeFuture signBlock(final BeaconBlock block, final ForkInf slashableBlockMessage(block.getSlot())); } - @Override - public SafeFuture signBlobSidecar( - final BlobSidecarOld blobSidecar, final ForkInfo forkInfo) { - return sign( - signingRootUtil.signingRootForBlobSidecar(blobSidecar, forkInfo), - SignType.BLOB_SIDECAR, // both blobSidecar and blindedBlobSidecar uses same SignType - Map.of(FORK_INFO, forkInfo(forkInfo), "blob_sidecar", fromInternalBlobSidecar(blobSidecar)), - slashableGenericMessage("blob sidecar")); - } - - @Override - public SafeFuture signBlindedBlobSidecar( - final BlindedBlobSidecar blindedBlobSidecar, final ForkInfo forkInfo) { - return sign( - signingRootUtil.signingRootForBlindedBlobSidecar(blindedBlobSidecar, forkInfo), - SignType.BLOB_SIDECAR, // both blobSidecar and blindedBlobSidecar uses same SignType - Map.of( - FORK_INFO, - forkInfo(forkInfo), - "blob_sidecar", - fromInternalBlindedBlobSidecar(blindedBlobSidecar)), - slashableGenericMessage("blinded blob sidecar")); - } - @Override public SafeFuture signAttestationData( final AttestationData attestationData, final ForkInfo forkInfo) { diff --git a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/BlockProductionDutyTest.java b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/BlockProductionDutyTest.java index 4eeeadc27cb..5783a2b3916 100644 --- a/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/BlockProductionDutyTest.java +++ b/validator/client/src/test/java/tech/pegasys/teku/validator/client/duties/BlockProductionDutyTest.java @@ -28,12 +28,8 @@ import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ZERO; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.IntStream; import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.units.bigints.UInt256; @@ -52,16 +48,13 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlindedBlobSidecar; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecarOld; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlindedBlobSidecar; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.SignedBlobSidecarOld; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBlindedBlockContainer; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBody; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadSummary; import tech.pegasys.teku.spec.datastructures.state.ForkInfo; @@ -190,22 +183,10 @@ public void forDeneb_shouldCreateAndPublishBlockContents() { // can create BlockContents only post-Deneb final BlockContents unsignedBlockContents = dataStructureUtil.randomBlockContents(denebSlot); final BeaconBlock unsignedBlock = unsignedBlockContents.getBlock(); - final List unsignedBlobSidecars = - unsignedBlockContents.getBlobSidecars().orElseThrow(); - final Map blobSidecarsSignatures = - unsignedBlobSidecars.stream() - .collect( - Collectors.toMap(Function.identity(), __ -> dataStructureUtil.randomSignature())); - when(signer.createRandaoReveal(spec.computeEpochAtSlot(denebSlot), fork)) .thenReturn(completedFuture(randaoReveal)); when(signer.signBlock(unsignedBlockContents.getBlock(), fork)) .thenReturn(completedFuture(blockSignature)); - when(signer.signBlobSidecar(any(), eq(fork))) - .thenAnswer( - invocation -> - completedFuture( - blobSidecarsSignatures.get((BlobSidecarOld) invocation.getArgument(0)))); when(validatorApiChannel.createUnsignedBlock( denebSlot, randaoReveal, Optional.of(graffiti), false)) .thenReturn(completedFuture(Optional.of(unsignedBlockContents))); @@ -214,10 +195,11 @@ public void forDeneb_shouldCreateAndPublishBlockContents() { performAndReportDuty(denebSlot); - final ArgumentCaptor signedBlockContentsArgumentCaptor = - ArgumentCaptor.forClass(SignedBlockContents.class); + final ArgumentCaptor signedBlockContainerArgumentCaptor = + ArgumentCaptor.forClass(SignedBlockContainer.class); - verify(validatorApiChannel).sendSignedBlock(signedBlockContentsArgumentCaptor.capture(), any()); + verify(validatorApiChannel) + .sendSignedBlock(signedBlockContainerArgumentCaptor.capture(), any()); verify(validatorLogger) .dutyCompleted( eq(TYPE), @@ -227,7 +209,11 @@ public void forDeneb_shouldCreateAndPublishBlockContents() { ArgumentMatchers.argThat(Optional::isPresent)); verifyNoMoreInteractions(validatorLogger); - final SignedBlockContents signedBlockContents = signedBlockContentsArgumentCaptor.getValue(); + final SignedBlockContainer signedBlockContainer = signedBlockContainerArgumentCaptor.getValue(); + + assertThat(signedBlockContainer).isInstanceOf(SignedBlockContents.class); + + final SignedBlockContents signedBlockContents = (SignedBlockContents) signedBlockContainer; assertThat(signedBlockContents.isBlinded()).isFalse(); @@ -240,17 +226,7 @@ public void forDeneb_shouldCreateAndPublishBlockContents() { final List signedBlobSidecars = signedBlockContents.getSignedBlobSidecars().get(); - assertThat(signedBlobSidecars).isNotEmpty(); - - IntStream.range(0, signedBlobSidecars.size()) - .forEach( - index -> { - final SignedBlobSidecarOld signedBlobSidecar = signedBlobSidecars.get(index); - final BlobSidecarOld unsignedBlobSidecar = unsignedBlobSidecars.get(index); - assertThat(signedBlobSidecar.getMessage()).isEqualTo(unsignedBlobSidecar); - assertThat(signedBlobSidecar.getSignature()) - .isEqualTo(blobSidecarsSignatures.get(unsignedBlobSidecar)); - }); + assertThat(signedBlobSidecars).isEmpty(); verify(validatorDutyMetrics) .record(any(), any(BlockProductionDuty.class), eq(ValidatorDutyMetricsSteps.CREATE)); @@ -261,7 +237,7 @@ public void forDeneb_shouldCreateAndPublishBlockContents() { } @Test - public void forDeneb_shouldCreateAndPublishBlindedBlockContents() { + public void forDeneb_shouldCreateAndPublishBlindedBlock() { duty = new BlockProductionDuty( validator, @@ -276,40 +252,25 @@ public void forDeneb_shouldCreateAndPublishBlindedBlockContents() { final BLSSignature randaoReveal = dataStructureUtil.randomSignature(); final BLSSignature blockSignature = dataStructureUtil.randomSignature(); - // can create BlindedBlockContents only post-Deneb fork - final BlindedBlockContents unsignedBlindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(denebSlot); - final BeaconBlock unsignedBlindedBlock = unsignedBlindedBlockContents.getBlock(); - final List unsignedBlindedBlobSidecars = - unsignedBlindedBlockContents.getBlindedBlobSidecars().orElseThrow(); - final Map blindedBlobSidecarsSignatures = - unsignedBlindedBlobSidecars.stream() - .collect( - Collectors.toMap(Function.identity(), __ -> dataStructureUtil.randomSignature())); + final BeaconBlock unsignedBlindedBlock = dataStructureUtil.randomBlindedBeaconBlock(denebSlot); when(signer.createRandaoReveal(spec.computeEpochAtSlot(denebSlot), fork)) .thenReturn(completedFuture(randaoReveal)); when(signer.signBlock(unsignedBlindedBlock.getBlock(), fork)) .thenReturn(completedFuture(blockSignature)); - when(signer.signBlindedBlobSidecar(any(), eq(fork))) - .thenAnswer( - invocation -> - completedFuture( - blindedBlobSidecarsSignatures.get( - (BlindedBlobSidecar) invocation.getArgument(0)))); when(validatorApiChannel.createUnsignedBlock( denebSlot, randaoReveal, Optional.of(graffiti), true)) - .thenReturn(completedFuture(Optional.of(unsignedBlindedBlockContents))); + .thenReturn(completedFuture(Optional.of(unsignedBlindedBlock))); when(validatorApiChannel.sendSignedBlock(any(), any())) .thenReturn(completedFuture(SendSignedBlockResult.success(unsignedBlindedBlock.getRoot()))); performAndReportDuty(denebSlot); - final ArgumentCaptor signedBlindedBlockContentsArgumentCaptor = - ArgumentCaptor.forClass(SignedBlindedBlockContents.class); + final ArgumentCaptor signedBlindedBlockContainerArgumentCaptor = + ArgumentCaptor.forClass(SignedBlindedBlockContainer.class); verify(validatorApiChannel) - .sendSignedBlock(signedBlindedBlockContentsArgumentCaptor.capture(), any()); + .sendSignedBlock(signedBlindedBlockContainerArgumentCaptor.capture(), any()); verify(validatorLogger) .dutyCompleted( eq(TYPE), @@ -319,36 +280,17 @@ public void forDeneb_shouldCreateAndPublishBlindedBlockContents() { ArgumentMatchers.argThat(Optional::isPresent)); verifyNoMoreInteractions(validatorLogger); - final SignedBlindedBlockContents signedBlindedBlockContents = - signedBlindedBlockContentsArgumentCaptor.getValue(); + final SignedBlindedBlockContainer signedBlindedBlockContainer = + signedBlindedBlockContainerArgumentCaptor.getValue(); + + assertThat(signedBlindedBlockContainer).isInstanceOf(SignedBeaconBlock.class); - assertThat(signedBlindedBlockContents.isBlinded()).isTrue(); + final SignedBeaconBlock signedBlock = signedBlindedBlockContainer.getSignedBlock(); - final SignedBeaconBlock signedBlock = signedBlindedBlockContents.getSignedBlock(); assertThat(signedBlock.getMessage()).isEqualTo(unsignedBlindedBlock); assertThat(signedBlock.isBlinded()).isTrue(); assertThat(signedBlock.getSignature()).isEqualTo(blockSignature); - assertThat(signedBlindedBlockContents.getSignedBlindedBlobSidecars().isPresent()).isTrue(); - - final List signedBlindedBlobSidecars = - signedBlindedBlockContents.getSignedBlindedBlobSidecars().get(); - - assertThat(signedBlindedBlobSidecars).isNotEmpty(); - - IntStream.range(0, signedBlindedBlobSidecars.size()) - .forEach( - index -> { - final SignedBlindedBlobSidecar signedBlindedBlobSidecar = - signedBlindedBlobSidecars.get(index); - final BlindedBlobSidecar unsignedBlindedBlobSidecar = - unsignedBlindedBlobSidecars.get(index); - assertThat(signedBlindedBlobSidecar.getBlindedBlobSidecar()) - .isEqualTo(unsignedBlindedBlobSidecar); - assertThat(signedBlindedBlobSidecar.getSignature()) - .isEqualTo(blindedBlobSidecarsSignatures.get(unsignedBlindedBlobSidecar)); - }); - verify(validatorDutyMetrics) .record(any(), any(BlockProductionDuty.class), eq(ValidatorDutyMetricsSteps.CREATE)); verify(validatorDutyMetrics) @@ -520,22 +462,11 @@ public void forDeneb_shouldUseBlockV3ToCreateAndPublishBlockContents() { // can create BlockContents only post-Deneb final BlockContents unsignedBlockContents = dataStructureUtil.randomBlockContents(denebSlot); final BeaconBlock unsignedBlock = unsignedBlockContents.getBlock(); - final List unsignedBlobSidecars = - unsignedBlockContents.getBlobSidecars().orElseThrow(); - final Map blobSidecarsSignatures = - unsignedBlobSidecars.stream() - .collect( - Collectors.toMap(Function.identity(), __ -> dataStructureUtil.randomSignature())); when(signer.createRandaoReveal(spec.computeEpochAtSlot(denebSlot), fork)) .thenReturn(completedFuture(randaoReveal)); when(signer.signBlock(unsignedBlockContents.getBlock(), fork)) .thenReturn(completedFuture(blockSignature)); - when(signer.signBlobSidecar(any(), eq(fork))) - .thenAnswer( - invocation -> - completedFuture( - blobSidecarsSignatures.get((BlobSidecarOld) invocation.getArgument(0)))); when(validatorApiChannel.createUnsignedBlock(denebSlot, randaoReveal, Optional.of(graffiti))) .thenReturn(completedFuture(Optional.of(unsignedBlockContents))); when(validatorApiChannel.sendSignedBlock(any(), any())) @@ -573,17 +504,7 @@ public void forDeneb_shouldUseBlockV3ToCreateAndPublishBlockContents() { final List signedBlobSidecars = signedBlockContents.getSignedBlobSidecars().get(); - assertThat(signedBlobSidecars).isNotEmpty(); - - IntStream.range(0, signedBlobSidecars.size()) - .forEach( - index -> { - final SignedBlobSidecarOld signedBlobSidecar = signedBlobSidecars.get(index); - final BlobSidecarOld unsignedBlobSidecar = unsignedBlobSidecars.get(index); - assertThat(signedBlobSidecar.getMessage()).isEqualTo(unsignedBlobSidecar); - assertThat(signedBlobSidecar.getSignature()) - .isEqualTo(blobSidecarsSignatures.get(unsignedBlobSidecar)); - }); + assertThat(signedBlobSidecars).isEmpty(); verify(validatorDutyMetrics) .record(any(), any(BlockProductionDuty.class), eq(ValidatorDutyMetricsSteps.CREATE)); diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java index a578b4f2e35..b602230cd80 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/OkHttpValidatorTypeDefClientTest.java @@ -15,8 +15,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assumptions.assumeThat; -import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; -import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -36,7 +34,7 @@ import tech.pegasys.teku.spec.TestSpecContext; import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.builder.SignedValidatorRegistration; import tech.pegasys.teku.spec.networks.Eth2Network; import tech.pegasys.teku.spec.schemas.ApiSchemas; @@ -110,36 +108,26 @@ void blockProductionFallbacksToNonBlindedFlowIfBlindedEndpointIsNotAvailable() void publishesBlindedBlockSszEncoded() throws InterruptedException { mockWebServer.enqueue(new MockResponse().setResponseCode(200)); - final SignedBlockContainer signedBlockContainer; - if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.DENEB)) { - signedBlockContainer = dataStructureUtil.randomSignedBlindedBlockContents(); - } else { - signedBlockContainer = dataStructureUtil.randomSignedBlindedBeaconBlock(); - } + final SignedBeaconBlock signedBeaconBlock = dataStructureUtil.randomSignedBlindedBeaconBlock(); final SendSignedBlockResult result = - okHttpValidatorTypeDefClientWithPreferredSsz.sendSignedBlock(signedBlockContainer); + okHttpValidatorTypeDefClientWithPreferredSsz.sendSignedBlock(signedBeaconBlock); assertThat(result.isPublished()).isTrue(); final RecordedRequest recordedRequest = mockWebServer.takeRequest(); assertThat(recordedRequest.getBody().readByteArray()) - .isEqualTo(signedBlockContainer.sszSerialize().toArrayUnsafe()); + .isEqualTo(signedBeaconBlock.sszSerialize().toArrayUnsafe()); } @TestTemplate void publishesBlindedBlockJsonEncoded() throws InterruptedException, JsonProcessingException { mockWebServer.enqueue(new MockResponse().setResponseCode(200)); - final SignedBlockContainer signedBlockContainer; - if (specMilestone.isGreaterThanOrEqualTo(SpecMilestone.DENEB)) { - signedBlockContainer = dataStructureUtil.randomSignedBlindedBlockContents(); - } else { - signedBlockContainer = dataStructureUtil.randomSignedBlindedBeaconBlock(); - } + final SignedBeaconBlock signedBeaconBlock = dataStructureUtil.randomSignedBlindedBeaconBlock(); final SendSignedBlockResult result = - okHttpValidatorTypeDefClient.sendSignedBlock(signedBlockContainer); + okHttpValidatorTypeDefClient.sendSignedBlock(signedBeaconBlock); assertThat(result.isPublished()).isTrue(); @@ -147,7 +135,7 @@ void publishesBlindedBlockJsonEncoded() throws InterruptedException, JsonProcess final String expectedRequest = JsonUtil.serialize( - signedBlockContainer, + signedBeaconBlock, spec.atSlot(UInt64.ONE) .getSchemaDefinitions() .getSignedBlindedBlockContainerSchema() @@ -303,12 +291,7 @@ void blockV3ShouldFallbacksToBlockV2WhenNotFound() throws JsonProcessingException, InterruptedException { mockWebServer.enqueue(new MockResponse().setResponseCode(404)); - final BlockContainer blockContainer; - if (specMilestone.isGreaterThanOrEqualTo(DENEB)) { - blockContainer = dataStructureUtil.randomBlindedBlockContents(ONE); - } else { - blockContainer = dataStructureUtil.randomBlindedBeaconBlock(ONE); - } + final BlockContainer blockContainer = dataStructureUtil.randomBlindedBeaconBlock(); mockWebServer.enqueue( new MockResponse() diff --git a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java index d006961651e..9a6142e48d5 100644 --- a/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java +++ b/validator/remote/src/integration-test/java/tech/pegasys/teku/validator/remote/typedef/handlers/ProduceBlockRequestTest.java @@ -19,7 +19,6 @@ import static tech.pegasys.teku.infrastructure.http.RestApiConstants.HEADER_EXECUTION_PAYLOAD_BLINDED; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; import static tech.pegasys.teku.spec.SpecMilestone.BELLATRIX; -import static tech.pegasys.teku.spec.SpecMilestone.CAPELLA; import static tech.pegasys.teku.spec.SpecMilestone.DENEB; import com.google.common.net.MediaType; @@ -35,7 +34,6 @@ import tech.pegasys.teku.spec.TestSpecContext; import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.networks.Eth2Network; import tech.pegasys.teku.validator.remote.typedef.AbstractTypeDefRequestTestBase; @@ -111,7 +109,7 @@ public void shouldGetUnblindedBeaconBlockAsSsz() { @TestTemplate public void shouldGetBlindedBeaconBlockAsJson() { - assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX).isLessThanOrEqualTo(CAPELLA); + assumeThat(specMilestone).isGreaterThanOrEqualTo(BELLATRIX); final BeaconBlock blindedBeaconBlock = dataStructureUtil.randomBlindedBeaconBlock(ONE); final ProduceBlockRequest.ProduceBlockResponse blockResponse = new ProduceBlockRequest.ProduceBlockResponse(blindedBeaconBlock); @@ -125,14 +123,11 @@ public void shouldGetBlindedBeaconBlockAsJson() { final Optional maybeBlockContainer = request.createUnsignedBlock(signature, Optional.empty()); - assertThat(maybeBlockContainer).isPresent(); - - assertThat(maybeBlockContainer.get()).isEqualTo(blockResponse.getData()); + assertThat(maybeBlockContainer).hasValue(blockResponse.getData()); } @TestTemplate public void shouldGetBlindedBeaconBlockAsSsz() { - assumeThat(specMilestone).isLessThan(DENEB); final BeaconBlock blindedBeaconBlock = dataStructureUtil.randomBlindedBeaconBlock(ONE); final ProduceBlockRequest.ProduceBlockResponse blockResponse = new ProduceBlockRequest.ProduceBlockResponse(blindedBeaconBlock); @@ -210,59 +205,6 @@ public void shouldGetUnblindedBlockContentsPostDenebAsSsz() { assertThat(maybeBlockContainer.get()).isEqualTo(blockResponse.getData()); } - @TestTemplate - public void shouldGetBlindedBlockContentsPostDenebAsJson() { - assumeThat(specMilestone).isEqualTo(DENEB); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - final ProduceBlockRequest.ProduceBlockResponse blockResponse = - new ProduceBlockRequest.ProduceBlockResponse(blindedBlockContents); - - final String mockResponse = readExpectedJsonResource(specMilestone, true, true); - - mockWebServer.enqueue(new MockResponse().setResponseCode(SC_OK).setBody(mockResponse)); - - final BLSSignature signature = blindedBlockContents.getBlock().getBody().getRandaoReveal(); - - final Optional maybeBlockContainer = - request.createUnsignedBlock(signature, Optional.empty()); - - assertThat(maybeBlockContainer).isPresent(); - - assertThat(maybeBlockContainer.get()).isEqualTo(blockResponse.getData()); - } - - @TestTemplate - public void shouldGetBlindedBlockContentsPostDenebAsSsz() { - assumeThat(specMilestone).isEqualTo(DENEB); - final BlindedBlockContents blindedBlockContents = - dataStructureUtil.randomBlindedBlockContents(ONE); - final ProduceBlockRequest.ProduceBlockResponse blockResponse = - new ProduceBlockRequest.ProduceBlockResponse(blindedBlockContents); - - responseBodyBuffer.write( - spec.getGenesisSchemaDefinitions() - .getBlindedBlockContainerSchema() - .sszSerialize(blindedBlockContents) - .toArray()); - - mockWebServer.enqueue( - new MockResponse() - .setResponseCode(SC_OK) - .setHeader(HEADER_EXECUTION_PAYLOAD_BLINDED, "true") - .setHeader("Content-Type", MediaType.OCTET_STREAM) - .setBody(responseBodyBuffer)); - - final BLSSignature signature = blindedBlockContents.getBlock().getBody().getRandaoReveal(); - - final Optional maybeBlockContainer = - request.createUnsignedBlock(signature, Optional.empty()); - - assertThat(maybeBlockContainer).isPresent(); - - assertThat(maybeBlockContainer.get()).isEqualTo(blockResponse.getData()); - } - private String readExpectedJsonResource( final SpecMilestone specMilestone, final boolean blinded, final boolean blockContents) { final String fileName = diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockContentsDENEB.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockContentsDENEB.json deleted file mode 100644 index 1603175b944..00000000000 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockContentsDENEB.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"deneb","execution_payload_blinded":true,"execution_payload_value":"12345","consensus_block_value":"123000000000","data":{"blinded_block":{"slot":"1","proposer_index":"4546042514068846761","parent_root":"0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952","state_root":"0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd","body":{"randao_reveal":"0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc","eth1_data":{"deposit_root":"0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d","deposit_count":"4544390030852162633","block_hash":"0xbb0b0b3fe94fa42a5e0893ff71360feab7459127ca9149e88148b44625f31d08"},"graffiti":"0x0000000000000000000000000000000000000000000000000000000000000000","proposer_slashings":[{"signed_header_1":{"message":{"slot":"4534475127257090569","proposer_index":"4532822644040406441","parent_root":"0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8","state_root":"0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32","body_root":"0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8"},"signature":"0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120"},"signed_header_2":{"message":{"slot":"4534475127257090569","proposer_index":"4532822644040406441","parent_root":"0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3","state_root":"0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d","body_root":"0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc"},"signature":"0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1"}}],"attester_slashings":[{"attestation_1":{"attesting_indices":["4577439708070747082","4575787224854062954","4567524808770642314"],"data":{"slot":"4565872325553958186","index":"4570829775204010570","beacon_block_root":"0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","source":{"epoch":"530960372","root":"0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c"},"target":{"epoch":"531345121","root":"0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587"}},"signature":"0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e"},"attestation_2":{"attesting_indices":["4577439708070747082","4575787224854062954","4567524808770642314"],"data":{"slot":"4552652451230550569","index":"4557609905175570249","beacon_block_root":"0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997184c0317133f980452ec62b2","source":{"epoch":"523265394","root":"0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49"},"target":{"epoch":"523650143","root":"0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34"}},"signature":"0xb4619694384c8eb2975580bcf872825989dbe1a3cb79f1683c64ce3ab62431f6d80b10ae018bb0d4d4c9519e086a731413ef29fe7d0586ced2220a9cab11b70a8cd2dbaaa8e28e2ce6d913f4437e28752d4cbfe17a1fbd433dd22d33ee148ff1"}}],"attestations":[{"aggregation_bits":"0x74b1554fb666e3e860ec50318395beb2ae8b5096aad63d718f47db8d2b08748016a5ada06ffbc38dbd2301b3c62a867c42456e5a77155026b71ed5413673fc7c20c4dc1ff9c121b7db3a38d368c3701b897b0735af9fcc82d6ec854848b8962528a1baeff72c1f6b4eb2d308f9eb5de8784434f354910cac018b64267c4e0d7674bc623b565b13a3c1107fdf9d3f0a5640f18356dd8dcbe88db533e4a090913f089dd061fb1ff28cea27d0620c0cd3382da5f14d330adbd9133aac602af91ca08ce17ae54c2a6c2130309958d42f5cdcd1eba9a62b35705622374106b48b5d7ca186c14b8fa9400d0a8d52fb7f4cc13a123eec141ecd8797e2e8053ed84d732f01","data":{"slot":"4491510546443434056","index":"4489858063226749928","beacon_block_root":"0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14","source":{"epoch":"521534024","root":"0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff"},"target":{"epoch":"521918773","root":"0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3f"}},"signature":"0xa5dc1b5bbb3e2542ed00fb268f1fa5811bfd77e0087eaab35344e4024200d4ec9ccb13f7c46a31f356b5f1aefcb6aba20dd4e5d1e44241c7c88f5d7a78304797c7b896590ef22fee7001ecf223d8fa9034ef61fa178ed7c85a3809142eee614a"},{"aggregation_bits":"0x46bf56516bff2c50ebeb302b670f7b27db51e68a51efed1e99b63758c3a6fbd3a0fa9426b938940e4a4e0750b77bce6fa045a0b3cc248d8e4087da4881773503df892d697725d79b37bdfc63c385e1ab9c3b8cd8c3013109fc99272d6e767f1d849d8947a8c99910a0f0c7400e18eb90fe57898af7f25356a58d4f08a2d83215a4779c5fd89cd02a742d9996bd4080c3f51a22ecebd4380d23eb7b8437d02ab05a6999e6ae33d72c62fcc061b788f3cf9621fd24a3cdc360033015feb5e755406b50f84c9246a4811119f66c676e8998042d7d9aa9af710bd99f09a8d27e4f2391c58213914ade9ad786cd9d0da37c71bbaa6672868922f7c9d71d6578fb47dd01","data":{"slot":"4476638188903342311","index":"4521255257228650249","beacon_block_root":"0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e","source":{"epoch":"526728135","root":"0xa198c43e69db1b65dc2b6a085da00587026a85ff57fa32a2a656dea9617db688"},"target":{"epoch":"525573888","root":"0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9"}},"signature":"0x87551d5158b22f28a8349c16d2e878510a902d867b0e8ea536c68968ccb0f027bf3ca024f95bbd9eb4a0758c1936c43b14ec51038418286ea2d3b27d9d28aa77595ecced40ee414fd4d9b6b489f31807ae53147f5403bd745374779cf7ff5bbc"},{"aggregation_bits":"0xec905db22a79ad923d8dbd56e9fb220ff2326f47e1a30914319a43f311e67310cf970f6b4980af88dfbe819cfaeb1e29e63643aa57d8d06405a3e42db7f14f6e02f5b3caa4e8ed89e0641f7f11ffaca30f70f1deb1d2c91eed1640f5cc89e25dbe71215a155e309a1ee142f0b39dd328fb628e077e1483f265e059dded58326f009d938d26e7c71be9cc8c3e8b78585049aab7a18c3d04562b418c8f6c5bf6505c7dbadfd54b78de55c725febc7aa48d0fdddfb36ee0e58f623d5076d6d43c6385540622670d91dd3521ba80f1f99b0307ed0cca39dd8522210710ebb70fb757d1189654ad266f5d597606514c50dc17131f17493e3d8585b9d09fbc651b666801","data":{"slot":"4508035387200209928","index":"4506382903983525800","beacon_block_root":"0x26809b3ec8ec364791003d38265e95222e7f7efd537750b9e6deb6235a23ba53","source":{"epoch":"524996764","root":"0x9946783e88b272e45092a83c1c9310f154917869992b4516f9e54bd578680694"},"target":{"epoch":"523842518","root":"0x7304843e481bb45a660cdae57581e756478b7a452c9af3a19de3c444c3a6977e"}},"signature":"0xaf85c50db6dad8c04b9a22611e3174fdc57a3cfe255164e0361897353984556c3e7b91b040ec3b59cc29d774aaacf4b204e4e1960b9dd5bf9b72f8c3e09bdd64753a65084567c10b229784fe46be3de016c8add60d84c970943d221882294028"}],"deposits":[{"proof":["0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e","0x2fda834311b58db49107ebef3efd6ab3f5f751f2e5ae381ba4e248bbcd2c6f5e"],"data":{"pubkey":"0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960","withdrawal_credentials":"0x09988f43d11dcf2aa7811c9997eb4119e8f153ce791de7a648e0c12a186b0049","amount":"32000000000","signature":"0xa8bc1f3e02db6e899c709b18a5d1e31b00c33cf2aac1de967d0ab37e6f13a859e07dbabdfc975bfb295185f0d561fd831559ada7f2c040b69eb411487ca0e68a575470eb586e1e1545d388f0162758a4fe67f8b734273eedbe94324e6779948a"}}],"voluntary_exits":[{"message":{"epoch":"4858361979461100433","validator_index":"4866624404134455665"},"signature":"0xa2a6993708f79d7b3db30c3968aaf4b706400145cf70fded02b06d54922e54a4c1db14d63860cc632d0b2a8c15efc5280bc57ceed454838f2a0848e03e610e130309d8012aa5eddc1fa84b509fc8178a685baaa0413ec58709e738aae430491d"}],"sync_aggregate":{"sync_committee_bits":"0x02000000","sync_committee_signature":"0x860ddd021623b0457093e3e33cec56fe571fbbe8a52a68ec6660579165513eeea8dc706ba31cdd09c5c7ab60765182cd084061dcb29dde1dd5d5956b404b389f599a34da02cd3a50385a148dd804110335507c0f05bdfdc495e4a4953dafac94"},"execution_payload_header":{"parent_hash":"0xa2a06043d17ac951519956f43432e6811a0a4c5e2b632d78b6e9dd6ceb71bb9e","fee_recipient":"0xb5c15a4371c6a89646dcbd1f07bbfa4e210d4bf0","state_root":"0x14673d43914005ef102bc2f829676150401c46ca721722d5c9f0721e09b707df","receipts_root":"0x27883743308ce433056e2924fdef751d461f455c28e04a8ff771b6e6e417bf69","logs_bloom":"0xee24494351a9466526a5f3a1825538b6331648a60586d0606deeeb8d55f598c9df89ecb52fa777a9130afb129abdc82f6f0a353da6151532072e5e2bb732c4db169a41ed5a90d2a27ac8118ded853750e3cfea35a84ce06aa0db6fa4cabf0d2c2323cb79efe7557ab7d171dee29da3d803090767635e3865480d6d51be175ec27ac8c673211be8e5acb9d15213bfef3b65281fbf8275d76dd19fe76a366f9709f35b5403b32f9b103d03fd44cfff55f742d1349f85ca6bcc53cb37dfcceebf224ac6ffa781c2474dd57c79099935eb51f9c7253e3f0a5462aac7caaa8dbd48cca07f6f33f75519a9e0accbc0a7273c638d72f942580c1275f380f15879db3b56","prev_randao":"0x01464343f1f425aa1be85acd56de4c833a194738bb4ef91a9b6f2f562f565054","block_number":"4891411660974652178","gas_limit":"4889759173463000754","gas_used":"4894716627408020434","timestamp":"4893064144191336306","extra_data":"0x4a4dca439229167a13e413e752937416aad35d1a59464f617ed41e5890a2d6dd","base_fee_per_gas":"42260802649178622237299574612025869510876612752332789515082371171365175922280","block_hash":"0x240bd643529257f0285e4590ab814b7c9dcd5ff6edb4fdec23d297c7dce067c8","transactions_root":"0x372cd043f2dd36351da1acbb7f0a6049a4d05e88a37d26a75153db8fb6411f53","withdrawals_root":"0xdb034f43b15d672031628c76afcc23e92d1349144fbda7a6406da8c57a94e13e","blob_gas_used":"4878191786651244561","excess_blob_gas":"4876539303434560433"},"bls_to_execution_changes":[{"message":{"validator_index":"2934395","from_bls_pubkey":"0xaa7ec4a37dae722143cee2fabacc1e11964fda925d7dc00efc1c3b3a537f414237ee98b5af27a6231ae5097e4a133529","to_execution_address":"0xcf34a143f13a315cc7b8e6161c5104b2d6e85618"},"signature":"0x86c8e92840bfb3b3ab773a6c3f4bbdc36416746bc710630dec288404296db89f63eb25d648a0795e30e6870ea5a6f5b70bf684cbe96b72671398e89a8510991dca3110bff970cf1abec6c3bb3bfd7ba1b37ac1b973ac024bcbad0287d47aa65d"},{"message":{"validator_index":"2393663","from_bls_pubkey":"0xb4de3568fdbb0af339856e6106dfd7808879d0564325ec1deab8e8932c4d173a8d7b04a546a9de867619730b512748b1","to_execution_address":"0xf2a1aa4230a3d3a803b5d735d4c36257dc672d0c"},"signature":"0x8a5025a2a1543e6fa0fd574add3bcb06f96df170dbd82f51995a261559948009eefc0c8fc2c474c387cf52a8c5a698940eeb1fff88b70b5331be065192f46e47c765cbb3678d19a6a84f713e9c9464730649720a6182ea2964188a8dec26c2b4"},{"message":{"validator_index":"469919","from_bls_pubkey":"0x8678ff3eff860e3ea75396d0bb0d548326928ecc62c8c9b30b58f8f3be02e3099ef80f47a13c7fd828412ba9f990c25d","to_execution_address":"0x18e49e426f3a9232ed3aa68c7bd58bf1e96d2b30"},"signature":"0xb47bdd50d8e3ee31806068b3555ea1fc6771e2caf4b06d07394444468feec69e9d153e52ced5b5cbb5f8d44f2e981a060a691dd8cd0d86c4d7928bb908eabca9c2520e9033cfb4e5f13a80d30d4e8de24eb5a09a0e0b734a55811f13edd2fe6a"},{"message":{"validator_index":"85170","from_bls_pubkey":"0x82b07707a61c37b860d0d290ec1c330ad73d0f5970b72c198aaa567ecbd2d2d08e884f2322519c2e17ab2cc3e9bb26de","to_execution_address":"0x740c2043b0ba6147da79c6d14c13c8515f2b41a4"},"signature":"0x8008c559949fc9cab7b9b663aeecf3583273f07c7081afc5327ea39297f5adc1f1d8bb8d9485f1fb157a8bcc291625fd087e435b653ef0020f3fb8e4dc7ba04b6ebc64368aed53b868638cc39a536c0c077d6a08a4831f06e9145d328a52774e"},{"message":{"validator_index":"1317408","from_bls_pubkey":"0x8a5997a79613125f1de5bd526981865c391f914492bf08bea98d89e0b212f554bab770783c094dc2ef1229e5cf6febc0","to_execution_address":"0x9a4e1443f05120d1c5ff9428f324f1eb6c313fc8"},"signature":"0x877005ef02509214e9ede55f546c2b003c0209b7d885ea680d76369fc415180ef4fbbce332fce18608d3533b8d6d284603e52bc79193b0b2128c624332fe1bb1d1e1956361333e0ab171f1bdeee927a169d2ab78498189a9e8f4036cb47b77cf"},{"message":{"validator_index":"932659","from_bls_pubkey":"0x8af5874a9623513bbb3200f80c2679f001ca294967e33f1e201f6720e30f3c8ab69492f3dab696b485436280bd5da4b3","to_execution_address":"0x5999d9423046d981599d9dda377dbeeeaa4f357c"},"signature":"0xb21c09e06746c9cafbb504cf0aced08a807b87f62d57b526d28277802395a420321c8510b91b5e835a9fa47e6cc27d240d0991f1a05798ec502acd18dd8566ae675a05579e71bc8ba327ffb5f92c66c1f58ed89bf2804863cf50b958e79add78"},{"message":{"validator_index":"1852932","from_bls_pubkey":"0x95e6bd6d5246d58b9d56e43c1490b8dfabe87ffc399721bd63de8a38a7a6bcab8399085f3ed777a668f857f591154b73","to_execution_address":"0xe2fd11426e5181a7eb81549e52a9782b7fb613e0"},"signature":"0xb33229dc7bb509bee6290ece9d436db0477fc49ec3cc26e1e298eb72d62d0b4d28e72b271c0c3a9b9f86c44c883086680dc51747dd535a7b0b693302eadd8bf44f802fac281dc91025509a5c6df8bbe7455a3f30d32b2cc27c2322c7f00212d0"},{"message":{"validator_index":"1468183","from_bls_pubkey":"0x98b245d4ae533c7648fd14a7858d17a792e7919a81c31f1db0dd1c0beedaf0fe7c7fc60be0b446238fd5e5c94220a538","to_execution_address":"0xa148d741ae453a587f1f5d509701462ebdd40994"},"signature":"0xb6df5347cf18c72adf3ee1e2e5e942d8b3b7ab160b1f66d4991bab95e7050f302d723406d3410b9275700b3b998f2cd517c4da35e0294235f656d5c53cabc553f02b6a8f0e14a74571029f380c52a935c0230f4507ac486e4cf01ede4d04270f"},{"message":{"validator_index":"2544439","from_bls_pubkey":"0x9866c028838d222cfed5b1ff8215618a8d6a81c3e96a34759e78172fd2d18521fdf686d1601a860a38d3c1fd8c9e22af","to_execution_address":"0xc78acb41eedcf8e16aa52ba73e136fc8cada07b8"},"signature":"0x98ffde69b4d92a4510b5d42ae9bcc05315ed0a20fab2ff6fc8e416678f150d7bfb961da6774e86213ee711a2b065c3d300a13fcf630d7f303c59d848ec47905d2b439e7bb4f3348b6ddc448aa00f7c6eb6f64513182a3d335e2753f66cbec83e"},{"message":{"validator_index":"2315672","from_bls_pubkey":"0x84768946243cfa8d15223bd7222c94a5ce4a610b7aea979ac29d5b6f30e721213ed5b3cef3b4d2e700251be6a3d4dbfa","to_execution_address":"0x23b34c422f5dc8f657e44bec0e51ab2840981d2c"},"signature":"0xb9014738ce2ebfe44a8255a53e34b604f223702435a966b81276bd7967cc1e172a4dbace09be70a1f73b300d83a7a8ec161cdc911b167a8a6489def11edca95a3587eab704e98325ce29eb4f86a477755421b480ca39020c82f07e4977d9e859"},{"message":{"validator_index":"391928","from_bls_pubkey":"0x8b37bcb9abb306bad986453fe618bd0161b29c9f5f1eee2aa91f44ad2ecf75604c38975532425ca87de0e7cdf3cbe44e","to_execution_address":"0x49f540426ff48680416a1a43b562d4c24d9e1b50"},"signature":"0x954da68af7adf486693e9213a63a082fcf1b1ed99c320314b73e64c322470329df27c891348c17b92dc7972dbc7d9b4215c7746c756c1aa2194c7217ab902459290981a0905683fa8563a2a7241f2bc3a3d6e4fca48d9fce1c6c322c4835dc1b"},{"message":{"validator_index":"7179","from_bls_pubkey":"0x8542101a7935a234f5630ac9af421c22079f637d52260c1c6d6aea1011e8d11075c111bd37f037e78399b3c55c7b2c2e","to_execution_address":"0x6c624a41ad5c29cd7d660b626ed53268531df243"},"signature":"0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a"},{"message":{"validator_index":"927452","from_bls_pubkey":"0xa1406a0e7708eb918313d3a1f4fb748174c690e7bc5933f8481b64aff73671f1bd59c3ea53b84d65eb5afd191748eaf8","to_execution_address":"0x92a43e41edf3e75667ecd9b815e75b026023f067"},"signature":"0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d"},{"message":{"validator_index":"542703","from_bls_pubkey":"0xa52467f43393c040dbac590c4fa4fdf260f050357947fa261f2285f35c8381f256c8ab0584c940f30766a40ebc447340","to_execution_address":"0x51ef03412de8a007fc89e26a593f29059e41e61b"},"signature":"0xa529495633ab9ab138c0756646074fc7753fafbb44389490ddd46048f29267f6b85e46abbc1fe71c42fc98513ed0f6f800ebc9eaa04b484e29af7d7bb0c38b5e088435aee8583a812545b3057c184a4634957604ec0647d1fa81da2d15a5f198"},{"message":{"validator_index":"1774941","from_bls_pubkey":"0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1","to_execution_address":"0x140fb4416e0b76f53fb1c8548d36c1fce3e60300"},"signature":"0x94d7e47981799407b6455afd50007fd6c7736bc24b685c668e8af371e8e917d974e93874db6532a4ae61f4f6deea97bd12c425def40e2d7d3e03f647ad4028145163fb47650087a96647e67c495a101275b8b3fe37498b0b65772b420dd2f400"},{"message":{"validator_index":"1390192","from_bls_pubkey":"0xa4a90125ab79fbbe706de307f1de84a6b0dc21adef413c6a5e91ab58e575164bd13c0517a318394a56adab9326607e82","to_execution_address":"0xd3597941adff2ea6d34ed106d18e8eff2105fab3"},"signature":"0x81b3889c3af9b7f316b694fdebb42adad0fb3ded3558ed7e44e0cc7d3e3e176f45e34a4f747b1bbd91786ef0f710e44613a395950e29975e658de1a4569b3ea8f240dc2ba973cd6bf058a0311f2b15ac00a2e447b92ecfb685102c48e1d765c4"}],"blob_kzg_commitments":["0x0cbd67418de2cc74b31707894c29cc66340ef7696dd0e001164f8bb348fb55386ea8621167b756dbe3d0784067bbbefb"]}},"blinded_blob_sidecars":[{"block_root":"0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e","index":"4668326327938047084","slot":"4660063907559659148","block_parent_root":"0x8200a6402ca295554fb9562193cc71d60272d63beeaf2201fdf53e846e77f919","proposer_index":"4663368873993027404","blob_root":"0xa1a5293fcb6f6e54abd1c2db6be9545df9271969c18f7ad3daf3fb72ee1dc3d8","kzg_commitment":"0x1f86d83f0bf91cc0d7e07410828140e0dddbb331dc20b6743f9f79e549b50b11b30c033eee79f00acf434b0250cc3f2e","kzg_proof":"0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b4a2cc99ce8dad0f8165c8eae1794a314"},{"block_root":"0x6b0ac13f8a279ad3abec11bed1a49214f6e7af79b643595df6a38706b338e93b","index":"4592312065610838826","slot":"4597269519555858506","block_parent_root":"0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1","proposer_index":"4587354615960786442","blob_root":"0x35774d1f62023a17189269c8cd7b075db698406c2f190c60a5777308d062d55e","kzg_commitment":"0x924cb53fcabe585d9672e01478b6bbae02eead9d22d5aad151a60e9768fa575140caa776ccbf329e7ad5dd0bfb7a9694","kzg_proof":"0xa56daf3f6a0a38a28bb547404c3fd07b08f1ac2fd99dd38b7f27525f425b0fdcd8e96dd5c720138cc1ed20b8c242fa7a"},{"block_root":"0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c","index":"4582397162015766762","slot":"4627014230341074699","block_parent_root":"0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0","proposer_index":"4630319196774442955","blob_root":"0xd44a6480aa8571ef3c1da5e76f98f9ae88094d9aef9337b5f5fbcd08b4151dae","kzg_commitment":"0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b73909791b9cc30ee6be4782026effa6e9261","kzg_proof":"0x4d1a19402bb984ca4d0005336ba05e1098babeeb0781f5744712934ae78b2a1b2fb17f2b2b4f4cd2bf38699bc136f647"},{"block_root":"0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb","index":"4612141872800982955","slot":"4617099326746002635","block_parent_root":"0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930","proposer_index":"4607184423150930571","blob_root":"0x49d2d3dbea0309a1b08e72d20133c68cf7b3201a0b7dba4927905a21d91788a9","kzg_commitment":"0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0254f5e050f34ae7723b2b8f8a51de9c7","kzg_proof":"0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765bbd6e246409958e656bcafba46ce54cae"}]}} \ No newline at end of file diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockDENEB.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockDENEB.json new file mode 100644 index 00000000000..cc2478fcba0 --- /dev/null +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockDENEB.json @@ -0,0 +1 @@ +{"version":"deneb","execution_payload_blinded":true,"execution_payload_value":"12345","consensus_block_value":"123000000000","data":{"slot":"1","proposer_index":"4666673844721362956","parent_root":"0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef","state_root":"0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e","body":{"randao_reveal":"0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71","eth1_data":{"deposit_root":"0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f","deposit_count":"4658411424342975020","block_hash":"0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379"},"graffiti":"0x0000000000000000000000000000000000000000000000000000000000000000","proposer_slashings":[{"signed_header_1":{"message":{"slot":"4661716390776343276","proposer_index":"4600574485989226763","parent_root":"0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b","state_root":"0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb","body_root":"0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486"},"signature":"0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483"},"signed_header_2":{"message":{"slot":"4661716390776343276","proposer_index":"4600574485989226763","parent_root":"0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6","state_root":"0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26","body_root":"0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1"},"signature":"0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1"}}],"attester_slashings":[{"attestation_1":{"attesting_indices":["4585702132744102314","4590659586689121994","4589007099177470570"],"data":{"slot":"4580744678799082634","index":"4579092195582398506","beacon_block_root":"0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c","source":{"epoch":"533461240","root":"0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565"},"target":{"epoch":"538462976","root":"0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650"}},"signature":"0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc"},"attestation_2":{"attesting_indices":["4585702132744102314","4590659586689121994","4589007099177470570"],"data":{"slot":"4620404293179370891","index":"4618751809962686763","beacon_block_root":"0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b","source":{"epoch":"538078227","root":"0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb"},"target":{"epoch":"536923980","root":"0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5"}},"signature":"0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65"}}],"attestations":[{"aggregation_bits":"0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001","data":{"slot":"4605531939934246443","index":"4610489389584298827","beacon_block_root":"0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b","source":{"epoch":"529421377","root":"0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2"},"target":{"epoch":"529806126","root":"0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd"}},"signature":"0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc"},{"aggregation_bits":"0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101","data":{"slot":"4544390030852162633","index":"4542737547635478505","beacon_block_root":"0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd","source":{"epoch":"527690007","root":"0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8"},"target":{"epoch":"528074756","root":"0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8"}},"signature":"0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120"},{"aggregation_bits":"0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301","data":{"slot":"4529517677607038185","index":"4574134745932346122","beacon_block_root":"0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947","source":{"epoch":"532884117","root":"0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31"},"target":{"epoch":"531729870","root":"0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672"}},"signature":"0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683"}],"deposits":[{"proof":["0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c","0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c"],"data":{"pubkey":"0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d","withdrawal_credentials":"0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c","amount":"32000000000","signature":"0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb"}}],"voluntary_exits":[{"message":{"epoch":"4562567354825622634","validator_index":"4564219838042306762"},"signature":"0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e"}],"sync_aggregate":{"sync_committee_bits":"0x01000000","sync_committee_signature":"0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206"},"execution_payload_header":{"parent_hash":"0xf8eb5a3ea82ccf3c1be1ac153e3f77f273a07343291711b9de6b9dbebc4c9b49","fee_recipient":"0xbf886c3ec849316e3b187793c3a4398b6097768d","state_root":"0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34","receipts_root":"0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9","logs_bloom":"0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d078748f9069c96e9d6a2801cf607000a52447e46e1bef4e056ee30d4bd3517aaf7bf65ba04dd28c3a4a14b8dc72a300f051722a6814fa3931d90a82d23285d4c1127b6c67bbc4f8682ddbf9b31eb3114c26dccc5330109d6f17799339c2d7ed7e4e3a7de5d515106aaec7be6d78be3e21806d6d30c39b77c75dcf354b63033fb200b3b9dc023d948278f0956c0ee99323da0162f2a84b6a95749d2fa1d4e089af416d412ccd992683f7e41f7b496ca04f9f463806e3643d1c07f39d2a65f84e97b7dfaafac740d1e03f30923a4270fcf651ad2ca3737859a524e86e02229a55abd1a7","prev_randao":"0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4","block_number":"4489858063226749928","gas_limit":"4481595642848361992","gas_used":"4479943159631677864","timestamp":"4484900609281730248","extra_data":"0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789","base_fee_per_gas":"91973405088222260025272995045243630915786868313949746451634391325697029602367","block_hash":"0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca","transactions_root":"0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a","withdrawals_root":"0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be","blob_gas_used":"4476638188903342311","excess_blob_gas":"4521255257228650249"},"bls_to_execution_changes":[{"message":{"validator_index":"573888","from_bls_pubkey":"0xb8343e90edaecc9df1223293465ec067b3c9804f43e25817d27f1f4785bc5f554462032370781d9c65ab27bcc3d21415","to_execution_address":"0xdafbb23e48beb933bcf49f8ad83a43ee157382b5"},"signature":"0xa519e1354ad927358404a58bdc19113e5fd97d5cc19943888e22105ee943ca216a14898283fc3712500ba767de00022905e4198939b44a5f5a43fa0c87252969c56a26345135572101b257f87245a5e42fb2407a0ee67a6c2d039bf908b9aa8b"},{"message":{"validator_index":"189139","from_bls_pubkey":"0xa9ddce0cab5b51d3d2c710396b85e3fd7a87f1738fb5cfd5a7b25dbb483c167a80e785cb4ca7250c14a60cc282b1d9b8","to_execution_address":"0x9946783e88b272e45092a83c1c9310f154917869"},"signature":"0x8edfb3b9ed80067d0626019a1be330bac43c7ecd813f7ce781d0e6e34fb583803e9d2b047ad3294d6d3a54d020c68231085f7d9085d0afefb047def063a4698277e66d4a560f4b5bbd16586976f0bcf90177c00abd4a1b4cbd0ac393e5b904b5"},{"message":{"validator_index":"2357271","from_bls_pubkey":"0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960","to_execution_address":"0x09988f43d11dcf2aa7811c9997eb4119e8f153ce"},"signature":"0x8ca190827c66ff26c1fa594eae169b7efbd84c9456304f2194df7b0c204b0a29ac53034c9b20e4977b8e8b46d6b246da03a9337d3bf5e6f7ac941407a2a3437d7e2c0dcacda29b7623141833e02b4b12350ccaf8b27dbf96b3c520078f49efe2"},{"message":{"validator_index":"1972522","from_bls_pubkey":"0x8db8ee645b614f990839e4d98fdbf921263bb62cd917fb4eff9084dff23d7cc453f6cc645ad8b869aa9d31a6b9560630","to_execution_address":"0xc8e25443111288db3b1f254bdb430f1c27104a82"},"signature":"0xb0c3172e9bab8d04faa5d27f9818c36ad61a71b114f5bd9dbe77306be3edef2bcb56c215511ba76145006daec95f24be0f1f0dd24377cf7b440b5cdc7d0b520d6b64c539eaacaf14875d49c293af5974751bb0ce2daafde3bd01e097a466e75f"},{"message":{"validator_index":"48778","from_bls_pubkey":"0x8ba697cdd6f8c34a1fb96a4c88f03360d19515ccc4e1ea24aa5e80075d821059806a0047e6bbf5d908d312d1902aff5d","to_execution_address":"0xee24494351a9466526a5f3a1825538b6331648a6"},"signature":"0x87fadfd11bc5612e06c59d576c91599bc21095531fcc27a177967de7b521c377ee7a2b10d0fadf38779089929cfe136518757803c369b4ce94873e28d7d9cdf54c31a53ed86b07f76ea6104ee65d76de02267a4b736c949785ef233cbb73ad4a"},{"message":{"validator_index":"2820011","from_bls_pubkey":"0xa32a5f28ae7d36f888820160335232fc42ef994b4f93acf6a8659762b2ec52ca79354cc07c73a229b529bfcebc705eff","to_execution_address":"0x4a4dca439229167a13e413e752937416aad35d1a"},"signature":"0xa2089742415bdf32fa2dde853661a095ac24d273413687ae04fabb99ae2982700bcdb885d239e32543ffb95763a43e690cb1bf3a33df40d24e12c46d150e9c59dd63f960dec39712dabf74c08a55ba1bcb6db664ff9d5b2261da353e4374466c"},{"message":{"validator_index":"896267","from_bls_pubkey":"0xb679b4b686530827b2a201eb2b18454e9a5758d7257737b29bb215b9f354c2ff57e912b19d4a051556187aa24c97371b","to_execution_address":"0x708fbe43d1c0d403fd69e23dfaa49db0b6d95b3e"},"signature":"0x8da9cee45a3046b209da332512a6b4e4d7c89768f55998eb79ee236b4fb1fbcea87e0bba7b05d19ea7b8c5ea6dc0081e17a7ad0ec41566a0c6d9e127b87691e1d5b823fd178069e3f30091dcdbb44c36408656941755177c45bc976bf270289d"},{"message":{"validator_index":"511518","from_bls_pubkey":"0x83b8c61b63de768821cbd82ee3c67c81bb848163d6af0186ffe1ca3936d283bb4cab886f3fbc7f6336fec3da8d542c76","to_execution_address":"0x92fcc742102977503966d35cb217fc55bd583232"},"signature":"0x8c90298abaed4b5124cff46e41c9a4ed2b2baa0d2089add6b64c70dc7547f1a83bed76aba1fac6d36605beea72734b490b7b98994c7c65fdb436286b0df898731f6ad536e5a603da85ec8cc4488b94dc8c61e11363d1cc18733382dca51c7008"},{"message":{"validator_index":"1431791","from_bls_pubkey":"0xa532ee397fdd9e388888d90f712e13b085ad5043402debe1caf3dabbb514ed0d06f7c897e4e2795fd018cd672bfa8948","to_execution_address":"0xb83ebc4250c035da23eca1b3592925f0c95e3056"},"signature":"0x8fb8cb9373db269dd2a05fe0a07484db022a95b06c03807426a352499fcb65c55f8c388fd4cddbdd9936d5fe5ac5898e0d8b58ae09a73bdc7e584fe9940d3aa967607a0c4a1ad1ce5ccc0ad83f63a273e140ae0510f709cd0c214b645d68e3f4"},{"message":{"validator_index":"1047042","from_bls_pubkey":"0xb7d85608c3cf919ee72c0481283b468c2825850f6f6028c000cb19bff464556973909667d0353582d673e1049795f20c","to_execution_address":"0x778981428fb4ee8ab889aa659e81f2f2087d260a"},"signature":"0xa1079cff71763f60894927a0ac68cfff88642e5ec4e11d1f63ce7d7b15f2567842c80c0238a0f6e4d38ac2a9d09787c50c87daba460e05a0336332f1d37b65fed7526c5eb51a84d3a0169d09ddaf271d13710d22469e8dffde8859d50a2dd0a1"},{"message":{"validator_index":"2279280","from_bls_pubkey":"0xa46cb4c6f51759dd36e897cf8f5f8a774dbb5968defec8bcd85b9ec0f3d873a6569fabde6c6cf3fa5dc77e910bc39938","to_execution_address":"0x3aa93143d0d7c378fbb0904fd1788aea4c2244ee"},"signature":"0x988ea703ce8fcbd5bc7811c49e1eede7061ce461966a9a52f03afdecb157f065a1993fd71ea29c6769121610fc9e3e190eff938fb8c2f77dcf5f511208ad23cf427c05dd207b6c6004ba2a1ee3b6a84949e39db4ef1ee254635d3527010f7794"},{"message":{"validator_index":"1894531","from_bls_pubkey":"0xa18343c3306dae4ff3c78428069a4ae7876f0ad620219648b99b4bfaeea1d7898df50d508533e756f5903efbdf585076","to_execution_address":"0xf9f3f64210cc7c298f4e990115d157ed8b403aa2"},"signature":"0xa120e4f3144799db31e7487d25cbe6d8724f0076f23fdd7ff1f00b24b304a93a97862a3ebecb5e1b91018a0496a3c4020004b5d49571f4b9a3faf0f9d8f1f067d7005b5600db18872732313acf1350e1bec278384f3e0fe28d43f00203ae10e7"},{"message":{"validator_index":"2970787","from_bls_pubkey":"0xb23734206f673528ad12bad1b7815a9db722d7a5afffdfac97e17d453fcd2616a804619bd9f8db50b9547a357b1f5813","to_execution_address":"0x2036eb4250633bb379d46758bce28087974638c6"},"signature":"0x8de01f498b48fd1df0c20529228b7e8616c7bfc35457d392404110e394db4c884dad325363be1f2a83ac383486cdea460e78e89a728ac9464f71dfbc685ac8be3fb9ecb21d67a6c105354c58bfb78f2adf7ee65f5a4d7fbe5989e522b52daccf"},{"message":{"validator_index":"2430055","from_bls_pubkey":"0xb490d2df5759bb5115690df9aa805cddc1787b17fc3984ec400d03ccd5c6da6dbc54a724816ccf0c86b4b23e4daf0b17","to_execution_address":"0x42a3f4418ecbddffb5d058777555df2c9ec50eba"},"signature":"0x909ac7032213a33af76294ec19617f3fd9859bb22201e0502ae7187debe740c5cb0367ef03e944eab7fdc5ab23d303f916904a1ca5f7aadbcfbab89bdd82931dd7ff3e0efdd1135698f54774989ddd6d8ee07bebff863718c927072564a547bb"},{"message":{"validator_index":"506311","from_bls_pubkey":"0xa2810855686190fded08fbafafc427d3540a58c2b391c0d05a71be7a4d1aff2b4ea501c8e4c1ebb79cb49f1991ada976","to_execution_address":"0x68e5e841ce629c89a05627ce1c6708c7aacb0cde"},"signature":"0xa108770fd60463dfc982d8725440e47c54730329420bcf05a969e4937d06e468385b53c4a5f6c69e55a775f358fa0948171dedf3bb0ccc1679280251b7abe4cc644e10b46bcdaddd590951541bda68373c8a8dcbfb86d3cb97822a5dfc21f481"},{"message":{"validator_index":"121562","from_bls_pubkey":"0x8deafeba9f0184ffa1f3d1422b9d97d6975fc4d5a21df265b48b6e831d6aee5a6236b3d5fb9e03cab1e0795f3dd45206","to_execution_address":"0xc40d6a420fe36b9e8d954713eca4442721892252"},"signature":"0xb489851f8a8fd535ee14505b9ae32ab27cd8d5e637236f491f71bfc987316491ef3f1b7670378875580eb247993d82511128502ea093d108730e070bb8c5919b39e78893139b3f1a499e885b15d385073e227d6a4e85ba0413ab9e2481d0b8da"}],"blob_kzg_commitments":["0xb1ec6f426f978c599752e0e7181c305a1b8623c06088b5480b9aad7fe5f419d6c81a8f6862abe50a5e8cadf8649d347c","0x109252428f11e9b162a1e4c03bc8965b3a951e9aef7381ebf01fff6828d9ae8bbeb86d42469047b0c205fd55488427fc","0x23b34c422f5dc8f657e44bec0e51ab2840981d2ca63caaa51da14231033a661656d833a140f1279e0a1e40020f4c8be2","0xea4f5e424f7a2a28771b166a93b66dc12d8f207683e22f77941d78d8741740768f79e18451ce86d434d576fdbaf45f2f","0xfd705842efc5096d6c5e7d95673f828e34921f0839ab5831c29ebba04e78f7002799a7e34b2f67c27bedb9a981bcc315","0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695"]}}} \ No newline at end of file diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java index 109ed0a86c7..569c3d5abdb 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/RemoteValidatorApiHandlerTest.java @@ -69,7 +69,6 @@ import tech.pegasys.teku.spec.datastructures.blocks.BeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlindedBlockContents; import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.BlockContents; import tech.pegasys.teku.spec.datastructures.builder.SignedValidatorRegistration; import tech.pegasys.teku.spec.datastructures.genesis.GenesisData; @@ -412,26 +411,6 @@ public void createUnsignedBlock_WhenFound_ReturnsBlock() { assertThatSszData(unwrapToValue(future)).isEqualByAllMeansTo(beaconBlock); } - @Test - public void createUnsignedBlock_WhenFound_ReturnsBlindedBlockContents() { - final Spec denebSpec = TestSpecFactory.createMinimalDeneb(); - final DataStructureUtil denebDataStructureUtil = new DataStructureUtil(denebSpec); - final BeaconBlock beaconBlock = denebDataStructureUtil.randomBeaconBlock(UInt64.ONE); - final BlindedBlockContents blindedBlockContents = - denebDataStructureUtil.randomBlindedBlockContents(UInt64.ONE); - final BLSSignature blsSignature = denebDataStructureUtil.randomSignature(); - final Optional graffiti = Optional.of(Bytes32.random()); - - when(typeDefClient.createUnsignedBlock( - eq(beaconBlock.getSlot()), eq(blsSignature), eq(graffiti), eq(true))) - .thenReturn(Optional.of(blindedBlockContents)); - - SafeFuture> future = - apiHandler.createUnsignedBlock(UInt64.ONE, blsSignature, graffiti, true); - - assertThatSszData(unwrapToValue(future)).isEqualByAllMeansTo(blindedBlockContents); - } - @Test public void createUnsignedBlock_WhenFound_ReturnsBlockContents() { final Spec denebSpec = TestSpecFactory.createMinimalDeneb();