From c0ac79fcbd270d066cb9a665a4f2656fe52024ff Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Tue, 25 Jun 2024 14:31:08 +0200 Subject: [PATCH 1/2] provide electra body builder test --- .../common/AbstractBeaconBlockBodyTest.java | 5 +- .../electra/BeaconBlockBodyElectraTest.java | 86 +++++++++++++++++++ 2 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/common/AbstractBeaconBlockBodyTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/common/AbstractBeaconBlockBodyTest.java index 8fbe8a21d0c..b1ecc4a1c5b 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/common/AbstractBeaconBlockBodyTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/common/AbstractBeaconBlockBodyTest.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.function.Consumer; import java.util.stream.Collectors; -import java.util.stream.Stream; import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.Test; import tech.pegasys.teku.bls.BLSSignature; @@ -166,9 +165,7 @@ void equalsReturnsFalseWhenProposerSlashingsAreDifferent() { void equalsReturnsFalseWhenAttesterSlashingsAreDifferent() { // Create copy of attesterSlashings and change the element to ensure it is different. attesterSlashings = - Stream.concat( - Stream.of(dataStructureUtil.randomAttesterSlashing()), attesterSlashings.stream()) - .collect(blockBodySchema.getAttesterSlashingsSchema().collector()); + blockBodySchema.getAttesterSlashingsSchema().of(dataStructureUtil.randomAttesterSlashing()); T testBeaconBlockBody = createBlockBody(); diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java new file mode 100644 index 00000000000..88be7b5b81c --- /dev/null +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java @@ -0,0 +1,86 @@ +/* + * Copyright Consensys Software Inc., 2022 + * + * 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.blockbody.versions.electra; + +import java.util.function.Consumer; +import org.junit.jupiter.api.BeforeEach; +import tech.pegasys.teku.infrastructure.ssz.SszList; +import tech.pegasys.teku.spec.SpecMilestone; +import tech.pegasys.teku.spec.datastructures.blocks.blockbody.BeaconBlockBodyBuilder; +import tech.pegasys.teku.spec.datastructures.blocks.blockbody.common.AbstractBeaconBlockBodyTest; +import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregate; +import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix.BlindedBeaconBlockBodyBellatrix; +import tech.pegasys.teku.spec.datastructures.consolidations.SignedConsolidation; +import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload; +import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader; +import tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange; +import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; + +class BeaconBlockBodyElectraTest extends AbstractBeaconBlockBodyTest { + + protected SyncAggregate syncAggregate; + protected ExecutionPayload executionPayload; + protected ExecutionPayloadHeader executionPayloadHeader; + protected SszList blsToExecutionChanges; + protected SszList blobKzgCommitments; + protected SszList consolidations; + + @BeforeEach + void setup() { + super.setUpBaseClass( + SpecMilestone.ELECTRA, + () -> { + syncAggregate = dataStructureUtil.randomSyncAggregate(); + executionPayload = dataStructureUtil.randomExecutionPayload(); + executionPayloadHeader = dataStructureUtil.randomExecutionPayloadHeader(); + blsToExecutionChanges = dataStructureUtil.randomSignedBlsToExecutionChangesList(); + blobKzgCommitments = dataStructureUtil.randomBlobKzgCommitments(); + consolidations = dataStructureUtil.randomSignedConsolidations(); + }); + } + + @Override + protected BeaconBlockBodyElectra createBlockBody( + final Consumer contentProvider) { + final BeaconBlockBodyBuilder bodyBuilder = createBeaconBlockBodyBuilder(); + contentProvider.accept(bodyBuilder); + return bodyBuilder.build().toVersionElectra().orElseThrow(); + } + + @Override + protected BlindedBeaconBlockBodyBellatrix createBlindedBlockBody( + final Consumer contentProvider) { + final BeaconBlockBodyBuilder bodyBuilder = createBeaconBlockBodyBuilder(); + contentProvider.accept(bodyBuilder); + return bodyBuilder.build().toBlindedVersionElectra().orElseThrow(); + } + + @Override + protected Consumer createContentProvider(final boolean blinded) { + return super.createContentProvider(blinded) + .andThen( + builder -> { + builder + .syncAggregate(syncAggregate) + .blsToExecutionChanges(blsToExecutionChanges) + .blobKzgCommitments(blobKzgCommitments) + .consolidations(consolidations); + if (blinded) { + builder.executionPayloadHeader(executionPayloadHeader); + } else { + builder.executionPayload(executionPayload); + } + }); + } +} From b1a1b83cf0b48f8d0f670e79d15d913801cdbba3 Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Tue, 25 Jun 2024 14:50:43 +0200 Subject: [PATCH 2/2] rebase --- .../versions/electra/BeaconBlockBodyElectraTest.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java index 88be7b5b81c..6b1b8fedc11 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/datastructures/blocks/blockbody/versions/electra/BeaconBlockBodyElectraTest.java @@ -21,7 +21,6 @@ import tech.pegasys.teku.spec.datastructures.blocks.blockbody.common.AbstractBeaconBlockBodyTest; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.altair.SyncAggregate; import tech.pegasys.teku.spec.datastructures.blocks.blockbody.versions.bellatrix.BlindedBeaconBlockBodyBellatrix; -import tech.pegasys.teku.spec.datastructures.consolidations.SignedConsolidation; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayload; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader; import tech.pegasys.teku.spec.datastructures.operations.SignedBlsToExecutionChange; @@ -34,7 +33,6 @@ class BeaconBlockBodyElectraTest extends AbstractBeaconBlockBodyTest blsToExecutionChanges; protected SszList blobKzgCommitments; - protected SszList consolidations; @BeforeEach void setup() { @@ -46,7 +44,6 @@ void setup() { executionPayloadHeader = dataStructureUtil.randomExecutionPayloadHeader(); blsToExecutionChanges = dataStructureUtil.randomSignedBlsToExecutionChangesList(); blobKzgCommitments = dataStructureUtil.randomBlobKzgCommitments(); - consolidations = dataStructureUtil.randomSignedConsolidations(); }); } @@ -74,8 +71,7 @@ protected Consumer createContentProvider(final boolean b builder .syncAggregate(syncAggregate) .blsToExecutionChanges(blsToExecutionChanges) - .blobKzgCommitments(blobKzgCommitments) - .consolidations(consolidations); + .blobKzgCommitments(blobKzgCommitments); if (blinded) { builder.executionPayloadHeader(executionPayloadHeader); } else {