From d668a4bc23c68655068ffadf510fc51b8a7fe047 Mon Sep 17 00:00:00 2001 From: Gabriel Fukushima Date: Mon, 4 Nov 2024 12:43:04 +1000 Subject: [PATCH 1/8] update deposit snapshot november 2024 (#8809) Signed-off-by: Gabriel Fukushima --- .../pegasys/teku/services/powchain/gnosis.ssz | Bin 436 -> 532 bytes .../pegasys/teku/services/powchain/holesky.ssz | Bin 436 -> 404 bytes .../pegasys/teku/services/powchain/mainnet.ssz | Bin 372 -> 340 bytes .../pegasys/teku/services/powchain/sepolia.ssz | Bin 244 -> 244 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/gnosis.ssz b/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/gnosis.ssz index 6762418e6351f19b1f736edeedc2a54aa2570239..f85ebf090af725488e97ea7f501993f0a903094b 100644 GIT binary patch delta 507 zcmVlWrvpvHU9+w z000002q~ry2D$;RMNx32i0=f_JpaT?Lgb9NI9X`Ov4O#>mm@NfPbGg@#5@#1hRz_8 zZCxW}MjChuXbD9$?A_1~r@6HE_0-Xd?@dvguv&|7^Y^=hEkU9{>r)F|U!P^U4-}2@ zpcxz7e;`Py<;E-~Qx(G~jwvY6nz*KHM6gUyCu1yB&J?~n8rtBK+;}k6#E<$ISua5X zqNNVGc?A|%mzC{JL%Dw{Dy07t_aLeH90hB1rxVjt)p5@r)`})>U?osl^)=Dz7OGY! z*+)`p9pM=zY$CGAymD!Z1NFSTfEcDOs*q-}=*f1CQ_FS^d>6-@W004CwL`DdN$+6c z5YekGT8y_t;EM@4P`zN}QE8^dzI_1}+n!Nq9!1LR-D@s9g#dp89}I&KS~FoCy%$NY z5>k)NiM)~g80)M+Mll=p2855?>z3*(6fPa8EJ8;r8$cl{kXLbYt z00000Mv_fRsIQ!1@6mNjUtFWl5an_PuNX+#D$cdf?*PRk)L0aePbGh>?_*F|VaaR?d=(8FUM4`U$w{k}9dKbwVkhG4V7^^t^vOu zT~=tI-j5=Ns;t%zbV2#Lz)THxj0CZnf`HA=SgX00s%M{h#s9lt>AAv{0QYwq>O zm~LzQY>YFz$E&5hv&;Trxw*{{#)Ctm0)nU?f;9Qjho?9gtg0pulI$IbcsFiG_!dWV E5auMuu>b%7 diff --git a/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/holesky.ssz b/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/holesky.ssz index a5c678ae287516f1dcb04a05a93290a84e1ea4cd..e7f69a23b1b2a5b0299f8ea984d967907755d1e8 100644 GIT binary patch delta 378 zcmV-=0fqjw1C#?#Q~&?~4x4zC;4PWOhaS#=U`i`qb=r5OnJ(Ju0{N1xIr}1`=WD%L8w}`v>1S;X8xjHzM{!X`V zB~+N2T1K2Y#0re~MrOLD1sFa-_~QJ$=sl2f^(&hWn8OAh-Uylmd`t0{fal#Km95_% zMCNmV?!()*rb(Zg$7p|2(On0Yt?7-kBkdg-Y~EB@j{lFXFw{NwuavTo??Tp9!i#y& z8xF3}=@1y?_>VVVa~XNn-GjKJ*Dby&VkKEEEvY2l_q)+#HfE$_4qA!Y6HvOu?R$ Y3S~mVn}`o62D|EfcJbAJ@NKq?8h(AiUjP6A delta 410 zcmV;L0cHM_1GEEAQ~&?~U1;);WRSOX3ZQ@N@G4DWkcBL#vZx#nCi79qUjHIkwzdQS z00000MQaxUU~or7A$Ar}2!s-A*3y%F%&Nz36$1sfV^f(2vfLbzPbGhnUq0ZAd8~|u zM{I~Y-R`pnN!7+&j5+G1RMmGVB6B{g?8e$9wv>Q~TQ!HG%r%()x5oXiwVF4N-kO{m zlYvt`F?MH=51q9Vz|tKRi&LZ};XH84b!BiuSSTSo{en)9+6&L~4Le6)5Wlp0lh^Wj z859EELwTlrkmX`2cg%mOa-VtAh6&Wya6De|yudX?Py17*VX&V!uL~X~0wy~l9UAtK zGE+J1T}5hnQcI@R+}QSc7=qBAOMqFnJphkzDcQVF={Q$_e)|l91owd E2qNmen*aa+ diff --git a/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/mainnet.ssz b/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/mainnet.ssz index 4dbcf5935da30392d49771d4c2813ebc07c77a19..0984ecd89a233d3014f4ed711ed7dd8728f59a62 100644 GIT binary patch delta 281 zcmV+!0p|Yn0@MOeQ~&?~k+9vqO8bm2*|xV2vu+lY0z@@1$2a&u0b|^`*b%wv2ErNu z000001z)PtSwM4`tx#}_%6tp1KR!ctbNqDe)ibJZURw-vs}MqwPep%eNv0CpE;pv8 z>P{q%`>t~js^c6(!qwqAP=1LiFTAi=Se;DoyDHA8!xe+;Z^5?PR<3`f4`Q10_VZ!#=@ql9UJPAS78qzmxLcdO02yEH zgkA|YPJ|&97M!5P!C^s@<6h=AY~f;KW_s|_plJ#ZY=A0obi$?f(Joz0Ga4x^Kp5ur f(AD9so_}@DI%ZH}TgAWT@xdUeKIONcb|JHUPy&R= delta 313 zcmV-90mlB+0`vk;Q~&?~=tgaq;>wSOw^$RQcv%wLTQb zrzB!vI#Ok}Q#D diff --git a/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/sepolia.ssz b/services/powchain/src/main/resources/tech/pegasys/teku/services/powchain/sepolia.ssz index 6a6bf39755865d75b236ebdea33c3ad14dca284a..24979f36b04decd405210110fa241b463e423e48 100644 GIT binary patch delta 152 zcmV;J0B8U70rUY+Q~&?~?2#i_hYUVBc$wiC{ye)2^u(?N@eclhWGQKpPh~(jW>*Dze8Xd# zTxI8ADI!gRBZsJ*!CgBk&;P=-Zo=lt2;W0pbQK&p8dsjNF*X(lPi)nBy$EMskYS-Z Gtt*>NG(sH! delta 152 zcmV;J0B8U70rUY+Q~&?~o%t Date: Mon, 4 Nov 2024 18:00:55 +1300 Subject: [PATCH 2/8] Fix parameter name for forkchoiceUpdatedV4 (#8811) --- .../schema/PayloadAttributesV4.java | 14 +++++++------- .../schema/PayloadAttributesV4Test.java | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4.java b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4.java index 47e98eaad44..e3ed4caa59f 100644 --- a/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4.java +++ b/ethereum/executionclient/src/main/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4.java @@ -33,7 +33,7 @@ public class PayloadAttributesV4 extends PayloadAttributesV3 { @JsonSerialize(using = UInt64AsHexSerializer.class) @JsonDeserialize(using = UInt64AsHexDeserializer.class) - public final UInt64 targetBlockCount; + public final UInt64 targetBlobCount; @JsonSerialize(using = UInt64AsHexSerializer.class) @JsonDeserialize(using = UInt64AsHexDeserializer.class) @@ -45,13 +45,13 @@ public PayloadAttributesV4( final @JsonProperty("suggestedFeeRecipient") Bytes20 suggestedFeeRecipient, final @JsonProperty("withdrawals") List withdrawals, final @JsonProperty("parentBeaconBlockRoot") Bytes32 parentBeaconBlockRoot, - final @JsonProperty("targetBlobCount") UInt64 targetBlockCount, + final @JsonProperty("targetBlobCount") UInt64 targetBlobCount, final @JsonProperty("maximumBlobCount") UInt64 maximumBlobCount) { super(timestamp, prevRandao, suggestedFeeRecipient, withdrawals, parentBeaconBlockRoot); - checkNotNull(targetBlockCount, "targetBlockCount"); + checkNotNull(targetBlobCount, "targetBlobCount"); checkNotNull(maximumBlobCount, "maximumBlobCount"); - this.targetBlockCount = targetBlockCount; + this.targetBlobCount = targetBlobCount; this.maximumBlobCount = maximumBlobCount; } @@ -91,13 +91,13 @@ public boolean equals(final Object o) { return false; } final PayloadAttributesV4 that = (PayloadAttributesV4) o; - return Objects.equals(targetBlockCount, that.targetBlockCount) + return Objects.equals(targetBlobCount, that.targetBlobCount) && Objects.equals(maximumBlobCount, that.maximumBlobCount); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), targetBlockCount, maximumBlobCount); + return Objects.hash(super.hashCode(), targetBlobCount, maximumBlobCount); } @Override @@ -108,7 +108,7 @@ public String toString() { .add("suggestedFeeRecipient", suggestedFeeRecipient) .add("withdrawals", withdrawals) .add("parentBeaconBlockRoot", parentBeaconBlockRoot) - .add("targetBlockCount", targetBlockCount) + .add("targetBlobCount", targetBlobCount) .add("maximumBlobCount", maximumBlobCount) .toString(); } diff --git a/ethereum/executionclient/src/test/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4Test.java b/ethereum/executionclient/src/test/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4Test.java index f9eca48edab..a02d7cd6308 100644 --- a/ethereum/executionclient/src/test/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4Test.java +++ b/ethereum/executionclient/src/test/java/tech/pegasys/teku/ethereum/executionclient/schema/PayloadAttributesV4Test.java @@ -94,7 +94,7 @@ public void buildFromInternalPayload_HasCorrectValues() { assertThat(payloadBuildingAttributes.getParentBeaconBlockRoot()) .isEqualTo(payloadAttributesV4.parentBeaconBlockRoot); assertThat(payloadBuildingAttributes.getTargetBlobCount()) - .hasValue(payloadAttributesV4.targetBlockCount); + .hasValue(payloadAttributesV4.targetBlobCount); assertThat(payloadBuildingAttributes.getMaximumBlobCount()) .hasValue(payloadAttributesV4.maximumBlobCount); } From 8bcbfc973308e2aed3185d41265e50d7a3b78b43 Mon Sep 17 00:00:00 2001 From: David Ryan Date: Mon, 4 Nov 2024 16:29:01 +1100 Subject: [PATCH 3/8] Change blindedBlockCreatorCache keys from slot to slotAndBlockRoot. (#8780) Co-authored-by: Stefan Bratanov --- .../validator/api/ValidatorApiChannel.java | 50 ++++++++++--------- .../remote/FailoverValidatorApiHandler.java | 23 ++++++--- .../FailoverValidatorApiHandlerTest.java | 2 +- 3 files changed, 43 insertions(+), 32 deletions(-) diff --git a/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorApiChannel.java b/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorApiChannel.java index 8a4d36f00b2..680153a8ed4 100644 --- a/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorApiChannel.java +++ b/validator/api/src/main/java/tech/pegasys/teku/validator/api/ValidatorApiChannel.java @@ -59,30 +59,30 @@ public SafeFuture> getGenesisData() { @Override public SafeFuture> getValidatorIndices( - Collection publicKeys) { + final Collection publicKeys) { return SafeFuture.completedFuture(Map.of()); } @Override public SafeFuture>> getValidatorStatuses( - Collection validatorIdentifiers) { + final Collection validatorIdentifiers) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture> getAttestationDuties( - UInt64 epoch, IntCollection validatorIndices) { + final UInt64 epoch, final IntCollection validatorIndices) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture> getSyncCommitteeDuties( - UInt64 epoch, IntCollection validatorIndices) { + final UInt64 epoch, final IntCollection validatorIndices) { return SafeFuture.completedFuture(Optional.empty()); } @Override - public SafeFuture> getProposerDuties(UInt64 epoch) { + public SafeFuture> getProposerDuties(final UInt64 epoch) { return SafeFuture.completedFuture(Optional.empty()); } @@ -93,95 +93,97 @@ public SafeFuture> getPeerCount() { @Override public SafeFuture> createUnsignedBlock( - UInt64 slot, - BLSSignature randaoReveal, - Optional graffiti, - Optional requestedBuilderBoostFactor) { + final UInt64 slot, + final BLSSignature randaoReveal, + final Optional graffiti, + final Optional requestedBuilderBoostFactor) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture> createAttestationData( - UInt64 slot, int committeeIndex) { + final UInt64 slot, final int committeeIndex) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture> createAggregate( - UInt64 slot, Bytes32 attestationHashTreeRoot, Optional committeeIndex) { + final UInt64 slot, + final Bytes32 attestationHashTreeRoot, + final Optional committeeIndex) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture> createSyncCommitteeContribution( - UInt64 slot, int subcommitteeIndex, Bytes32 beaconBlockRoot) { + final UInt64 slot, final int subcommitteeIndex, final Bytes32 beaconBlockRoot) { return SafeFuture.completedFuture(Optional.empty()); } @Override public SafeFuture subscribeToBeaconCommittee( - List requests) { + final List requests) { return SafeFuture.COMPLETE; } @Override public SafeFuture subscribeToSyncCommitteeSubnets( - Collection subscriptions) { + final Collection subscriptions) { return SafeFuture.COMPLETE; } @Override public SafeFuture subscribeToPersistentSubnets( - Set subnetSubscriptions) { + final Set subnetSubscriptions) { return SafeFuture.COMPLETE; } @Override public SafeFuture> sendSignedAttestations( - List attestations) { + final List attestations) { return SafeFuture.completedFuture(List.of()); } @Override public SafeFuture> sendAggregateAndProofs( - List aggregateAndProofs) { + final List aggregateAndProofs) { return SafeFuture.completedFuture(List.of()); } @Override public SafeFuture sendSignedBlock( - SignedBlockContainer blockContainer, - BroadcastValidationLevel broadcastValidationLevel) { + final SignedBlockContainer blockContainer, + final BroadcastValidationLevel broadcastValidationLevel) { return SafeFuture.completedFuture(SendSignedBlockResult.rejected("NO OP Implementation")); } @Override public SafeFuture> sendSyncCommitteeMessages( - List syncCommitteeMessages) { + final List syncCommitteeMessages) { return SafeFuture.completedFuture(List.of()); } @Override public SafeFuture sendSignedContributionAndProofs( - Collection signedContributionAndProofs) { + final Collection signedContributionAndProofs) { return SafeFuture.COMPLETE; } @Override public SafeFuture prepareBeaconProposer( - Collection beaconPreparableProposers) { + final Collection beaconPreparableProposers) { return SafeFuture.COMPLETE; } @Override public SafeFuture registerValidators( - SszList validatorRegistrations) { + final SszList validatorRegistrations) { return SafeFuture.COMPLETE; } @Override public SafeFuture>> getValidatorsLiveness( - List validatorIndices, UInt64 epoch) { + final List validatorIndices, final UInt64 epoch) { return SafeFuture.completedFuture(Optional.empty()); } diff --git a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandler.java b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandler.java index a9ca5453bcc..5a91550b170 100644 --- a/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandler.java +++ b/validator/remote/src/main/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandler.java @@ -47,6 +47,7 @@ import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.blocks.BlockContainer; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; +import tech.pegasys.teku.spec.datastructures.blocks.SlotAndBlockRoot; import tech.pegasys.teku.spec.datastructures.builder.SignedValidatorRegistration; import tech.pegasys.teku.spec.datastructures.genesis.GenesisData; import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; @@ -72,7 +73,7 @@ public class FailoverValidatorApiHandler implements ValidatorApiChannel { static final String REMOTE_BEACON_NODES_REQUESTS_COUNTER_NAME = "remote_beacon_nodes_requests_total"; - private final Map blindedBlockCreatorCache = + private final Map blindedBlockCreatorCache = LimitedMap.createSynchronizedLRU(2); private final BeaconNodeReadinessManager beaconNodeReadinessManager; @@ -172,7 +173,13 @@ public SafeFuture> createUnsignedBlock( .map(BlockContainerAndMetaData::blockContainer) .map(BlockContainer::isBlinded) .orElse(false)) { - blindedBlockCreatorCache.put(slot, apiChannel); + final SlotAndBlockRoot slotAndBlockRoot = + blockContainerAndMetaData + .orElseThrow() + .blockContainer() + .getBlock() + .getSlotAndBlockRoot(); + blindedBlockCreatorCache.put(slotAndBlockRoot, apiChannel); } }); return tryRequestUntilSuccess(request, BeaconNodeRequestLabels.CREATE_UNSIGNED_BLOCK_METHOD); @@ -254,12 +261,14 @@ public SafeFuture> sendAggregateAndProofs( public SafeFuture sendSignedBlock( final SignedBlockContainer blockContainer, final BroadcastValidationLevel broadcastValidationLevel) { - final UInt64 slot = blockContainer.getSlot(); - if (blockContainer.isBlinded() && blindedBlockCreatorCache.containsKey(slot)) { - final ValidatorApiChannel blockCreatorApiChannel = blindedBlockCreatorCache.remove(slot); + final SlotAndBlockRoot slotAndBlockRoot = blockContainer.getSignedBlock().getSlotAndBlockRoot(); + if (blockContainer.isBlinded() && blindedBlockCreatorCache.containsKey(slotAndBlockRoot)) { + final ValidatorApiChannel blockCreatorApiChannel = + blindedBlockCreatorCache.remove(slotAndBlockRoot); LOG.info( - "Block for slot {} was blinded and will only be sent to the beacon node which created it.", - slot); + "Block for slot {} and root {} was blinded and will only be sent to the beacon node which created it.", + slotAndBlockRoot.getSlot(), + slotAndBlockRoot.getBlockRoot().toHexString()); return blockCreatorApiChannel.sendSignedBlock(blockContainer, broadcastValidationLevel); } return relayRequest( diff --git a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java index 0ace2806300..1ace735c94d 100644 --- a/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java +++ b/validator/remote/src/test/java/tech/pegasys/teku/validator/remote/FailoverValidatorApiHandlerTest.java @@ -592,7 +592,7 @@ public void publishesBlindedBlockOnlyToTheBeaconNodeWhichCreatedIt() { SafeFutureAssert.assertThatSafeFuture(creationRequest.run(failoverApiHandler)).isCompleted(); final SignedBeaconBlock blindedSignedBlock = - DATA_STRUCTURE_UTIL.randomSignedBlindedBeaconBlock(UInt64.ONE); + DATA_STRUCTURE_UTIL.signedBlock(blindedBlock.blockContainer().getBlock()); final ValidatorApiChannelRequest publishingRequest = apiChannel -> From 4266035224f4ea402f2c826095d3d08aeef904ce Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Mon, 4 Nov 2024 12:58:58 +0100 Subject: [PATCH 4/8] Decouple block and blobs publishing\import (#8728) --- .../ValidatorApiHandlerIntegrationTest.java | 170 +++++++--- .../validator/coordinator/BlockFactory.java | 3 +- .../coordinator/BlockFactoryDeneb.java | 9 +- .../coordinator/BlockFactoryPhase0.java | 4 +- .../BlockOperationSelectorFactory.java | 20 +- .../MilestoneBasedBlockFactory.java | 8 +- .../coordinator/ValidatorApiHandler.java | 23 +- .../publisher/AbstractBlockPublisher.java | 83 +++-- .../publisher/BlockPublisherDeneb.java | 45 +-- .../publisher/BlockPublisherPhase0.java | 37 ++- .../MilestoneBasedBlockPublisher.java | 17 +- .../coordinator/AbstractBlockFactoryTest.java | 3 +- .../BlockOperationSelectorFactoryTest.java | 26 +- .../coordinator/ValidatorApiHandlerTest.java | 292 +----------------- .../publisher/AbstractBlockPublisherTest.java | 191 +++++++++--- .../publisher/BlockPublisherDenebTest.java | 76 +++++ .../publisher/BlockPublisherPhase0Test.java | 72 +++++ .../trackers/BlockPublishingPerformance.java | 9 +- .../BlockPublishingPerformanceImpl.java | 9 +- .../blobs/BlobSidecarManager.java | 3 +- .../block/BlockImportChannel.java | 2 +- .../BlockBlobSidecarsTrackersPoolImpl.java | 30 +- .../time/PerformanceTracker.java | 4 +- .../teku/networking/eth2/P2PConfig.java | 20 +- .../beaconchain/BeaconChainController.java | 26 +- .../pegasys/teku/cli/options/P2POptions.java | 14 +- .../teku/cli/options/P2POptionsTest.java | 29 ++ 27 files changed, 721 insertions(+), 504 deletions(-) create mode 100644 beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDenebTest.java create mode 100644 beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0Test.java diff --git a/beacon/validator/src/integrationTest/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerIntegrationTest.java b/beacon/validator/src/integrationTest/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerIntegrationTest.java index 93d2d3f72c6..85a683ef102 100644 --- a/beacon/validator/src/integrationTest/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerIntegrationTest.java +++ b/beacon/validator/src/integrationTest/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerIntegrationTest.java @@ -15,15 +15,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static tech.pegasys.teku.infrastructure.async.SafeFutureAssert.assertThatSafeFuture; import static tech.pegasys.teku.infrastructure.async.SafeFutureAssert.safeJoin; import static tech.pegasys.teku.infrastructure.unsigned.UInt64.ONE; +import static tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel.NOT_REQUIRED; +import java.util.List; import java.util.Optional; +import java.util.stream.IntStream; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestTemplate; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.NetworkDataProvider; import tech.pegasys.teku.api.NodeDataProvider; @@ -31,24 +36,37 @@ import tech.pegasys.teku.beacon.sync.events.SyncStateProvider; import tech.pegasys.teku.beacon.sync.events.SyncStateTracker; import tech.pegasys.teku.ethereum.performance.trackers.BlockProductionAndPublishingPerformanceFactory; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; +import tech.pegasys.teku.infrastructure.async.DelayedExecutorAsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.metrics.StubMetricsSystem; import tech.pegasys.teku.infrastructure.metrics.Validator.ValidatorDutyMetricUtils; +import tech.pegasys.teku.infrastructure.ssz.SszList; import tech.pegasys.teku.infrastructure.time.SystemTimeProvider; import tech.pegasys.teku.infrastructure.unsigned.UInt64; +import tech.pegasys.teku.networking.eth2.P2PConfig; import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber; import tech.pegasys.teku.networking.eth2.gossip.subnets.SyncCommitteeSubscriptionManager; -import tech.pegasys.teku.spec.Spec; -import tech.pegasys.teku.spec.TestSpecFactory; +import tech.pegasys.teku.spec.SpecMilestone; +import tech.pegasys.teku.spec.SpecVersion; +import tech.pegasys.teku.spec.TestSpecContext; +import tech.pegasys.teku.spec.TestSpecInvocationContextProvider.SpecContext; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockAndState; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; import tech.pegasys.teku.spec.datastructures.operations.AttestationData; import tech.pegasys.teku.spec.datastructures.state.Checkpoint; +import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; +import tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult; +import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; import tech.pegasys.teku.statetransition.attestation.AggregatingAttestationPool; import tech.pegasys.teku.statetransition.attestation.AttestationManager; import tech.pegasys.teku.statetransition.blobs.BlockBlobSidecarsTrackersPool; import tech.pegasys.teku.statetransition.block.BlockImportChannel; +import tech.pegasys.teku.statetransition.block.BlockImportChannel.BlockImportAndBroadcastValidationResults; import tech.pegasys.teku.statetransition.forkchoice.ForkChoiceTrigger; import tech.pegasys.teku.statetransition.forkchoice.ProposersDataManager; import tech.pegasys.teku.statetransition.synccommittee.SyncCommitteeContributionPool; @@ -58,16 +76,19 @@ import tech.pegasys.teku.storage.server.StateStorageMode; import tech.pegasys.teku.storage.storageSystem.InMemoryStorageSystemBuilder; import tech.pegasys.teku.storage.storageSystem.StorageSystem; +import tech.pegasys.teku.validator.api.SendSignedBlockResult; import tech.pegasys.teku.validator.coordinator.performance.DefaultPerformanceTracker; +import tech.pegasys.teku.validator.coordinator.publisher.MilestoneBasedBlockPublisher; +@TestSpecContext(milestone = {SpecMilestone.PHASE0, SpecMilestone.DENEB}) public class ValidatorApiHandlerIntegrationTest { + private final AsyncRunner asyncRunner = DelayedExecutorAsyncRunner.create(); // Use full storage system private final StorageSystem storageSystem = InMemoryStorageSystemBuilder.buildDefault(StateStorageMode.ARCHIVE); private final CombinedChainDataClient combinedChainDataClient = storageSystem.combinedChainDataClient(); - private final Spec spec = TestSpecFactory.createMinimalPhase0(); // Other dependencies are mocked, but these can be updated as needed private final SyncStateProvider syncStateProvider = mock(SyncStateTracker.class); @@ -100,45 +121,93 @@ public class ValidatorApiHandlerIntegrationTest { mock(SyncCommitteeSubscriptionManager.class); private final DutyMetrics dutyMetrics = mock(DutyMetrics.class); - private final ValidatorApiHandler handler = - new ValidatorApiHandler( - chainDataProvider, - nodeDataProvider, - networkDataProvider, - combinedChainDataClient, - syncStateProvider, - blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, - attestationPool, - attestationManager, - attestationTopicSubscriber, - activeValidatorTracker, - dutyMetrics, - performanceTracker, - spec, - forkChoiceTrigger, - proposersDataManager, - syncCommitteeMessagePool, - syncCommitteeContributionPool, - syncCommitteeSubscriptionManager, - new BlockProductionAndPublishingPerformanceFactory( - new SystemTimeProvider(), __ -> UInt64.ZERO, true, 0, 0, 0, 0)); + + private ValidatorApiHandler handler; @BeforeEach - public void setup() { + public void setup(final SpecContext specContext) { when(syncStateProvider.getCurrentSyncState()).thenReturn(SyncState.IN_SYNC); when(forkChoiceTrigger.prepareForAttestationProduction(any())).thenReturn(SafeFuture.COMPLETE); when(dutyMetrics.getValidatorDutyMetric()) .thenReturn(ValidatorDutyMetricUtils.createValidatorDutyMetric(new StubMetricsSystem())); + + when(blockGossipChannel.publishBlock(any())).thenReturn(SafeFuture.COMPLETE); + when(blobSidecarGossipChannel.publishBlobSidecar(any())).thenReturn(SafeFuture.COMPLETE); + when(blobSidecarGossipChannel.publishBlobSidecars(any())).thenReturn(SafeFuture.COMPLETE); + + doAnswer(invocation -> SafeFuture.completedFuture(invocation.getArgument(0))) + .when(blockFactory) + .unblindSignedBlockIfBlinded(any(), any()); + + // BlobSidecar builder + doAnswer( + invocation -> { + final SignedBlockContainer blockContainer = invocation.getArgument(0); + final SpecVersion asspecVersion = + specContext.getSpec().forMilestone(SpecMilestone.DENEB); + if (asspecVersion == null) { + return List.of(); + } + final MiscHelpersDeneb miscHelpersDeneb = + MiscHelpersDeneb.required(asspecVersion.miscHelpers()); + if (blockContainer.getBlobs().isEmpty()) { + return List.of(); + } + final SszList blobs = blockContainer.getBlobs().orElseThrow(); + final SszList proofs = blockContainer.getKzgProofs().orElseThrow(); + return IntStream.range(0, blobs.size()) + .mapToObj( + index -> + miscHelpersDeneb.constructBlobSidecar( + blockContainer.getSignedBlock(), + UInt64.valueOf(index), + blobs.get(index), + proofs.get(index))) + .toList(); + }) + .when(blockFactory) + .createBlobSidecars(any()); + + handler = + new ValidatorApiHandler( + chainDataProvider, + nodeDataProvider, + networkDataProvider, + combinedChainDataClient, + syncStateProvider, + blockFactory, + attestationPool, + attestationManager, + attestationTopicSubscriber, + activeValidatorTracker, + dutyMetrics, + performanceTracker, + specContext.getSpec(), + forkChoiceTrigger, + proposersDataManager, + syncCommitteeMessagePool, + syncCommitteeContributionPool, + syncCommitteeSubscriptionManager, + new BlockProductionAndPublishingPerformanceFactory( + new SystemTimeProvider(), __ -> UInt64.ZERO, true, 0, 0, 0, 0), + new MilestoneBasedBlockPublisher( + asyncRunner, + specContext.getSpec(), + blockFactory, + blockImportChannel, + blockGossipChannel, + blockBlobSidecarsTrackersPool, + blobSidecarGossipChannel, + performanceTracker, + dutyMetrics, + P2PConfig.DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED)); } - @Test - public void createAttestationData_withRecentBlockAvailable() { + @TestTemplate + public void createAttestationData_withRecentBlockAvailable(final SpecContext specContext) { + specContext.assumeIsNotOneOf(SpecMilestone.DENEB); final UInt64 targetEpoch = UInt64.valueOf(3); - final UInt64 targetEpochStartSlot = spec.computeStartSlotAtEpoch(targetEpoch); + final UInt64 targetEpochStartSlot = specContext.getSpec().computeStartSlotAtEpoch(targetEpoch); final UInt64 targetSlot = targetEpochStartSlot.plus(2); final SignedBlockAndState genesis = chainUpdater.initializeGenesis(); @@ -167,12 +236,14 @@ public void createAttestationData_withRecentBlockAvailable() { assertThat(attestation.getTarget()).isEqualTo(expectedTarget); } - @Test - public void createUnsignedAttestation_withLatestBlockFromAnOldEpoch() { + @TestTemplate + public void createUnsignedAttestation_withLatestBlockFromAnOldEpoch( + final SpecContext specContext) { + specContext.assumeIsNotOneOf(SpecMilestone.DENEB); final UInt64 latestEpoch = UInt64.valueOf(2); - final UInt64 latestSlot = spec.computeStartSlotAtEpoch(latestEpoch).plus(ONE); + final UInt64 latestSlot = specContext.getSpec().computeStartSlotAtEpoch(latestEpoch).plus(ONE); final UInt64 targetEpoch = UInt64.valueOf(latestEpoch.longValue() + 3); - final UInt64 targetEpochStartSlot = spec.computeStartSlotAtEpoch(targetEpoch); + final UInt64 targetEpochStartSlot = specContext.getSpec().computeStartSlotAtEpoch(targetEpoch); final UInt64 targetSlot = targetEpochStartSlot.plus(2); final SignedBlockAndState genesis = chainUpdater.initializeGenesis(); @@ -196,4 +267,27 @@ public void createUnsignedAttestation_withLatestBlockFromAnOldEpoch() { assertThat(attestation.getSource()).isEqualTo(genesisCheckpoint); assertThat(attestation.getTarget()).isEqualTo(expectedTarget); } + + @TestTemplate + void sendSignedBlock_shouldImportAndPublishBlock(final SpecContext specContext) { + final SignedBeaconBlock block = specContext.getDataStructureUtil().randomSignedBeaconBlock(5); + + when(blockImportChannel.importBlock(block, NOT_REQUIRED)) + .thenReturn(prepareBlockImportResult(BlockImportResult.successful(block))); + final SafeFuture result = handler.sendSignedBlock(block, NOT_REQUIRED); + assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); + + if (specContext.getSpecMilestone() == SpecMilestone.DENEB) { + verify(blobSidecarGossipChannel).publishBlobSidecars(any()); + } + verify(blockGossipChannel).publishBlock(block); + verify(blockImportChannel).importBlock(block, NOT_REQUIRED); + } + + private SafeFuture prepareBlockImportResult( + final BlockImportResult blockImportResult) { + return SafeFuture.completedFuture( + new BlockImportAndBroadcastValidationResults( + SafeFuture.completedFuture(blockImportResult))); + } } diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactory.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactory.java index ae0fa28b71f..94abffb2fb1 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactory.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactory.java @@ -40,6 +40,5 @@ SafeFuture createUnsignedBlock( SafeFuture unblindSignedBlockIfBlinded( SignedBeaconBlock maybeBlindedBlock, BlockPublishingPerformance blockPublishingPerformance); - List createBlobSidecars( - SignedBlockContainer blockContainer, BlockPublishingPerformance blockPublishingPerformance); + List createBlobSidecars(SignedBlockContainer blockContainer); } 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 b0490b677a2..fbe29cbc279 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 @@ -18,7 +18,6 @@ import org.apache.tuweni.bytes.Bytes32; import tech.pegasys.teku.bls.BLSSignature; import tech.pegasys.teku.ethereum.performance.trackers.BlockProductionPerformance; -import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.Spec; @@ -69,12 +68,8 @@ public SafeFuture createUnsignedBlock( } @Override - public List createBlobSidecars( - final SignedBlockContainer blockContainer, - final BlockPublishingPerformance blockPublishingPerformance) { - return operationSelector - .createBlobSidecarsSelector(blockPublishingPerformance) - .apply(blockContainer); + public List createBlobSidecars(final SignedBlockContainer blockContainer) { + return operationSelector.createBlobSidecarsSelector().apply(blockContainer); } private BlockContents createBlockContents( diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryPhase0.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryPhase0.java index 7b9a90d2044..397166c6e0c 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryPhase0.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/BlockFactoryPhase0.java @@ -104,9 +104,7 @@ public SafeFuture unblindSignedBlockIfBlinded( } @Override - public List createBlobSidecars( - final SignedBlockContainer blockContainer, - final BlockPublishingPerformance blockPublishingPerformance) { + public List createBlobSidecars(final SignedBlockContainer blockContainer) { return Collections.emptyList(); } } 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 20357e8c7c3..7eff3b34f13 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 @@ -451,8 +451,7 @@ public Function> createBlobsBundleSelector( }; } - public Function> createBlobSidecarsSelector( - final BlockPublishingPerformance blockPublishingPerformance) { + public Function> createBlobSidecarsSelector() { return blockContainer -> { final UInt64 slot = blockContainer.getSlot(); final SignedBeaconBlock block = blockContainer.getSignedBlock(); @@ -505,17 +504,12 @@ public Function> createBlobSidecarsSelec final MiscHelpersDeneb miscHelpersDeneb = MiscHelpersDeneb.required(spec.atSlot(slot).miscHelpers()); - final List blobSidecars = - IntStream.range(0, blobs.size()) - .mapToObj( - index -> - miscHelpersDeneb.constructBlobSidecar( - block, UInt64.valueOf(index), blobs.get(index), proofs.get(index))) - .toList(); - - blockPublishingPerformance.blobSidecarsPrepared(); - - return blobSidecars; + return IntStream.range(0, blobs.size()) + .mapToObj( + index -> + miscHelpersDeneb.constructBlobSidecar( + block, UInt64.valueOf(index), blobs.get(index), proofs.get(index))) + .toList(); }; } diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/MilestoneBasedBlockFactory.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/MilestoneBasedBlockFactory.java index dfa2e336286..9af770aae51 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/MilestoneBasedBlockFactory.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/MilestoneBasedBlockFactory.java @@ -93,13 +93,9 @@ public SafeFuture unblindSignedBlockIfBlinded( } @Override - public List createBlobSidecars( - final SignedBlockContainer blockContainer, - final BlockPublishingPerformance blockPublishingPerformance) { + public List createBlobSidecars(final SignedBlockContainer blockContainer) { final SpecMilestone milestone = getMilestone(blockContainer.getSlot()); - return registeredFactories - .get(milestone) - .createBlobSidecars(blockContainer, blockPublishingPerformance); + return registeredFactories.get(milestone).createBlobSidecars(blockContainer); } private SpecMilestone getMilestone(final UInt64 slot) { diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java index a82a02e1fa4..46c84df772b 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandler.java @@ -65,8 +65,6 @@ import tech.pegasys.teku.infrastructure.collections.LimitedMap; import tech.pegasys.teku.infrastructure.ssz.SszList; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; -import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber; import tech.pegasys.teku.networking.eth2.gossip.subnets.SyncCommitteeSubscriptionManager; import tech.pegasys.teku.spec.Spec; @@ -92,8 +90,6 @@ import tech.pegasys.teku.spec.logic.common.util.SyncCommitteeUtil; import tech.pegasys.teku.statetransition.attestation.AggregatingAttestationPool; import tech.pegasys.teku.statetransition.attestation.AttestationManager; -import tech.pegasys.teku.statetransition.blobs.BlockBlobSidecarsTrackersPool; -import tech.pegasys.teku.statetransition.block.BlockImportChannel; import tech.pegasys.teku.statetransition.forkchoice.ForkChoiceTrigger; import tech.pegasys.teku.statetransition.forkchoice.ProposersDataManager; import tech.pegasys.teku.statetransition.synccommittee.SyncCommitteeContributionPool; @@ -108,7 +104,6 @@ import tech.pegasys.teku.validator.coordinator.duties.AttesterDutiesGenerator; import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; import tech.pegasys.teku.validator.coordinator.publisher.BlockPublisher; -import tech.pegasys.teku.validator.coordinator.publisher.MilestoneBasedBlockPublisher; public class ValidatorApiHandler implements ValidatorApiChannel { @@ -155,10 +150,6 @@ public ValidatorApiHandler( final CombinedChainDataClient combinedChainDataClient, final SyncStateProvider syncStateProvider, final BlockFactory blockFactory, - final BlockImportChannel blockImportChannel, - final BlockGossipChannel blockGossipChannel, - final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool, - final BlobSidecarGossipChannel blobSidecarGossipChannel, final AggregatingAttestationPool attestationPool, final AttestationManager attestationManager, final AttestationTopicSubscriber attestationTopicSubscriber, @@ -172,7 +163,8 @@ public ValidatorApiHandler( final SyncCommitteeContributionPool syncCommitteeContributionPool, final SyncCommitteeSubscriptionManager syncCommitteeSubscriptionManager, final BlockProductionAndPublishingPerformanceFactory - blockProductionAndPublishingPerformanceFactory) { + blockProductionAndPublishingPerformanceFactory, + final BlockPublisher blockPublisher) { this.blockProductionAndPublishingPerformanceFactory = blockProductionAndPublishingPerformanceFactory; this.chainDataProvider = chainDataProvider; @@ -193,16 +185,7 @@ public ValidatorApiHandler( this.syncCommitteeContributionPool = syncCommitteeContributionPool; this.syncCommitteeSubscriptionManager = syncCommitteeSubscriptionManager; this.proposersDataManager = proposersDataManager; - this.blockPublisher = - new MilestoneBasedBlockPublisher( - spec, - blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, - performanceTracker, - dutyMetrics); + this.blockPublisher = blockPublisher; this.attesterDutiesGenerator = new AttesterDutiesGenerator(spec); } diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisher.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisher.java index e22fef42ac0..93b39d9bf74 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisher.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisher.java @@ -16,11 +16,15 @@ import static tech.pegasys.teku.infrastructure.logging.ValidatorLogger.VALIDATOR_LOGGER; import static tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult.FailureReason.FAILED_BROADCAST_VALIDATION; +import com.google.common.base.Suppliers; import java.util.List; +import java.util.function.Supplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; @@ -37,20 +41,31 @@ public abstract class AbstractBlockPublisher implements BlockPublisher { private static final Logger LOG = LogManager.getLogger(); + private final AsyncRunner asyncRunner; + + private final boolean gossipBlobsAfterBlock; + protected final BlockFactory blockFactory; protected final BlockImportChannel blockImportChannel; + protected final BlockGossipChannel blockGossipChannel; protected final PerformanceTracker performanceTracker; protected final DutyMetrics dutyMetrics; public AbstractBlockPublisher( + final AsyncRunner asyncRunner, final BlockFactory blockFactory, + final BlockGossipChannel blockGossipChannel, final BlockImportChannel blockImportChannel, final PerformanceTracker performanceTracker, - final DutyMetrics dutyMetrics) { + final DutyMetrics dutyMetrics, + final boolean gossipBlobsAfterBlock) { + this.asyncRunner = asyncRunner; this.blockFactory = blockFactory; this.blockImportChannel = blockImportChannel; + this.blockGossipChannel = blockGossipChannel; this.performanceTracker = performanceTracker; this.dutyMetrics = dutyMetrics; + this.gossipBlobsAfterBlock = gossipBlobsAfterBlock; } @Override @@ -62,30 +77,31 @@ public SafeFuture sendSignedBlock( .unblindSignedBlockIfBlinded(blockContainer.getSignedBlock(), blockPublishingPerformance) .thenPeek(performanceTracker::saveProducedBlock) .thenCompose( - signedBlock -> { - // creating blob sidecars after unblinding the block to ensure in the blinded flow we - // will have the cached builder payload - final List blobSidecars = - blockFactory.createBlobSidecars(blockContainer, blockPublishingPerformance); - return gossipAndImportUnblindedSignedBlockAndBlobSidecars( - signedBlock, blobSidecars, broadcastValidationLevel, blockPublishingPerformance); - }) + // creating blob sidecars after unblinding the block to ensure in the blinded flow we + // will have the cached builder payload + signedBlock -> + gossipAndImportUnblindedSignedBlockAndBlobSidecars( + signedBlock, + Suppliers.memoize(() -> blockFactory.createBlobSidecars(blockContainer)), + broadcastValidationLevel, + blockPublishingPerformance)) .thenCompose(result -> calculateResult(blockContainer, result, blockPublishingPerformance)); } private SafeFuture gossipAndImportUnblindedSignedBlockAndBlobSidecars( final SignedBeaconBlock block, - final List blobSidecars, + final Supplier> blobSidecars, final BroadcastValidationLevel broadcastValidationLevel, final BlockPublishingPerformance blockPublishingPerformance) { if (broadcastValidationLevel == BroadcastValidationLevel.NOT_REQUIRED) { // when broadcast validation is disabled, we can publish the block (and blob sidecars) // immediately and then import - publishBlockAndBlobSidecars(block, blobSidecars, blockPublishingPerformance); - return importBlockAndBlobSidecars( - block, blobSidecars, broadcastValidationLevel, blockPublishingPerformance); + publishBlockAndBlobs(block, blobSidecars, blockPublishingPerformance); + + importBlobSidecars(blobSidecars.get(), blockPublishingPerformance); + return importBlock(block, broadcastValidationLevel, blockPublishingPerformance); } // when broadcast validation is enabled, we need to wait for the validation to complete before @@ -93,15 +109,21 @@ public SafeFuture sendSignedBlock( final SafeFuture blockImportAndBroadcastValidationResults = - importBlockAndBlobSidecars( - block, blobSidecars, broadcastValidationLevel, blockPublishingPerformance); + importBlock(block, broadcastValidationLevel, blockPublishingPerformance); + + // prepare and import blob sidecars in parallel with block import + asyncRunner + .runAsync(() -> importBlobSidecars(blobSidecars.get(), blockPublishingPerformance)) + .finish( + error -> + LOG.error("Failed to import blob sidecars for slot {}", block.getSlot(), error)); blockImportAndBroadcastValidationResults .thenCompose(BlockImportAndBroadcastValidationResults::broadcastValidationResult) .thenAccept( broadcastValidationResult -> { if (broadcastValidationResult == BroadcastValidationResult.SUCCESS) { - publishBlockAndBlobSidecars(block, blobSidecars, blockPublishingPerformance); + publishBlockAndBlobs(block, blobSidecars, blockPublishingPerformance); LOG.debug("Block (and blob sidecars) publishing initiated"); } else { LOG.warn( @@ -120,16 +142,33 @@ public SafeFuture sendSignedBlock( return blockImportAndBroadcastValidationResults; } - abstract SafeFuture importBlockAndBlobSidecars( + private void publishBlockAndBlobs( + final SignedBeaconBlock block, + final Supplier> blobSidecars, + final BlockPublishingPerformance blockPublishingPerformance) { + + if (gossipBlobsAfterBlock) { + publishBlock(block, blockPublishingPerformance) + .always(() -> publishBlobSidecars(blobSidecars.get(), blockPublishingPerformance)); + } else { + publishBlock(block, blockPublishingPerformance).ifExceptionGetsHereRaiseABug(); + publishBlobSidecars(blobSidecars.get(), blockPublishingPerformance); + } + } + + abstract SafeFuture importBlock( SignedBeaconBlock block, - List blobSidecars, BroadcastValidationLevel broadcastValidationLevel, BlockPublishingPerformance blockPublishingPerformance); - abstract void publishBlockAndBlobSidecars( - SignedBeaconBlock block, - List blobSidecars, - BlockPublishingPerformance blockPublishingPerformance); + abstract void importBlobSidecars( + List blobSidecars, BlockPublishingPerformance blockPublishingPerformance); + + abstract SafeFuture publishBlock( + SignedBeaconBlock block, BlockPublishingPerformance blockPublishingPerformance); + + abstract void publishBlobSidecars( + List blobSidecars, BlockPublishingPerformance blockPublishingPerformance); private SafeFuture calculateResult( final SignedBlockContainer maybeBlindedBlockContainer, diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDeneb.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDeneb.java index bfe8329ed6e..d7f054ac629 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDeneb.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDeneb.java @@ -15,57 +15,60 @@ import java.util.List; import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; -import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; -import tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel; +import tech.pegasys.teku.statetransition.blobs.BlobSidecarManager.RemoteOrigin; import tech.pegasys.teku.statetransition.blobs.BlockBlobSidecarsTrackersPool; import tech.pegasys.teku.statetransition.block.BlockImportChannel; -import tech.pegasys.teku.statetransition.block.BlockImportChannel.BlockImportAndBroadcastValidationResults; import tech.pegasys.teku.validator.coordinator.BlockFactory; import tech.pegasys.teku.validator.coordinator.DutyMetrics; import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; -public class BlockPublisherDeneb extends AbstractBlockPublisher { +public class BlockPublisherDeneb extends BlockPublisherPhase0 { - private final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool; - private final BlockGossipChannel blockGossipChannel; - private final BlobSidecarGossipChannel blobSidecarGossipChannel; + protected final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool; + protected final BlobSidecarGossipChannel blobSidecarGossipChannel; public BlockPublisherDeneb( + final AsyncRunner asyncRunner, final BlockFactory blockFactory, final BlockImportChannel blockImportChannel, final BlockGossipChannel blockGossipChannel, final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool, final BlobSidecarGossipChannel blobSidecarGossipChannel, final PerformanceTracker performanceTracker, - final DutyMetrics dutyMetrics) { - super(blockFactory, blockImportChannel, performanceTracker, dutyMetrics); + final DutyMetrics dutyMetrics, + final boolean gossipBlobsAfterBlock) { + super( + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + gossipBlobsAfterBlock); this.blockBlobSidecarsTrackersPool = blockBlobSidecarsTrackersPool; - this.blockGossipChannel = blockGossipChannel; this.blobSidecarGossipChannel = blobSidecarGossipChannel; } @Override - SafeFuture importBlockAndBlobSidecars( - final SignedBeaconBlock block, + void importBlobSidecars( final List blobSidecars, - final BroadcastValidationLevel broadcastValidationLevel, final BlockPublishingPerformance blockPublishingPerformance) { - // provide blobs for the block before importing it - blockBlobSidecarsTrackersPool.onCompletedBlockAndBlobSidecars(block, blobSidecars); - return blockImportChannel.importBlock(block, broadcastValidationLevel); + blobSidecars.forEach( + blobSidecar -> + blockBlobSidecarsTrackersPool.onNewBlobSidecar( + blobSidecar, RemoteOrigin.LOCAL_PROPOSAL)); + blockPublishingPerformance.blobSidecarsImportCompleted(); } @Override - void publishBlockAndBlobSidecars( - final SignedBeaconBlock block, + void publishBlobSidecars( final List blobSidecars, final BlockPublishingPerformance blockPublishingPerformance) { - blockGossipChannel.publishBlock(block).ifExceptionGetsHereRaiseABug(); + blockPublishingPerformance.blobSidecarsPublishingInitiated(); blobSidecarGossipChannel.publishBlobSidecars(blobSidecars).ifExceptionGetsHereRaiseABug(); - blockPublishingPerformance.blockAndBlobSidecarsPublishingInitiated(); } } diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0.java index 82da3f302e2..014417b21ba 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0.java @@ -15,6 +15,7 @@ import java.util.List; import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; @@ -27,33 +28,51 @@ import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; public class BlockPublisherPhase0 extends AbstractBlockPublisher { - private final BlockGossipChannel blockGossipChannel; public BlockPublisherPhase0( + final AsyncRunner asyncRunner, final BlockFactory blockFactory, final BlockGossipChannel blockGossipChannel, final BlockImportChannel blockImportChannel, final PerformanceTracker performanceTracker, - final DutyMetrics dutyMetrics) { - super(blockFactory, blockImportChannel, performanceTracker, dutyMetrics); - this.blockGossipChannel = blockGossipChannel; + final DutyMetrics dutyMetrics, + final boolean gossipBlobsAfterBlock) { + super( + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + gossipBlobsAfterBlock); } @Override - SafeFuture importBlockAndBlobSidecars( + SafeFuture importBlock( final SignedBeaconBlock block, - final List blobSidecars, final BroadcastValidationLevel broadcastValidationLevel, final BlockPublishingPerformance blockPublishingPerformance) { return blockImportChannel.importBlock(block, broadcastValidationLevel); } @Override - void publishBlockAndBlobSidecars( - final SignedBeaconBlock block, + void importBlobSidecars( final List blobSidecars, final BlockPublishingPerformance blockPublishingPerformance) { - blockGossipChannel.publishBlock(block).ifExceptionGetsHereRaiseABug(); + // No-op for phase 0 + } + + @Override + SafeFuture publishBlock( + final SignedBeaconBlock block, final BlockPublishingPerformance blockPublishingPerformance) { blockPublishingPerformance.blockPublishingInitiated(); + return blockGossipChannel.publishBlock(block); + } + + @Override + void publishBlobSidecars( + final List blobSidecars, + final BlockPublishingPerformance blockPublishingPerformance) { + // No-op for phase 0 } } diff --git a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/MilestoneBasedBlockPublisher.java b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/MilestoneBasedBlockPublisher.java index d3dbaf92234..e1cc2024a53 100644 --- a/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/MilestoneBasedBlockPublisher.java +++ b/beacon/validator/src/main/java/tech/pegasys/teku/validator/coordinator/publisher/MilestoneBasedBlockPublisher.java @@ -18,6 +18,7 @@ import java.util.Map; import java.util.function.Supplier; import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; @@ -39,6 +40,7 @@ public class MilestoneBasedBlockPublisher implements BlockPublisher { new EnumMap<>(SpecMilestone.class); public MilestoneBasedBlockPublisher( + final AsyncRunner asyncRunner, final Spec spec, final BlockFactory blockFactory, final BlockImportChannel blockImportChannel, @@ -46,24 +48,33 @@ public MilestoneBasedBlockPublisher( final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool, final BlobSidecarGossipChannel blobSidecarGossipChannel, final PerformanceTracker performanceTracker, - final DutyMetrics dutyMetrics) { + final DutyMetrics dutyMetrics, + final boolean gossipBlobsAfterBlock) { this.spec = spec; final BlockPublisherPhase0 blockPublisherPhase0 = new BlockPublisherPhase0( - blockFactory, blockGossipChannel, blockImportChannel, performanceTracker, dutyMetrics); + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + gossipBlobsAfterBlock); // Not needed for all milestones final Supplier blockAndBlobSidecarsPublisherSupplier = Suppliers.memoize( () -> new BlockPublisherDeneb( + asyncRunner, blockFactory, blockImportChannel, blockGossipChannel, blockBlobSidecarsTrackersPool, blobSidecarGossipChannel, performanceTracker, - dutyMetrics)); + dutyMetrics, + gossipBlobsAfterBlock)); // Populate forks publishers spec.getEnabledMilestones() diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/AbstractBlockFactoryTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/AbstractBlockFactoryTest.java index e0197e631cd..a1c18b1f188 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/AbstractBlockFactoryTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/AbstractBlockFactoryTest.java @@ -377,8 +377,7 @@ protected BlockAndBlobSidecars createBlockAndBlobSidecars( when(executionLayer.getCachedUnblindedPayload(signedBlockContainer.getSlot())) .thenReturn(builderPayload.map(BuilderPayloadOrFallbackData::create)); - final List blobSidecars = - blockFactory.createBlobSidecars(signedBlockContainer, BlockPublishingPerformance.NOOP); + final List blobSidecars = blockFactory.createBlobSidecars(signedBlockContainer); return new BlockAndBlobSidecars(signedBlockContainer, blobSidecars); } diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactoryTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactoryTest.java index 1370795c08e..cd18566109b 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactoryTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/BlockOperationSelectorFactoryTest.java @@ -775,9 +775,7 @@ void shouldCreateBlobSidecarsForBlockContents() { MiscHelpersDeneb.required(spec.atSlot(signedBlockContents.getSlot()).miscHelpers()); final List blobSidecars = - factory - .createBlobSidecarsSelector(BlockPublishingPerformance.NOOP) - .apply(signedBlockContents); + factory.createBlobSidecarsSelector().apply(signedBlockContents); final SszList expectedBlobs = signedBlockContents.getBlobs().orElseThrow(); final SszList expectedProofs = signedBlockContents.getKzgProofs().orElseThrow(); @@ -821,11 +819,7 @@ void shouldFailCreatingBlobSidecarsIfBuilderBlobsBundleCommitmentsRootIsNotConsi dataStructureUtil.randomExecutionPayload(), blobsBundle); - assertThatThrownBy( - () -> - factory - .createBlobSidecarsSelector(BlockPublishingPerformance.NOOP) - .apply(signedBlindedBeaconBlock)) + assertThatThrownBy(() -> factory.createBlobSidecarsSelector().apply(signedBlindedBeaconBlock)) .isInstanceOf(IllegalStateException.class) .hasMessage( "Commitments in the builder BlobsBundle don't match the commitments in the block"); @@ -846,11 +840,7 @@ void shouldFailCreatingBlobSidecarsIfBuilderBlobsBundleProofsIsNotConsistent() { dataStructureUtil.randomExecutionPayload(), blobsBundle); - assertThatThrownBy( - () -> - factory - .createBlobSidecarsSelector(BlockPublishingPerformance.NOOP) - .apply(signedBlindedBeaconBlock)) + assertThatThrownBy(() -> factory.createBlobSidecarsSelector().apply(signedBlindedBeaconBlock)) .isInstanceOf(IllegalStateException.class) .hasMessage( "The number of blobs in the builder BlobsBundle doesn't match the number of commitments in the block"); @@ -871,11 +861,7 @@ void shouldFailCreatingBlobSidecarsIfBuilderBlobsBundleBlobsIsNotConsistent() { dataStructureUtil.randomExecutionPayload(), blobsBundle); - assertThatThrownBy( - () -> - factory - .createBlobSidecarsSelector(BlockPublishingPerformance.NOOP) - .apply(signedBlindedBeaconBlock)) + assertThatThrownBy(() -> factory.createBlobSidecarsSelector().apply(signedBlindedBeaconBlock)) .isInstanceOf(IllegalStateException.class) .hasMessage( "The number of proofs in the builder BlobsBundle doesn't match the number of commitments in the block"); @@ -908,9 +894,7 @@ void shouldCreateBlobSidecarsForBlindedBlock(final boolean useLocalFallback) { } final List blobSidecars = - factory - .createBlobSidecarsSelector(BlockPublishingPerformance.NOOP) - .apply(signedBlindedBeaconBlock); + factory.createBlobSidecarsSelector().apply(signedBlindedBeaconBlock); final SszList expectedBlobs = blobsBundle.getBlobs(); final SszList expectedProofs = blobsBundle.getProofs(); diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java index ae7fd762114..346eee64205 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/ValidatorApiHandlerTest.java @@ -37,7 +37,6 @@ import static tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel.EQUIVOCATION; import static tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel.GOSSIP; import static tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel.NOT_REQUIRED; -import static tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult.FailureReason.DOES_NOT_DESCEND_FROM_LATEST_FINALIZED; import it.unimi.dsi.fastutil.ints.IntList; import it.unimi.dsi.fastutil.ints.IntSet; @@ -53,7 +52,6 @@ import org.apache.tuweni.bytes.Bytes32; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; import org.mockito.InOrder; import tech.pegasys.teku.api.ChainDataProvider; import tech.pegasys.teku.api.NetworkDataProvider; @@ -80,10 +78,6 @@ import tech.pegasys.teku.infrastructure.ssz.SszMutableList; import tech.pegasys.teku.infrastructure.time.StubTimeProvider; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -import tech.pegasys.teku.kzg.KZGCommitment; -import tech.pegasys.teku.kzg.KZGProof; -import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; -import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.networking.eth2.gossip.subnets.AttestationTopicSubscriber; import tech.pegasys.teku.networking.eth2.gossip.subnets.SyncCommitteeSubscriptionManager; import tech.pegasys.teku.spec.Spec; @@ -92,12 +86,8 @@ import tech.pegasys.teku.spec.config.SpecConfig; import tech.pegasys.teku.spec.config.SpecConfigAltair; import tech.pegasys.teku.spec.datastructures.attestation.ValidatableAttestation; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.Blob; -import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockAndState; -import tech.pegasys.teku.spec.datastructures.blocks.SignedBlockContainer; -import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.builder.SignedValidatorRegistration; import tech.pegasys.teku.spec.datastructures.builder.ValidatorRegistration; import tech.pegasys.teku.spec.datastructures.metadata.BlockContainerAndMetaData; @@ -112,17 +102,10 @@ import tech.pegasys.teku.spec.datastructures.state.CheckpointState; import tech.pegasys.teku.spec.datastructures.state.Validator; import tech.pegasys.teku.spec.datastructures.state.beaconstate.BeaconState; -import tech.pegasys.teku.spec.datastructures.type.SszKZGCommitment; -import tech.pegasys.teku.spec.datastructures.type.SszKZGProof; -import tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult; import tech.pegasys.teku.spec.logic.common.util.SyncCommitteeUtil; -import tech.pegasys.teku.spec.logic.versions.deneb.helpers.MiscHelpersDeneb; import tech.pegasys.teku.spec.util.DataStructureUtil; import tech.pegasys.teku.statetransition.attestation.AggregatingAttestationPool; import tech.pegasys.teku.statetransition.attestation.AttestationManager; -import tech.pegasys.teku.statetransition.blobs.BlockBlobSidecarsTrackersPool; -import tech.pegasys.teku.statetransition.block.BlockImportChannel; -import tech.pegasys.teku.statetransition.block.BlockImportChannel.BlockImportAndBroadcastValidationResults; import tech.pegasys.teku.statetransition.forkchoice.ForkChoiceTrigger; import tech.pegasys.teku.statetransition.forkchoice.ProposersDataManager; import tech.pegasys.teku.statetransition.synccommittee.SyncCommitteeContributionPool; @@ -135,6 +118,7 @@ import tech.pegasys.teku.validator.api.SendSignedBlockResult; import tech.pegasys.teku.validator.api.SubmitDataError; import tech.pegasys.teku.validator.coordinator.performance.DefaultPerformanceTracker; +import tech.pegasys.teku.validator.coordinator.publisher.BlockPublisher; class ValidatorApiHandlerTest { @@ -149,12 +133,7 @@ class ValidatorApiHandlerTest { private final AttestationTopicSubscriber attestationTopicSubscriptions = mock(AttestationTopicSubscriber.class); private final ActiveValidatorTracker activeValidatorTracker = mock(ActiveValidatorTracker.class); - private final BlockImportChannel blockImportChannel = mock(BlockImportChannel.class); - private final BlockGossipChannel blockGossipChannel = mock(BlockGossipChannel.class); - private final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool = - mock(BlockBlobSidecarsTrackersPool.class); - private final BlobSidecarGossipChannel blobSidecarGossipChannel = - mock(BlobSidecarGossipChannel.class); + private final BlockPublisher blockPublisher = mock(BlockPublisher.class); private final DefaultPerformanceTracker performanceTracker = mock(DefaultPerformanceTracker.class); private final ChainDataProvider chainDataProvider = mock(ChainDataProvider.class); @@ -170,14 +149,6 @@ class ValidatorApiHandlerTest { private final SyncCommitteeSubscriptionManager syncCommitteeSubscriptionManager = mock(SyncCommitteeSubscriptionManager.class); - @SuppressWarnings("unchecked") - private final ArgumentCaptor> blobSidecarsCaptor1 = - ArgumentCaptor.forClass(List.class); - - @SuppressWarnings("unchecked") - private final ArgumentCaptor> blobSidecarsCaptor2 = - ArgumentCaptor.forClass(List.class); - private final BlockProductionAndPublishingPerformanceFactory blockProductionPerformanceFactory = new BlockProductionAndPublishingPerformanceFactory( StubTimeProvider.withTimeInMillis(0), __ -> ZERO, false, 0, 0, 0, 0); @@ -195,9 +166,6 @@ public void setUp() { this.epochStartSlot = spec.computeStartSlotAtEpoch(EPOCH); this.previousEpochStartSlot = spec.computeStartSlotAtEpoch(PREVIOUS_EPOCH); this.dataStructureUtil = new DataStructureUtil(spec); - when(blockGossipChannel.publishBlock(any())).thenReturn(SafeFuture.COMPLETE); - when(blobSidecarGossipChannel.publishBlobSidecar(any())).thenReturn(SafeFuture.COMPLETE); - when(blobSidecarGossipChannel.publishBlobSidecars(any())).thenReturn(SafeFuture.COMPLETE); when(dutyMetrics.getValidatorDutyMetric()) .thenReturn(ValidatorDutyMetricUtils.createValidatorDutyMetric(new StubMetricsSystem())); this.validatorApiHandler = @@ -208,10 +176,6 @@ public void setUp() { chainDataClient, syncStateProvider, blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, attestationPool, attestationManager, attestationTopicSubscriptions, @@ -224,7 +188,8 @@ public void setUp() { syncCommitteeMessagePool, syncCommitteeContributionPool, syncCommitteeSubscriptionManager, - blockProductionPerformanceFactory); + blockProductionPerformanceFactory, + blockPublisher); when(syncStateProvider.getCurrentSyncState()).thenReturn(SyncState.IN_SYNC); when(forkChoiceTrigger.prepareForBlockProduction(any(), any())).thenReturn(SafeFuture.COMPLETE); @@ -463,10 +428,6 @@ void getSyncCommitteeDuties_shouldNotUseEpochPriorToFork() { chainDataClient, syncStateProvider, blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, attestationPool, attestationManager, attestationTopicSubscriptions, @@ -479,7 +440,8 @@ void getSyncCommitteeDuties_shouldNotUseEpochPriorToFork() { syncCommitteeMessagePool, syncCommitteeContributionPool, syncCommitteeSubscriptionManager, - blockProductionPerformanceFactory); + blockProductionPerformanceFactory, + blockPublisher); // Best state is still in Phase0 final BeaconState state = dataStructureUtil.stateBuilderPhase0().slot(previousEpochStartSlot.minus(1)).build(); @@ -905,45 +867,27 @@ private ValidatableAttestation validatableAttestationOf(final Attestation validA } @Test - public void sendSignedBlock_shouldConvertSuccessfulResult() { + public void sendSignedBlock_shouldPublish() { final SignedBeaconBlock block = dataStructureUtil.randomSignedBeaconBlock(5); - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.successful(block))); + when(blockPublisher.sendSignedBlock(eq(block), eq(NOT_REQUIRED), any())) + .thenReturn(SafeFuture.completedFuture(SendSignedBlockResult.success(block.getRoot()))); final SafeFuture result = validatorApiHandler.sendSignedBlock(block, NOT_REQUIRED); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); } @Test - public void sendSignedBlock_shouldConvertFailedResult() { + public void sendSignedBlock_shouldCatchPublishFailure() { final SignedBeaconBlock block = dataStructureUtil.randomSignedBeaconBlock(5); - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.FAILED_INVALID_ANCESTRY)); + when(blockPublisher.sendSignedBlock(eq(block), eq(NOT_REQUIRED), any())) + .thenReturn(SafeFuture.failedFuture(new RuntimeException("Failed to publish block"))); final SafeFuture result = validatorApiHandler.sendSignedBlock(block, NOT_REQUIRED); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); assertThat(result) - .isCompletedWithValue( - SendSignedBlockResult.notImported(DOES_NOT_DESCEND_FROM_LATEST_FINALIZED.name())); - } - - @Test - public void sendSignedBlock_shouldConvertKnownBlockResult() { - final SignedBeaconBlock block = dataStructureUtil.randomSignedBeaconBlock(5); - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.knownBlock(block, false))); - final SafeFuture result = - validatorApiHandler.sendSignedBlock(block, NOT_REQUIRED); - - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); - assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); + .isCompletedWithValue(SendSignedBlockResult.rejected("Failed to publish block")); } @Test @@ -982,8 +926,8 @@ public void sendSignedBlock_shouldConvertKnownBlockResult() { blockContainerAndMetaData.blockContainer().getBlock(), dataStructureUtil.randomSignature()); - when(blockImportChannel.importBlock(block, EQUIVOCATION)) - .thenReturn(prepareBlockImportResult(BlockImportResult.successful(block))); + when(blockPublisher.sendSignedBlock(eq(block), eq(EQUIVOCATION), any())) + .thenReturn(SafeFuture.completedFuture(SendSignedBlockResult.success(block.getRoot()))); // require GOSSIP validation final SafeFuture result = @@ -992,105 +936,7 @@ public void sendSignedBlock_shouldConvertKnownBlockResult() { assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); // for locally created blocks, the validation level should have been changed to EQUIVOCATION - verify(blockImportChannel).importBlock(block, EQUIVOCATION); - } - - @Test - public void sendSignedBlock_shouldConvertBlockContentsSuccessfulResult() { - setupDeneb(); - final SignedBlockContents blockContents = - dataStructureUtil.randomSignedBlockContents(UInt64.valueOf(5)); - final SignedBeaconBlock block = blockContents.getSignedBlock(); - final List expectedBlobSidecars = - BlobSidecarSummary.fromSignedBlockContents(blockContents); - - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.successful(block))); - final SafeFuture result = - validatorApiHandler.sendSignedBlock(blockContents, NOT_REQUIRED); - - verify(blobSidecarGossipChannel).publishBlobSidecars(blobSidecarsCaptor1.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor1.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockBlobSidecarsTrackersPool) - .onCompletedBlockAndBlobSidecars(eq(block), blobSidecarsCaptor2.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor2.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); - assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); - } - - @Test - public void sendSignedBlock_shouldConvertBlockContentsFailedResult() { - setupDeneb(); - final SignedBlockContents blockContents = - dataStructureUtil.randomSignedBlockContents(UInt64.valueOf(5)); - final SignedBeaconBlock block = blockContents.getSignedBlock(); - final List expectedBlobSidecars = - BlobSidecarSummary.fromSignedBlockContents(blockContents); - - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.FAILED_INVALID_ANCESTRY)); - final SafeFuture result = - validatorApiHandler.sendSignedBlock(blockContents, NOT_REQUIRED); - - verify(blobSidecarGossipChannel).publishBlobSidecars(blobSidecarsCaptor1.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor1.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockBlobSidecarsTrackersPool) - .onCompletedBlockAndBlobSidecars(eq(block), blobSidecarsCaptor2.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor2.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); - assertThat(result) - .isCompletedWithValue( - SendSignedBlockResult.notImported(DOES_NOT_DESCEND_FROM_LATEST_FINALIZED.name())); - } - - @Test - public void sendSignedBlockForDeneb_shouldConvertBlockContentsKnownBlockResult() { - setupDeneb(); - final SignedBlockContents blockContents = - dataStructureUtil.randomSignedBlockContents(UInt64.valueOf(5)); - final SignedBeaconBlock block = blockContents.getSignedBlock(); - final List expectedBlobSidecars = - BlobSidecarSummary.fromSignedBlockContents(blockContents); - - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.knownBlock(block, false))); - final SafeFuture result = - validatorApiHandler.sendSignedBlock(blockContents, NOT_REQUIRED); - - verify(blobSidecarGossipChannel).publishBlobSidecars(blobSidecarsCaptor1.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor1.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockBlobSidecarsTrackersPool) - .onCompletedBlockAndBlobSidecars(eq(block), blobSidecarsCaptor2.capture()); - assertThat(BlobSidecarSummary.fromBlobSidecars(blobSidecarsCaptor2.getValue())) - .isEqualTo(expectedBlobSidecars); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); - assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); - } - - @Test - public void sendSignedBlock_shouldGossipAndImportEmptyBlobSidecarsWhenBlobsDoNotExist() { - setupDeneb(); - final SignedBeaconBlock block = dataStructureUtil.randomSignedBeaconBlock(5); - - when(blockImportChannel.importBlock(block, NOT_REQUIRED)) - .thenReturn(prepareBlockImportResult(BlockImportResult.successful(block))); - final SafeFuture result = - validatorApiHandler.sendSignedBlock(block, NOT_REQUIRED); - safeJoin(result); - - verify(blockBlobSidecarsTrackersPool).onCompletedBlockAndBlobSidecars(block, List.of()); - verify(blobSidecarGossipChannel).publishBlobSidecars(List.of()); - verify(blockGossipChannel).publishBlock(block); - verify(blockImportChannel).importBlock(block, NOT_REQUIRED); - assertThat(result).isCompletedWithValue(SendSignedBlockResult.success(block.getRoot())); + verify(blockPublisher).sendSignedBlock(eq(block), eq(EQUIVOCATION), any()); } @Test @@ -1403,110 +1249,4 @@ private void setupValidatorsState( when(chainDataProvider.getStateValidators("head", validators, new HashSet<>())) .thenReturn(SafeFuture.completedFuture(Optional.of(stateValidators))); } - - private void setupDeneb() { - this.spec = TestSpecFactory.createMinimalDeneb(); - this.epochStartSlot = spec.computeStartSlotAtEpoch(EPOCH); - this.previousEpochStartSlot = spec.computeStartSlotAtEpoch(PREVIOUS_EPOCH); - this.dataStructureUtil = new DataStructureUtil(spec); - this.validatorApiHandler = - new ValidatorApiHandler( - chainDataProvider, - nodeDataProvider, - networkDataProvider, - chainDataClient, - syncStateProvider, - blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, - attestationPool, - attestationManager, - attestationTopicSubscriptions, - activeValidatorTracker, - dutyMetrics, - performanceTracker, - spec, - forkChoiceTrigger, - proposersDataManager, - syncCommitteeMessagePool, - syncCommitteeContributionPool, - syncCommitteeSubscriptionManager, - blockProductionPerformanceFactory); - - // BlobSidecar builder - doAnswer( - invocation -> { - final SignedBlockContainer blockContainer = invocation.getArgument(0); - final MiscHelpersDeneb miscHelpersDeneb = - MiscHelpersDeneb.required(spec.forMilestone(SpecMilestone.DENEB).miscHelpers()); - if (blockContainer.getBlobs().isEmpty()) { - return List.of(); - } - final SszList blobs = blockContainer.getBlobs().orElseThrow(); - final SszList proofs = blockContainer.getKzgProofs().orElseThrow(); - return IntStream.range(0, blobs.size()) - .mapToObj( - index -> - miscHelpersDeneb.constructBlobSidecar( - blockContainer.getSignedBlock(), - UInt64.valueOf(index), - blobs.get(index), - proofs.get(index))) - .toList(); - }) - .when(blockFactory) - .createBlobSidecars(any(), any()); - } - - private SafeFuture prepareBlockImportResult( - final BlockImportResult blockImportResult) { - return SafeFuture.completedFuture( - new BlockImportAndBroadcastValidationResults( - SafeFuture.completedFuture(blockImportResult))); - } - - private record BlobSidecarSummary( - Blob blob, KZGProof kzgProof, KZGCommitment commitment, Bytes32 blockRoot) { - static List fromSignedBlockContents( - final SignedBlockContents signedBlockContents) { - final List blobs = signedBlockContents.getBlobs().orElseThrow().asList(); - final List proofs = - signedBlockContents.getKzgProofs().orElseThrow().stream() - .map(SszKZGProof::getKZGProof) - .toList(); - final List commitments = - signedBlockContents - .getSignedBlock() - .getMessage() - .getBody() - .getOptionalBlobKzgCommitments() - .orElseThrow() - .stream() - .map(SszKZGCommitment::getKZGCommitment) - .toList(); - return IntStream.range(0, blobs.size()) - .mapToObj( - index -> - new BlobSidecarSummary( - blobs.get(index), - proofs.get(index), - commitments.get(index), - signedBlockContents.getRoot())) - .toList(); - } - - static List fromBlobSidecars(final List blobSidecars) { - return blobSidecars.stream() - .map( - blobSidecar -> - new BlobSidecarSummary( - blobSidecar.getBlob(), - blobSidecar.getKZGProof(), - blobSidecar.getKZGCommitment(), - blobSidecar.getBlockRoot())) - .toList(); - } - } } diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisherTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisherTest.java index 7fd4c543dad..50391494269 100644 --- a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisherTest.java +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/AbstractBlockPublisherTest.java @@ -13,6 +13,8 @@ package tech.pegasys.teku.validator.coordinator.publisher; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; @@ -24,7 +26,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.infrastructure.async.StubAsyncRunner; +import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; import tech.pegasys.teku.spec.Spec; import tech.pegasys.teku.spec.TestSpecFactory; import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; @@ -32,6 +37,7 @@ import tech.pegasys.teku.spec.datastructures.blocks.versions.deneb.SignedBlockContents; import tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel; import tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult; +import tech.pegasys.teku.spec.logic.common.statetransition.results.BlockImportResult.FailureReason; import tech.pegasys.teku.spec.util.DataStructureUtil; import tech.pegasys.teku.statetransition.block.BlockImportChannel; import tech.pegasys.teku.statetransition.block.BlockImportChannel.BlockImportAndBroadcastValidationResults; @@ -42,9 +48,11 @@ import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; public class AbstractBlockPublisherTest { + private final StubAsyncRunner asyncRunner = new StubAsyncRunner(); private final Spec spec = TestSpecFactory.createMinimalDeneb(); private final DataStructureUtil dataStructureUtil = new DataStructureUtil(spec); private final BlockFactory blockFactory = mock(BlockFactory.class); + private final BlockGossipChannel blockGossipChannel = mock(BlockGossipChannel.class); private final BlockImportChannel blockImportChannel = mock(BlockImportChannel.class); private final PerformanceTracker performanceTracker = mock(PerformanceTracker.class); private final DutyMetrics dutyMetrics = mock(DutyMetrics.class); @@ -52,7 +60,13 @@ public class AbstractBlockPublisherTest { private final AbstractBlockPublisher blockPublisher = spy( new BlockPublisherTest( - blockFactory, blockImportChannel, performanceTracker, dutyMetrics)); + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + false)); final SignedBlockContents signedBlockContents = dataStructureUtil.randomSignedBlockContents(); final SignedBeaconBlock signedBlock = signedBlockContents.getSignedBlock(); @@ -60,25 +74,19 @@ public class AbstractBlockPublisherTest { @BeforeEach public void setUp() { + when(blockPublisher.publishBlock(any(), any())).thenReturn(SafeFuture.COMPLETE); when(blockFactory.unblindSignedBlockIfBlinded(signedBlock, BlockPublishingPerformance.NOOP)) .thenReturn(SafeFuture.completedFuture(signedBlock)); - when(blockFactory.createBlobSidecars(signedBlockContents, BlockPublishingPerformance.NOOP)) - .thenReturn(blobSidecars); + when(blockFactory.createBlobSidecars(signedBlockContents)).thenReturn(blobSidecars); } @Test public void sendSignedBlock_shouldPublishImmediatelyAndImportWhenBroadcastValidationIsNotRequired() { - when(blockPublisher.importBlockAndBlobSidecars( - signedBlock, - blobSidecars, - BroadcastValidationLevel.NOT_REQUIRED, - BlockPublishingPerformance.NOOP)) - .thenReturn( - SafeFuture.completedFuture( - new BlockImportAndBroadcastValidationResults( - SafeFuture.completedFuture(BlockImportResult.successful(signedBlock))))); + when(blockPublisher.importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP)) + .thenReturn(prepareBlockImportResult(BlockImportResult.successful(signedBlock))); assertThatSafeFuture( blockPublisher.sendSignedBlock( @@ -87,29 +95,23 @@ public void setUp() { BlockPublishingPerformance.NOOP)) .isCompletedWithValue(SendSignedBlockResult.success(signedBlockContents.getRoot())); + verify(blockPublisher).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); + verify(blockPublisher).publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); verify(blockPublisher) - .publishBlockAndBlobSidecars(signedBlock, blobSidecars, BlockPublishingPerformance.NOOP); - verify(blockPublisher) - .importBlockAndBlobSidecars( - signedBlock, - blobSidecars, - BroadcastValidationLevel.NOT_REQUIRED, - BlockPublishingPerformance.NOOP); + .importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP); + verify(blockPublisher).importBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); } @Test public void sendSignedBlock_shouldWaitToPublishWhenBroadcastValidationIsSpecified() { final SafeFuture validationResult = new SafeFuture<>(); - when(blockPublisher.importBlockAndBlobSidecars( + when(blockPublisher.importBlock( signedBlock, - blobSidecars, BroadcastValidationLevel.CONSENSUS_AND_EQUIVOCATION, BlockPublishingPerformance.NOOP)) .thenReturn( - SafeFuture.completedFuture( - new BlockImportAndBroadcastValidationResults( - SafeFuture.completedFuture(BlockImportResult.successful(signedBlock)), - validationResult))); + prepareBlockImportResult(BlockImportResult.successful(signedBlock), validationResult)); final SafeFuture sendSignedBlockResult = blockPublisher.sendSignedBlock( @@ -118,21 +120,25 @@ public void sendSignedBlock_shouldWaitToPublishWhenBroadcastValidationIsSpecifie BlockPublishingPerformance.NOOP); assertThatSafeFuture(sendSignedBlockResult).isNotCompleted(); + assertThat(asyncRunner.hasDelayedActions()).isTrue(); + verify(blockPublisher, never()).importBlobSidecars(any(), any()); + asyncRunner.executeDueActions(); + verify(blockPublisher).importBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); verify(blockPublisher) - .importBlockAndBlobSidecars( + .importBlock( signedBlock, - blobSidecars, BroadcastValidationLevel.CONSENSUS_AND_EQUIVOCATION, BlockPublishingPerformance.NOOP); + verify(blockPublisher, never()).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); verify(blockPublisher, never()) - .publishBlockAndBlobSidecars(signedBlock, blobSidecars, BlockPublishingPerformance.NOOP); + .publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); validationResult.complete(BroadcastValidationResult.SUCCESS); - verify(blockPublisher) - .publishBlockAndBlobSidecars(signedBlock, blobSidecars, BlockPublishingPerformance.NOOP); + verify(blockPublisher).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); + verify(blockPublisher).publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); assertThatSafeFuture(sendSignedBlockResult) .isCompletedWithValue(SendSignedBlockResult.success(signedBlockContents.getRoot())); } @@ -140,9 +146,8 @@ public void sendSignedBlock_shouldWaitToPublishWhenBroadcastValidationIsSpecifie @Test public void sendSignedBlock_shouldNotPublishWhenBroadcastValidationFails() { final SafeFuture validationResult = new SafeFuture<>(); - when(blockPublisher.importBlockAndBlobSidecars( + when(blockPublisher.importBlock( signedBlock, - blobSidecars, BroadcastValidationLevel.CONSENSUS_AND_EQUIVOCATION, BlockPublishingPerformance.NOOP)) .thenReturn( @@ -157,48 +162,152 @@ public void sendSignedBlock_shouldNotPublishWhenBroadcastValidationFails() { BroadcastValidationLevel.CONSENSUS_AND_EQUIVOCATION, BlockPublishingPerformance.NOOP); + assertThat(asyncRunner.hasDelayedActions()).isTrue(); assertThatSafeFuture(sendSignedBlockResult).isNotCompleted(); verify(blockPublisher) - .importBlockAndBlobSidecars( + .importBlock( signedBlock, - blobSidecars, BroadcastValidationLevel.CONSENSUS_AND_EQUIVOCATION, BlockPublishingPerformance.NOOP); + verify(blockPublisher, never()).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); verify(blockPublisher, never()) - .publishBlockAndBlobSidecars(signedBlock, blobSidecars, BlockPublishingPerformance.NOOP); + .publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); validationResult.complete(BroadcastValidationResult.CONSENSUS_FAILURE); + verify(blockPublisher, never()).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); verify(blockPublisher, never()) - .publishBlockAndBlobSidecars(signedBlock, blobSidecars, BlockPublishingPerformance.NOOP); + .publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + assertThatSafeFuture(sendSignedBlockResult) .isCompletedWithValue( SendSignedBlockResult.rejected("FAILED_BROADCAST_VALIDATION: CONSENSUS_FAILURE")); } + @Test + public void sendSignedBlock_shouldPublishBlobsAfterBlockWhenOptionIsEnabled() { + final AbstractBlockPublisher blockPublisher = + spy( + new BlockPublisherTest( + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + true)); + + SafeFuture publishBlockFuture = new SafeFuture<>(); + when(blockPublisher.publishBlock(any(), any())).thenReturn(publishBlockFuture); + + when(blockPublisher.importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP)) + .thenReturn(prepareBlockImportResult(BlockImportResult.successful(signedBlock))); + + assertThatSafeFuture( + blockPublisher.sendSignedBlock( + signedBlockContents, + BroadcastValidationLevel.NOT_REQUIRED, + BlockPublishingPerformance.NOOP)) + .isCompletedWithValue(SendSignedBlockResult.success(signedBlockContents.getRoot())); + + verify(blockPublisher).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); + verify(blockPublisher, never()) + .publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + + // Complete block publishing + publishBlockFuture.complete(null); + + verify(blockPublisher).publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + + verify(blockPublisher) + .importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP); + verify(blockPublisher).importBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + } + + @Test + public void sendSignedBlock_shouldReturnNotImportedWhenBlockImportFails() { + when(blockPublisher.importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP)) + .thenReturn( + prepareBlockImportResult( + BlockImportResult.failedStateTransition(new RuntimeException("Failed")))); + + assertThatSafeFuture( + blockPublisher.sendSignedBlock( + signedBlockContents, + BroadcastValidationLevel.NOT_REQUIRED, + BlockPublishingPerformance.NOOP)) + .isCompletedWithValue( + SendSignedBlockResult.notImported(FailureReason.FAILED_STATE_TRANSITION.name())); + + verify(blockPublisher).publishBlock(signedBlock, BlockPublishingPerformance.NOOP); + verify(blockPublisher).publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + verify(blockPublisher) + .importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP); + verify(blockPublisher).importBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + } + + private SafeFuture prepareBlockImportResult( + final BlockImportResult blockImportResult) { + return SafeFuture.completedFuture( + new BlockImportAndBroadcastValidationResults( + SafeFuture.completedFuture(blockImportResult))); + } + + private SafeFuture prepareBlockImportResult( + final BlockImportResult blockImportResult, + final SafeFuture broadcastValidationResult) { + return SafeFuture.completedFuture( + new BlockImportAndBroadcastValidationResults( + SafeFuture.completedFuture(blockImportResult), broadcastValidationResult)); + } + private static class BlockPublisherTest extends AbstractBlockPublisher { public BlockPublisherTest( + final AsyncRunner asyncRunner, final BlockFactory blockFactory, + final BlockGossipChannel blockGossipChannel, final BlockImportChannel blockImportChannel, final PerformanceTracker performanceTracker, - final DutyMetrics dutyMetrics) { - super(blockFactory, blockImportChannel, performanceTracker, dutyMetrics); + final DutyMetrics dutyMetrics, + final boolean gossipBlobsAfterBlock) { + super( + asyncRunner, + blockFactory, + blockGossipChannel, + blockImportChannel, + performanceTracker, + dutyMetrics, + gossipBlobsAfterBlock); } @Override - SafeFuture importBlockAndBlobSidecars( + SafeFuture importBlock( final SignedBeaconBlock block, - final List blobSidecars, final BroadcastValidationLevel broadcastValidationLevel, final BlockPublishingPerformance blockPublishingPerformance) { return null; } @Override - void publishBlockAndBlobSidecars( + void importBlobSidecars( + final List blobSidecars, + final BlockPublishingPerformance blockPublishingPerformance) {} + + @Override + SafeFuture publishBlock( final SignedBeaconBlock block, + final BlockPublishingPerformance blockPublishingPerformance) { + return null; + } + + @Override + void publishBlobSidecars( final List blobSidecars, final BlockPublishingPerformance blockPublishingPerformance) {} } diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDenebTest.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDenebTest.java new file mode 100644 index 00000000000..b2e3d9f270c --- /dev/null +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherDenebTest.java @@ -0,0 +1,76 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * 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.coordinator.publisher; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.networking.eth2.gossip.BlobSidecarGossipChannel; +import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; +import tech.pegasys.teku.spec.datastructures.blobs.versions.deneb.BlobSidecar; +import tech.pegasys.teku.statetransition.blobs.BlobSidecarManager.RemoteOrigin; +import tech.pegasys.teku.statetransition.blobs.BlockBlobSidecarsTrackersPool; +import tech.pegasys.teku.statetransition.block.BlockImportChannel; +import tech.pegasys.teku.validator.coordinator.BlockFactory; +import tech.pegasys.teku.validator.coordinator.DutyMetrics; +import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; + +class BlockPublisherDenebTest { + private final BlockBlobSidecarsTrackersPool blockBlobSidecarsTrackersPool = + mock(BlockBlobSidecarsTrackersPool.class); + private final BlobSidecarGossipChannel blobSidecarGossipChannel = + mock(BlobSidecarGossipChannel.class); + private final BlockPublisherDeneb blockPublisherDeneb = + new BlockPublisherDeneb( + mock(AsyncRunner.class), + mock(BlockFactory.class), + mock(BlockImportChannel.class), + mock(BlockGossipChannel.class), + blockBlobSidecarsTrackersPool, + blobSidecarGossipChannel, + mock(PerformanceTracker.class), + mock(DutyMetrics.class), + true); + + private final BlobSidecar blobSidecar = mock(BlobSidecar.class); + private final List blobSidecars = List.of(blobSidecar); + + @BeforeEach + void setUp() { + when(blobSidecarGossipChannel.publishBlobSidecars(any())).thenReturn(SafeFuture.COMPLETE); + } + + @Test + void importBlobSidecars_shouldTrackBlobSidecars() { + blockPublisherDeneb.importBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + + verify(blockBlobSidecarsTrackersPool) + .onNewBlobSidecar(blobSidecar, RemoteOrigin.LOCAL_PROPOSAL); + } + + @Test + void publishBlobSidecars_shouldPublishBlobSidecars() { + blockPublisherDeneb.publishBlobSidecars(blobSidecars, BlockPublishingPerformance.NOOP); + + verify(blobSidecarGossipChannel).publishBlobSidecars(blobSidecars); + } +} diff --git a/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0Test.java b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0Test.java new file mode 100644 index 00000000000..a5c95d61471 --- /dev/null +++ b/beacon/validator/src/test/java/tech/pegasys/teku/validator/coordinator/publisher/BlockPublisherPhase0Test.java @@ -0,0 +1,72 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * 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.coordinator.publisher; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static tech.pegasys.teku.infrastructure.async.SafeFutureAssert.safeJoin; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import tech.pegasys.teku.ethereum.performance.trackers.BlockPublishingPerformance; +import tech.pegasys.teku.infrastructure.async.AsyncRunner; +import tech.pegasys.teku.infrastructure.async.SafeFuture; +import tech.pegasys.teku.networking.eth2.gossip.BlockGossipChannel; +import tech.pegasys.teku.spec.datastructures.blocks.SignedBeaconBlock; +import tech.pegasys.teku.spec.datastructures.validator.BroadcastValidationLevel; +import tech.pegasys.teku.statetransition.block.BlockImportChannel; +import tech.pegasys.teku.validator.coordinator.BlockFactory; +import tech.pegasys.teku.validator.coordinator.DutyMetrics; +import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; + +class BlockPublisherPhase0Test { + private final BlockGossipChannel blockGossipChannel = mock(BlockGossipChannel.class); + private final BlockImportChannel blockImportChannel = mock(BlockImportChannel.class); + + private final BlockPublisherPhase0 blockPublisherPhase0 = + new BlockPublisherPhase0( + mock(AsyncRunner.class), + mock(BlockFactory.class), + blockGossipChannel, + blockImportChannel, + mock(PerformanceTracker.class), + mock(DutyMetrics.class), + false); + + private final SignedBeaconBlock signedBlock = mock(SignedBeaconBlock.class); + + @BeforeEach + void setUp() { + when(blockGossipChannel.publishBlock(signedBlock)).thenReturn(SafeFuture.COMPLETE); + when(blockImportChannel.importBlock(signedBlock, BroadcastValidationLevel.NOT_REQUIRED)) + .thenReturn(SafeFuture.completedFuture(null)); + } + + @Test + void importBlock_shouldImportBlock() { + safeJoin( + blockPublisherPhase0.importBlock( + signedBlock, BroadcastValidationLevel.NOT_REQUIRED, BlockPublishingPerformance.NOOP)); + + verify(blockImportChannel).importBlock(signedBlock, BroadcastValidationLevel.NOT_REQUIRED); + } + + @Test + void publishBlock_shouldPublishBlock() { + safeJoin(blockPublisherPhase0.publishBlock(signedBlock, BlockPublishingPerformance.NOOP)); + + verify(blockGossipChannel).publishBlock(signedBlock); + } +} diff --git a/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformance.java b/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformance.java index fe9e468ec08..e55dd1f9e9a 100644 --- a/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformance.java +++ b/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformance.java @@ -29,16 +29,19 @@ public void builderGetPayload() {} public void blobSidecarsPrepared() {} @Override - public void blockAndBlobSidecarsPublishingInitiated() {} + public void blobSidecarsPublishingInitiated() {} @Override public void blockPublishingInitiated() {} @Override public void blockImportCompleted() {} + + @Override + public void blobSidecarsImportCompleted() {} }; - void blockAndBlobSidecarsPublishingInitiated(); + void blobSidecarsPublishingInitiated(); void blockPublishingInitiated(); @@ -46,6 +49,8 @@ public void blockImportCompleted() {} void blobSidecarsPrepared(); + void blobSidecarsImportCompleted(); + void blockImportCompleted(); void complete(); diff --git a/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformanceImpl.java b/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformanceImpl.java index 9772817cfef..6461a8a0cae 100644 --- a/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformanceImpl.java +++ b/ethereum/performance-trackers/src/main/java/tech/pegasys/teku/ethereum/performance/trackers/BlockPublishingPerformanceImpl.java @@ -67,8 +67,8 @@ public void blobSidecarsPrepared() { } @Override - public void blockAndBlobSidecarsPublishingInitiated() { - performanceTracker.addEvent("block_and_blob_sidecars_publishing_initiated"); + public void blobSidecarsImportCompleted() { + performanceTracker.addEvent("blob_sidecars_imported"); } @Override @@ -76,6 +76,11 @@ public void blockPublishingInitiated() { performanceTracker.addEvent("block_publishing_initiated"); } + @Override + public void blobSidecarsPublishingInitiated() { + performanceTracker.addEvent("blob_sidecars_publishing_initiated"); + } + @Override public void blockImportCompleted() { performanceTracker.addEvent("block_import_completed"); diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/blobs/BlobSidecarManager.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/blobs/BlobSidecarManager.java index 6481d9bb8f1..7bfea3926be 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/blobs/BlobSidecarManager.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/blobs/BlobSidecarManager.java @@ -80,6 +80,7 @@ interface ReceivedBlobSidecarListener { enum RemoteOrigin { RPC, GOSSIP, - LOCAL_EL + LOCAL_EL, + LOCAL_PROPOSAL } } diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/block/BlockImportChannel.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/block/BlockImportChannel.java index 0ce020a1b75..1a62ef5f45c 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/block/BlockImportChannel.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/block/BlockImportChannel.java @@ -42,7 +42,7 @@ default SafeFuture importBlock( default SafeFuture importBlock( final SignedBeaconBlock block, final BroadcastValidationLevel broadcastValidationLevel) { - return importBlock(block, broadcastValidationLevel, Optional.empty()); + return importBlock(block, broadcastValidationLevel, Optional.of(RemoteOrigin.LOCAL_PROPOSAL)); } record BlockImportAndBroadcastValidationResults( diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/util/BlockBlobSidecarsTrackersPoolImpl.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/util/BlockBlobSidecarsTrackersPoolImpl.java index 95582777962..5be4941c9ec 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/util/BlockBlobSidecarsTrackersPoolImpl.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/util/BlockBlobSidecarsTrackersPoolImpl.java @@ -16,6 +16,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static tech.pegasys.teku.infrastructure.time.TimeUtilities.secondsToMillis; import static tech.pegasys.teku.statetransition.blobs.BlobSidecarManager.RemoteOrigin.LOCAL_EL; +import static tech.pegasys.teku.statetransition.blobs.BlobSidecarManager.RemoteOrigin.LOCAL_PROPOSAL; import com.google.common.annotations.VisibleForTesting; import java.time.Duration; @@ -77,10 +78,12 @@ public class BlockBlobSidecarsTrackersPoolImpl extends AbstractIgnoringFutureHis static final String COUNTER_GOSSIP_SUBTYPE = "gossip"; static final String COUNTER_LOCAL_EL_SUBTYPE = "local_el"; + static final String COUNTER_LOCAL_PROPOSAL_SUBTYPE = "local_proposal"; static final String COUNTER_RPC_SUBTYPE = "rpc"; static final String COUNTER_GOSSIP_DUPLICATE_SUBTYPE = "gossip_duplicate"; static final String COUNTER_RPC_DUPLICATE_SUBTYPE = "rpc_duplicate"; static final String COUNTER_LOCAL_EL_DUPLICATE_SUBTYPE = "local_el_duplicate"; + static final String COUNTER_LOCAL_PROPOSAL_DUPLICATE_SUBTYPE = "local_proposal_duplicate"; static final String COUNTER_RPC_FETCH_SUBTYPE = "rpc_fetch"; static final String COUNTER_LOCAL_EL_FETCH_SUBTYPE = "local_el_fetch"; @@ -226,7 +229,9 @@ public synchronized void onNewBlobSidecar( final BlockBlobSidecarsTracker blobSidecarsTracker = getOrCreateBlobSidecarsTracker( - slotAndBlockRoot, newTracker -> onFirstSeen(slotAndBlockRoot), existingTracker -> {}); + slotAndBlockRoot, + newTracker -> onFirstSeen(slotAndBlockRoot, Optional.of(remoteOrigin)), + existingTracker -> {}); if (blobSidecarsTracker.add(blobSidecar)) { sizeGauge.set(++totalBlobSidecars, GAUGE_BLOB_SIDECARS_LABEL); @@ -256,6 +261,8 @@ private void countBlobSidecar(final RemoteOrigin origin) { case GOSSIP -> poolStatsCounters.labels(COUNTER_SIDECAR_TYPE, COUNTER_GOSSIP_SUBTYPE).inc(); case LOCAL_EL -> poolStatsCounters.labels(COUNTER_SIDECAR_TYPE, COUNTER_LOCAL_EL_SUBTYPE).inc(); + case LOCAL_PROPOSAL -> + poolStatsCounters.labels(COUNTER_SIDECAR_TYPE, COUNTER_LOCAL_PROPOSAL_SUBTYPE).inc(); } } @@ -267,6 +274,10 @@ private void countDuplicateBlobSidecar(final RemoteOrigin origin) { poolStatsCounters.labels(COUNTER_SIDECAR_TYPE, COUNTER_GOSSIP_DUPLICATE_SUBTYPE).inc(); case LOCAL_EL -> poolStatsCounters.labels(COUNTER_SIDECAR_TYPE, COUNTER_LOCAL_EL_DUPLICATE_SUBTYPE).inc(); + case LOCAL_PROPOSAL -> + poolStatsCounters + .labels(COUNTER_SIDECAR_TYPE, COUNTER_LOCAL_PROPOSAL_DUPLICATE_SUBTYPE) + .inc(); } } @@ -469,7 +480,7 @@ private BlockBlobSidecarsTracker internalOnNewBlock( newTracker -> { newTracker.setBlock(block); countBlock(remoteOrigin); - onFirstSeen(slotAndBlockRoot); + onFirstSeen(slotAndBlockRoot, remoteOrigin); }, existingTracker -> { if (!existingTracker.setBlock(block)) { @@ -520,6 +531,8 @@ private void countBlock(final Optional maybeRemoteOrigin) { case GOSSIP -> poolStatsCounters.labels(COUNTER_BLOCK_TYPE, COUNTER_GOSSIP_SUBTYPE).inc(); case LOCAL_EL -> {} // only possible for blobs + case LOCAL_PROPOSAL -> + poolStatsCounters.labels(COUNTER_BLOCK_TYPE, COUNTER_LOCAL_PROPOSAL_SUBTYPE).inc(); } }); } @@ -534,6 +547,10 @@ private void countDuplicateBlock(final Optional maybeRemoteOrigin) poolStatsCounters .labels(COUNTER_BLOCK_TYPE, COUNTER_GOSSIP_DUPLICATE_SUBTYPE) .inc(); + case LOCAL_PROPOSAL -> + poolStatsCounters + .labels(COUNTER_BLOCK_TYPE, COUNTER_LOCAL_PROPOSAL_DUPLICATE_SUBTYPE) + .inc(); case LOCAL_EL -> {} // only possible for blobs } }); @@ -566,7 +583,14 @@ private void makeRoomForNewTracker() { } } - private void onFirstSeen(final SlotAndBlockRoot slotAndBlockRoot) { + private void onFirstSeen( + final SlotAndBlockRoot slotAndBlockRoot, final Optional remoteOrigin) { + final boolean isLocalBlockProduction = + remoteOrigin.map(ro -> ro.equals(LOCAL_PROPOSAL)).orElse(false); + if (isLocalBlockProduction) { + return; + } + final Duration fetchDelay = calculateFetchDelay(slotAndBlockRoot); asyncRunner diff --git a/infrastructure/time/src/main/java/tech/pegasys/teku/infrastructure/time/PerformanceTracker.java b/infrastructure/time/src/main/java/tech/pegasys/teku/infrastructure/time/PerformanceTracker.java index 3f34074a982..da671e493cc 100644 --- a/infrastructure/time/src/main/java/tech/pegasys/teku/infrastructure/time/PerformanceTracker.java +++ b/infrastructure/time/src/main/java/tech/pegasys/teku/infrastructure/time/PerformanceTracker.java @@ -14,6 +14,7 @@ package tech.pegasys.teku.infrastructure.time; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.function.Consumer; import org.apache.commons.lang3.tuple.Pair; @@ -22,7 +23,8 @@ public class PerformanceTracker { private final TimeProvider timeProvider; - protected final List> events = new ArrayList<>(); + protected final List> events = + Collections.synchronizedList(new ArrayList<>()); public PerformanceTracker(final TimeProvider timeProvider) { this.timeProvider = timeProvider; diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/P2PConfig.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/P2PConfig.java index 60aec96d20e..8a422fa767c 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/P2PConfig.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/P2PConfig.java @@ -38,6 +38,7 @@ public class P2PConfig { public static final int DEFAULT_P2P_TARGET_SUBNET_SUBSCRIBER_COUNT = 2; public static final boolean DEFAULT_SUBSCRIBE_ALL_SUBNETS_ENABLED = false; public static final boolean DEFAULT_GOSSIP_SCORING_ENABLED = true; + public static final boolean DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED = false; public static final int DEFAULT_BATCH_VERIFY_MAX_THREADS = Math.max(2, Runtime.getRuntime().availableProcessors() / 2); public static final int DEFAULT_BATCH_VERIFY_QUEUE_CAPACITY = 15_000; @@ -59,7 +60,7 @@ public class P2PConfig { private final int batchVerifyQueueCapacity; private final int batchVerifyMaxBatchSize; private final boolean batchVerifyStrictThreadLimitEnabled; - + private final boolean isGossipBlobsAfterBlockEnabled; private final boolean allTopicsFilterEnabled; private P2PConfig( @@ -76,7 +77,8 @@ private P2PConfig( final int batchVerifyQueueCapacity, final int batchVerifyMaxBatchSize, final boolean batchVerifyStrictThreadLimitEnabled, - final boolean allTopicsFilterEnabled) { + final boolean allTopicsFilterEnabled, + final boolean isGossipBlobsAfterBlockEnabled) { this.spec = spec; this.networkConfig = networkConfig; this.discoveryConfig = discoveryConfig; @@ -92,6 +94,7 @@ private P2PConfig( this.batchVerifyStrictThreadLimitEnabled = batchVerifyStrictThreadLimitEnabled; this.networkingSpecConfig = spec.getNetworkingConfig(); this.allTopicsFilterEnabled = allTopicsFilterEnabled; + this.isGossipBlobsAfterBlockEnabled = isGossipBlobsAfterBlockEnabled; } public static Builder builder() { @@ -158,6 +161,10 @@ public boolean isAllTopicsFilterEnabled() { return allTopicsFilterEnabled; } + public boolean isGossipBlobsAfterBlockEnabled() { + return isGossipBlobsAfterBlockEnabled; + } + public static class Builder { private final NetworkConfig.Builder networkConfig = NetworkConfig.builder(); private final DiscoveryConfig.Builder discoveryConfig = DiscoveryConfig.builder(); @@ -177,6 +184,7 @@ public static class Builder { private boolean allTopicsFilterEnabled = DEFAULT_PEER_ALL_TOPIC_FILTER_ENABLED; private int floodPublishMaxMessageSizeThreshold = DEFAULT_FLOOD_PUBLISH_MAX_MESSAGE_SIZE_THRESHOLD; + private boolean gossipBlobsAfterBlockEnabled = DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED; private Builder() {} @@ -223,7 +231,8 @@ public P2PConfig build() { batchVerifyQueueCapacity.orElse(DEFAULT_BATCH_VERIFY_QUEUE_CAPACITY), batchVerifyMaxBatchSize, batchVerifyStrictThreadLimitEnabled, - allTopicsFilterEnabled); + allTopicsFilterEnabled, + gossipBlobsAfterBlockEnabled); } private void validate() { @@ -294,6 +303,11 @@ public Builder floodPublishMaxMessageSizeThreshold( return this; } + public Builder gossipBlobsAfterBlockEnabled(final boolean gossipBlobsAfterBlockEnabled) { + this.gossipBlobsAfterBlockEnabled = gossipBlobsAfterBlockEnabled; + return this; + } + public Builder batchVerifyMaxThreads(final int batchVerifyMaxThreads) { if (batchVerifyMaxThreads < 0) { throw new InvalidConfigurationException( diff --git a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java index 084e2e6b6ae..091e0348554 100644 --- a/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java +++ b/services/beaconchain/src/main/java/tech/pegasys/teku/services/beaconchain/BeaconChainController.java @@ -207,6 +207,7 @@ import tech.pegasys.teku.validator.coordinator.performance.PerformanceTracker; import tech.pegasys.teku.validator.coordinator.performance.SyncCommitteePerformanceTracker; import tech.pegasys.teku.validator.coordinator.performance.ValidatorPerformanceMetrics; +import tech.pegasys.teku.validator.coordinator.publisher.MilestoneBasedBlockPublisher; import tech.pegasys.teku.weaksubjectivity.WeakSubjectivityCalculator; import tech.pegasys.teku.weaksubjectivity.WeakSubjectivityValidator; @@ -968,6 +969,22 @@ public void initValidatorApiHandler() { beaconConfig.getMetricsConfig().getBlockPublishingPerformanceWarningLocalThreshold(), beaconConfig.getMetricsConfig().getBlockPublishingPerformanceWarningBuilderThreshold()); + final DutyMetrics dutyMetrics = + DutyMetrics.create(metricsSystem, timeProvider, recentChainData, spec); + + final MilestoneBasedBlockPublisher blockPublisher = + new MilestoneBasedBlockPublisher( + beaconAsyncRunner, + spec, + blockFactory, + blockImportChannel, + blockGossipChannel, + blockBlobSidecarsTrackersPool, + blobSidecarGossipChannel, + performanceTracker, + dutyMetrics, + beaconConfig.p2pConfig().isGossipBlobsAfterBlockEnabled()); + final ValidatorApiHandler validatorApiHandler = new ValidatorApiHandler( new ChainDataProvider(spec, recentChainData, combinedChainDataClient, rewardCalculator), @@ -976,15 +993,11 @@ public void initValidatorApiHandler() { combinedChainDataClient, syncService, blockFactory, - blockImportChannel, - blockGossipChannel, - blockBlobSidecarsTrackersPool, - blobSidecarGossipChannel, attestationPool, attestationManager, attestationTopicSubscriber, activeValidatorTracker, - DutyMetrics.create(metricsSystem, timeProvider, recentChainData, spec), + dutyMetrics, performanceTracker, spec, forkChoiceTrigger, @@ -992,7 +1005,8 @@ public void initValidatorApiHandler() { syncCommitteeMessagePool, syncCommitteeContributionPool, syncCommitteeSubscriptionManager, - blockProductionPerformanceFactory); + blockProductionPerformanceFactory, + blockPublisher); eventChannels .subscribe(SlotEventsChannel.class, activeValidatorTracker) .subscribe(ExecutionClientEventsChannel.class, executionClientVersionProvider) diff --git a/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java b/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java index e268b2da55e..5065a63c5da 100644 --- a/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java +++ b/teku/src/main/java/tech/pegasys/teku/cli/options/P2POptions.java @@ -291,6 +291,17 @@ The network interface(s) on which the node listens for P2P communication. hidden = true) private Integer peerRateLimit = P2PConfig.DEFAULT_PEER_RATE_LIMIT; + @Option( + names = {"--Xp2p-gossip-blobs-after-block-enabled"}, + paramLabel = "", + showDefaultValue = Visibility.ALWAYS, + description = + "Enables experimental behaviour in which blobs are gossiped after the block has been gossiped to at least one peer.", + hidden = true, + arity = "0..1", + fallbackValue = "true") + private boolean gossipBlobsAfterBlockEnabled = P2PConfig.DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED; + @Option( names = {"--Xpeer-all-topics-filter-enabled"}, paramLabel = "", @@ -410,7 +421,8 @@ public void configure(final TekuConfiguration.Builder builder) { .peerRateLimit(peerRateLimit) .allTopicsFilterEnabled(allTopicsFilterEnabled) .peerRequestLimit(peerRequestLimit) - .floodPublishMaxMessageSizeThreshold(floodPublishMaxMessageSizeThreshold); + .floodPublishMaxMessageSizeThreshold(floodPublishMaxMessageSizeThreshold) + .gossipBlobsAfterBlockEnabled(gossipBlobsAfterBlockEnabled); batchVerifyQueueCapacity.ifPresent(b::batchVerifyQueueCapacity); }) .discovery( diff --git a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java index be720223370..766dec5453c 100644 --- a/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java +++ b/teku/src/test/java/tech/pegasys/teku/cli/options/P2POptionsTest.java @@ -16,6 +16,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static tech.pegasys.teku.infrastructure.async.AsyncRunnerFactory.DEFAULT_MAX_QUEUE_SIZE_ALL_SUBNETS; +import static tech.pegasys.teku.networking.eth2.P2PConfig.DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED; import static tech.pegasys.teku.networking.p2p.discovery.DiscoveryConfig.DEFAULT_P2P_PEERS_LOWER_BOUND_ALL_SUBNETS; import static tech.pegasys.teku.networking.p2p.discovery.DiscoveryConfig.DEFAULT_P2P_PEERS_UPPER_BOUND_ALL_SUBNETS; import static tech.pegasys.teku.networking.p2p.gossip.config.GossipConfig.DEFAULT_FLOOD_PUBLISH_MAX_MESSAGE_SIZE_THRESHOLD; @@ -354,6 +355,34 @@ public void floodPublishMaxMessageSizeThreshold_isSetCorrectly() { .isEqualTo(1000); } + @Test + public void gossipBlobsAfterBlockEnabled_defaultIsSetCorrectly() { + final TekuConfiguration config = getTekuConfigurationFromArguments(); + assertThat(config.p2p().isGossipBlobsAfterBlockEnabled()) + .isEqualTo(DEFAULT_GOSSIP_BLOBS_AFTER_BLOCK_ENABLED); + } + + @Test + public void gossipBlobsAfterBlockEnabled_shouldNotRequireAValue() { + final TekuConfiguration config = + getTekuConfigurationFromArguments("--Xp2p-gossip-blobs-after-block-enabled"); + assertThat(config.p2p().isGossipBlobsAfterBlockEnabled()).isTrue(); + } + + @Test + public void gossipBlobsAfterBlockEnabled_true() { + final TekuConfiguration config = + getTekuConfigurationFromArguments("--Xp2p-gossip-blobs-after-block-enabled=true"); + assertThat(config.p2p().isGossipBlobsAfterBlockEnabled()).isTrue(); + } + + @Test + public void gossipBlobsAfterBlockEnabled_false() { + final TekuConfiguration config = + getTekuConfigurationFromArguments("--Xp2p-gossip-blobs-after-block-enabled=false"); + assertThat(config.p2p().isGossipBlobsAfterBlockEnabled()).isFalse(); + } + @Test public void defaultPortsAreSetCorrectly() { final TekuConfiguration tekuConfiguration = getTekuConfigurationFromArguments(); From e8289f1fa8d531c882063ac9ff6283bda5c436ff Mon Sep 17 00:00:00 2001 From: Mehdi AOUADI Date: Mon, 4 Nov 2024 14:32:24 +0100 Subject: [PATCH 5/8] use correct schema definitions when creation full beacon block (#8806) * use correct schema definitions when creation full beacon block --- .../v3/newBlindedBlockBELLATRIX.json | 206 +++++----- .../v3/newBlindedBlockCAPELLA.json | 336 +++++++-------- .../v3/newBlindedBlockDENEB.json | 346 ++++++++-------- .../v3/newBlindedBlockELECTRA.json | 382 +++++++++--------- .../v1/beacon/GetAttesterSlashingsTest.java | 9 +- .../v1/beacon/getAttesterSlashings.json | 93 ++++- .../handlers/v1/beacon/getBlindedBlock.json | 174 ++++---- .../beacon/getAttesterSlashingsELECTRA.json | 84 ++-- .../v2/beacon/getAttesterSlashingsPHASE0.json | 84 ++-- .../teku/spec/signatures/LocalSignerTest.java | 2 +- .../teku/spec/util/DataStructureUtil.java | 27 +- .../newBlindedBlockBELLATRIX.json | 206 +++++----- .../newBlindedBlockCAPELLA.json | 336 +++++++-------- .../newBlindedBlockDENEB.json | 346 ++++++++-------- .../newBlindedBlockELECTRA.json | 382 +++++++++--------- 15 files changed, 1552 insertions(+), 1461 deletions(-) diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockBELLATRIX.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockBELLATRIX.json index f10e250a9c1..64339eddd8a 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockBELLATRIX.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockBELLATRIX.json @@ -1,8 +1,8 @@ { "version": "bellatrix", "execution_payload_blinded": true, - "execution_payload_value": "64440075145037893977597636730159223700849209418551716330347083025087305940989", - "consensus_block_value": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "execution_payload_value": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "consensus_block_value": "110698795530499877737280254001850075711411497370695181962707136225646562110", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,174 +44,174 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd" } } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockCAPELLA.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockCAPELLA.json index 32f02e95d9d..ffb467d49c7 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockCAPELLA.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockCAPELLA.json @@ -1,8 +1,8 @@ { "version": "capella", "execution_payload_blinded": true, - "execution_payload_value": "80477117991478830934330087641848914967983650390705903836988657505597864024534", - "consensus_block_value": "7495532986413849817267215758148158394038672421876771029699707700121804844683", + "execution_payload_value": "7495532986413849817267215758148158394038672421876771029699707700121804844683", + "consensus_block_value": "16147741642076749126162712127389114255573229005697131290860120949861914404374", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,304 +44,304 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "withdrawals_root": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "withdrawals_root": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "381513", - "from_bls_pubkey": "0x8090d17ce6c1ef17c732a59003fa00af269ba50795c7beaf02ea444d37d66184b7bedaea96152a321d5b110e5f1c022c", - "to_execution_address": "0xed1cad3ee8099978b13707b6acc357bb1b768147" + "validator_index": "958637", + "from_bls_pubkey": "0x89ca6fbbaafb3c27a42f70699f42e3f79d3b7681b103e5b393042efa90512aa9e590fccb0b654a5c1590bbe675aa584e", + "to_execution_address": "0x4dc28f3e0884f5d07b860b8fce6fbebc3b857c21" }, - "signature": "0x973e5604d7e3f8ce128ce7acee5c9501571383171d491c28b9564ed35586ec772923390c008bb81a0c234e5de8bbdc801220206fe020b2990037191ac3ef7271fa8babc2239f566bb6fe6a86d7a0d0d4c644ab46cb24fc2328729a76dbd05f0b" + "signature": "0xa207b627176533d6fc3670d6c4a48afff107ef6bf9d7520b0f77162bf7df5505aa3a17c08ee53067daad827b75ef333015a61a81b421ec8888ff31dc50994121420862d11926782bf6983aab5f6f39c17264a77943dd6618d85444c56d469c19" }, { "message": { - "validator_index": "2996764", - "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", - "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" + "validator_index": "2034892", + "from_bls_pubkey": "0xb384518c8bde1118e66c725854a5919c4a5c0453e8eb822fed707aa5c636e6e2a2aa56c95966817ec67ebadf6c77b44a", + "to_execution_address": "0x7304843e481bb45a660cdae57581e756478b7a45" }, - "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" + "signature": "0xaf85c50db6dad8c04b9a22611e3174fdc57a3cfe255164e0361897353984556c3e7b91b040ec3b59cc29d774aaacf4b204e4e1960b9dd5bf9b72f8c3e09bdd64753a65084567c10b229784fe46be3de016c8add60d84c970943d221882294028" }, { "message": { - "validator_index": "2164897", - "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", - "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" + "validator_index": "2742020", + "from_bls_pubkey": "0xb2bffd7d93c4b1e46b3f4511f97de3ac70e2f9b2e3428b26ad7864d9f71bbca34904c81dbcc1dc2ffd1c02bfa016b096", + "to_execution_address": "0x7b5e6c4391e30ac86613889d8c20bde70e044e3a" }, - "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" + "signature": "0xa2a6993708f79d7b3db30c3968aaf4b706400145cf70fded02b06d54922e54a4c1db14d63860cc632d0b2a8c15efc5280bc57ceed454838f2a0848e03e610e130309d8012aa5eddc1fa84b509fc8178a685baaa0413ec58709e738aae430491d" }, { "message": { - "validator_index": "1780148", - "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", - "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" + "validator_index": "818276", + "from_bls_pubkey": "0x94e2d4cf94fb757578c496885af2075c26e2483eeffa6e894ac791f7c1945b0fbf9a6f7860736db93e03d511c4b08516", + "to_execution_address": "0xa2a06043d17ac951519956f43432e6811a0a4c5e" }, - "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" + "signature": "0xa8b4b8e92e67565ec430f2fdda94ed0f6f06d8cb302770191d614b795d194e4728c11e72162f25e04d0f7dda1dcd54da0d8a7c39e71e945873168ffa294da70dd1acbc1902a2fb1598267df5d277a0f95592967ea222ab0706571001c315eb2b" }, { "message": { - "validator_index": "2856403", - "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", - "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" + "validator_index": "433527", + "from_bls_pubkey": "0xa5041469fc5f6a944fda64e7ab422c1479ab9d0de12a2f3ac7292dfe368408cbc6d2b0ff519b521427da731e7378806e", + "to_execution_address": "0xfdc8e14312fb98663ed87639047022e291c761d2" }, - "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" + "signature": "0xb66c9d2c80f5a12930f0899b9ff3d1a6a37e0f9edb279ced767eca8ef0380227681b15bd3850a00a383491ed1d8e869310f10edea2b912278e1e2ec1cfaaba8c0981af2e40fd233a9fd2f67ec56540c66e062212ee2781593a4714914e15cb52" }, { "message": { - "validator_index": "2627637", - "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", - "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" + "validator_index": "1665765", + "from_bls_pubkey": "0x9105e2e35c7861d3fee37cb3bf07e8fdf3e0911d251cb11b956d4edbbd62a951c7ac9854677ce19a7748a503c307028c", + "to_execution_address": "0x240bd643529257f0285e4590ab814b7c9dcd5ff6" }, - "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" + "signature": "0xb3b0b28bedcc6e28d433c2a577204a9f7ecfc2fd4e3067ddcb65caebf7fd32d0389dd1db836600b0ee19a2ac8b6d0a660788a42abfde02bd5bddfdbe8cdde83a890ce69ee178ea314cfd9c06e5507ffe5cc4a685004f955219fcbbbec6fdd144" }, { "message": { - "validator_index": "703892", - "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", - "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" + "validator_index": "1281016", + "from_bls_pubkey": "0xaae4f1779eb7e006a9d0195e39af1f14a05b017a4a351ee1f3c22929929fb510cae4ba8e01b6d2444a66e388e655d92c", + "to_execution_address": "0xe3559b43918610a1bdfb4d42efd9187fdceb55aa" }, - "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" + "signature": "0xa3acdd589f44c5b4201ae54cd119add73b60bcaca91f9e5d028669dd9b52f3ce15c20bb0ec39ff9ddfe96d5c1ce979c10376d36f4840a04cd90ed9d4348fa4a53f0f00e35bfab055a102ce3b6306255ffba3ef9ce7e1548048139d574478ebbf" }, { "message": { - "validator_index": "319143", - "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", - "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" + "validator_index": "2201289", + "from_bls_pubkey": "0x842bb38ef27bafce4e8aa9abd3e31286da4d36eb87ff6a2fc4de272e4878230a7ac7a723bf3f76101ab2c2a642550eff", + "to_execution_address": "0x6cbad342d091b8c64ee004060b06d3bbb052340e" }, - "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" + "signature": "0xabd643eedb5dfcc8f2db27bcfd59f6359517cec81ab4d5ff08bd5fd246ba120883c047e0cffc1d215104169a335628180df5779f128772f899546fd260328d4a4368a044c3e2037f4284624728dc94e05467b1559aad3077cf9557bf62fc56e2" }, { "message": { - "validator_index": "1239417", - "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", - "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" + "validator_index": "1816540", + "from_bls_pubkey": "0x990cf4f3bf6ede0aaef3010026465f98f381860535ce007b87879afbf2c955c13d07d7c2d91e22fddd8ef5531f8bd22c", + "to_execution_address": "0x2b0599420f867177e37d0db84f5ea0beef702ac2" }, - "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" + "signature": "0xac8ebc3beb6cfc97c27f286e0d2e582707cbcb972d0898a41831b2d1393a684ce54ce54dc9128dc3988930ae4d92b4ed0a51b2bf639d8fd8e62e40ceac222362d9bb67f9d1b8419f3123dac1bb2e4e0cccb5c7c0985c83bd0501ed610935aa96" }, { "message": { - "validator_index": "854668", - "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", - "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" + "validator_index": "2892795", + "from_bls_pubkey": "0xa0695f8f6f65e3d8401e144eb382eaed73f9ec56be6de71dadb917af79a08ff7b74967dd4f4766ed77f7bc2fc01cfa38", + "to_execution_address": "0x51478d424f1d3001cd03dc0ef66fc958fb7628e6" }, - "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" + "signature": "0xa18c2c70d886e11a592393a7bef6fb3a515100e1436763854eb96fca9c031a959e4c105be367a10ea87c3d1a8bce821303470a1d6053cd89139bbd86fd7bbdd3e377b331884bedb0f9b10eafcb3272561fc5d71b96b219d7fe3aacd6e1558c97" }, { "message": { - "validator_index": "2086906", - "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", - "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" + "validator_index": "2664029", + "from_bls_pubkey": "0x97e268878248299c9e4d2c86957935d6cddb83900dbb6d4e52a935bcda58978f6fd33e0dc891cea14da0feafd5173762", + "to_execution_address": "0xad6f0e43909dff15ba42fc53c6ad05b972343e5a" }, - "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" + "signature": "0xa2010187045aa6d63130c7ff23464438af57c3e42eaa90823205936a94c47713b68bd93d3b6837947e277ece630a6d200d428979548f340f6f71ca33e8731e059a8c20f75d71d36caebbbf6fde28f37a919353dedb7b7c7e4dbcda553e5bbee5" }, { "message": { - "validator_index": "1702157", - "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", - "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" + "validator_index": "740284", + "from_bls_pubkey": "0x8aec1b1f595063af33939f3c3322ad38d2e1de1b11fbc8a9d04235dc7fc9792e1c88e51452d337855d254a71f42816e8", + "to_execution_address": "0xd3b10243d034be9fa5c8caaa6ebf2e537e3a3c7e" }, - "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" + "signature": "0xa0ba14bb9ce5877d9f9d607da9b2fd2d629a1de42d6d3beb5a8f4c1661aa1d6863e01de14c548be8a9df222efc6373be1290581da81c76d71bfada1d07481d7b7de94290efd640aadca41d6b4d4f81091f4c459b454bd6e333eaa35c60faacf5" }, { "message": { - "validator_index": "2778412", - "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", - "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" + "validator_index": "355536", + "from_bls_pubkey": "0xa912f4ad989d87e777e45af7c265b430daf0b39345987506d4158cdee406847f294fc7745154eb52abf0934a5e1866ee", + "to_execution_address": "0xf51e0c420e9d60ece0c4bbc926328df885b91272" }, - "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" + "signature": "0xa7f77c7fc98b1c3a364dcac68b5cff112f7745e6dd41918ba56a6fa6945507e0ce245334e22d4581f49bda913baa2a6b1176b44d52168151b3aff9a625dcdebad1899747c42c4a43cf31f49124fc0d4543e4485592c243c5300b79214398b770" }, { "message": { - "validator_index": "2237681", - "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", - "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" + "validator_index": "1275809", + "from_bls_pubkey": "0xa77e90361be2a534a386cb689d6d763a98bea5f23f325b553a762648668e4adb4991fb5f41ad7ece1578f082a5c01b5e", + "to_execution_address": "0x1c6100424e341f76cb4a8a20cd43b69291bf1096" }, - "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" + "signature": "0xad188010cb0db88e067c2699030353a1c215ae9adf083916ee2069a805e0f2cd00c76db9250a859106dbbff4430b4dd114d6293c4b3c2e9cfd31f07949f04e53f63423a08b56d7247772d07959d5d92b17bd8c7c0b294b71d3db903d56509177" }, { "message": { - "validator_index": "313936", - "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", - "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" + "validator_index": "891060", + "from_bls_pubkey": "0xb4582d56f8ad9dcc77eb5413558e63a6b562e42534c579a85384e7d7d6ff8974ff933d05a444c1d2784945f4cd1c952e", + "to_execution_address": "0xdbabc5418e28d8265fe892d2129c8395d0dd064a" }, - "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" + "signature": "0xa7f07c5a20159b029b2dac119315a0d439c541e63b0d1f6d377fd2867e5559d6b6302eb609d5796fab97cbca121ddf400c840b9ffa60dbcd89c6d441f84aff2cca1f68fd9e258a969b0d511ad1d90c0c783dde3c093ee8cd56cf6f70a61fd77a" }, { "message": { - "validator_index": "2929187", - "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", - "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" + "validator_index": "2123298", + "from_bls_pubkey": "0xa5849044acc283563bd9b40fe9b01a8c079093829fc3837cddf20a8f9c13e59629251481406f415c8e2df65285ddb41f", + "to_execution_address": "0x9ecb7542cf4bad14a20f79bc45931b8d1483242e" }, - "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" + "signature": "0x81df97c3071aac41af79494001a1c4404b5121776a71d6cbe3b8eef000e803f59edd2fff33331d2ea037faa919ddd6a115e09bead88d7c8f23368628f306e3a244f2ce0a54e4472d29e4b79eced6da3e5ab40177e96fa0d94d97f5e07d2e6e95" } ] } 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 index 0097e055456..28fc27d9620 100644 --- 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 @@ -1,8 +1,8 @@ { "version": "deneb", "execution_payload_blinded": true, - "execution_payload_value": "76713209214131783738529880011383082433585760875758578793839191401534955940321", - "consensus_block_value": "85365417869794681440511947829803128359273241077382340157256470204531202859372", + "execution_payload_value": "50756583220288449835724789919752990744036228048165053817930899246206127260481", + "consensus_block_value": "24799950324699182119107049583125116496986047597328004586475399986067975839137", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,315 +44,311 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "withdrawals_root": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34", - "blob_gas_used": "4524560227956985801", - "excess_blob_gas": "4522907744740301673" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "withdrawals_root": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", + "blob_gas_used": "4522907744740301673", + "excess_blob_gas": "4514645320066946440" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "766262", - "from_bls_pubkey": "0xa5625c5b5cc13cc8c7cc9284e6d2091a3fc81fd1ae0b76ffde470f118cef6155721dccbe1d5370edb4773d3343122d1e", - "to_execution_address": "0x60e3893ea8cfd41571c972baa1f8d28941887bb3" + "validator_index": "2804390", + "from_bls_pubkey": "0x912c280adf321fbdcd522490a5431a7c2e0e716841b1a3819edf322fd46ab90681663c156f382055a914732e156d85dd", + "to_execution_address": "0x26809b3ec8ec364791003d38265e95222e7f7efd" }, - "signature": "0xa0c99dada83fb2711e947a201677e8ed2876f36ec4a25f674ad332c8da1c4af71357ffa8641e9fa8192c1ebadccf3fb802639284484c5cad7c17278cbd253b9be3769d6cb85ede5e5cc75ed97aadd438c1f56bd138e8349ff858901e3d2a64a7" + "signature": "0xa969744aa463b0294e265f1fa92f9c9ef277afeb7ed667017e0a914bc57382d94c52f4411a135094e52636b63942e86e184ce0dd10e22ec86abbabe23396063fa873ecfc0ee3e16a5535f6422cf3f134e4d2de39464f038dd9521bb9d9a1ec80" }, { "message": { - "validator_index": "1842518", - "from_bls_pubkey": "0xb00d5cb2ad0674c8b78c27ec23db002544bcf147430bdc9ad11061ac5db91371e6e45c71ca4b15191be86560b8b3c206", - "to_execution_address": "0x86257e3ee866939f5b4f4111490afc234d8e79d7" + "validator_index": "2419641", + "from_bls_pubkey": "0x98192fd09a845d194a35781b711d801c9ce08060445a81cdb38d45bfb82c776d0e9b6083eedc0a106c9c922ee3bc906c", + "to_execution_address": "0x2fda834311b58db49107ebef3efd6ab3f5f751f2" }, - "signature": "0x993a7f5baf6059c7bd5fd2f14057c16e65608794b56b74c418f6c0835ce2eff89ee6e5f5f6eb4603da9d44ee3fc2ae2f07605e56367056c0fe2793a45b7118f8adfd33b196278ac6ed99c527449394ddf4a6a1d9211a8d70923b4e4d919cbd02" + "signature": "0xa864cf37cc41e0ea0c8cd4ae1d6d0bb833ddc583b3e389808da50acd9a3c49c59a2d4b038446feece5a6083d251e45530622aa80cc6bb57d7df907a39e1fa40885ab29ce25f3788860dab9a97050a48079c20176d6bd7e11720790679ade7638" }, { "message": { - "validator_index": "2549646", - "from_bls_pubkey": "0x961bb1c8f3c77df690ea39a9589e1e0f3ba3e2ec8e3f842d6b1810c361a69bf54b6aec172be7f3242663f8d43dfaa8bc", - "to_execution_address": "0x8e7f6643312fea0c5c56efc860a9d1b414074dcc" + "validator_index": "1587773", + "from_bls_pubkey": "0xa5234d7dc8fe8544bcad85f8ca6548172425616038825239877450fa6144ba23923065a1c3d3a8fbd687ac593e11b4d9", + "to_execution_address": "0x551c7843514c4c3e7c8db946e50e944d01fe4f16" }, - "signature": "0x885b5febc60fe21d20b2da80b540f7b3c7fe2b3c95de0ae37d6f5582fa44a22cacbda12f50b594829febea6fd35fa0ca020eca21236c9d5bce90e41a6f824b60fe120743180d1a5da4b84a181f64c6333adf3cad9a862f1e31d556162563fb7a" + "signature": "0x92ddc8deeee37b1eeb83436e230c4dbfbda6a26fcd4b046c7556fba6391650f7824e0355adfbd38b0ee232030feca3780dcb2990998184ec505207f3d4123bdc38ea5a8de44474bbec65e619b8a853670fd3ae4a08a50ca1c3bd2c81739b92a1" }, { "message": { - "validator_index": "625901", - "from_bls_pubkey": "0x8b772ee4cbcc67f534f33102671346cc3d0ddecc1a81f0350f68dd3210681c9e4bf907b49211cbd390bfadc7f285214a", - "to_execution_address": "0xb5c15a4371c6a89646dcbd1f07bbfa4e210d4bf0" + "validator_index": "1203025", + "from_bls_pubkey": "0xaf01ad2d54129b76339febd98494d79dc8dbace659dbeb3aeae85f9a2a94b23da0170f08f5233cdb136991686441e54c", + "to_execution_address": "0x14673d43914005ef102bc2f829676150401c46ca" }, - "signature": "0x85cc5356a9646f0ffd512b7d2e7d3242c81303a415e61b490d28635896aef1f2db03ae8a1439908d03cc131515ef83f003dd7b36ce480c43f4495ffd339b2b9d1e5461309a02ce193202f27d216a4f0e13f7b47295f3e1a44c8f0e8ae8e1e5a8" + "signature": "0xa34f07f9c38b8cf4781d0d1bc1d204860500aaa70a1ec6b1ca9a73d3fdbaace7c56c6bd9edc5eaf5898324494060496c016d716d51dec591c1854e84470529bd98a6fecdd74d012c8d8b677f32bd2febf0677c238361bcaa39e32056dafcaf67" }, { "message": { - "validator_index": "241152", - "from_bls_pubkey": "0x8183f3f5071394e20f83599fe297dfda37f77a040362da8f8fe926a451eb9cfd917e953c51b81619f8e4925fa6177b49", - "to_execution_address": "0x10eadb43b24678ab331bde64d7f836af97ca6064" + "validator_index": "2435262", + "from_bls_pubkey": "0xb508746a00c15709b84343dbc90c7033f121615b7ac2ebbb356adc69bc7dfdf1cc1607b1f5e577476b02a89043b0a6fb", + "to_execution_address": "0xd786ed43d263dadc5352a8e25d5ef94784c163ae" }, - "signature": "0xa19b99131e621d31846245039e99d6540418acc08844a3996544cca2d9965f8a24cc49cf695bd78959a784e1b5646b480b88aec749a62ea934ed3001af50bb8babfb15bb9df1f3d57abd738f65de02b77398c82302f500218675cd96ee3b2357" + "signature": "0x92806dee8cfa7784e16b97ea6b32613fe6c41bbb7d0f03838a6dbebc90961bffb9f67ae8046ac1b3fc19e477d76e26ac0d5e613a0c87ff18649a50d75a8b09f8d72f0f056aa0078eb99c68f00b08535e242cd0db5639223f9c3adb71183bd0bb" }, { "message": { - "validator_index": "1473390", - "from_bls_pubkey": "0xa83cbdf40e5c4bdb4e9802d94d765c70150d9926521b0ec4d273e788b83a9f304694e75d2e381ce631b24121ffecc9d4", - "to_execution_address": "0x372cd043f2dd36351da1acbb7f0a6049a4d05e88" + "validator_index": "2050514", + "from_bls_pubkey": "0x802775e14fda679e4594ca8ccda68a706957fe82c10e66d258eafd21fe5b2877c226092004f82874fb4022d73b74eea6", + "to_execution_address": "0x96d1b2431158938de8efb094a1b6c64ac3df5962" }, - "signature": "0x998cb975f863e95fd53ee74c5beb85c19b8b3858773432a371e6a3f229f67b653165adf3bbaa6015dec12a1d13cc9d5c080915c55c921fb056fd32e9da643d96dcbe83ccd456b3072dce2610d7b96e69488468c83d26b7251a466571a5424351" + "signature": "0xa2695a1a43803793a6a1e80b15798147d8a63da5c8a6ee3e18dabd190255f48cbe36c33e3ffa372e11b19605cd2282a3136a2662cd3c8f9d3d0345ec1593b4241a0ee66c0d626da3db5cc6bd7d1119063922633c1c2987d69839af6ac37eb675" }, { "message": { - "validator_index": "1088641", - "from_bls_pubkey": "0xa7f8aff7b912b6363efb810f2b661643624ab914b034e78d72397ef84fa04862dee94c9b2f46b872fe852f197f558fce", - "to_execution_address": "0xf676954331d2efe5b23eb56dc3622d4ce2ee543c" + "validator_index": "126769", + "from_bls_pubkey": "0xa1b20c565a67fc79e0dc4d8a335d9d3c7cba0865cec80a8f7f49bf610e20ab39afac693fe60778de840444b3ead514a2", + "to_execution_address": "0xbc13a74351ef5117d2757feb48c8efe4cfe55786" }, - "signature": "0x94773ae9e3d605ba2612dbea934955e7af438154f7572136c97bc3f858144ab833aa7bf6caee2a2c4ad066d36b1d0c3501359ff577de486f81a5210258cf63ff45bb0cf91526eca949dfee984c6757a957f9c7ddfb8b599d3cfbec0b778e9396" + "signature": "0x9113b44632e0dac2168c83f2be8634d2eabe9b81ab5d426c31ffc119f3fc577c16edb82f50b13be7174eca9adbc2dc560f1ad4bd15a414e44a5ce7b330e8645f58cb50204f6e4ab4bd7c9315b355c97a5862e05f5140c61bd1a4de061855f0db" }, { "message": { - "validator_index": "2008914", - "from_bls_pubkey": "0xa6c59055cc0bed5baf1a815f59d9d1cbd7aba1a4fb8d83de7310ad85640524318110a6a16f5bc141a81c34e103d9b7be", - "to_execution_address": "0x7fdbcd4270dd970b44236c31de8ee788b75533a0" + "validator_index": "2586038", + "from_bls_pubkey": "0x83b8e297b2e5b17d8b30acc4586741cbe2f1f9de15b53add4e41cf23fd6f9034de02c5159eb4212e575a3255d681220b", + "to_execution_address": "0xdf80b0429057f4630e72700a013b4e8ad6642e7a" }, - "signature": "0xa28a524424e49283f416545acfa1dc063866bfe9892c60370705cd8133fa949d724421b1ffff5a757d573391ab2cd9fb043022aa8354e4e93c91d126cb40f9ca7f7be8e8293be5a97b0eeb79df9c051f90e4d97c9157efd9b64125cddfc257f3" + "signature": "0x8ac01bb60be2b4f4ae1847cdd5f95d3af16fd4cff3fa9d0da17d72f31a2cce4251e51907a63cb8ab9842a784cda7c40e0a93c536c8321a8abd889e3ed438d8653b77d0d06d3fc61f38b235f0e4c57c9dca562593216d94bfaf903d109eeb3e84" }, { "message": { - "validator_index": "1624165", - "from_bls_pubkey": "0x83190d18858cb148b28aa89911959562dca6653f220f8b4878a5d580958dbb3ca184d97880f7c2bf0fa970cd41b70dce", - "to_execution_address": "0x3e269342afd150bcd8c074e323e7b48bf5732954" + "validator_index": "662293", + "from_bls_pubkey": "0xa9701b9f205890357cd0b75c121c25306bd409e007ad97323af8b41aa535a8227f82fa8537f8e1e9a89a216a53aeeab9", + "to_execution_address": "0x05c3a442cfeeb2edf8f73e61a84c7724e26a2c9e" }, - "signature": "0xb469d5c6626f1c42e7e914ecaf79388360d2ad196f2edc1f7b6088422b4f32f43f36b12898bcccc46c5ed15285ff0cd503f0ba5f6def9b4c1e523e941f1de95263bcdb014637c359464eb2cb974e06faa164827b21ee15dd68b2375b7e76a700" + "signature": "0xa3779a97b60b64b43f1249ac6e49af7a02d87608ccbcca01b26cb226baf3d0a135b6d98d008f4417e714a1512ce07fbb18c6e491fa2e6cad5e1d9e29f56aedb856073cfa6f90cc9b21db6b3ea9cb35f3c9ec47ad48996650941b4b8d5e6355b7" }, { "message": { - "validator_index": "2700421", - "from_bls_pubkey": "0xb7ff61729743df75a8b0b7e5b95617b9aa407e2e6a30cd8101c6a4c851b2cc366cb80e68a19a23e19625a596fdd1ec61", - "to_execution_address": "0x64688742ef680f46c246433acaf8dd25027a2778" + "validator_index": "277544", + "from_bls_pubkey": "0xae86d94e3803aa062745028c91f9eaeb957af12e0d1e1c479c3ee78dfa76d792c8778507bbe0f1aded55e48d10b94a8f", + "to_execution_address": "0x61eb2543106f8202e5365fa6788ab38459284212" }, - "signature": "0xb29e4c2b22ba8da0947be521fd1710125a95d9465632c3d2b5cffafe6e7070f4a6bd71385760b2b1670add9981225a18060be73e5f486535919fd3577b7ed850b3108dfa0fcc9215cd9d526295616e09619e07977ac7208edc5a2af93835a18a" + "signature": "0x831796f518dd44cbddc77db8d223ab502edc7bab53c2795edb3879e4f79171f13e4b7d5c5f354e06314c6c1fec3988f703234fb99488ef541062ef7f8a89f77bd18b82f79db2328ec0cd6db498f5ab4412800e9e4a351fad3d609a192b0eae61" }, { "message": { - "validator_index": "2471654", - "from_bls_pubkey": "0xab0a4039f2f00ce09018af228a696b7b87c7bfc111e7782bf7a3ffb423c681c04fe335152668abc7d20b6e9a9bc4933d", - "to_execution_address": "0xc090084330e9de5aaf85637f9a361a8678373dec" + "validator_index": "1509782", + "from_bls_pubkey": "0x8c1cba560684965a1d17efcc10ac3e688808a44a655caef64fe19b0f11be06e324d48651b6d9663e33964737affaca25", + "to_execution_address": "0x872d1a435006418cd0bc2dfd1f9cdc1e652e4036" }, - "signature": "0x90f650befec00b055e261a38b4ea0bc65a0d71fd735b46f8387f565fb0d31494f90645c40dc07b0f3ee26d7807b82bd914d4d7c81b3ffeaf9a32730ab7cba7265dd09a0e0f94ccdf2ff3bc53d49fe99a488cf7238200ae12e6c59960e71d5877" + "signature": "0x8b8974bfbed37e66501f80a64e0d81d27723e76fb46afb5e94398a6b956254aabd7e9af026d996dee341f804951284140ba20654abb8af117f23f4afa0144a7ea57076a4a0fbc727d1f1111edf829a8cdca542799d24a5021c103ba2a23c75de" }, { "message": { - "validator_index": "547910", - "from_bls_pubkey": "0x83e4d3825bf069cd0b19ca5072eda2f7d141de02c9e65f9c0733c18252c1552cda074eb613e1f435a880262de2a4672f", - "to_execution_address": "0xe6d2fc4270809de49a0b32d641484320853d3b10" + "validator_index": "1125033", + "from_bls_pubkey": "0xa127dd51be074dce1f11b15a9040d935aae14a0b073a7ab906edc1327f477e8213d96f738690b3f650a479dac373cbed", + "to_execution_address": "0x4678df4290faf93c645a36af63f4a921a44c36ea" }, - "signature": "0xb9b292bb598db604142750cb641cc511a9081656efb8271132d7e0de30554dfed4b16e418100d9085951c1502d6ab657179da8804cb08f1c69b1210ce94bdf6a0b66976233a34a0acfb4b947cdc192cdbb8576a3453e50143e7afecc8cbd264e" + "signature": "0x8657c885c3361cd4a58769798bf4baa0424238c9a2c5b20b79b6079ca67198cfdbc407cb9e4799663bc54543f1a74df8044006e589cfb7b5914cf77fb175cfb959b29861d42c3da17eb66102ad8afc8f20fb5e7f52934c385018e3db3bed9181" }, { "message": { - "validator_index": "163161", - "from_bls_pubkey": "0x86c03ea323e3551ef39c8c4e5355c4d3a2cceea3c8acb3d947b39e245d2ffcab53b4479c670d8b268828fd4fee89eae7", - "to_execution_address": "0x08400642aee83f31d60723f5fabaa1c58bbc1104" + "validator_index": "2045306", + "from_bls_pubkey": "0xa67a1e9a2522bca1507faa25403c3ba020af65ffe839656e87f957438ceec07d5d8a91658e9fe6efe8703f1b5d24ffe3", + "to_execution_address": "0xcfdc1742cf05a262f63eed727f20645e78b3144e" }, - "signature": "0xb58eaaba3ba51d7098d65fbec3829ace78576a2276fd9c97c293aabdb634a2c50f52611f48088da5d4a5b5fa2c5f4c0513d8dd91c8534b50a7b8ae0072583612610ada0c81a261641c66ac542428cedf20f1b954ad03505fc058b40ce0bf4182" + "signature": "0x8dc84218c00f49ed40442f962e7afeb1a8c2ef5f4ed0aa8eda187ace69d22cd62b759e44754a66edf611383434b0d7bb18ca3eace8402fdeaeb7a5ee16639ac7133defc018719cfdf5a771449cab814076545f41f6662202d42deda5857c93f2" }, { "message": { - "validator_index": "1083434", - "from_bls_pubkey": "0xb54bda7a570f90c2d38e836a3a256a6a2230a6384a29af7dacac3eff1a981d3f50918e2b546b3d78e72a545870b5ec9e", - "to_execution_address": "0x2f82fa41ee7ffebac08df14ba1ccca5f98c20f28" + "validator_index": "1660558", + "from_bls_pubkey": "0xa2cd1e8619ea096ad3130c8f2dfa725c44cc8aa06de4f186d87ecaa92251bee9bc08ae465d6ea48b145a4f70f0729e42", + "to_execution_address": "0x8e27dd410efa5a138adcf524c3783161b7d10a02" }, - "signature": "0xb851b39a32955a7f05acd7707c6859df4ee2b1472996d6a805a61e14415db550a92a7eaaff14a67e858a9d3633306efb12a62ed84f76387a84deefe726afcf2fb744f616f67d144411689343e6e0dea7a88b57449b2cdecb43cf0b5a80887550" + "signature": "0x97f8c4c02c4241858c09d9f2926670619f01a2e88fe50b3f3456c7db24c1c470a30eb58790400f29abdb9a9db63e075315d7e7b359848e76d4c637247b6a2ae492bb237e4aad36764ebbc93a0836cc4962e51681e15f00dfa1429311b1140e4d" }, { "message": { - "validator_index": "698685", - "from_bls_pubkey": "0xaa3588a5cb0b5d8eadd316046b661044c97559a4350464e338456c5b728880b4750b94af5fcaf478e3bbc86ac3e12d0b", - "to_execution_address": "0xeeccbf412e74b76b542bfafde5249862d6e005dc" + "validator_index": "2736813", + "from_bls_pubkey": "0x96057456506ff35b37222395a6cf87fec4386244d7ee0ecadd11c96e8f7975a312b6826bd69e069eed2e88fbae21439d", + "to_execution_address": "0xb469d1414e91199d7562c47b6a8a5afbc3d70826" }, - "signature": "0xb99cdab802f2f2683fabc52c8ea095386730c43694a9a5f7a42033e6dea53f4896092b207f56b1402c5c69937a3e2fb41958e001895bb43c2ee1e360da601e1ac56ffa8bd5371b1dcfe85518f297f94c02cd4981a5961201d2c2fb4d2a15c888" + "signature": "0x8734759600f9bdcc5a05f0c70f90062f0d0056ed8af19e4777fe4d5b67267fb33d2617d4630fd75822d0f1b60c70650a17fe6d16ec4fe2d4fdd2fd3433c357470dd8276a069a5402372a83091f40217805da560122e3d9ba5a98034b21191439" }, { "message": { - "validator_index": "1930923", - "from_bls_pubkey": "0xa55017fe14158ad9caf1d11f971b71b1941799466d063c6c77d7e41e20d5b74fd7fbf969243f3f507f8c04a5f76c3722", - "to_execution_address": "0xb1ec6f426f978c599752e0e7181c305a1b8623c0" + "validator_index": "2508047", + "from_bls_pubkey": "0xa22369476f4df72eaf9b15045c8986378cfe5dc68d31bffe0ba6095277b0e3320eefdff2756b96a81b49486a6f82d75f", + "to_execution_address": "0x109252428f11e9b162a1e4c03bc8965b3a951e9a" }, - "signature": "0x917311e1a5f7a689ceee1af61f06519a3e4c6d68a4af6f4d24da0f57a2246c963c964d0e576607222856258c0e34b0b1014b68dfe481454ceaf521bc6f87c15e6a21f6db1c303b2042d5857ad4506f00dcfdfc5e65bbaf1b4ee9fe7ddf7b738e" + "signature": "0x81e23861cdfd31d1421bef1f77bbf68ca5579fd9d2790637fb395458e46477f9e53d0426e0b3d15ad7854fcd9206007e0ab75fe079579775fe8420250a31c2214c316f398e1bc319aa0c3130fa6d80902d7f68954aa3a7c663569aaa0d9731ca" } ], "blob_kzg_commitments": [ - "0xea4f5e424f7a2a28771b166a93b66dc12d8f207683e22f77941d78d8741740768f79e18451ce86d434d576fdbaf45f2f", "0xfd705842efc5096d6c5e7d95673f828e34921f0839ab5831c29ebba04e78f7002799a7e34b2f67c27bedb9a981bcc315", - "0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695", - "0x70373542af8b450a2cf0e8995d74fd5c59a419747f5f4d8ed5a550526cbd4341b4564c1c2a75a955277f4cb32c6b1a7c", - "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", - "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af" + "0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695" ] } } diff --git a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockELECTRA.json b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockELECTRA.json index 4f343e17538..3224d4c64ab 100644 --- a/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockELECTRA.json +++ b/data/beaconrestapi/src/integration-test/resources/tech/pegasys/teku/beaconrestapi/v3/newBlindedBlockELECTRA.json @@ -1,8 +1,8 @@ { "version": "electra", "execution_payload_blinded": true, - "execution_payload_value": "60987255743756591490802410911397502078420277537860810465656654307850393571949", - "consensus_block_value": "35030629749913259188633839195688455063657233454883772579826395064332861975757", + "execution_payload_value": "52335047088093692175629908587741169571103578927521980677976976500308305025762", + "consensus_block_value": "60987255743756591490802410911397502078420277537860810465656654307850393571949", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,347 +44,345 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153073e6eac5b3ee68c4ee8d5fdd8ee67610b22f97d089e41dc49d9f785e73efa3857ec4a88c3442793ca9f34801dbf14b7ee1ee7353917dba5df347677fd61a605a6d33584b2905757858105cab13def02e87238a730011e00462524483b9264aa431c4c1968227eac3a093938f2c2813dbed485b7f15fb35dc8d6011392640a96704be681950efb9d7c9298ec3c0a98fe6b77fb1145170355bb6bbb93b9367bdfdebbee9a9d3140aba891abd2c3b2166f70a50d57ba5eaec23e91be9ebd4082e10af3a72db17dc2f9bb2e879014197d64ef7defccc36539040b25cb351673b989a6541b470cf96cf5a6f0b5f7d7c4e8527734a21564f319eba877c1cef5463a850801d769f52580deb0449d803382667763c5c34fbba1c64828d3342167617364d3c5fb08b434720700fd4cfd37186c5ed888ed0246313f49b61ebdd0d26915199aeb1d568c022748b29a70989504cad6ca345003e9b278b2a7cd8442ae15a42557bba3c2de4c0dc3b99d3e131e613f18813e483e96c23586782d0274a528e8eec8883682e9ba995ad66e59e671e6eeeb7a9967f32d0c785b5a3ebef77c54f52ff382039e33d50043805600345602fc6cb1999cc809dc80d0eed9a7bda8bba56c57d39a58db048046d0d97ee7bcdc5dd53cb0dd3f920753ed7533d206f00e2ffe5a8f4121308988e9726191b69bbed0f4e330eee944586d794bfc4b5f0c29a3feb11a581d7aed2832a7f2919a104ea4134dd7bcaf9968e5b688b83dfb5668f0780448424f16f1b7d52247c9a28dbbee1d96bd4e627819a5c581caad0d55e7b21e2532700a5b19d5e72a615b5f7baed28c6bf3d11f423aedc9c73bd4a9cefdbaf9ced98bcf551038f80d3214ea63cc404bc0754c5fcc7ff5c1a778bd0bcb9b280fa46694c4eb49b78452ec49348a6bdcf8baf8e8026b56b53b39e96bf2a098fa9ab0eb62f8e8aa0a2e5c3b97d4ff6b01a60520ef782aa0e3995d8eea4b4020deaad2511bae432cfde901b781347467f3546ac241507d6b08f327fe02835a0604a22cd64431ad5c1d9f0750662ec29c3b3b0dd8b9cb5f089492f2ac7ca282874d0ad01", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69ddb8d7fcc3929148c9c5995e8b893997b8d9362a715543e06361e29e0c194d3b2d59319837ab6dbd209d099fa04236c25d177a02c92c0a3c5135f246bf9fd884203bc47005fd46b235bf0b462dc754e99647a2302e0c032308b592b1f7453084e93eff658eb16115cf4d24f229ed8b13e073e1233b0bf4eb9ba69438b310735b100f5c49673995ae6958b9382a2070db0cf44b200ce7103375f72fa72c5a51a38760f68db7a789f68fa7bfb672ec0678c7c352dc9c5c1805fabb2b2e1dd89e2e748bba9f11681e33321784b89e8a3beb8600e4ccb4d72a05d067a96a9c39e5b10f379b95649134f15a22e6f181d1e44b46a122a8b375d43dc2f41517fbf2922ed696da5cc61c267e64317d467ed0d0464f06d2d82c110134401f612203c6f33984c615224478b3a1774ccf7c8b1cf3ef697296412c020f5a695f1e04fd7c963df5abec644f339e043bfc42d90ab6236cd0e9a4f7307063b65d447aee56bb116a0197ed4a9052ed97f11e5b989311b6d224ec284f94e02c864cdab368d6e00aae2405364ae9087f32f6ea4a6b80e83fe329db9c4c5eaefc0190847c1ad6087dced29d8ec7982cda88afe31468c8df32062746a2a07e8b537a93c3bfb5acfb111310516ecde7e0ccd7bb78fdc036de4ff5391a596df325e3d0a5ddab556052bab500dae358d641874703557f3f480596b0af14c56aab3e5ee6cf8f4c831d2dcf61f6e86a53eae177c3d917052448ca02e4f287d0f15ada519f3780d118377825c98f0ad02a05dafbda86c240aca3dde537dd9118a0baaef8a2d86a8c1dbdbb8f9ad3f034c592622a9341ce3ffae459d1bae3cab2a9dcf8f3bae9d707b01bdc8e0b3d7887c82e9d39312f2e5ef95017908b0fd0976b0216b1af40d5ad29e40271492e3d2befa613b2cbc0965ceb84c76ce4c8c26f231e5276a628dc5d641e0661b794bcc6b7669438a4155375913694480b2ebdb8b10cf35167e059e00cf353e11dbc7ed643cc8ea70edc14bf61d9c63c8b697fbde0b7af9fa92ebf0223662fca9a14bb4c614ed36e45ebd98f81725a11da173ff839ea8305dde22150214a80e4737a01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43", - "committee_bits": "0x06" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef", + "committee_bits": "0x0c" }, { - "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a9dd82e3d140ace10f0d9fbbbb257b33126d41e134bcec24dbc72eab646b7cc3c8a5285b8f35f7f848cfb4365a03792eea740358a4fa1464d6363e57bf7b2241b4483a54ad00a1bb31ec06737561344567d586d7eb07783bfbd8d8f29f6395ee94fa7abc229a082c6e58023e0b2671db718d139b131c99572f0c887195d0821637e8db0af6fae7705f9efa99c4aa04394475dadb3dcf7bb9c2fe17856dcddf82e3708c05742bae2ef62981407ddfe60cd47956085bcb00a4df4bf2a00dab9a69ed4ad624a256f6dc9b1f90ad239a6e675fa87d89d9a81ae242d8022d4641239ddcd818aeca01789b51506ff72ad9906493a3f8870898c90f4dbdbebc0210fe08b4aa9d54ff28954d63dcf2a89034d0caadc369a9b7a6f0b37a1b3876665f8756ec8dd2d6b491a1e1ade3ee73fc5ac666512df3716e675035aa9cfc0db92245cf55641c453628f677f5353779b82f8743b8504af56e7eab7497d5f8b0483219463a252a41a826cb02fae335041828bbb6099144de695c13f1c342fcba744676c35f126b386493eb1544e11fe8c8d24898736504eee84450feaa92163d252b30f8af521db6783efdb22f26824464f45931f8a2b2736fa786d38c627d70ba0d16e2e1585911969005885f7042c4182f6fcf239dadf10aa5da8cdec456f49ae0de82e0270b904b1f38a4c27672a964367f2ea34379a4cbae08be4a2a101cc08b2e3356a7dba201e7ec9e09cae218d42081717b8df57c55b2b4ab5ded30354c63b4042508c25f0f0193f7e118be3a948320dfb1efa2d39820314cfccf4968ae1a97a005edabcfff0eccca671ceec03439cffb0097c6811d52dcfe3a4e9ae4b6011333ebb07ede9465e8c927426b61323d48605380c8e9c464abc519ecd0fbcc745ef63dcf0fdf3d47e7d32210dc084cf7e139beefd498b9f2dd1fccc5fd78cd63b49e5823b9369e55c0f808211d3e2b029061e6903c9b83a708bebd39d22d488587fd59de1e7ec2f6a44f10be9c7646bdc7e5aad8c9e10a3eb0f1392f0db80206b472dc3cab549882f2107785493da3c4bfbe82e433289a67f63dbf6edcb869cab7b0101", + "aggregation_bits": "0x5af41da977c357436d6d5cb611972dd4dfe8f24fd986cc3f62b8b2cd6df1ec5d9fffb58969a144cf75aa90897ecee335edb4c087e9cf844a5ba6e2acffdbf07aca6115072cf6fd1e908678cac3bcf3c62d52094d87dcbe66db7b6dc0ef11c7f20a749a5a9cea6b85febb7bab94425c81a2ed6d53d42193e9dcfb3d415dc53b6f872f5aadb7d10201f85dde8eacbc9e87b72f9276e6c0dd3a244a3676c184eb46a216ccba47432d0215454f42d2777ba28c79e38f492e6d46d1b065553f901ed99d7375c5ded4343dfe42a0c6b83cdab8e223ad328b39f46d8a06e1ddfc6a3ce6cfba7a8091749b4de6a9308bf9b3a3c418702fa32bbda084033b12c09924304b14b96ec1369061fb13a3aa0f2233b2524c86f0ecaa7f282aa0ae59437049b8032f60be842d4e0a033509f61cfb418da0af682a173cb8c1cfbc4876d1eb14ab9a440068bcf38a31f4a9021a7129ca37b456c95f016272a17360123acabba0f54923fd5d1bef78786c92215fbdf2146838e8f752a20da1b2472d7ef6d80cbf0455253c9135ab6906022beff98c7d2f98c6e64b5b2fa0dcc78e46b76405edde55eae1e077e4fff69b5a892e10ed73d4767aee874d2d3e0c3fa226f35fa7ce21cd0480b839534220b3cdb7dca9d7dc4f3a3762f82e7bb54a57c2fbea1063637e01c5242b1e0bf51473233ca9bff61513432a56e34ae6ce73bd6225f3847815676c06bde9f686abde54e8930700f645dcc9ca8af8607bc0d1c490d281449bcf65fa22374631272eb06bc53e63c06082c648a356f3bfc450cd3636983d04903a36680c965f2af41323729233480b6f8e7640dc4d0a3c4cf619b86dcdc62410c3400c2004a2f157338766e3d2fe039e733042f3aea833abaafb5ef7dc4c1ed72ec4881b7c7c178bcfeade55329e93ac81842e6758136d73335774d66ff8c925f77e1d4b7a09ee44c6e30d506cf487c747ac10b92528e85f5702dac422013541228c6e0099e1df1e7018dcee8f3d36d5fa51394c95d1a18f51c6db2581a3f71cf21882713ac1c5cd58db94168db50c2017c2c8c81071d6cf68a1d0458b4965908d1fb6c4710c50b74b3cef02e77919acc9029d9f9b866e2a90dcab36cbbe84fd9e4b5b9036d9baba000eef655ffe64b9af0e79b28657fefdc30a107f896b81d64b92f01b71f3ccfc4f8cfcad286ac1e93f52d08b5c9b00b0853b64b4f2591cd55042ac5635ebd811f4934ec05a3ff82a80b8029779d09f1d6c3249037381d16363107158a53548d75a80fab67a4f7374855feb3ee3e8c7109afc0d58a9a5309a601ae0435dac5bf21f0d38d7c811dcc413781e7702f0580bfc9d4dd18639bacf84c7a2d197341bd53ddb1e7fe0ec44bba8c45a4ae2dfa564414fd91b436919f251619df1b0eb2899ce45720e7f542b437b902bbbfcdf1e778af073d08fd2e6504c9b9c8501", "data": { - "slot": "4532822644040406441", - "index": "4537780097985426121", - "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", + "slot": "4537780097985426121", + "index": "4536127614768741993", + "beacon_block_root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8", "source": { - "epoch": "527112883", - "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" + "epoch": "526920509", + "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" }, "target": { - "epoch": "527497632", - "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" } }, - "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86", - "committee_bits": "0x04" + "signature": "0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1", + "committee_bits": "0x02" }, { - "aggregation_bits": "0x5e5bec25a8ae1bdc92be30331295d37ef3cd2cc2b56058533c098b66e51d9e46f2a9ca59af973f749571c46cdd1dfa1900034baa045a653dcdafdb0e087d9a0a0a8f85ce726a3b9138da2295595aa120d81d7986cdfd6288de19e3a156a514d3f5eeecf8bbc703184f67881030c0e95519dfbc39acc9efe5e0fcd959fc03ea47d27e79a04fc9c6439fc54cb0734308f259f64b7bf2a8cb5afc50229eb680f9d4f2ebdb3e649525bee2786092001c19e9d696e71acc0cc95908715543995b35d0c16c33a72c657e8bcf3de225699fa11f833ec9c09cc94bc7377968e72dda0e7038ae047a07858343ed8ea61b3f361f20f8fc888dc33182e74590697519572c135d4351e49ace3fa84c97b10f7d137e79952c7f744bd2c19b2b8c4552c9db4d0ca7a65617ef015c4b4e9f2c4780a12c72fd4c6c7ddedf9e7e60987b02f824bd3df9f42a07f3539eb8153e1c583b4b13b5f8227633bc8aeec969da5317a31cbcb61f675c3c9f123a9c781320704c93eaf908f318ede5bf9b4368f8479a18eb886e1ebb804e5d2afdf8f75fdfb242c3a646417095dd302f984b2ac31aeafe6412f37bea6d2b931ad0e816a0e4be6f2b902c30fd70851d7deecefbc6d5bb070414230ba0a5e4e835095234a9c16c908769459837ddb92ab89852978f5b64e9c9d992cfba13b39a543aaee050b951e26f4cacf7441804b7c2eab4d56497e324d763d1e5f6eb5309880dc4b85d63780283f76736d984ed76db736f0dcf5f88f865ac46ed798b28831ad2d6c8190bb2558b06859f81f09fed1a1c322a66475a0e28bd4aaae6b171877554304f87188371df5e2402336fde3de5e1517dcdb7af29347682572df10f8ae6f034a55fabb71f7a1ab702b2f45675149de2a6661d5803862cf6e92fbb7dbf5874ce161c0fb8291e777744bac25970b0fe57b00e9c1478faa55f4d6b28d0b2fd4a7127fe7f85952fd0b000e613ff188d38c86072d38994f8c9a7498917fbf3580c3ab182edff6fb17ed1135a78cd457d92ea698bf3376a8bafaf3d12fcef2a3a016211cc8005e1f20a54bf6ead0262d90700fa4665550b9edec910490ff369f6b95c9f6ec53c11d04085ff7b4a0bee6ef32c3cba041b8151280425b97496a48c2f1b814bc72f53a2a817cb5b12d39fa0aa737c168f4b5359c8a0fdc7ce6c41170eac31913c44dfe41cbd09b20f8c8d320dd6df16878dbd195d6f1fa0517d1ece3cb43e8f4af47b76a2eebf73ccedb3383cf57751fb38241f6478e0ed1bdd82a379a115881d2b0e75a43de7f68eb8f75dd8554f2dfa5b41628d22613d342fe5dbab07cc79ee5ced54a34611edb67ff19ba46ab55c7601586bbc0c0b35518f9f0cdbdcea789a17d1a85e21ffdb570c2f4ae5d8266787c91b3a5c13ac902b7faf0dcd4cb3f992ce8d4ade5518ae454f41cb3b2c408ef385dfae4dd101", + "aggregation_bits": "0xf8d3f62925333e71c92b5989e48786f9ea8582ce5679c63ca0dae6a3948750814066f18bdb3cc2fded5d81f2ed6c784e8c2e8c42fa6b0c3d1670b4069c78cd8594c1547facc8fdb19696b11475dc3dd1c7499aea330b9953f0ccc4fd30f3de2c71ea6c42d470865d80771c74e3110239efcf4108a58bb05efef3d73a2363dfa582352640000c12f848be2c6d52be43d4fa5cab16a2d0145bb687d29ec894d64b389bd2fc97a558570aa151b89194980ea7b2684b935b51e49b71f6cd0641fdb62abb914bfa03b7502414b5c792be5472d6be3c130e030f194fd234650e4f1f3f1ee6c722096fa58c3091e5119eebba839baab03347552015fe40ec788f2b52815cac78de375b46ce120ce3eab28e05810094a1a8b461829a28c89c55abd7e8a0d0a42c23e127da6bff2b17fb7bf6c7cf4c4d5cb2dfe9030c3d2b01dd8cfbc0a387f8309c9ca604eb42aa8105a78199bec145010ec3e8e7b7948a10105c1885561045a3c4449b516d2734d8764320e3670187797901ee459ba0c22bf44cb7975134eb59de969155812ca98fbd1a37ed645720a1fa76f565291b3bdde819dbc89fc2e7376b8945ff35bc69dee5e2f99d9568dccce8933b85f8ff52ee4134ff55d319814b6c4b9a89fd9471fd16e4f90cf6ebb3db3051cd0a08021eb8bf3b56698876d79ed5af7054d75a0e3affc78f84e041dad2045805d90764e34244a32620a2cec1c7983f541e1c7eef01f57f8dd4ce9efbb685910b0bb79cafb313cd33bbf03eafb006911d75e1da95c6a84b34ad6f2af08a27bfd27af4b355161362a3e9735175eed49de10158098dc86767aa7e64b77a9dc2b597ff61131d32acd2471af3140229c8b80831be7ff99724684ed7a348f28e55e9ab05cf80a96779c510ce6ed83da51d98f4baede14ab484100f343e5575e94765738b54768ed2e723cdfed7bec02d4eec688946a82bd59a6d21f7e52eb81edcecd680e217ae57ec734138832305149e67992faf46c0835d4befa0b29c48a2a651f289aa3f32417adcfdff9ac79e272abbe61321e11a3f28d6f34c929b5990c3543573bc8d4f8c28b9d350fe2b3a8490c3e5c66849baaee592d4adc83330b17ea4494aff7af5b793c94df8fd58b4ce2012d08a60146d7f7904d1607c989b791650cf34d91b4710a9a953a628098c96026eb949e0778407d0bb2d13f1162d4d99f8db17cfec40ff447434ba34dadc4f4172e1c5490afc529acf3c5fb2965836307bb0db66c1f50a6e8d6dfc874f7391f6dab98d37fb1380e3cec43a338f523b3e7337730fbad50f1dc399e6f61c47b93f65ff7d841308b2b82b2d72b744761e3c68202699e2848abd5b5e598ae8d0e8dc78418f5741239d79a62389e6a61802fe83998583ee089555cc1207b61b26dddcb2fdff3912a6d85ed4671bc71fef7e1260b8e11aae5c343796d5f64f01", "data": { - "slot": "4567524808770642314", - "index": "4565872325553958186", - "beacon_block_root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1", + "slot": "4565872325553958186", + "index": "4570829775204010570", + "beacon_block_root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", "source": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" }, "target": { - "epoch": "530767998", - "root": "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "epoch": "531345121", + "root": "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" } }, - "signature": "0xaa0f4b876c4fc52ca19c4905d49e329a88f907c3a07bb22f61c50e8e4f577ef468f0d4a1c3b0ec0123646b5f040d2c910380e5955c2e42fdfdc087ac66ef6097e607575c0db6529df1b1a0dc786e63f5268463672fcf0dd4aac7c9cf3cc98a43", - "committee_bits": "0x04" + "signature": "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e", + "committee_bits": "0x06" } ], "deposits": [ { "proof": [ - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7" + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27" ], "data": { - "pubkey": "0x83919971606b0afef79e35e8a49c53b213230dcdb6d04f4fd65a951060a052bd2bafa867b1f9b0258a30cda8db072831", - "withdrawal_credentials": "0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997184c0317133f980452ec62b2", + "pubkey": "0xa56023832292eec3040299a0164c844769e854beba275c44e4960ab2da7ee11db36674e1e2fa2615bc5e247a2759a472", + "withdrawal_credentials": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", "amount": "32000000000", - "signature": "0x8255bf5ae36f515a0a420c34ff22270470d833dab2e162c3358350a97cca7917c39308840cfa227d3e33a3d0bdf2fc721999e3543cb7caf16a36fb703c70cff5d227ab484c65d44542e7c7d6e4c9d77578b7ac01ebd8bfee5cb1c25c3f09fef0" + "signature": "0xa9900942897c434e743c2b0210ec3266920ec6a624ed13b3637c640c7f79ba57a240a7e6a48cf587f71b9007616972821680ff0ca62c4cd47d50145bac76df28d9fbf3f56c98a5e8bd61b8cb41bdc02e3179ea961c2949c0803c108425dfa29d" } } ], "voluntary_exits": [ { "message": { - "epoch": "4493163029660118184", - "validator_index": "4494815512876802312" + "epoch": "4498120483605137864", + "validator_index": "4493163029660118184" }, - "signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xb69f21ad4db40d272bdb1d76720a978f61cf1aaa4ae12b7a62f209dd007382d9c54e9c58311e99d688ecbe1336c348d0099242b06125d60c8f3edd2b26fd4056fdc67e6d46fd031f09f6c24432f601ba4564635c240730215c13d8f2b9446506" + "sync_committee_signature": "0xb2c1728d5efb4c0577aff84d84d5b0b2a89c22e1a97f2fb468442a8c2f84eb0912077b32ddd66ac5ce05168ab26168e40ddb8dadbed42b229c34e78cc757421908ab6159082952a43133f5333ad2f8382930bead6ab4f0e91c95ed9c66f634f1" }, "execution_payload_header": { - "parent_hash": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "fee_recipient": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c41", - "state_root": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "receipts_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", - "logs_bloom": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789becff586635f2b0490ffe6c88e34ec1313a24e17b06942fb172ecc3a92eef61aac2520f575f2e0da25ae50a193d29b110e13a8388afd923e4ce621f55564401004ad3a10c4a50e2f03a88aaa8f6f0b96b217a23377287888e0ae747413e9c044ea8c33323ba5dc5b065fa6ce313e1861bd01138bf3953207db7679bd5db61d81551193a50b439b76fea7de8b0fcb1548024128d000b8905b784b4d75ea99635592f1437424fc5f4730a57d0720d56100e491dc4da39307a6a46abf4214d62f20bfe6ad23c08c8e01d680a5ae40b66adadf7b95c2649d68ac8325db865892e450", - "prev_randao": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3f", - "block_number": "4473333226764941351", - "gas_limit": "4478290672120026440", - "gas_used": "4476638188903342311", - "timestamp": "4521255257228650249", - "extra_data": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "base_fee_per_gas": "64440075145037893977597636730159223700849209418551716330347083025087305940989", - "block_hash": "0xa198c43e69db1b65dc2b6a085da00587026a85ff57fa32a2a656dea9617db688", - "transactions_root": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", - "withdrawals_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "blob_gas_used": "4512992836850262312", - "excess_blob_gas": "4517950290795281992" + "parent_hash": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "fee_recipient": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3", + "state_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "receipts_root": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789", + "logs_bloom": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3fb46dd46047448da9f4783626721bdf9308a2cefba364d5b6b2653a014d0c2bf6f7722e4c3bbe594bb639fb9b0489d49f463e19d5547ce33fc497f70c977a3205fedaf8ccc0bdc1801c8a18154948c8e670813e0c98f6e92e20d4327c71f2de5e7aaf1df92739504e383a1977928614c2078d5a61289ac612f9e3b08ea9406604db94fb2a3424f245843ce722c6edaaf79085661b750ed7b62cf57a68de63b899dbde6c169f2a65bd5b0e808bdf22c850136f4c1421be8865b50aa17c03735c41f4b4ec5a973ad30c7db09d4a6894284b9f19eafb8189121738fda9d6e0d393f7", + "prev_randao": "0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca", + "block_number": "4478290672120026440", + "gas_limit": "4476638188903342311", + "gas_used": "4521255257228650249", + "timestamp": "4519602774011966121", + "extra_data": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "base_fee_per_gas": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "block_hash": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", + "transactions_root": "0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9", + "withdrawals_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "blob_gas_used": "4517950290795281992", + "excess_blob_gas": "4516297807578597864" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "189139", - "from_bls_pubkey": "0xa9ddce0cab5b51d3d2c710396b85e3fd7a87f1738fb5cfd5a7b25dbb483c167a80e785cb4ca7250c14a60cc282b1d9b8", - "to_execution_address": "0x9946783e88b272e45092a83c1c9310f154917869" + "validator_index": "2996764", + "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", + "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" }, - "signature": "0x8edfb3b9ed80067d0626019a1be330bac43c7ecd813f7ce781d0e6e34fb583803e9d2b047ad3294d6d3a54d020c68231085f7d9085d0afefb047def063a4698277e66d4a560f4b5bbd16586976f0bcf90177c00abd4a1b4cbd0ac393e5b904b5" + "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" }, { "message": { - "validator_index": "2357271", - "from_bls_pubkey": "0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960", - "to_execution_address": "0x09988f43d11dcf2aa7811c9997eb4119e8f153ce" + "validator_index": "2164897", + "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", + "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" }, - "signature": "0x8ca190827c66ff26c1fa594eae169b7efbd84c9456304f2194df7b0c204b0a29ac53034c9b20e4977b8e8b46d6b246da03a9337d3bf5e6f7ac941407a2a3437d7e2c0dcacda29b7623141833e02b4b12350ccaf8b27dbf96b3c520078f49efe2" + "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" }, { "message": { - "validator_index": "1972522", - "from_bls_pubkey": "0x8db8ee645b614f990839e4d98fdbf921263bb62cd917fb4eff9084dff23d7cc453f6cc645ad8b869aa9d31a6b9560630", - "to_execution_address": "0xc8e25443111288db3b1f254bdb430f1c27104a82" + "validator_index": "1780148", + "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", + "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" }, - "signature": "0xb0c3172e9bab8d04faa5d27f9818c36ad61a71b114f5bd9dbe77306be3edef2bcb56c215511ba76145006daec95f24be0f1f0dd24377cf7b440b5cdc7d0b520d6b64c539eaacaf14875d49c293af5974751bb0ce2daafde3bd01e097a466e75f" + "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" }, { "message": { - "validator_index": "48778", - "from_bls_pubkey": "0x8ba697cdd6f8c34a1fb96a4c88f03360d19515ccc4e1ea24aa5e80075d821059806a0047e6bbf5d908d312d1902aff5d", - "to_execution_address": "0xee24494351a9466526a5f3a1825538b6331648a6" + "validator_index": "2856403", + "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", + "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" }, - "signature": "0x87fadfd11bc5612e06c59d576c91599bc21095531fcc27a177967de7b521c377ee7a2b10d0fadf38779089929cfe136518757803c369b4ce94873e28d7d9cdf54c31a53ed86b07f76ea6104ee65d76de02267a4b736c949785ef233cbb73ad4a" + "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" }, { "message": { - "validator_index": "2820011", - "from_bls_pubkey": "0xa32a5f28ae7d36f888820160335232fc42ef994b4f93acf6a8659762b2ec52ca79354cc07c73a229b529bfcebc705eff", - "to_execution_address": "0x4a4dca439229167a13e413e752937416aad35d1a" + "validator_index": "2627637", + "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", + "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" }, - "signature": "0xa2089742415bdf32fa2dde853661a095ac24d273413687ae04fabb99ae2982700bcdb885d239e32543ffb95763a43e690cb1bf3a33df40d24e12c46d150e9c59dd63f960dec39712dabf74c08a55ba1bcb6db664ff9d5b2261da353e4374466c" + "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" }, { "message": { - "validator_index": "896267", - "from_bls_pubkey": "0xb679b4b686530827b2a201eb2b18454e9a5758d7257737b29bb215b9f354c2ff57e912b19d4a051556187aa24c97371b", - "to_execution_address": "0x708fbe43d1c0d403fd69e23dfaa49db0b6d95b3e" + "validator_index": "703892", + "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", + "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" }, - "signature": "0x8da9cee45a3046b209da332512a6b4e4d7c89768f55998eb79ee236b4fb1fbcea87e0bba7b05d19ea7b8c5ea6dc0081e17a7ad0ec41566a0c6d9e127b87691e1d5b823fd178069e3f30091dcdbb44c36408656941755177c45bc976bf270289d" + "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" }, { "message": { - "validator_index": "511518", - "from_bls_pubkey": "0x83b8c61b63de768821cbd82ee3c67c81bb848163d6af0186ffe1ca3936d283bb4cab886f3fbc7f6336fec3da8d542c76", - "to_execution_address": "0x92fcc742102977503966d35cb217fc55bd583232" + "validator_index": "319143", + "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", + "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" }, - "signature": "0x8c90298abaed4b5124cff46e41c9a4ed2b2baa0d2089add6b64c70dc7547f1a83bed76aba1fac6d36605beea72734b490b7b98994c7c65fdb436286b0df898731f6ad536e5a603da85ec8cc4488b94dc8c61e11363d1cc18733382dca51c7008" + "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" }, { "message": { - "validator_index": "1431791", - "from_bls_pubkey": "0xa532ee397fdd9e388888d90f712e13b085ad5043402debe1caf3dabbb514ed0d06f7c897e4e2795fd018cd672bfa8948", - "to_execution_address": "0xb83ebc4250c035da23eca1b3592925f0c95e3056" + "validator_index": "1239417", + "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", + "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" }, - "signature": "0x8fb8cb9373db269dd2a05fe0a07484db022a95b06c03807426a352499fcb65c55f8c388fd4cddbdd9936d5fe5ac5898e0d8b58ae09a73bdc7e584fe9940d3aa967607a0c4a1ad1ce5ccc0ad83f63a273e140ae0510f709cd0c214b645d68e3f4" + "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" }, { "message": { - "validator_index": "1047042", - "from_bls_pubkey": "0xb7d85608c3cf919ee72c0481283b468c2825850f6f6028c000cb19bff464556973909667d0353582d673e1049795f20c", - "to_execution_address": "0x778981428fb4ee8ab889aa659e81f2f2087d260a" + "validator_index": "854668", + "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", + "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" }, - "signature": "0xa1079cff71763f60894927a0ac68cfff88642e5ec4e11d1f63ce7d7b15f2567842c80c0238a0f6e4d38ac2a9d09787c50c87daba460e05a0336332f1d37b65fed7526c5eb51a84d3a0169d09ddaf271d13710d22469e8dffde8859d50a2dd0a1" + "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" }, { "message": { - "validator_index": "2279280", - "from_bls_pubkey": "0xa46cb4c6f51759dd36e897cf8f5f8a774dbb5968defec8bcd85b9ec0f3d873a6569fabde6c6cf3fa5dc77e910bc39938", - "to_execution_address": "0x3aa93143d0d7c378fbb0904fd1788aea4c2244ee" + "validator_index": "2086906", + "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", + "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" }, - "signature": "0x988ea703ce8fcbd5bc7811c49e1eede7061ce461966a9a52f03afdecb157f065a1993fd71ea29c6769121610fc9e3e190eff938fb8c2f77dcf5f511208ad23cf427c05dd207b6c6004ba2a1ee3b6a84949e39db4ef1ee254635d3527010f7794" + "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" }, { "message": { - "validator_index": "1894531", - "from_bls_pubkey": "0xa18343c3306dae4ff3c78428069a4ae7876f0ad620219648b99b4bfaeea1d7898df50d508533e756f5903efbdf585076", - "to_execution_address": "0xf9f3f64210cc7c298f4e990115d157ed8b403aa2" + "validator_index": "1702157", + "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", + "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" }, - "signature": "0xa120e4f3144799db31e7487d25cbe6d8724f0076f23fdd7ff1f00b24b304a93a97862a3ebecb5e1b91018a0496a3c4020004b5d49571f4b9a3faf0f9d8f1f067d7005b5600db18872732313acf1350e1bec278384f3e0fe28d43f00203ae10e7" + "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" }, { "message": { - "validator_index": "2970787", - "from_bls_pubkey": "0xb23734206f673528ad12bad1b7815a9db722d7a5afffdfac97e17d453fcd2616a804619bd9f8db50b9547a357b1f5813", - "to_execution_address": "0x2036eb4250633bb379d46758bce28087974638c6" + "validator_index": "2778412", + "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", + "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" }, - "signature": "0x8de01f498b48fd1df0c20529228b7e8616c7bfc35457d392404110e394db4c884dad325363be1f2a83ac383486cdea460e78e89a728ac9464f71dfbc685ac8be3fb9ecb21d67a6c105354c58bfb78f2adf7ee65f5a4d7fbe5989e522b52daccf" + "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" }, { "message": { - "validator_index": "2430055", - "from_bls_pubkey": "0xb490d2df5759bb5115690df9aa805cddc1787b17fc3984ec400d03ccd5c6da6dbc54a724816ccf0c86b4b23e4daf0b17", - "to_execution_address": "0x42a3f4418ecbddffb5d058777555df2c9ec50eba" + "validator_index": "2237681", + "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", + "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" }, - "signature": "0x909ac7032213a33af76294ec19617f3fd9859bb22201e0502ae7187debe740c5cb0367ef03e944eab7fdc5ab23d303f916904a1ca5f7aadbcfbab89bdd82931dd7ff3e0efdd1135698f54774989ddd6d8ee07bebff863718c927072564a547bb" + "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" }, { "message": { - "validator_index": "506311", - "from_bls_pubkey": "0xa2810855686190fded08fbafafc427d3540a58c2b391c0d05a71be7a4d1aff2b4ea501c8e4c1ebb79cb49f1991ada976", - "to_execution_address": "0x68e5e841ce629c89a05627ce1c6708c7aacb0cde" + "validator_index": "313936", + "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", + "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" }, - "signature": "0xa108770fd60463dfc982d8725440e47c54730329420bcf05a969e4937d06e468385b53c4a5f6c69e55a775f358fa0948171dedf3bb0ccc1679280251b7abe4cc644e10b46bcdaddd590951541bda68373c8a8dcbfb86d3cb97822a5dfc21f481" + "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" }, { "message": { - "validator_index": "121562", - "from_bls_pubkey": "0x8deafeba9f0184ffa1f3d1422b9d97d6975fc4d5a21df265b48b6e831d6aee5a6236b3d5fb9e03cab1e0795f3dd45206", - "to_execution_address": "0xc40d6a420fe36b9e8d954713eca4442721892252" + "validator_index": "2929187", + "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", + "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" }, - "signature": "0xb489851f8a8fd535ee14505b9ae32ab27cd8d5e637236f491f71bfc987316491ef3f1b7670378875580eb247993d82511128502ea093d108730e070bb8c5919b39e78893139b3f1a499e885b15d385073e227d6a4e85ba0413ab9e2481d0b8da" + "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" }, { "message": { - "validator_index": "1353800", - "from_bls_pubkey": "0x97e217a0c3c7827753099f05459884b90c0fcc97c4c7b8144b06a29c3787cb2672cc36437d19f5d1a07d175683d345ae", - "to_execution_address": "0xea4f5e424f7a2a28771b166a93b66dc12d8f2076" + "validator_index": "1161425", + "from_bls_pubkey": "0xaf50133072b8d7a0ab9318facb15087021cdde3205929004ecae6df99d4cc111517fb629146398eb345a028d413624ac", + "to_execution_address": "0xfd705842efc5096d6c5e7d95673f828e34921f08" }, - "signature": "0x90261b9bbd447453cb0f85f40b0a16dd1f39c09f48b866601f7f7f01a3b5fb3ba84c04b6d6708930c9d174891b68d2bc187b888dba79f8f85ffab9f786bf8f2fe79315714da578940bfaf09e181e3a784c95a906591cf4d6091a7ad45909cf83" + "signature": "0xa34048285c5a03bac9edfcf306e845a8cc0f8e7f7b4c5590dce0146b30b5a4d6340855b4384b53cc72b4ac5bb9b372590a7f7eca40e78ef3ae9b0e9dfe020abc94d161627ff642df1386143f221aee8ba432f4e7affa7736c65a01e6f342cd4d" } ], "blob_kzg_commitments": [ - "0x70373542af8b450a2cf0e8995d74fd5c59a419747f5f4d8ed5a550526cbd4341b4564c1c2a75a955277f4cb32c6b1a7c", "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af", - "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f", - "0xbcbb1d422fbac21d01fc8547ab974f9172b015bc5882f0768caa5e73d640216c13d5649714f92a0d43e05864498aa915" + "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f" ], "execution_requests": { "deposits": [ { - "pubkey": "0x8542101a7935a234f5630ac9af421c22079f637d52260c1c6d6aea1011e8d11075c111bd37f037e78399b3c55c7b2c2e", - "withdrawal_credentials": "0x0100000000000000000000006c624a41ad5c29cd7d660b626ed53268531df243", - "amount": "4709638425535019469", - "signature": "0x8daefba6498ad8c68f592546366a9e21f0a3e7044297efa3162f7c171b46b73a03ba872e6c7801ab17f5a80f3bcaeaea0f1e0e11a7488603c9e40df1e2d56deb5d087c70e17a1bc626f113ed000514dc2a65857feec2e52539a00142ca88d0f7", - "index": "4699723521939947405" + "pubkey": "0x82265d267f8473b8b95581d5cff9b19c81ca410538259c96c7418ef433e3c0a89d8ce7f7b91dc0789ceddd7e5f8f1f45", + "withdrawal_credentials": "0x010000000000000000000000594150410d114a888823a4369a4c1e9b4d1af3b1", + "amount": "4704680975884967085", + "signature": "0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a", + "index": "4707985942318335341" }, { - "pubkey": "0xa1406a0e7708eb918313d3a1f4fb748174c690e7bc5933f8481b64aff73671f1bd59c3ea53b84d65eb5afd191748eaf8", - "withdrawal_credentials": "0x01000000000000000000000092a43e41edf3e75667ecd9b815e75b026023f067", - "amount": "4693113584778243597", - "signature": "0x90eaf66c3ce8bb8adfd8c7ad829a87adb1aacfe459108ae92183846cb307c2c47d973f760507669bf13cc0fb96d524ac111657d9ad569321516b9bb151c354b39cb26de1e0fd11844782cbe64e1a73fe799ffe32054f35e1e1e41ddd7ab9d275", - "index": "4696418555506579149" + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", + "amount": "4701376009451598829", + "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", + "index": "4691461101561559469" } ], "withdrawals": [ { - "source_address": "0x51ef03412de8a007fc89e26a593f29059e41e61b", - "validator_pubkey": "0xa4a0d3ca2e08aa24e5f8da696a5ec5f9864f19e3493a1d784960dd9ee57c0f6fc8e930f3c96dbe2bb2c0812e6cea2766", - "amount": "4688156139423158509" + "source_address": "0x3ece09418d9cc1c206477b3f86b61438983ee789", + "validator_pubkey": "0xb7fbe0486f002e790bb3d674b4259c18c6bf66510576e381e128aee6c2de771d3d5c9dda65b4078b058b2667f30e1637", + "amount": "4689808622639842637" } ], "consolidations": [ { - "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", - "source_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b", - "target_pubkey": "0x8d660371146ba6f398e715b802c30dbf1cfe3f061a559cf40fff948feb7384f52698e0aeecb94114d2f5b53f2676d5e6" + "source_address": "0x3a51a841aea2347f293797ab3448ea96efec0124", + "source_pubkey": "0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1", + "target_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b" } ] } diff --git a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetAttesterSlashingsTest.java b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetAttesterSlashingsTest.java index 525e09cf5cd..08eb42fea25 100644 --- a/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetAttesterSlashingsTest.java +++ b/data/beaconrestapi/src/test/java/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/GetAttesterSlashingsTest.java @@ -23,13 +23,14 @@ import static tech.pegasys.teku.infrastructure.restapi.MetadataTestUtil.verifyMetadataErrorResponse; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.google.common.io.Resources; -import java.io.IOException; import java.util.Collections; import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import tech.pegasys.teku.beaconrestapi.AbstractMigratedBeaconHandlerTest; +import tech.pegasys.teku.infrastructure.json.JsonTestUtil; import tech.pegasys.teku.spec.datastructures.operations.AttesterSlashing; class GetAttesterSlashingsTest extends AbstractMigratedBeaconHandlerTest { @@ -74,16 +75,18 @@ void metadata_shouldHandle500() throws JsonProcessingException { } @Test - void metadata_shouldHandle200() throws IOException { + void metadata_shouldHandle200() throws Exception { List responseData = List.of( dataStructureUtil.randomAttesterSlashing(), dataStructureUtil.randomAttesterSlashing()); final String data = getResponseStringFromMetadata(handler, SC_OK, responseData); + final JsonNode responseDataAsJsonNode = JsonTestUtil.parseAsJsonNode(data); final String expected = Resources.toString( Resources.getResource(GetAttesterSlashingsTest.class, "getAttesterSlashings.json"), UTF_8); - assertThat(data).isEqualTo(expected); + final JsonNode expectedAsJsonNode = JsonTestUtil.parseAsJsonNode(expected); + assertThat(responseDataAsJsonNode).isEqualTo(expectedAsJsonNode); } } diff --git a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getAttesterSlashings.json b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getAttesterSlashings.json index 5cd4ac55a4f..585d64ecd1d 100644 --- a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getAttesterSlashings.json +++ b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getAttesterSlashings.json @@ -1 +1,92 @@ -{"data":[{"attestation_1":{"attesting_indices":["4666673844721362956","4665021361504678828","4669978815449698508"],"data":{"slot":"4668326327938047084","index":"4660063907559659148","beacon_block_root":"0x8200a6402ca295554fb9562193cc71d60272d63beeaf2201fdf53e846e77f919","source":{"epoch":"542887588","root":"0x5cbeb140ec0ad7cb653388caecba483cf66bd817821ed18ca1f3b7f3b9b58a04"},"target":{"epoch":"535577359","root":"0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b"}},"signature":"0x992e2695a49aaedcb373280f375a08adaafafff0bab131d48674136f5e452c8bb0797618eeb99bc3a4835bca2bd6aec6067807e927604548997a795d7ba982a5274f0d1d55624a8c7b66973c6e717f3c46bd2d92bc1696d3173751a6b0bf6a63"},"attestation_2":{"attesting_indices":["4666673844721362956","4665021361504678828","4669978815449698508"],"data":{"slot":"4602226973500878187","index":"4593964548827522954","beacon_block_root":"0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6","source":{"epoch":"535192610","root":"0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1"},"target":{"epoch":"534038364","root":"0xcbafa33faaa1f62b763b1697f350f91515f7aa53462f2500db29d9eff71c7ef1"}},"signature":"0x9776d892cbc6c914554d0153158c9a7c72164e9f60d3fe5816bdaf08a9bf3ca67d77a9c1d6431ba3294ec9032424322b0ab9e9a58fb0b9d8de93946ff414d2bef1f58da9f4a9b1e585c57571a6c8c8c2c0aa1c574939b7acd228d3f35d7b6e6e"}},{"attestation_1":{"attesting_indices":["4589007099177470570","4580744678799082634","4579092195582398506"],"data":{"slot":"4584049649527418186","index":"4582397162015766762","beacon_block_root":"0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565","source":{"epoch":"538462976","root":"0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650"},"target":{"epoch":"538847725","root":"0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390"}},"signature":"0x88a276eb43fd6674df0c66f4a2d988eb33b7d1dd992b71ccc4a6a8202cd12533828bc067f6b424fc554ed97bf16202bd0e4a9e9ba9bcde870fe7a51ae3351e2f63999138f8bc8ef315b0e168beda213ce3cbb7776026257c65b88fe28f00318f"},"attestation_2":{"attesting_indices":["4589007099177470570","4580744678799082634","4579092195582398506"],"data":{"slot":"4623709263907706443","index":"4622056780691022315","beacon_block_root":"0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb","source":{"epoch":"536923980","root":"0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5"},"target":{"epoch":"537308729","root":"0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6"}},"signature":"0xaa6e7c4619474f9b282e9f9bacf70496bee8b8fc79bb139ce047ffe273b1198bd34d35a9e42aab7ea1650b777218eaa706d3b1f017fff3be70a00851ad131c8877550e53ab01fd4850f5546664d1696c122a92ba49e68da2656ebcf43a82078b"}}]} \ No newline at end of file +{ + "data": [ + { + "attestation_1": { + "attesting_indices": [ + "4665021361504678828", + "4669978815449698508", + "4668326327938047084" + ], + "data": { + "slot": "4660063907559659148", + "index": "4658411424342975020", + "beacon_block_root": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379", + "source": { + "epoch": "542695214", + "root": "0x1f86d83f0bf91cc0d7e07410828140e0dddbb331dc20b6743f9f79e549b50b11" + }, + "target": { + "epoch": "535384985", + "root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" + } + }, + "signature": "0xae757bc04a0f7ee8e8d1668c8de3fd4ca45ca7e8f7ad7d3323350213956386cfc97094f156a7d6ab2d3ebe6a7eb7ce2c10d0d32091ee4867224ef5856bff529e9f0c2cb9c0085a28f6a47d75aae926913f681a6b21e25b093b78e3cf188bb6be" + }, + "attestation_2": { + "attesting_indices": [ + "4665021361504678828", + "4669978815449698508", + "4668326327938047084" + ], + "data": { + "slot": "4593964548827522954", + "index": "4592312065610838826", + "beacon_block_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", + "source": { + "epoch": "535000236", + "root": "0xb88ea93f0a5617e780f8ae6b1fc8e4480ff4abc18f66fc45ada895271cbcc666" + }, + "target": { + "epoch": "533845989", + "root": "0x924cb53fcabe585d9672e01478b6bbae02eead9d22d5aad151a60e9768fa5751" + } + }, + "signature": "0x93bcd24f4a430255688b4a9a548da6f88a03bcf775104980edb7e818a3eb26f40ed8981681e4c92e4f02360fcc91bfdf062466e46c2a11058d2200e378fec149f13445aa520ea8e87bd94d3b260478c4ac0a92c27a3af35dae1e843e4112e05c" + } + }, + { + "attestation_1": { + "attesting_indices": [ + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" + ], + "data": { + "slot": "4627014230341074699", + "index": "4625361742829423275", + "beacon_block_root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650", + "source": { + "epoch": "538847725", + "root": "0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390" + }, + "target": { + "epoch": "537693478", + "root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + } + }, + "signature": "0x89253547c4da2415ab254923840e8988872bb213d72482da53998afaf78d3d4be75b3d45dafa853e297c274286792098167a69856d813f5b38d1eecbca1a63d67e6f38acd72149931b5b9bf53d45b94c3b2b81d7183c1f18836bf1dbbd7e019a" + }, + "attestation_2": { + "attesting_indices": [ + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" + ], + "data": { + "slot": "4613794356017667083", + "index": "4612141872800982955", + "beacon_block_root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5", + "source": { + "epoch": "537308729", + "root": "0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6" + }, + "target": { + "epoch": "536154483", + "root": "0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0" + } + }, + "signature": "0x987deb6cea81585136778dd3825ee4bc58bbbf1f007b9d2c819c4441de0c6c4f727aef2aa8e373231d451f3f2ee72a7e0e4e6d8e3f24c0c0371fe0bf37fed52eab8615b90cb16cfd74d7d47f9de296c35481ece0c3f2b23a25e9085515e6d0e4" + } + } + ] +} \ No newline at end of file diff --git a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getBlindedBlock.json b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getBlindedBlock.json index 246a7321376..05949560c1d 100644 --- a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getBlindedBlock.json +++ b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v1/beacon/getBlindedBlock.json @@ -44,157 +44,157 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ] } }, - "signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" + "signature": "0xb4619694384c8eb2975580bcf872825989dbe1a3cb79f1683c64ce3ab62431f6d80b10ae018bb0d4d4c9519e086a731413ef29fe7d0586ced2220a9cab11b70a8cd2dbaaa8e28e2ce6d913f4437e28752d4cbfe17a1fbd433dd22d33ee148ff1" } } \ No newline at end of file diff --git a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsELECTRA.json b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsELECTRA.json index ba7cea4a1c2..0c5795d97f4 100644 --- a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsELECTRA.json +++ b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsELECTRA.json @@ -4,89 +4,89 @@ { "attestation_1": { "attesting_indices": [ - "4666673844721362956", "4665021361504678828", - "4669978815449698508" + "4669978815449698508", + "4668326327938047084" ], "data": { - "slot": "4668326327938047084", - "index": "4660063907559659148", - "beacon_block_root": "0x8200a6402ca295554fb9562193cc71d60272d63beeaf2201fdf53e846e77f919", + "slot": "4660063907559659148", + "index": "4658411424342975020", + "beacon_block_root": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379", "source": { - "epoch": "542887588", - "root": "0x5cbeb140ec0ad7cb653388caecba483cf66bd817821ed18ca1f3b7f3b9b58a04" + "epoch": "542695214", + "root": "0x1f86d83f0bf91cc0d7e07410828140e0dddbb331dc20b6743f9f79e549b50b11" }, "target": { - "epoch": "535577359", - "root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + "epoch": "535384985", + "root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" } }, - "signature": "0x992e2695a49aaedcb373280f375a08adaafafff0bab131d48674136f5e452c8bb0797618eeb99bc3a4835bca2bd6aec6067807e927604548997a795d7ba982a5274f0d1d55624a8c7b66973c6e717f3c46bd2d92bc1696d3173751a6b0bf6a63" + "signature": "0xae757bc04a0f7ee8e8d1668c8de3fd4ca45ca7e8f7ad7d3323350213956386cfc97094f156a7d6ab2d3ebe6a7eb7ce2c10d0d32091ee4867224ef5856bff529e9f0c2cb9c0085a28f6a47d75aae926913f681a6b21e25b093b78e3cf188bb6be" }, "attestation_2": { "attesting_indices": [ - "4666673844721362956", "4665021361504678828", - "4669978815449698508" + "4669978815449698508", + "4668326327938047084" ], "data": { - "slot": "4602226973500878187", - "index": "4593964548827522954", - "beacon_block_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "slot": "4593964548827522954", + "index": "4592312065610838826", + "beacon_block_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", "source": { - "epoch": "535192610", - "root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + "epoch": "535000236", + "root": "0xb88ea93f0a5617e780f8ae6b1fc8e4480ff4abc18f66fc45ada895271cbcc666" }, "target": { - "epoch": "534038364", - "root": "0xcbafa33faaa1f62b763b1697f350f91515f7aa53462f2500db29d9eff71c7ef1" + "epoch": "533845989", + "root": "0x924cb53fcabe585d9672e01478b6bbae02eead9d22d5aad151a60e9768fa5751" } }, - "signature": "0x9776d892cbc6c914554d0153158c9a7c72164e9f60d3fe5816bdaf08a9bf3ca67d77a9c1d6431ba3294ec9032424322b0ab9e9a58fb0b9d8de93946ff414d2bef1f58da9f4a9b1e585c57571a6c8c8c2c0aa1c574939b7acd228d3f35d7b6e6e" + "signature": "0x93bcd24f4a430255688b4a9a548da6f88a03bcf775104980edb7e818a3eb26f40ed8981681e4c92e4f02360fcc91bfdf062466e46c2a11058d2200e378fec149f13445aa520ea8e87bd94d3b260478c4ac0a92c27a3af35dae1e843e4112e05c" } }, { "attestation_1": { "attesting_indices": [ - "4589007099177470570", - "4580744678799082634", - "4579092195582398506" + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" ], "data": { - "slot": "4584049649527418186", - "index": "4582397162015766762", - "beacon_block_root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565", + "slot": "4627014230341074699", + "index": "4625361742829423275", + "beacon_block_root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650", "source": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" - }, - "target": { "epoch": "538847725", "root": "0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390" + }, + "target": { + "epoch": "537693478", + "root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" } }, - "signature": "0x88a276eb43fd6674df0c66f4a2d988eb33b7d1dd992b71ccc4a6a8202cd12533828bc067f6b424fc554ed97bf16202bd0e4a9e9ba9bcde870fe7a51ae3351e2f63999138f8bc8ef315b0e168beda213ce3cbb7776026257c65b88fe28f00318f" + "signature": "0x89253547c4da2415ab254923840e8988872bb213d72482da53998afaf78d3d4be75b3d45dafa853e297c274286792098167a69856d813f5b38d1eecbca1a63d67e6f38acd72149931b5b9bf53d45b94c3b2b81d7183c1f18836bf1dbbd7e019a" }, "attestation_2": { "attesting_indices": [ - "4589007099177470570", - "4580744678799082634", - "4579092195582398506" + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" ], "data": { - "slot": "4623709263907706443", - "index": "4622056780691022315", - "beacon_block_root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb", + "slot": "4613794356017667083", + "index": "4612141872800982955", + "beacon_block_root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5", "source": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" - }, - "target": { "epoch": "537308729", "root": "0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6" + }, + "target": { + "epoch": "536154483", + "root": "0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0" } }, - "signature": "0xaa6e7c4619474f9b282e9f9bacf70496bee8b8fc79bb139ce047ffe273b1198bd34d35a9e42aab7ea1650b777218eaa706d3b1f017fff3be70a00851ad131c8877550e53ab01fd4850f5546664d1696c122a92ba49e68da2656ebcf43a82078b" + "signature": "0x987deb6cea81585136778dd3825ee4bc58bbbf1f007b9d2c819c4441de0c6c4f727aef2aa8e373231d451f3f2ee72a7e0e4e6d8e3f24c0c0371fe0bf37fed52eab8615b90cb16cfd74d7d47f9de296c35481ece0c3f2b23a25e9085515e6d0e4" } } ] diff --git a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsPHASE0.json b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsPHASE0.json index 2cce4794575..3d69e02389b 100644 --- a/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsPHASE0.json +++ b/data/beaconrestapi/src/test/resources/tech/pegasys/teku/beaconrestapi/handlers/v2/beacon/getAttesterSlashingsPHASE0.json @@ -4,89 +4,89 @@ { "attestation_1": { "attesting_indices": [ - "4666673844721362956", "4665021361504678828", - "4669978815449698508" + "4669978815449698508", + "4668326327938047084" ], "data": { - "slot": "4668326327938047084", - "index": "4660063907559659148", - "beacon_block_root": "0x8200a6402ca295554fb9562193cc71d60272d63beeaf2201fdf53e846e77f919", + "slot": "4660063907559659148", + "index": "4658411424342975020", + "beacon_block_root": "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379", "source": { - "epoch": "542887588", - "root": "0x5cbeb140ec0ad7cb653388caecba483cf66bd817821ed18ca1f3b7f3b9b58a04" + "epoch": "542695214", + "root": "0x1f86d83f0bf91cc0d7e07410828140e0dddbb331dc20b6743f9f79e549b50b11" }, "target": { - "epoch": "535577359", - "root": "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + "epoch": "535384985", + "root": "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" } }, - "signature": "0x992e2695a49aaedcb373280f375a08adaafafff0bab131d48674136f5e452c8bb0797618eeb99bc3a4835bca2bd6aec6067807e927604548997a795d7ba982a5274f0d1d55624a8c7b66973c6e717f3c46bd2d92bc1696d3173751a6b0bf6a63" + "signature": "0xae757bc04a0f7ee8e8d1668c8de3fd4ca45ca7e8f7ad7d3323350213956386cfc97094f156a7d6ab2d3ebe6a7eb7ce2c10d0d32091ee4867224ef5856bff529e9f0c2cb9c0085a28f6a47d75aae926913f681a6b21e25b093b78e3cf188bb6be" }, "attestation_2": { "attesting_indices": [ - "4666673844721362956", "4665021361504678828", - "4669978815449698508" + "4669978815449698508", + "4668326327938047084" ], "data": { - "slot": "4602226973500878187", - "index": "4593964548827522954", - "beacon_block_root": "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6", + "slot": "4593964548827522954", + "index": "4592312065610838826", + "beacon_block_root": "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26", "source": { - "epoch": "535192610", - "root": "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + "epoch": "535000236", + "root": "0xb88ea93f0a5617e780f8ae6b1fc8e4480ff4abc18f66fc45ada895271cbcc666" }, "target": { - "epoch": "534038364", - "root": "0xcbafa33faaa1f62b763b1697f350f91515f7aa53462f2500db29d9eff71c7ef1" + "epoch": "533845989", + "root": "0x924cb53fcabe585d9672e01478b6bbae02eead9d22d5aad151a60e9768fa5751" } }, - "signature": "0x9776d892cbc6c914554d0153158c9a7c72164e9f60d3fe5816bdaf08a9bf3ca67d77a9c1d6431ba3294ec9032424322b0ab9e9a58fb0b9d8de93946ff414d2bef1f58da9f4a9b1e585c57571a6c8c8c2c0aa1c574939b7acd228d3f35d7b6e6e" + "signature": "0x93bcd24f4a430255688b4a9a548da6f88a03bcf775104980edb7e818a3eb26f40ed8981681e4c92e4f02360fcc91bfdf062466e46c2a11058d2200e378fec149f13445aa520ea8e87bd94d3b260478c4ac0a92c27a3af35dae1e843e4112e05c" } }, { "attestation_1": { "attesting_indices": [ - "4589007099177470570", - "4580744678799082634", - "4579092195582398506" + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" ], "data": { - "slot": "4584049649527418186", - "index": "4582397162015766762", - "beacon_block_root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565", + "slot": "4627014230341074699", + "index": "4625361742829423275", + "beacon_block_root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650", "source": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" - }, - "target": { "epoch": "538847725", "root": "0x3af91e408b6da58558bd9d0797174a4392b7bf5950b8ccba1a914f820d2b7390" + }, + "target": { + "epoch": "537693478", + "root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" } }, - "signature": "0x88a276eb43fd6674df0c66f4a2d988eb33b7d1dd992b71ccc4a6a8202cd12533828bc067f6b424fc554ed97bf16202bd0e4a9e9ba9bcde870fe7a51ae3351e2f63999138f8bc8ef315b0e168beda213ce3cbb7776026257c65b88fe28f00318f" + "signature": "0x89253547c4da2415ab254923840e8988872bb213d72482da53998afaf78d3d4be75b3d45dafa853e297c274286792098167a69856d813f5b38d1eecbca1a63d67e6f38acd72149931b5b9bf53d45b94c3b2b81d7183c1f18836bf1dbbd7e019a" }, "attestation_2": { "attesting_indices": [ - "4589007099177470570", - "4580744678799082634", - "4579092195582398506" + "4579092195582398506", + "4584049649527418186", + "4582397162015766762" ], "data": { - "slot": "4623709263907706443", - "index": "4622056780691022315", - "beacon_block_root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb", + "slot": "4613794356017667083", + "index": "4612141872800982955", + "beacon_block_root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5", "source": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" - }, - "target": { "epoch": "537308729", "root": "0xd301f03f8bca9fac02d5d762345eeeabc4cfb7e903fe128c889a6bc4e0312ee6" + }, + "target": { + "epoch": "536154483", + "root": "0xacbffb3f4b33e122174f090c8d4cc511b7c9b9c5966cc1172c98e4332b70bfd0" } }, - "signature": "0xaa6e7c4619474f9b282e9f9bacf70496bee8b8fc79bb139ce047ffe273b1198bd34d35a9e42aab7ea1650b777218eaa706d3b1f017fff3be70a00851ad131c8877550e53ab01fd4850f5546664d1696c122a92ba49e68da2656ebcf43a82078b" + "signature": "0x987deb6cea81585136778dd3825ee4bc58bbbf1f007b9d2c819c4441de0c6c4f727aef2aa8e373231d451f3f2ee72a7e0e4e6d8e3f24c0c0371fe0bf37fed52eab8615b90cb16cfd74d7d47f9de296c35481ece0c3f2b23a25e9085515e6d0e4" } } ] 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 16d0bb3f078..f869806cc18 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 @@ -73,7 +73,7 @@ public void shouldSignBlindedBlock() { final BLSSignature expectedSignature = BLSSignature.fromBytesCompressed( Bytes.fromBase64String( - "ly4cxcYQcaynv/9xraWIv7emeza+AFVLOJ0YFnxyqxSxP1nfjkxYS1tuf3x4Y9/qFdVGs6v1QE9/wDBd6DgMg7FhfyKARNTVbNDWlO3jf5pRxNUNiJXNUVs6L0evcIKV")); + "o2ekZJkMs5GPMFR7sVgIf/ikm9QATJRSnXCk8AR/58c/t6C4H5RJKNhU662xS6XBC2i/I0PF4HaTOV4gX8pNMWcHnGB06ZHTSWQ5NFwnhEMQ3GLO2/BYYd5arJkVp/Tc")); final SafeFuture result = signer.signBlock(block, fork); asyncRunner.executeQueuedActions(); 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 be5ffe8e650..a9f1b0bc624 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 @@ -893,13 +893,20 @@ public AttesterSlashing randomAttesterSlashingAtSlot(final UInt64 slot) { } public AttesterSlashing randomAttesterSlashing() { - return randomAttesterSlashing(randomUInt64(), randomUInt64(), randomUInt64()); + return randomAttesterSlashing( + randomSlot().longValue(), randomUInt64(), randomUInt64(), randomUInt64()); } public AttesterSlashing randomAttesterSlashing(final UInt64... attestingIndices) { + return randomAttesterSlashing(randomSlot().longValue(), attestingIndices); + } + + public AttesterSlashing randomAttesterSlashing( + final long slot, final UInt64... attestingIndices) { IndexedAttestation attestation1 = randomIndexedAttestation(attestingIndices); IndexedAttestation attestation2 = randomIndexedAttestation(attestingIndices); - return spec.getGenesisSchemaDefinitions() + return spec.atSlot(UInt64.valueOf(slot)) + .getSchemaDefinitions() .getAttesterSlashingSchema() .create(attestation1, attestation2); } @@ -1254,7 +1261,8 @@ public BeaconBlock randomBeaconBlock( public BeaconBlock randomBeaconBlock( final UInt64 slot, final Bytes32 parentRoot, final Bytes32 stateRoot, final boolean isFull) { final UInt64 proposerIndex = randomUInt64(); - final BeaconBlockBody body = !isFull ? randomBeaconBlockBody() : randomFullBeaconBlockBody(); + final BeaconBlockBody body = + !isFull ? randomBeaconBlockBody(slot) : randomFullBeaconBlockBody(slot); return new BeaconBlock( spec.atSlot(slot).getSchemaDefinitions().getBeaconBlockSchema(), @@ -1464,14 +1472,14 @@ public BeaconBlockBody randomBeaconBlockBody( .join(); } - public BeaconBlockBody randomFullBeaconBlockBody() { - return randomFullBeaconBlockBody(__ -> {}); + public BeaconBlockBody randomFullBeaconBlockBody(final UInt64 slot) { + return randomFullBeaconBlockBody(slot, __ -> {}); } public BeaconBlockBody randomFullBeaconBlockBody( - final Consumer builderModifier) { + final UInt64 slot, final Consumer builderModifier) { final BeaconBlockBodySchema schema = - spec.getGenesisSpec().getSchemaDefinitions().getBeaconBlockBodySchema(); + spec.atSlot(slot).getSchemaDefinitions().getBeaconBlockBodySchema(); return schema .createBlockBody( builder -> { @@ -1484,9 +1492,10 @@ public BeaconBlockBody randomFullBeaconBlockBody( schema.getProposerSlashingsSchema(), this::randomProposerSlashing)) .attesterSlashings( randomFullSszList( - schema.getAttesterSlashingsSchema(), this::randomAttesterSlashing)) + schema.getAttesterSlashingsSchema(), () -> randomAttesterSlashing(slot))) .attestations( - randomFullSszList(schema.getAttestationsSchema(), this::randomAttestation)) + randomFullSszList( + schema.getAttestationsSchema(), () -> randomAttestation(slot))) .deposits( randomFullSszList( schema.getDepositsSchema(), this::randomDepositWithoutIndex)) diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockBELLATRIX.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockBELLATRIX.json index f10e250a9c1..64339eddd8a 100644 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockBELLATRIX.json +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockBELLATRIX.json @@ -1,8 +1,8 @@ { "version": "bellatrix", "execution_payload_blinded": true, - "execution_payload_value": "64440075145037893977597636730159223700849209418551716330347083025087305940989", - "consensus_block_value": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "execution_payload_value": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "consensus_block_value": "110698795530499877737280254001850075711411497370695181962707136225646562110", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,174 +44,174 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd" } } } diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockCAPELLA.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockCAPELLA.json index 32f02e95d9d..ffb467d49c7 100644 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockCAPELLA.json +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockCAPELLA.json @@ -1,8 +1,8 @@ { "version": "capella", "execution_payload_blinded": true, - "execution_payload_value": "80477117991478830934330087641848914967983650390705903836988657505597864024534", - "consensus_block_value": "7495532986413849817267215758148158394038672421876771029699707700121804844683", + "execution_payload_value": "7495532986413849817267215758148158394038672421876771029699707700121804844683", + "consensus_block_value": "16147741642076749126162712127389114255573229005697131290860120949861914404374", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,304 +44,304 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "withdrawals_root": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "withdrawals_root": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "381513", - "from_bls_pubkey": "0x8090d17ce6c1ef17c732a59003fa00af269ba50795c7beaf02ea444d37d66184b7bedaea96152a321d5b110e5f1c022c", - "to_execution_address": "0xed1cad3ee8099978b13707b6acc357bb1b768147" + "validator_index": "958637", + "from_bls_pubkey": "0x89ca6fbbaafb3c27a42f70699f42e3f79d3b7681b103e5b393042efa90512aa9e590fccb0b654a5c1590bbe675aa584e", + "to_execution_address": "0x4dc28f3e0884f5d07b860b8fce6fbebc3b857c21" }, - "signature": "0x973e5604d7e3f8ce128ce7acee5c9501571383171d491c28b9564ed35586ec772923390c008bb81a0c234e5de8bbdc801220206fe020b2990037191ac3ef7271fa8babc2239f566bb6fe6a86d7a0d0d4c644ab46cb24fc2328729a76dbd05f0b" + "signature": "0xa207b627176533d6fc3670d6c4a48afff107ef6bf9d7520b0f77162bf7df5505aa3a17c08ee53067daad827b75ef333015a61a81b421ec8888ff31dc50994121420862d11926782bf6983aab5f6f39c17264a77943dd6618d85444c56d469c19" }, { "message": { - "validator_index": "2996764", - "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", - "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" + "validator_index": "2034892", + "from_bls_pubkey": "0xb384518c8bde1118e66c725854a5919c4a5c0453e8eb822fed707aa5c636e6e2a2aa56c95966817ec67ebadf6c77b44a", + "to_execution_address": "0x7304843e481bb45a660cdae57581e756478b7a45" }, - "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" + "signature": "0xaf85c50db6dad8c04b9a22611e3174fdc57a3cfe255164e0361897353984556c3e7b91b040ec3b59cc29d774aaacf4b204e4e1960b9dd5bf9b72f8c3e09bdd64753a65084567c10b229784fe46be3de016c8add60d84c970943d221882294028" }, { "message": { - "validator_index": "2164897", - "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", - "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" + "validator_index": "2742020", + "from_bls_pubkey": "0xb2bffd7d93c4b1e46b3f4511f97de3ac70e2f9b2e3428b26ad7864d9f71bbca34904c81dbcc1dc2ffd1c02bfa016b096", + "to_execution_address": "0x7b5e6c4391e30ac86613889d8c20bde70e044e3a" }, - "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" + "signature": "0xa2a6993708f79d7b3db30c3968aaf4b706400145cf70fded02b06d54922e54a4c1db14d63860cc632d0b2a8c15efc5280bc57ceed454838f2a0848e03e610e130309d8012aa5eddc1fa84b509fc8178a685baaa0413ec58709e738aae430491d" }, { "message": { - "validator_index": "1780148", - "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", - "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" + "validator_index": "818276", + "from_bls_pubkey": "0x94e2d4cf94fb757578c496885af2075c26e2483eeffa6e894ac791f7c1945b0fbf9a6f7860736db93e03d511c4b08516", + "to_execution_address": "0xa2a06043d17ac951519956f43432e6811a0a4c5e" }, - "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" + "signature": "0xa8b4b8e92e67565ec430f2fdda94ed0f6f06d8cb302770191d614b795d194e4728c11e72162f25e04d0f7dda1dcd54da0d8a7c39e71e945873168ffa294da70dd1acbc1902a2fb1598267df5d277a0f95592967ea222ab0706571001c315eb2b" }, { "message": { - "validator_index": "2856403", - "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", - "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" + "validator_index": "433527", + "from_bls_pubkey": "0xa5041469fc5f6a944fda64e7ab422c1479ab9d0de12a2f3ac7292dfe368408cbc6d2b0ff519b521427da731e7378806e", + "to_execution_address": "0xfdc8e14312fb98663ed87639047022e291c761d2" }, - "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" + "signature": "0xb66c9d2c80f5a12930f0899b9ff3d1a6a37e0f9edb279ced767eca8ef0380227681b15bd3850a00a383491ed1d8e869310f10edea2b912278e1e2ec1cfaaba8c0981af2e40fd233a9fd2f67ec56540c66e062212ee2781593a4714914e15cb52" }, { "message": { - "validator_index": "2627637", - "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", - "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" + "validator_index": "1665765", + "from_bls_pubkey": "0x9105e2e35c7861d3fee37cb3bf07e8fdf3e0911d251cb11b956d4edbbd62a951c7ac9854677ce19a7748a503c307028c", + "to_execution_address": "0x240bd643529257f0285e4590ab814b7c9dcd5ff6" }, - "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" + "signature": "0xb3b0b28bedcc6e28d433c2a577204a9f7ecfc2fd4e3067ddcb65caebf7fd32d0389dd1db836600b0ee19a2ac8b6d0a660788a42abfde02bd5bddfdbe8cdde83a890ce69ee178ea314cfd9c06e5507ffe5cc4a685004f955219fcbbbec6fdd144" }, { "message": { - "validator_index": "703892", - "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", - "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" + "validator_index": "1281016", + "from_bls_pubkey": "0xaae4f1779eb7e006a9d0195e39af1f14a05b017a4a351ee1f3c22929929fb510cae4ba8e01b6d2444a66e388e655d92c", + "to_execution_address": "0xe3559b43918610a1bdfb4d42efd9187fdceb55aa" }, - "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" + "signature": "0xa3acdd589f44c5b4201ae54cd119add73b60bcaca91f9e5d028669dd9b52f3ce15c20bb0ec39ff9ddfe96d5c1ce979c10376d36f4840a04cd90ed9d4348fa4a53f0f00e35bfab055a102ce3b6306255ffba3ef9ce7e1548048139d574478ebbf" }, { "message": { - "validator_index": "319143", - "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", - "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" + "validator_index": "2201289", + "from_bls_pubkey": "0x842bb38ef27bafce4e8aa9abd3e31286da4d36eb87ff6a2fc4de272e4878230a7ac7a723bf3f76101ab2c2a642550eff", + "to_execution_address": "0x6cbad342d091b8c64ee004060b06d3bbb052340e" }, - "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" + "signature": "0xabd643eedb5dfcc8f2db27bcfd59f6359517cec81ab4d5ff08bd5fd246ba120883c047e0cffc1d215104169a335628180df5779f128772f899546fd260328d4a4368a044c3e2037f4284624728dc94e05467b1559aad3077cf9557bf62fc56e2" }, { "message": { - "validator_index": "1239417", - "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", - "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" + "validator_index": "1816540", + "from_bls_pubkey": "0x990cf4f3bf6ede0aaef3010026465f98f381860535ce007b87879afbf2c955c13d07d7c2d91e22fddd8ef5531f8bd22c", + "to_execution_address": "0x2b0599420f867177e37d0db84f5ea0beef702ac2" }, - "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" + "signature": "0xac8ebc3beb6cfc97c27f286e0d2e582707cbcb972d0898a41831b2d1393a684ce54ce54dc9128dc3988930ae4d92b4ed0a51b2bf639d8fd8e62e40ceac222362d9bb67f9d1b8419f3123dac1bb2e4e0cccb5c7c0985c83bd0501ed610935aa96" }, { "message": { - "validator_index": "854668", - "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", - "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" + "validator_index": "2892795", + "from_bls_pubkey": "0xa0695f8f6f65e3d8401e144eb382eaed73f9ec56be6de71dadb917af79a08ff7b74967dd4f4766ed77f7bc2fc01cfa38", + "to_execution_address": "0x51478d424f1d3001cd03dc0ef66fc958fb7628e6" }, - "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" + "signature": "0xa18c2c70d886e11a592393a7bef6fb3a515100e1436763854eb96fca9c031a959e4c105be367a10ea87c3d1a8bce821303470a1d6053cd89139bbd86fd7bbdd3e377b331884bedb0f9b10eafcb3272561fc5d71b96b219d7fe3aacd6e1558c97" }, { "message": { - "validator_index": "2086906", - "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", - "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" + "validator_index": "2664029", + "from_bls_pubkey": "0x97e268878248299c9e4d2c86957935d6cddb83900dbb6d4e52a935bcda58978f6fd33e0dc891cea14da0feafd5173762", + "to_execution_address": "0xad6f0e43909dff15ba42fc53c6ad05b972343e5a" }, - "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" + "signature": "0xa2010187045aa6d63130c7ff23464438af57c3e42eaa90823205936a94c47713b68bd93d3b6837947e277ece630a6d200d428979548f340f6f71ca33e8731e059a8c20f75d71d36caebbbf6fde28f37a919353dedb7b7c7e4dbcda553e5bbee5" }, { "message": { - "validator_index": "1702157", - "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", - "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" + "validator_index": "740284", + "from_bls_pubkey": "0x8aec1b1f595063af33939f3c3322ad38d2e1de1b11fbc8a9d04235dc7fc9792e1c88e51452d337855d254a71f42816e8", + "to_execution_address": "0xd3b10243d034be9fa5c8caaa6ebf2e537e3a3c7e" }, - "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" + "signature": "0xa0ba14bb9ce5877d9f9d607da9b2fd2d629a1de42d6d3beb5a8f4c1661aa1d6863e01de14c548be8a9df222efc6373be1290581da81c76d71bfada1d07481d7b7de94290efd640aadca41d6b4d4f81091f4c459b454bd6e333eaa35c60faacf5" }, { "message": { - "validator_index": "2778412", - "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", - "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" + "validator_index": "355536", + "from_bls_pubkey": "0xa912f4ad989d87e777e45af7c265b430daf0b39345987506d4158cdee406847f294fc7745154eb52abf0934a5e1866ee", + "to_execution_address": "0xf51e0c420e9d60ece0c4bbc926328df885b91272" }, - "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" + "signature": "0xa7f77c7fc98b1c3a364dcac68b5cff112f7745e6dd41918ba56a6fa6945507e0ce245334e22d4581f49bda913baa2a6b1176b44d52168151b3aff9a625dcdebad1899747c42c4a43cf31f49124fc0d4543e4485592c243c5300b79214398b770" }, { "message": { - "validator_index": "2237681", - "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", - "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" + "validator_index": "1275809", + "from_bls_pubkey": "0xa77e90361be2a534a386cb689d6d763a98bea5f23f325b553a762648668e4adb4991fb5f41ad7ece1578f082a5c01b5e", + "to_execution_address": "0x1c6100424e341f76cb4a8a20cd43b69291bf1096" }, - "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" + "signature": "0xad188010cb0db88e067c2699030353a1c215ae9adf083916ee2069a805e0f2cd00c76db9250a859106dbbff4430b4dd114d6293c4b3c2e9cfd31f07949f04e53f63423a08b56d7247772d07959d5d92b17bd8c7c0b294b71d3db903d56509177" }, { "message": { - "validator_index": "313936", - "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", - "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" + "validator_index": "891060", + "from_bls_pubkey": "0xb4582d56f8ad9dcc77eb5413558e63a6b562e42534c579a85384e7d7d6ff8974ff933d05a444c1d2784945f4cd1c952e", + "to_execution_address": "0xdbabc5418e28d8265fe892d2129c8395d0dd064a" }, - "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" + "signature": "0xa7f07c5a20159b029b2dac119315a0d439c541e63b0d1f6d377fd2867e5559d6b6302eb609d5796fab97cbca121ddf400c840b9ffa60dbcd89c6d441f84aff2cca1f68fd9e258a969b0d511ad1d90c0c783dde3c093ee8cd56cf6f70a61fd77a" }, { "message": { - "validator_index": "2929187", - "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", - "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" + "validator_index": "2123298", + "from_bls_pubkey": "0xa5849044acc283563bd9b40fe9b01a8c079093829fc3837cddf20a8f9c13e59629251481406f415c8e2df65285ddb41f", + "to_execution_address": "0x9ecb7542cf4bad14a20f79bc45931b8d1483242e" }, - "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" + "signature": "0x81df97c3071aac41af79494001a1c4404b5121776a71d6cbe3b8eef000e803f59edd2fff33331d2ea037faa919ddd6a115e09bead88d7c8f23368628f306e3a244f2ce0a54e4472d29e4b79eced6da3e5ab40177e96fa0d94d97f5e07d2e6e95" } ] } 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 index 0097e055456..28fc27d9620 100644 --- 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 @@ -1,8 +1,8 @@ { "version": "deneb", "execution_payload_blinded": true, - "execution_payload_value": "76713209214131783738529880011383082433585760875758578793839191401534955940321", - "consensus_block_value": "85365417869794681440511947829803128359273241077382340157256470204531202859372", + "execution_payload_value": "50756583220288449835724789919752990744036228048165053817930899246206127260481", + "consensus_block_value": "24799950324699182119107049583125116496986047597328004586475399986067975839137", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,315 +44,311 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153001", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69dd01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef" }, { - "aggregation_bits": "0x2ccebf9956209878c848ccd0193b0b73dde864075f60dd0cd74ae645483ac71e35398aa957465c73723380b3743316603c18470e52cc55a3a69c8b2a1c7e9eeab42178ad261c518227f47713e0b82155eb6e78df4895f4e4bc63342c264c70d52492484a832f56708f0b617acb7e59f7b87fe4d0acac2e90a7e645a98d2548b491cfe6eb4fe970b2de9eba15e5d3551c05b633dcd35c20681790b48e5317b472b59541996c10f93121cf11a493eb1abc3a4c5e338902d3cd9b67eef479fb74b4e6a8c27c45f0f818ebce47f7f9e141076f2b2505aca30c9e8348ccb5f4d522736fe44ae663ce348c5fd39d225cceb21f225abc19e380c0c3877aa9fa48aa309901", + "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a01", "data": { - "slot": "4534475127257090569", - "index": "4532822644040406441", - "beacon_block_root": "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8", + "slot": "4532822644040406441", + "index": "4537780097985426121", + "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", "source": { - "epoch": "528074756", - "root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + "epoch": "527112883", + "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" }, "target": { - "epoch": "526920509", - "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" + "epoch": "527497632", + "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" } }, - "signature": "0xb29db8114826632bd145b4834257e325605dfc97eeafb4f36f4601632a7f61e34ed01b3eb3dd545f4e7ec26a50cd41a912f9eaab583a48302479b788e3d008c097e3b9caad5905aca5864c54c4fa82a6af595b4d69fdd348a1b1cf8330bdd1b2" + "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86" }, { - "aggregation_bits": "0x3453366c8ad93672298802ae734d879e76c91bfb4455b16c5186fe8a4a61e98ae21fe262f93523f2d913469d68e56e841d7f2bfa3a6190643468f2c7956d0430e7121e7deb980d34203b9c0a5984928dc5630e3336f3f532855529db8378282fb26857fd21d123c54f9ab463e152c135132d2d2cd82ca18fd3bf41fb188bee8d656217dc126f24093ac64bfe72918e1aac97437ba6e4c8d0a7842ff0bfd95143f9352b7243c4670f5c6ab77a261d2c07513550c9cceddf7bab68d2e785d706526b9f3e6f4e9104a8d54a2ad9bc73a291a66b2a69448bf2ce1f7ce55bbf1349686f6e55f9ed5e0cd744135cc53d082e5343ff03849f7e10c9c83cf166e2be6dfa01", + "aggregation_bits": "0xe2e8a45105213f0f211443b26e3a23df7f899eb9b3ddd40b5f51905f90441f98eaa0d2b9ed7dddf5b4089188c41388cb5702236640399f914245bc085459f40d628a99fd663a4429e9b46e61dc8beb6ae3757aaeffc6db49c374cc93d1e663989d84fa7b4aa499a8b5d34ec5fea94bcdb33af829c6260d2a88a6be97e89baa6215949a4ef124436f685d4ee683c0c27f0ac7aefd77f4b305842d1cf2d08d9b7f4e501a38b81014fcbcec2156d5abbd1010afe4a596164e4659c6dd794639199119b4a3f2ec4f3b4d6a084bdedf66dfdcc1be1c522d9bf72663b7cc1a8746c3737e20ef7ee1b7863f89ab600a35772b4eede0424b8b69bcd27a6b354252a0147701", "data": { - "slot": "4577439708070747082", - "index": "4575787224854062954", - "beacon_block_root": "0x9d1b633f8ae18e21ff1b86740b32dbe55a18a0991bcfe5ffd2b6bf8a59465fe7", + "slot": "4575787224854062954", + "index": "4567524808770642314", + "beacon_block_root": "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672", "source": { - "epoch": "531537496", - "root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1" + "epoch": "532114619", + "root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" }, "target": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" } }, - "signature": "0x81f173b724a40d8b729570158524a2726ac3bfe244452b6d22f3ad25183de08172ebd10cbaee58393db7d74d95b1a1ec02fe9de1487a744ba3d5d9ba01359c4050fc5d6eec7672662b703d6035100800a3952f4e4b2d9e4143ab0d9f044e5aed" + "signature": "0x8166b2ed13e982e6b9f05d30f42681b826099135a533d2614ef5f4f59811714245db0e1821a644859559f97ec1e614bf08b2edb294fa2edc1527f46596399534af23c98613e1b74c01871bf1dd2af9618bc0ba23ddfce8026b897cdbba8c1bce" } ], "deposits": [ { "proof": [ - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc", - "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587", + "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" ], "data": { - "pubkey": "0xa24847c92df6a839733b08528152e4a5151f881b48c91dfc0924dc66bb6e2c9db6cdb4319b1441469a719bcbe5a61180", - "withdrawal_credentials": "0x3624343f893e8948a933c0cfa8787f4e8c309829ce142cd140c0dbcc2c4d1a3d", + "pubkey": "0x83b9036200e9e907c86ede7f98b23297389e8af19d403466e00f1946867db735d8620019e28aa42739f49c65b78a2806", + "withdrawal_credentials": "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", "amount": "32000000000", - "signature": "0xae339cf8032a0b888a1eca614148195270a6e46f9fc8372139f6777e779cd401498b22df1ca568e88025e3bb635ee234101b549487b1544bab13b7a06489a285f3cebb6a43084a1e82165739d4a8167f2f03fb4199b7dfa84a395cfbb228d2e5" + "signature": "0x86e6ad7c26352727d310e10f7c745a0725636f63013f70c5a442489946dcd1c85665cd3539fe9d8fe6f6b49b5b7f13a50af2a2b98a7d385417c98e5d74273e67cc3bd8f8544dc3697124c8176835745659182eab37f3ebe0a881ff4e7f62bc31" } } ], "voluntary_exits": [ { "message": { - "epoch": "4557609905175570249", - "validator_index": "4552652451230550569" + "epoch": "4555957421958886121", + "validator_index": "4557609905175570249" }, - "signature": "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + "signature": "0xaacffaf60c8253477ecad70de8589f2ef7670d0b0dc446d4baac3b465a901d3e64bb6d2c3d8bdb58aed45ac30466261416d152d5ae242204201bf6decfddde697ae0c5d44cf31ca3d43aa18f2799461fc1ee14dbf905b1e31f242fd31c083c5a" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "sync_committee_signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" }, "execution_payload_header": { - "parent_hash": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", - "fee_recipient": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b", - "state_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "receipts_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "logs_bloom": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e1456efbbe55dc00bf2d7172a7556fc4ffaaa3b68abe09b2c879d9f482f1e8e34ad54688906694e2cbedc963fa0ddc340617fe8f157b2e36fd83070192d9535d7dad04ffa352a44ffd808a240264e01fe72a5f95ac5e484281086e9cd42261efa49a06062c0d1c2f325a957bd56ab4ce4da66eaba8231fd1ca3ae8c841a6c382c68a32bdb5946a3ac39b2c546ddcd9e336b51e867124bc99e3a9ca0893f1b8f74c93a547f61a33894f839ba1755e01743ddbb57594255cf87ffa78aece777f56bc0c9dc2095b8e2356af723d7cde215f7f03968a6676a998a8e0eb737fdda056ea5", - "prev_randao": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "block_number": "4484900609281730248", - "gas_limit": "4483248126065046120", - "gas_used": "4474985709981625479", - "timestamp": "4473333226764941351", - "extra_data": "0xa415263e48d5a8a8ba3b4e9caf0e3028abbb6a65922580447af6fcc869b40d2a", - "base_fee_per_gas": "82868883583976095934942218774802763456161238965616818389917973339530742580660", - "block_hash": "0xb4b9be3e0927fba9d26ed13331291a54096d84910dc35b5cd4d721723cde6d13", - "transactions_root": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "withdrawals_root": "0xd2a9663e689510b3305bdebe972d4e58669a751fbc85bf448269162e078b2c34", - "blob_gas_used": "4524560227956985801", - "excess_blob_gas": "4522907744740301673" + "parent_hash": "0x4570433e285b4c50f0ec49c38d62c9268cac6f8b023ab4a19570abdf25d07874", + "fee_recipient": "0x0c0d553e4878ae811024144112c88bbf79a372d5", + "state_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "receipts_root": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "logs_bloom": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569fed0e82445821ecdf1e306d211dc4b3e042d5813f11ce16132211c523a92d723ffdaaf2175eaa77a1937f2e9f27b5e5b0f1bd3b77dbc94c7215fa1065d6066ea59bf2b95b8fe2ef820d9cf6a10c93f04f98db135751e1d8972d2427113953334f5634914e66e00af04d50d4de255bb0540ed3627a6f64073f81a28f777cba3a4ff145230e8103befc67e3ae2e8c72518ea18fa75495daac19c0f5c5094c84853de2b6ba4e2275c8a941cfb1a29f5a24ba911dd636080b0859abaa198dda14a860d4d29306b038ddd219c708ed837583079254b70c7095ac70984894735b79f7f9", + "prev_randao": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "block_number": "4483248126065046120", + "gas_limit": "4474985709981625479", + "gas_used": "4473333226764941351", + "timestamp": "4478290672120026440", + "extra_data": "0xb736203ee72088edaf7eb5c7839744f5b1be69f748eea8fea77740914415c5b4", + "base_fee_per_gas": "81744492456258793280520536666094060462558404863190111969507816784424614128915", + "block_hash": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", + "transactions_root": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "withdrawals_root": "0x324f493e880f6d0bfaa9e297b9d9b45986a970f94c718be767ef67174b6fc1e9", + "blob_gas_used": "4522907744740301673", + "excess_blob_gas": "4514645320066946440" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "766262", - "from_bls_pubkey": "0xa5625c5b5cc13cc8c7cc9284e6d2091a3fc81fd1ae0b76ffde470f118cef6155721dccbe1d5370edb4773d3343122d1e", - "to_execution_address": "0x60e3893ea8cfd41571c972baa1f8d28941887bb3" + "validator_index": "2804390", + "from_bls_pubkey": "0x912c280adf321fbdcd522490a5431a7c2e0e716841b1a3819edf322fd46ab90681663c156f382055a914732e156d85dd", + "to_execution_address": "0x26809b3ec8ec364791003d38265e95222e7f7efd" }, - "signature": "0xa0c99dada83fb2711e947a201677e8ed2876f36ec4a25f674ad332c8da1c4af71357ffa8641e9fa8192c1ebadccf3fb802639284484c5cad7c17278cbd253b9be3769d6cb85ede5e5cc75ed97aadd438c1f56bd138e8349ff858901e3d2a64a7" + "signature": "0xa969744aa463b0294e265f1fa92f9c9ef277afeb7ed667017e0a914bc57382d94c52f4411a135094e52636b63942e86e184ce0dd10e22ec86abbabe23396063fa873ecfc0ee3e16a5535f6422cf3f134e4d2de39464f038dd9521bb9d9a1ec80" }, { "message": { - "validator_index": "1842518", - "from_bls_pubkey": "0xb00d5cb2ad0674c8b78c27ec23db002544bcf147430bdc9ad11061ac5db91371e6e45c71ca4b15191be86560b8b3c206", - "to_execution_address": "0x86257e3ee866939f5b4f4111490afc234d8e79d7" + "validator_index": "2419641", + "from_bls_pubkey": "0x98192fd09a845d194a35781b711d801c9ce08060445a81cdb38d45bfb82c776d0e9b6083eedc0a106c9c922ee3bc906c", + "to_execution_address": "0x2fda834311b58db49107ebef3efd6ab3f5f751f2" }, - "signature": "0x993a7f5baf6059c7bd5fd2f14057c16e65608794b56b74c418f6c0835ce2eff89ee6e5f5f6eb4603da9d44ee3fc2ae2f07605e56367056c0fe2793a45b7118f8adfd33b196278ac6ed99c527449394ddf4a6a1d9211a8d70923b4e4d919cbd02" + "signature": "0xa864cf37cc41e0ea0c8cd4ae1d6d0bb833ddc583b3e389808da50acd9a3c49c59a2d4b038446feece5a6083d251e45530622aa80cc6bb57d7df907a39e1fa40885ab29ce25f3788860dab9a97050a48079c20176d6bd7e11720790679ade7638" }, { "message": { - "validator_index": "2549646", - "from_bls_pubkey": "0x961bb1c8f3c77df690ea39a9589e1e0f3ba3e2ec8e3f842d6b1810c361a69bf54b6aec172be7f3242663f8d43dfaa8bc", - "to_execution_address": "0x8e7f6643312fea0c5c56efc860a9d1b414074dcc" + "validator_index": "1587773", + "from_bls_pubkey": "0xa5234d7dc8fe8544bcad85f8ca6548172425616038825239877450fa6144ba23923065a1c3d3a8fbd687ac593e11b4d9", + "to_execution_address": "0x551c7843514c4c3e7c8db946e50e944d01fe4f16" }, - "signature": "0x885b5febc60fe21d20b2da80b540f7b3c7fe2b3c95de0ae37d6f5582fa44a22cacbda12f50b594829febea6fd35fa0ca020eca21236c9d5bce90e41a6f824b60fe120743180d1a5da4b84a181f64c6333adf3cad9a862f1e31d556162563fb7a" + "signature": "0x92ddc8deeee37b1eeb83436e230c4dbfbda6a26fcd4b046c7556fba6391650f7824e0355adfbd38b0ee232030feca3780dcb2990998184ec505207f3d4123bdc38ea5a8de44474bbec65e619b8a853670fd3ae4a08a50ca1c3bd2c81739b92a1" }, { "message": { - "validator_index": "625901", - "from_bls_pubkey": "0x8b772ee4cbcc67f534f33102671346cc3d0ddecc1a81f0350f68dd3210681c9e4bf907b49211cbd390bfadc7f285214a", - "to_execution_address": "0xb5c15a4371c6a89646dcbd1f07bbfa4e210d4bf0" + "validator_index": "1203025", + "from_bls_pubkey": "0xaf01ad2d54129b76339febd98494d79dc8dbace659dbeb3aeae85f9a2a94b23da0170f08f5233cdb136991686441e54c", + "to_execution_address": "0x14673d43914005ef102bc2f829676150401c46ca" }, - "signature": "0x85cc5356a9646f0ffd512b7d2e7d3242c81303a415e61b490d28635896aef1f2db03ae8a1439908d03cc131515ef83f003dd7b36ce480c43f4495ffd339b2b9d1e5461309a02ce193202f27d216a4f0e13f7b47295f3e1a44c8f0e8ae8e1e5a8" + "signature": "0xa34f07f9c38b8cf4781d0d1bc1d204860500aaa70a1ec6b1ca9a73d3fdbaace7c56c6bd9edc5eaf5898324494060496c016d716d51dec591c1854e84470529bd98a6fecdd74d012c8d8b677f32bd2febf0677c238361bcaa39e32056dafcaf67" }, { "message": { - "validator_index": "241152", - "from_bls_pubkey": "0x8183f3f5071394e20f83599fe297dfda37f77a040362da8f8fe926a451eb9cfd917e953c51b81619f8e4925fa6177b49", - "to_execution_address": "0x10eadb43b24678ab331bde64d7f836af97ca6064" + "validator_index": "2435262", + "from_bls_pubkey": "0xb508746a00c15709b84343dbc90c7033f121615b7ac2ebbb356adc69bc7dfdf1cc1607b1f5e577476b02a89043b0a6fb", + "to_execution_address": "0xd786ed43d263dadc5352a8e25d5ef94784c163ae" }, - "signature": "0xa19b99131e621d31846245039e99d6540418acc08844a3996544cca2d9965f8a24cc49cf695bd78959a784e1b5646b480b88aec749a62ea934ed3001af50bb8babfb15bb9df1f3d57abd738f65de02b77398c82302f500218675cd96ee3b2357" + "signature": "0x92806dee8cfa7784e16b97ea6b32613fe6c41bbb7d0f03838a6dbebc90961bffb9f67ae8046ac1b3fc19e477d76e26ac0d5e613a0c87ff18649a50d75a8b09f8d72f0f056aa0078eb99c68f00b08535e242cd0db5639223f9c3adb71183bd0bb" }, { "message": { - "validator_index": "1473390", - "from_bls_pubkey": "0xa83cbdf40e5c4bdb4e9802d94d765c70150d9926521b0ec4d273e788b83a9f304694e75d2e381ce631b24121ffecc9d4", - "to_execution_address": "0x372cd043f2dd36351da1acbb7f0a6049a4d05e88" + "validator_index": "2050514", + "from_bls_pubkey": "0x802775e14fda679e4594ca8ccda68a706957fe82c10e66d258eafd21fe5b2877c226092004f82874fb4022d73b74eea6", + "to_execution_address": "0x96d1b2431158938de8efb094a1b6c64ac3df5962" }, - "signature": "0x998cb975f863e95fd53ee74c5beb85c19b8b3858773432a371e6a3f229f67b653165adf3bbaa6015dec12a1d13cc9d5c080915c55c921fb056fd32e9da643d96dcbe83ccd456b3072dce2610d7b96e69488468c83d26b7251a466571a5424351" + "signature": "0xa2695a1a43803793a6a1e80b15798147d8a63da5c8a6ee3e18dabd190255f48cbe36c33e3ffa372e11b19605cd2282a3136a2662cd3c8f9d3d0345ec1593b4241a0ee66c0d626da3db5cc6bd7d1119063922633c1c2987d69839af6ac37eb675" }, { "message": { - "validator_index": "1088641", - "from_bls_pubkey": "0xa7f8aff7b912b6363efb810f2b661643624ab914b034e78d72397ef84fa04862dee94c9b2f46b872fe852f197f558fce", - "to_execution_address": "0xf676954331d2efe5b23eb56dc3622d4ce2ee543c" + "validator_index": "126769", + "from_bls_pubkey": "0xa1b20c565a67fc79e0dc4d8a335d9d3c7cba0865cec80a8f7f49bf610e20ab39afac693fe60778de840444b3ead514a2", + "to_execution_address": "0xbc13a74351ef5117d2757feb48c8efe4cfe55786" }, - "signature": "0x94773ae9e3d605ba2612dbea934955e7af438154f7572136c97bc3f858144ab833aa7bf6caee2a2c4ad066d36b1d0c3501359ff577de486f81a5210258cf63ff45bb0cf91526eca949dfee984c6757a957f9c7ddfb8b599d3cfbec0b778e9396" + "signature": "0x9113b44632e0dac2168c83f2be8634d2eabe9b81ab5d426c31ffc119f3fc577c16edb82f50b13be7174eca9adbc2dc560f1ad4bd15a414e44a5ce7b330e8645f58cb50204f6e4ab4bd7c9315b355c97a5862e05f5140c61bd1a4de061855f0db" }, { "message": { - "validator_index": "2008914", - "from_bls_pubkey": "0xa6c59055cc0bed5baf1a815f59d9d1cbd7aba1a4fb8d83de7310ad85640524318110a6a16f5bc141a81c34e103d9b7be", - "to_execution_address": "0x7fdbcd4270dd970b44236c31de8ee788b75533a0" + "validator_index": "2586038", + "from_bls_pubkey": "0x83b8e297b2e5b17d8b30acc4586741cbe2f1f9de15b53add4e41cf23fd6f9034de02c5159eb4212e575a3255d681220b", + "to_execution_address": "0xdf80b0429057f4630e72700a013b4e8ad6642e7a" }, - "signature": "0xa28a524424e49283f416545acfa1dc063866bfe9892c60370705cd8133fa949d724421b1ffff5a757d573391ab2cd9fb043022aa8354e4e93c91d126cb40f9ca7f7be8e8293be5a97b0eeb79df9c051f90e4d97c9157efd9b64125cddfc257f3" + "signature": "0x8ac01bb60be2b4f4ae1847cdd5f95d3af16fd4cff3fa9d0da17d72f31a2cce4251e51907a63cb8ab9842a784cda7c40e0a93c536c8321a8abd889e3ed438d8653b77d0d06d3fc61f38b235f0e4c57c9dca562593216d94bfaf903d109eeb3e84" }, { "message": { - "validator_index": "1624165", - "from_bls_pubkey": "0x83190d18858cb148b28aa89911959562dca6653f220f8b4878a5d580958dbb3ca184d97880f7c2bf0fa970cd41b70dce", - "to_execution_address": "0x3e269342afd150bcd8c074e323e7b48bf5732954" + "validator_index": "662293", + "from_bls_pubkey": "0xa9701b9f205890357cd0b75c121c25306bd409e007ad97323af8b41aa535a8227f82fa8537f8e1e9a89a216a53aeeab9", + "to_execution_address": "0x05c3a442cfeeb2edf8f73e61a84c7724e26a2c9e" }, - "signature": "0xb469d5c6626f1c42e7e914ecaf79388360d2ad196f2edc1f7b6088422b4f32f43f36b12898bcccc46c5ed15285ff0cd503f0ba5f6def9b4c1e523e941f1de95263bcdb014637c359464eb2cb974e06faa164827b21ee15dd68b2375b7e76a700" + "signature": "0xa3779a97b60b64b43f1249ac6e49af7a02d87608ccbcca01b26cb226baf3d0a135b6d98d008f4417e714a1512ce07fbb18c6e491fa2e6cad5e1d9e29f56aedb856073cfa6f90cc9b21db6b3ea9cb35f3c9ec47ad48996650941b4b8d5e6355b7" }, { "message": { - "validator_index": "2700421", - "from_bls_pubkey": "0xb7ff61729743df75a8b0b7e5b95617b9aa407e2e6a30cd8101c6a4c851b2cc366cb80e68a19a23e19625a596fdd1ec61", - "to_execution_address": "0x64688742ef680f46c246433acaf8dd25027a2778" + "validator_index": "277544", + "from_bls_pubkey": "0xae86d94e3803aa062745028c91f9eaeb957af12e0d1e1c479c3ee78dfa76d792c8778507bbe0f1aded55e48d10b94a8f", + "to_execution_address": "0x61eb2543106f8202e5365fa6788ab38459284212" }, - "signature": "0xb29e4c2b22ba8da0947be521fd1710125a95d9465632c3d2b5cffafe6e7070f4a6bd71385760b2b1670add9981225a18060be73e5f486535919fd3577b7ed850b3108dfa0fcc9215cd9d526295616e09619e07977ac7208edc5a2af93835a18a" + "signature": "0x831796f518dd44cbddc77db8d223ab502edc7bab53c2795edb3879e4f79171f13e4b7d5c5f354e06314c6c1fec3988f703234fb99488ef541062ef7f8a89f77bd18b82f79db2328ec0cd6db498f5ab4412800e9e4a351fad3d609a192b0eae61" }, { "message": { - "validator_index": "2471654", - "from_bls_pubkey": "0xab0a4039f2f00ce09018af228a696b7b87c7bfc111e7782bf7a3ffb423c681c04fe335152668abc7d20b6e9a9bc4933d", - "to_execution_address": "0xc090084330e9de5aaf85637f9a361a8678373dec" + "validator_index": "1509782", + "from_bls_pubkey": "0x8c1cba560684965a1d17efcc10ac3e688808a44a655caef64fe19b0f11be06e324d48651b6d9663e33964737affaca25", + "to_execution_address": "0x872d1a435006418cd0bc2dfd1f9cdc1e652e4036" }, - "signature": "0x90f650befec00b055e261a38b4ea0bc65a0d71fd735b46f8387f565fb0d31494f90645c40dc07b0f3ee26d7807b82bd914d4d7c81b3ffeaf9a32730ab7cba7265dd09a0e0f94ccdf2ff3bc53d49fe99a488cf7238200ae12e6c59960e71d5877" + "signature": "0x8b8974bfbed37e66501f80a64e0d81d27723e76fb46afb5e94398a6b956254aabd7e9af026d996dee341f804951284140ba20654abb8af117f23f4afa0144a7ea57076a4a0fbc727d1f1111edf829a8cdca542799d24a5021c103ba2a23c75de" }, { "message": { - "validator_index": "547910", - "from_bls_pubkey": "0x83e4d3825bf069cd0b19ca5072eda2f7d141de02c9e65f9c0733c18252c1552cda074eb613e1f435a880262de2a4672f", - "to_execution_address": "0xe6d2fc4270809de49a0b32d641484320853d3b10" + "validator_index": "1125033", + "from_bls_pubkey": "0xa127dd51be074dce1f11b15a9040d935aae14a0b073a7ab906edc1327f477e8213d96f738690b3f650a479dac373cbed", + "to_execution_address": "0x4678df4290faf93c645a36af63f4a921a44c36ea" }, - "signature": "0xb9b292bb598db604142750cb641cc511a9081656efb8271132d7e0de30554dfed4b16e418100d9085951c1502d6ab657179da8804cb08f1c69b1210ce94bdf6a0b66976233a34a0acfb4b947cdc192cdbb8576a3453e50143e7afecc8cbd264e" + "signature": "0x8657c885c3361cd4a58769798bf4baa0424238c9a2c5b20b79b6079ca67198cfdbc407cb9e4799663bc54543f1a74df8044006e589cfb7b5914cf77fb175cfb959b29861d42c3da17eb66102ad8afc8f20fb5e7f52934c385018e3db3bed9181" }, { "message": { - "validator_index": "163161", - "from_bls_pubkey": "0x86c03ea323e3551ef39c8c4e5355c4d3a2cceea3c8acb3d947b39e245d2ffcab53b4479c670d8b268828fd4fee89eae7", - "to_execution_address": "0x08400642aee83f31d60723f5fabaa1c58bbc1104" + "validator_index": "2045306", + "from_bls_pubkey": "0xa67a1e9a2522bca1507faa25403c3ba020af65ffe839656e87f957438ceec07d5d8a91658e9fe6efe8703f1b5d24ffe3", + "to_execution_address": "0xcfdc1742cf05a262f63eed727f20645e78b3144e" }, - "signature": "0xb58eaaba3ba51d7098d65fbec3829ace78576a2276fd9c97c293aabdb634a2c50f52611f48088da5d4a5b5fa2c5f4c0513d8dd91c8534b50a7b8ae0072583612610ada0c81a261641c66ac542428cedf20f1b954ad03505fc058b40ce0bf4182" + "signature": "0x8dc84218c00f49ed40442f962e7afeb1a8c2ef5f4ed0aa8eda187ace69d22cd62b759e44754a66edf611383434b0d7bb18ca3eace8402fdeaeb7a5ee16639ac7133defc018719cfdf5a771449cab814076545f41f6662202d42deda5857c93f2" }, { "message": { - "validator_index": "1083434", - "from_bls_pubkey": "0xb54bda7a570f90c2d38e836a3a256a6a2230a6384a29af7dacac3eff1a981d3f50918e2b546b3d78e72a545870b5ec9e", - "to_execution_address": "0x2f82fa41ee7ffebac08df14ba1ccca5f98c20f28" + "validator_index": "1660558", + "from_bls_pubkey": "0xa2cd1e8619ea096ad3130c8f2dfa725c44cc8aa06de4f186d87ecaa92251bee9bc08ae465d6ea48b145a4f70f0729e42", + "to_execution_address": "0x8e27dd410efa5a138adcf524c3783161b7d10a02" }, - "signature": "0xb851b39a32955a7f05acd7707c6859df4ee2b1472996d6a805a61e14415db550a92a7eaaff14a67e858a9d3633306efb12a62ed84f76387a84deefe726afcf2fb744f616f67d144411689343e6e0dea7a88b57449b2cdecb43cf0b5a80887550" + "signature": "0x97f8c4c02c4241858c09d9f2926670619f01a2e88fe50b3f3456c7db24c1c470a30eb58790400f29abdb9a9db63e075315d7e7b359848e76d4c637247b6a2ae492bb237e4aad36764ebbc93a0836cc4962e51681e15f00dfa1429311b1140e4d" }, { "message": { - "validator_index": "698685", - "from_bls_pubkey": "0xaa3588a5cb0b5d8eadd316046b661044c97559a4350464e338456c5b728880b4750b94af5fcaf478e3bbc86ac3e12d0b", - "to_execution_address": "0xeeccbf412e74b76b542bfafde5249862d6e005dc" + "validator_index": "2736813", + "from_bls_pubkey": "0x96057456506ff35b37222395a6cf87fec4386244d7ee0ecadd11c96e8f7975a312b6826bd69e069eed2e88fbae21439d", + "to_execution_address": "0xb469d1414e91199d7562c47b6a8a5afbc3d70826" }, - "signature": "0xb99cdab802f2f2683fabc52c8ea095386730c43694a9a5f7a42033e6dea53f4896092b207f56b1402c5c69937a3e2fb41958e001895bb43c2ee1e360da601e1ac56ffa8bd5371b1dcfe85518f297f94c02cd4981a5961201d2c2fb4d2a15c888" + "signature": "0x8734759600f9bdcc5a05f0c70f90062f0d0056ed8af19e4777fe4d5b67267fb33d2617d4630fd75822d0f1b60c70650a17fe6d16ec4fe2d4fdd2fd3433c357470dd8276a069a5402372a83091f40217805da560122e3d9ba5a98034b21191439" }, { "message": { - "validator_index": "1930923", - "from_bls_pubkey": "0xa55017fe14158ad9caf1d11f971b71b1941799466d063c6c77d7e41e20d5b74fd7fbf969243f3f507f8c04a5f76c3722", - "to_execution_address": "0xb1ec6f426f978c599752e0e7181c305a1b8623c0" + "validator_index": "2508047", + "from_bls_pubkey": "0xa22369476f4df72eaf9b15045c8986378cfe5dc68d31bffe0ba6095277b0e3320eefdff2756b96a81b49486a6f82d75f", + "to_execution_address": "0x109252428f11e9b162a1e4c03bc8965b3a951e9a" }, - "signature": "0x917311e1a5f7a689ceee1af61f06519a3e4c6d68a4af6f4d24da0f57a2246c963c964d0e576607222856258c0e34b0b1014b68dfe481454ceaf521bc6f87c15e6a21f6db1c303b2042d5857ad4506f00dcfdfc5e65bbaf1b4ee9fe7ddf7b738e" + "signature": "0x81e23861cdfd31d1421bef1f77bbf68ca5579fd9d2790637fb395458e46477f9e53d0426e0b3d15ad7854fcd9206007e0ab75fe079579775fe8420250a31c2214c316f398e1bc319aa0c3130fa6d80902d7f68954aa3a7c663569aaa0d9731ca" } ], "blob_kzg_commitments": [ - "0xea4f5e424f7a2a28771b166a93b66dc12d8f207683e22f77941d78d8741740768f79e18451ce86d434d576fdbaf45f2f", "0xfd705842efc5096d6c5e7d95673f828e34921f0839ab5831c29ebba04e78f7002799a7e34b2f67c27bedb9a981bcc315", - "0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695", - "0x70373542af8b450a2cf0e8995d74fd5c59a419747f5f4d8ed5a550526cbd4341b4564c1c2a75a955277f4cb32c6b1a7c", - "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", - "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af" + "0x5d163b420f4066c536ad816e89ebe88f53a11ae2c99624d4a7240d8a925c8cb61d3786bd2f14c967df66090765a3b695" ] } } diff --git a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockELECTRA.json b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockELECTRA.json index 4f343e17538..3224d4c64ab 100644 --- a/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockELECTRA.json +++ b/validator/remote/src/integration-test/resources/responses/produce_block_responses/newBlindedBlockELECTRA.json @@ -1,8 +1,8 @@ { "version": "electra", "execution_payload_blinded": true, - "execution_payload_value": "60987255743756591490802410911397502078420277537860810465656654307850393571949", - "consensus_block_value": "35030629749913259188633839195688455063657233454883772579826395064332861975757", + "execution_payload_value": "52335047088093692175629908587741169571103578927521980677976976500308305025762", + "consensus_block_value": "60987255743756591490802410911397502078420277537860810465656654307850393571949", "data": { "slot": "1", "proposer_index": "4666673844721362956", @@ -44,347 +44,345 @@ { "attestation_1": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4580744678799082634", - "index": "4579092195582398506", - "beacon_block_root": "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c", + "slot": "4579092195582398506", + "index": "4584049649527418186", + "beacon_block_root": "0xf1f1973fea38b5b560c1e4ed9a6222b021fda877b2c07674362c6080acdeec06", "source": { - "epoch": "533461240", - "root": "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + "epoch": "538655350", + "root": "0x00963040ab8a07b778f467851c7d0cdc7faec2a32d5e528c900d85297e084df0" }, "target": { - "epoch": "538462976", - "root": "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + "epoch": "539040099", + "root": "0xda533c406bf3482d8e6e992e756be34172a8c47fc1cc0018350bfe98c946deda" } }, - "signature": "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + "signature": "0x8bfc6e1a1c76bdafb4d491ce02a35effde6d7362eb32c03f119c47c12fb2b49e7656bbd4702ba02560fd7fe117f2c74e02142ce46176ebf269d5b34a48a65525e35db6cc446965e86e22e9d8adf5abe92315690b6de5f4591769487539fed52a" }, "attestation_2": { "attesting_indices": [ - "4585702132744102314", "4590659586689121994", - "4589007099177470570" + "4589007099177470570", + "4580744678799082634" ], "data": { - "slot": "4620404293179370891", - "index": "4618751809962686763", - "beacon_block_root": "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b", + "slot": "4618751809962686763", + "index": "4623709263907706443", + "beacon_block_root": "0x27d82440eb21c640637a36dcc38e35768bb4c0c79aefa300ec0f0cba32cabb05", "source": { - "epoch": "538078227", - "root": "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + "epoch": "537116355", + "root": "0x999e0140abe701de220ca2e0b9c3b044b1c6ba33e0a3985dfe16a16b510f0846" }, "target": { - "epoch": "536923980", - "root": "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + "epoch": "537501104", + "root": "0x735c0d406b5043543786d38912b287aaa4c0bc0f731247e9a3141adb9c4d9930" } }, - "signature": "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + "signature": "0xb2213ef588828a7c18cdc781d0ed2516fd3e11de625f191aae7ae4be8b1ad2cc217728c65a500aedea276d345f09fd3212b009568a6549f5f40ead6d7ec4d0f3f329c00a1b4bca59068ee0555c94aec91bebc18365ca0b2d6692557b4b0c4267" } } ], "attestations": [ { - "aggregation_bits": "0x46e4e5ccf2f1f586175a551fbef71fe367c10ae7f627b52680c69658efc3b9da2f03cedf49e4513374e10642a1ed264963dc671c03d571d45f02ec63fba7c7cb5897c09c76e4c5236f21c008302634d96493aae59b7960506c097817d713613d4b3e735f49272d0db6c25864be1413035ae25485ce5cb268bd0ec7a76871cc5cc0b3a892d31613f8f58fbcc1c4848be416ec389ac6b0c1e25ee635a1da4e2aeb872b99856e51958cbf99b64db166c7de9cc849fc9ca7e56dda4a7b586db617c6c55fcd252d40b15b9fbdd843a50d56cbd65f7ecffef1b632b74275254a3ee3487a305314041fa888fb642ab9d17e38e5eb338144f383c4ef9cd53141a6c9153073e6eac5b3ee68c4ee8d5fdd8ee67610b22f97d089e41dc49d9f785e73efa3857ec4a88c3442793ca9f34801dbf14b7ee1ee7353917dba5df347677fd61a605a6d33584b2905757858105cab13def02e87238a730011e00462524483b9264aa431c4c1968227eac3a093938f2c2813dbed485b7f15fb35dc8d6011392640a96704be681950efb9d7c9298ec3c0a98fe6b77fb1145170355bb6bbb93b9367bdfdebbee9a9d3140aba891abd2c3b2166f70a50d57ba5eaec23e91be9ebd4082e10af3a72db17dc2f9bb2e879014197d64ef7defccc36539040b25cb351673b989a6541b470cf96cf5a6f0b5f7d7c4e8527734a21564f319eba877c1cef5463a850801d769f52580deb0449d803382667763c5c34fbba1c64828d3342167617364d3c5fb08b434720700fd4cfd37186c5ed888ed0246313f49b61ebdd0d26915199aeb1d568c022748b29a70989504cad6ca345003e9b278b2a7cd8442ae15a42557bba3c2de4c0dc3b99d3e131e613f18813e483e96c23586782d0274a528e8eec8883682e9ba995ad66e59e671e6eeeb7a9967f32d0c785b5a3ebef77c54f52ff382039e33d50043805600345602fc6cb1999cc809dc80d0eed9a7bda8bba56c57d39a58db048046d0d97ee7bcdc5dd53cb0dd3f920753ed7533d206f00e2ffe5a8f4121308988e9726191b69bbed0f4e330eee944586d794bfc4b5f0c29a3feb11a581d7aed2832a7f2919a104ea4134dd7bcaf9968e5b688b83dfb5668f0780448424f16f1b7d52247c9a28dbbee1d96bd4e627819a5c581caad0d55e7b21e2532700a5b19d5e72a615b5f7baed28c6bf3d11f423aedc9c73bd4a9cefdbaf9ced98bcf551038f80d3214ea63cc404bc0754c5fcc7ff5c1a778bd0bcb9b280fa46694c4eb49b78452ec49348a6bdcf8baf8e8026b56b53b39e96bf2a098fa9ab0eb62f8e8aa0a2e5c3b97d4ff6b01a60520ef782aa0e3995d8eea4b4020deaad2511bae432cfde901b781347467f3546ac241507d6b08f327fe02835a0604a22cd64431ad5c1d9f0750662ec29c3b3b0dd8b9cb5f089492f2ac7ca282874d0ad01", + "aggregation_bits": "0x907c35a14e5afee2fffc1703230dbe923ea49766c5af5277f432d84b3c2323d8a5a8dc131a8cbb3c69aad1172537e0826b0f4ee1639f650b91bbeab0eaf337f9472742d6f8443c1eb7c62f5f876f5f154689fb6548800c39b12a8d1f2585230fc372dfe5bc46a4c4358fb1ebb547796df094800159f2c9d982d61666d8a188e3b665900ce8f564188f269b5265d345893085d41f43a030337dedcafbef1245fb43c6c44b9891c2ff5f157069435c52c7fc457d5ec218f5d2ca50e69cae88c863b56e53213d92d7f6357a56344a4c2b80b58249b494d992f3c78d7440fe6b69d32ff3c1c29dbea8d0aebc1347743dac65bb66529f27dcf476baa3774d1e5c69ddb8d7fcc3929148c9c5995e8b893997b8d9362a715543e06361e29e0c194d3b2d59319837ab6dbd209d099fa04236c25d177a02c92c0a3c5135f246bf9fd884203bc47005fd46b235bf0b462dc754e99647a2302e0c032308b592b1f7453084e93eff658eb16115cf4d24f229ed8b13e073e1233b0bf4eb9ba69438b310735b100f5c49673995ae6958b9382a2070db0cf44b200ce7103375f72fa72c5a51a38760f68db7a789f68fa7bfb672ec0678c7c352dc9c5c1805fabb2b2e1dd89e2e748bba9f11681e33321784b89e8a3beb8600e4ccb4d72a05d067a96a9c39e5b10f379b95649134f15a22e6f181d1e44b46a122a8b375d43dc2f41517fbf2922ed696da5cc61c267e64317d467ed0d0464f06d2d82c110134401f612203c6f33984c615224478b3a1774ccf7c8b1cf3ef697296412c020f5a695f1e04fd7c963df5abec644f339e043bfc42d90ab6236cd0e9a4f7307063b65d447aee56bb116a0197ed4a9052ed97f11e5b989311b6d224ec284f94e02c864cdab368d6e00aae2405364ae9087f32f6ea4a6b80e83fe329db9c4c5eaefc0190847c1ad6087dced29d8ec7982cda88afe31468c8df32062746a2a07e8b537a93c3bfb5acfb111310516ecde7e0ccd7bb78fdc036de4ff5391a596df325e3d0a5ddab556052bab500dae358d641874703557f3f480596b0af14c56aab3e5ee6cf8f4c831d2dcf61f6e86a53eae177c3d917052448ca02e4f287d0f15ada519f3780d118377825c98f0ad02a05dafbda86c240aca3dde537dd9118a0baaef8a2d86a8c1dbdbb8f9ad3f034c592622a9341ce3ffae459d1bae3cab2a9dcf8f3bae9d707b01bdc8e0b3d7887c82e9d39312f2e5ef95017908b0fd0976b0216b1af40d5ad29e40271492e3d2befa613b2cbc0965ceb84c76ce4c8c26f231e5276a628dc5d641e0661b794bcc6b7669438a4155375913694480b2ebdb8b10cf35167e059e00cf353e11dbc7ed643cc8ea70edc14bf61d9c63c8b697fbde0b7af9fa92ebf0223662fca9a14bb4c614ed36e45ebd98f81725a11da173ff839ea8305dde22150214a80e4737a01", "data": { - "slot": "4610489389584298827", - "index": "4608836906367614699", - "beacon_block_root": "0x82a81c3f096d065c7e3f5d7df79bd182a53c9471a737cfb9f7c4e9ed95d0f767", + "slot": "4608836906367614699", + "index": "4547695001580498185", + "beacon_block_root": "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2", "source": { - "epoch": "529229002", - "root": "0x5c66283fc9d547d293b98e264f8aa8e89836964d3ba67d459cc2625de10e8952" + "epoch": "529806126", + "root": "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" }, "target": { - "epoch": "529613751", - "root": "0xcf2c053f899b836f534bfa2a45bf23b7be4890b9815a72a2aec9f70eff53d592" + "epoch": "528651879", + "root": "0xe24dff3e29e762b4488e615619483884c44b8f4b37239b5cdc4a3bd7d9b48c1d" } }, - "signature": "0x90b1100958899f808951acd4cc1d72be010f4b43fdf69587719b141b72d8410d144cac042cec8515ea74c9cbe5150c7e10b02be9ddd07421143b08f67c911f57c4a1544bc7f6a984df017e189f72aff167227b4238b50340311483aa9c843d43", - "committee_bits": "0x06" + "signature": "0x913ce44a60f20df0261b53d8031d13f3a8d51cf53ba5eb65735ae960623c48acd56286b31ecd74cdaf51f66b2b2331fa0e907e8cb9d4dde513ca29cc34ee9925301bb541055a8daef33bb3e1fb8442a4a033f93f86933bc35fd2ce34a569a6ef", + "committee_bits": "0x0c" }, { - "aggregation_bits": "0xae44a59e9b57b7141da75dba9d385b795ba84317f41948621bf98a34f92168838b72a9678bc58de000cf466104613975fb1490c591f0ee9055cce4aaa2ff0eb5a26c8b9e20b6a386d9e9f7964a3ebb957e3c6b0124271c279496235101a29fbf18ac7be6749a8b1f230bb5131e97b28c06683ca9a6cb6129b2a25b4f539f7f5e41cc1997c5b4a57d51dbce5ad4ab746a403e5270c785b76d47475c0ee6c309e33dad08193c3f8e40e9414096276bfb5708c84359dd51eb54ca67dd7a6eb5645801fb83811b4c11eb5b240e9d0bc0847ae7abfa235c7d6cc5f7eca53bce62b1b987b7c11ef54592399882d7983eb3c6a58ff636f52b4007afbc0d66bfe9d9276a9dd82e3d140ace10f0d9fbbbb257b33126d41e134bcec24dbc72eab646b7cc3c8a5285b8f35f7f848cfb4365a03792eea740358a4fa1464d6363e57bf7b2241b4483a54ad00a1bb31ec06737561344567d586d7eb07783bfbd8d8f29f6395ee94fa7abc229a082c6e58023e0b2671db718d139b131c99572f0c887195d0821637e8db0af6fae7705f9efa99c4aa04394475dadb3dcf7bb9c2fe17856dcddf82e3708c05742bae2ef62981407ddfe60cd47956085bcb00a4df4bf2a00dab9a69ed4ad624a256f6dc9b1f90ad239a6e675fa87d89d9a81ae242d8022d4641239ddcd818aeca01789b51506ff72ad9906493a3f8870898c90f4dbdbebc0210fe08b4aa9d54ff28954d63dcf2a89034d0caadc369a9b7a6f0b37a1b3876665f8756ec8dd2d6b491a1e1ade3ee73fc5ac666512df3716e675035aa9cfc0db92245cf55641c453628f677f5353779b82f8743b8504af56e7eab7497d5f8b0483219463a252a41a826cb02fae335041828bbb6099144de695c13f1c342fcba744676c35f126b386493eb1544e11fe8c8d24898736504eee84450feaa92163d252b30f8af521db6783efdb22f26824464f45931f8a2b2736fa786d38c627d70ba0d16e2e1585911969005885f7042c4182f6fcf239dadf10aa5da8cdec456f49ae0de82e0270b904b1f38a4c27672a964367f2ea34379a4cbae08be4a2a101cc08b2e3356a7dba201e7ec9e09cae218d42081717b8df57c55b2b4ab5ded30354c63b4042508c25f0f0193f7e118be3a948320dfb1efa2d39820314cfccf4968ae1a97a005edabcfff0eccca671ceec03439cffb0097c6811d52dcfe3a4e9ae4b6011333ebb07ede9465e8c927426b61323d48605380c8e9c464abc519ecd0fbcc745ef63dcf0fdf3d47e7d32210dc084cf7e139beefd498b9f2dd1fccc5fd78cd63b49e5823b9369e55c0f808211d3e2b029061e6903c9b83a708bebd39d22d488587fd59de1e7ec2f6a44f10be9c7646bdc7e5aad8c9e10a3eb0f1392f0db80206b472dc3cab549882f2107785493da3c4bfbe82e433289a67f63dbf6edcb869cab7b0101", + "aggregation_bits": "0x5af41da977c357436d6d5cb611972dd4dfe8f24fd986cc3f62b8b2cd6df1ec5d9fffb58969a144cf75aa90897ecee335edb4c087e9cf844a5ba6e2acffdbf07aca6115072cf6fd1e908678cac3bcf3c62d52094d87dcbe66db7b6dc0ef11c7f20a749a5a9cea6b85febb7bab94425c81a2ed6d53d42193e9dcfb3d415dc53b6f872f5aadb7d10201f85dde8eacbc9e87b72f9276e6c0dd3a244a3676c184eb46a216ccba47432d0215454f42d2777ba28c79e38f492e6d46d1b065553f901ed99d7375c5ded4343dfe42a0c6b83cdab8e223ad328b39f46d8a06e1ddfc6a3ce6cfba7a8091749b4de6a9308bf9b3a3c418702fa32bbda084033b12c09924304b14b96ec1369061fb13a3aa0f2233b2524c86f0ecaa7f282aa0ae59437049b8032f60be842d4e0a033509f61cfb418da0af682a173cb8c1cfbc4876d1eb14ab9a440068bcf38a31f4a9021a7129ca37b456c95f016272a17360123acabba0f54923fd5d1bef78786c92215fbdf2146838e8f752a20da1b2472d7ef6d80cbf0455253c9135ab6906022beff98c7d2f98c6e64b5b2fa0dcc78e46b76405edde55eae1e077e4fff69b5a892e10ed73d4767aee874d2d3e0c3fa226f35fa7ce21cd0480b839534220b3cdb7dca9d7dc4f3a3762f82e7bb54a57c2fbea1063637e01c5242b1e0bf51473233ca9bff61513432a56e34ae6ce73bd6225f3847815676c06bde9f686abde54e8930700f645dcc9ca8af8607bc0d1c490d281449bcf65fa22374631272eb06bc53e63c06082c648a356f3bfc450cd3636983d04903a36680c965f2af41323729233480b6f8e7640dc4d0a3c4cf619b86dcdc62410c3400c2004a2f157338766e3d2fe039e733042f3aea833abaafb5ef7dc4c1ed72ec4881b7c7c178bcfeade55329e93ac81842e6758136d73335774d66ff8c925f77e1d4b7a09ee44c6e30d506cf487c747ac10b92528e85f5702dac422013541228c6e0099e1df1e7018dcee8f3d36d5fa51394c95d1a18f51c6db2581a3f71cf21882713ac1c5cd58db94168db50c2017c2c8c81071d6cf68a1d0458b4965908d1fb6c4710c50b74b3cef02e77919acc9029d9f9b866e2a90dcab36cbbe84fd9e4b5b9036d9baba000eef655ffe64b9af0e79b28657fefdc30a107f896b81d64b92f01b71f3ccfc4f8cfcad286ac1e93f52d08b5c9b00b0853b64b4f2591cd55042ac5635ebd811f4934ec05a3ff82a80b8029779d09f1d6c3249037381d16363107158a53548d75a80fab67a4f7374855feb3ee3e8c7109afc0d58a9a5309a601ae0435dac5bf21f0d38d7c811dcc413781e7702f0580bfc9d4dd18639bacf84c7a2d197341bd53ddb1e7fe0ec44bba8c45a4ae2dfa564414fd91b436919f251619df1b0eb2899ce45720e7f542b437b902bbbfcdf1e778af073d08fd2e6504c9b9c8501", "data": { - "slot": "4532822644040406441", - "index": "4537780097985426121", - "beacon_block_root": "0x0890f33e697e213e331430adc059611ed0518d6fa4b4ecd0384dc2678e76fb32", + "slot": "4537780097985426121", + "index": "4536127614768741993", + "beacon_block_root": "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8", "source": { - "epoch": "527112883", - "root": "0x7a56d03e29445ddbf2a59bb1b68edcecf66387dbea68e12d4a545719acbb4773" + "epoch": "526920509", + "root": "0x41f3e13e4961bf0c12dd652f3bf49e85e35a8a25c70e67ffc1d08cc01d9921d3" }, "target": { - "epoch": "527497632", - "root": "0x5414dc3ee9ac9e510720cd5a0e7db352e95d89b77dd78fb9ef51d088f8f9d85d" + "epoch": "527305258", + "root": "0x51977a3f0ab3110e2a10e9c6bd0e89b1410ca45142ac42171bb2b169efc281bc" } }, - "signature": "0xa3f0d1902ab93bc710c2af70da7699b79480ee062fc8add2cc1c6ddce56d54706ef91f581ec0f94cee95fc4be146005f174e2e77733d71ef59e53a12eb852e09e4334af2c27120e506ebab9c04e2b2f99045d40bd1372618173cf6df4ad21f86", - "committee_bits": "0x04" + "signature": "0xa17225b5e5319618e77f5b93350430acfadd8ae12a279f1a4176cc7ad1de7ecfc8670988519713fbac8f702cca29bddb14ff1463dae3abb53ddb0c025cd69c8cfb0f5298ab241c06ddb840c7a260f3dbd37120826b13b17e22d086148ebdbab1", + "committee_bits": "0x02" }, { - "aggregation_bits": "0x5e5bec25a8ae1bdc92be30331295d37ef3cd2cc2b56058533c098b66e51d9e46f2a9ca59af973f749571c46cdd1dfa1900034baa045a653dcdafdb0e087d9a0a0a8f85ce726a3b9138da2295595aa120d81d7986cdfd6288de19e3a156a514d3f5eeecf8bbc703184f67881030c0e95519dfbc39acc9efe5e0fcd959fc03ea47d27e79a04fc9c6439fc54cb0734308f259f64b7bf2a8cb5afc50229eb680f9d4f2ebdb3e649525bee2786092001c19e9d696e71acc0cc95908715543995b35d0c16c33a72c657e8bcf3de225699fa11f833ec9c09cc94bc7377968e72dda0e7038ae047a07858343ed8ea61b3f361f20f8fc888dc33182e74590697519572c135d4351e49ace3fa84c97b10f7d137e79952c7f744bd2c19b2b8c4552c9db4d0ca7a65617ef015c4b4e9f2c4780a12c72fd4c6c7ddedf9e7e60987b02f824bd3df9f42a07f3539eb8153e1c583b4b13b5f8227633bc8aeec969da5317a31cbcb61f675c3c9f123a9c781320704c93eaf908f318ede5bf9b4368f8479a18eb886e1ebb804e5d2afdf8f75fdfb242c3a646417095dd302f984b2ac31aeafe6412f37bea6d2b931ad0e816a0e4be6f2b902c30fd70851d7deecefbc6d5bb070414230ba0a5e4e835095234a9c16c908769459837ddb92ab89852978f5b64e9c9d992cfba13b39a543aaee050b951e26f4cacf7441804b7c2eab4d56497e324d763d1e5f6eb5309880dc4b85d63780283f76736d984ed76db736f0dcf5f88f865ac46ed798b28831ad2d6c8190bb2558b06859f81f09fed1a1c322a66475a0e28bd4aaae6b171877554304f87188371df5e2402336fde3de5e1517dcdb7af29347682572df10f8ae6f034a55fabb71f7a1ab702b2f45675149de2a6661d5803862cf6e92fbb7dbf5874ce161c0fb8291e777744bac25970b0fe57b00e9c1478faa55f4d6b28d0b2fd4a7127fe7f85952fd0b000e613ff188d38c86072d38994f8c9a7498917fbf3580c3ab182edff6fb17ed1135a78cd457d92ea698bf3376a8bafaf3d12fcef2a3a016211cc8005e1f20a54bf6ead0262d90700fa4665550b9edec910490ff369f6b95c9f6ec53c11d04085ff7b4a0bee6ef32c3cba041b8151280425b97496a48c2f1b814bc72f53a2a817cb5b12d39fa0aa737c168f4b5359c8a0fdc7ce6c41170eac31913c44dfe41cbd09b20f8c8d320dd6df16878dbd195d6f1fa0517d1ece3cb43e8f4af47b76a2eebf73ccedb3383cf57751fb38241f6478e0ed1bdd82a379a115881d2b0e75a43de7f68eb8f75dd8554f2dfa5b41628d22613d342fe5dbab07cc79ee5ced54a34611edb67ff19ba46ab55c7601586bbc0c0b35518f9f0cdbdcea789a17d1a85e21ffdb570c2f4ae5d8266787c91b3a5c13ac902b7faf0dcd4cb3f992ce8d4ade5518ae454f41cb3b2c408ef385dfae4dd101", + "aggregation_bits": "0xf8d3f62925333e71c92b5989e48786f9ea8582ce5679c63ca0dae6a3948750814066f18bdb3cc2fded5d81f2ed6c784e8c2e8c42fa6b0c3d1670b4069c78cd8594c1547facc8fdb19696b11475dc3dd1c7499aea330b9953f0ccc4fd30f3de2c71ea6c42d470865d80771c74e3110239efcf4108a58bb05efef3d73a2363dfa582352640000c12f848be2c6d52be43d4fa5cab16a2d0145bb687d29ec894d64b389bd2fc97a558570aa151b89194980ea7b2684b935b51e49b71f6cd0641fdb62abb914bfa03b7502414b5c792be5472d6be3c130e030f194fd234650e4f1f3f1ee6c722096fa58c3091e5119eebba839baab03347552015fe40ec788f2b52815cac78de375b46ce120ce3eab28e05810094a1a8b461829a28c89c55abd7e8a0d0a42c23e127da6bff2b17fb7bf6c7cf4c4d5cb2dfe9030c3d2b01dd8cfbc0a387f8309c9ca604eb42aa8105a78199bec145010ec3e8e7b7948a10105c1885561045a3c4449b516d2734d8764320e3670187797901ee459ba0c22bf44cb7975134eb59de969155812ca98fbd1a37ed645720a1fa76f565291b3bdde819dbc89fc2e7376b8945ff35bc69dee5e2f99d9568dccce8933b85f8ff52ee4134ff55d319814b6c4b9a89fd9471fd16e4f90cf6ebb3db3051cd0a08021eb8bf3b56698876d79ed5af7054d75a0e3affc78f84e041dad2045805d90764e34244a32620a2cec1c7983f541e1c7eef01f57f8dd4ce9efbb685910b0bb79cafb313cd33bbf03eafb006911d75e1da95c6a84b34ad6f2af08a27bfd27af4b355161362a3e9735175eed49de10158098dc86767aa7e64b77a9dc2b597ff61131d32acd2471af3140229c8b80831be7ff99724684ed7a348f28e55e9ab05cf80a96779c510ce6ed83da51d98f4baede14ab484100f343e5575e94765738b54768ed2e723cdfed7bec02d4eec688946a82bd59a6d21f7e52eb81edcecd680e217ae57ec734138832305149e67992faf46c0835d4befa0b29c48a2a651f289aa3f32417adcfdff9ac79e272abbe61321e11a3f28d6f34c929b5990c3543573bc8d4f8c28b9d350fe2b3a8490c3e5c66849baaee592d4adc83330b17ea4494aff7af5b793c94df8fd58b4ce2012d08a60146d7f7904d1607c989b791650cf34d91b4710a9a953a628098c96026eb949e0778407d0bb2d13f1162d4d99f8db17cfec40ff447434ba34dadc4f4172e1c5490afc529acf3c5fb2965836307bb0db66c1f50a6e8d6dfc874f7391f6dab98d37fb1380e3cec43a338f523b3e7337730fbad50f1dc399e6f61c47b93f65ff7d841308b2b82b2d72b744761e3c68202699e2848abd5b5e598ae8d0e8dc78418f5741239d79a62389e6a61802fe83998583ee089555cc1207b61b26dddcb2fdff3912a6d85ed4671bc71fef7e1260b8e11aae5c343796d5f64f01", "data": { - "slot": "4567524808770642314", - "index": "4565872325553958186", - "beacon_block_root": "0x77d96e3f4a4ad0971596b71d6420b24b4d12a275af3d948b77b438faa484f0d1", + "slot": "4565872325553958186", + "index": "4570829775204010570", + "beacon_block_root": "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c", "source": { - "epoch": "531922245", - "root": "0xe99f4b3f0a100c35d42723225a552d1a73249ce1f5f188e889bbcdabc2c93c12" + "epoch": "530960372", + "root": "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" }, "target": { - "epoch": "530767998", - "root": "0xc35d573fca784dabeaa154cbb2430480661e9ebd886037742eb9461b0e08cefc" + "epoch": "531345121", + "root": "0xd67e513f6ac42cf0dfe4bbf686cc184d6c219d4f3e29602e5b3a8ae3e8688587" } }, - "signature": "0xaa0f4b876c4fc52ca19c4905d49e329a88f907c3a07bb22f61c50e8e4f577ef468f0d4a1c3b0ec0123646b5f040d2c910380e5955c2e42fdfdc087ac66ef6097e607575c0db6529df1b1a0dc786e63f5268463672fcf0dd4aac7c9cf3cc98a43", - "committee_bits": "0x04" + "signature": "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e", + "committee_bits": "0x06" } ], "deposits": [ { "proof": [ - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7", - "0x49452e3f298a688d9e7627fb7c01941b923397bb84dd548b6e411f9506aed1c7" + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27", + "0x10e23f3f49a7cabebfadf178016756b47f2a9a056183da5ce5bd543c778bab27" ], "data": { - "pubkey": "0x83919971606b0afef79e35e8a49c53b213230dcdb6d04f4fd65a951060a052bd2bafa867b1f9b0258a30cda8db072831", - "withdrawal_credentials": "0x23033a3fe9f2a903b4f058a4d4ef6a81852d9997184c0317133f980452ec62b2", + "pubkey": "0xa56023832292eec3040299a0164c844769e854beba275c44e4960ab2da7ee11db36674e1e2fa2615bc5e247a2759a472", + "withdrawal_credentials": "0xe5ca603e08e1eff7259e45ea6bb662256d9d74b1724ee8feb0ea59f6e2ebe3be", "amount": "32000000000", - "signature": "0x8255bf5ae36f515a0a420c34ff22270470d833dab2e162c3358350a97cca7917c39308840cfa227d3e33a3d0bdf2fc721999e3543cb7caf16a36fb703c70cff5d227ab484c65d44542e7c7d6e4c9d77578b7ac01ebd8bfee5cb1c25c3f09fef0" + "signature": "0xa9900942897c434e743c2b0210ec3266920ec6a624ed13b3637c640c7f79ba57a240a7e6a48cf587f71b9007616972821680ff0ca62c4cd47d50145bac76df28d9fbf3f56c98a5e8bd61b8cb41bdc02e3179ea961c2949c0803c108425dfa29d" } } ], "voluntary_exits": [ { "message": { - "epoch": "4493163029660118184", - "validator_index": "4494815512876802312" + "epoch": "4498120483605137864", + "validator_index": "4493163029660118184" }, - "signature": "0xa774e8ae3c67080cc333af2d9cedac9848978d30cea81cd86bd757448d8af577d85402cb167f8c2da650ab150772ef5805fb0897209b1acd7b068eba2dadabb0b5a2c06e97033f51a7c081da085a03b2da1e09e0962c04f0bafc181a2e60cf17" + "signature": "0x86e947b46923b26125a7dab3240481ddc1b910c1e6393b90df6e2de3809b8b35e450dc8264ecedd8f6bfc736e7114d841428b2469441d2d1d501015eb99e0d7090f11a1185b566dc42f94b79d0a08b22718a39b57e912a304419361108434ec8" } ], "sync_aggregate": { "sync_committee_bits": "0x01000000", - "sync_committee_signature": "0xb69f21ad4db40d272bdb1d76720a978f61cf1aaa4ae12b7a62f209dd007382d9c54e9c58311e99d688ecbe1336c348d0099242b06125d60c8f3edd2b26fd4056fdc67e6d46fd031f09f6c24432f601ba4564635c240730215c13d8f2b9446506" + "sync_committee_signature": "0xb2c1728d5efb4c0577aff84d84d5b0b2a89c22e1a97f2fb468442a8c2f84eb0912077b32ddd66ac5ce05168ab26168e40ddb8dadbed42b229c34e78cc757421908ab6159082952a43133f5333ad2f8382930bead6ab4f0e91c95ed9c66f634f1" }, "execution_payload_header": { - "parent_hash": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", - "fee_recipient": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c41", - "state_root": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3dc5c578a4c75b9008f53569f", - "receipts_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", - "logs_bloom": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789becff586635f2b0490ffe6c88e34ec1313a24e17b06942fb172ecc3a92eef61aac2520f575f2e0da25ae50a193d29b110e13a8388afd923e4ce621f55564401004ad3a10c4a50e2f03a88aaa8f6f0b96b217a23377287888e0ae747413e9c044ea8c33323ba5dc5b065fa6ce313e1861bd01138bf3953207db7679bd5db61d81551193a50b439b76fea7de8b0fcb1548024128d000b8905b784b4d75ea99635592f1437424fc5f4730a57d0720d56100e491dc4da39307a6a46abf4214d62f20bfe6ad23c08c8e01d680a5ae40b66adadf7b95c2649d68ac8325db865892e450", - "prev_randao": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3f", - "block_number": "4473333226764941351", - "gas_limit": "4478290672120026440", - "gas_used": "4476638188903342311", - "timestamp": "4521255257228650249", - "extra_data": "0xc7dab83ea972daeec7b1385f04b22e210f708323c38b84160159653a163f259e", - "base_fee_per_gas": "64440075145037893977597636730159223700849209418551716330347083025087305940989", - "block_hash": "0xa198c43e69db1b65dc2b6a085da00587026a85ff57fa32a2a656dea9617db688", - "transactions_root": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", - "withdrawals_root": "0x0c0d553e4878ae811024144112c88bbf79a372d5dfdf39730cede08696ad52d4", - "blob_gas_used": "4512992836850262312", - "excess_blob_gas": "4517950290795281992" + "parent_hash": "0x7ed3313e083eea1ecfb57f4508fd068e9fb56c4125942ed01ef47538b5f29e14", + "fee_recipient": "0x91f42b3ea889c963c4f8e670db851b5ba5b86bd3", + "state_root": "0x58913d3ec8a62b95e52fb1ee60ebddf392af6e1db902dd5bc3f1eea7003130ff", + "receipts_root": "0x6bb2373e68f20adada72181a3474f2c098b26daf6fcb0516f0723270da91e789", + "logs_bloom": "0xcb571a3e876c6732a4c11cf3562059c2b8c16889ffb6d1b8d5f883591e767c3fb46dd46047448da9f4783626721bdf9308a2cefba364d5b6b2653a014d0c2bf6f7722e4c3bbe594bb639fb9b0489d49f463e19d5547ce33fc497f70c977a3205fedaf8ccc0bdc1801c8a18154948c8e670813e0c98f6e92e20d4327c71f2de5e7aaf1df92739504e383a1977928614c2078d5a61289ac612f9e3b08ea9406604db94fb2a3424f245843ce722c6edaaf79085661b750ed7b62cf57a68de63b899dbde6c169f2a65bd5b0e808bdf22c850136f4c1421be8865b50aa17c03735c41f4b4ec5a973ad30c7db09d4a6894284b9f19eafb8189121738fda9d6e0d393f7", + "prev_randao": "0xde78143e27b846779904841e2aa96d8fbec4671bb57ffa72037ac721f8d633ca", + "block_number": "4478290672120026440", + "gas_limit": "4476638188903342311", + "gas_used": "4521255257228650249", + "timestamp": "4519602774011966121", + "extra_data": "0x8e77ca3ec98f3c20e7e802dd8917f1b9fc66866da0310ae878d59ae1871cfffd", + "base_fee_per_gas": "73092283800700793286468708950267523415056945357667839430375913972420161943176", + "block_hash": "0x003ea73e885578bda77a6ee17f4c6c88227980d9e6e5fe448bdc2f93a5614b3e", + "transactions_root": "0x135fa13e28a157029cbdd50c53d58055287c7f6b9dae27ffb95d735b7fc202c9", + "withdrawals_root": "0x1f2e4f3ee8c38dc605677b6ce650a08c7fa6716795a8622d396e244f710e0a5f", + "blob_gas_used": "4517950290795281992", + "excess_blob_gas": "4516297807578597864" }, "bls_to_execution_changes": [ { "message": { - "validator_index": "189139", - "from_bls_pubkey": "0xa9ddce0cab5b51d3d2c710396b85e3fd7a87f1738fb5cfd5a7b25dbb483c167a80e785cb4ca7250c14a60cc282b1d9b8", - "to_execution_address": "0x9946783e88b272e45092a83c1c9310f154917869" + "validator_index": "2996764", + "from_bls_pubkey": "0xa2cd8bc71b19dea2f97e5918a5ad8205b4937a07537f9d84206f15ad383c25e65249dbb53d559acb700bb4f59297896c", + "to_execution_address": "0xac67723e28fe512946d50f68f01b25be5a9477fb" }, - "signature": "0x8edfb3b9ed80067d0626019a1be330bac43c7ecd813f7ce781d0e6e34fb583803e9d2b047ad3294d6d3a54d020c68231085f7d9085d0afefb047def063a4698277e66d4a560f4b5bbd16586976f0bcf90177c00abd4a1b4cbd0ac393e5b904b5" + "signature": "0x99f5bc997861976d73013dd4c06f42a2318912e5e075a2746840bb34134e7f4765ba88dec12f4bd5d2fa24d7bc2c17ce105bfb796108064499faaa4d4b3e17db6e62bc88f8e0a6243105b01c00302c3d9f81f5e790d6a6951532ac94c19d1114" }, { "message": { - "validator_index": "2357271", - "from_bls_pubkey": "0xa287d120292890ab1aa49bae1e3cd88bb160b5640f18c64f1aabae5990616e53099fe61698c3b812e2bc2ae6b6965960", - "to_execution_address": "0x09988f43d11dcf2aa7811c9997eb4119e8f153ce" + "validator_index": "2164897", + "from_bls_pubkey": "0xaa4811100ca7dc5c90d84205000ffd9d70eaa3c650ff0391ce7c3f5eed59f12e4ac5e080f4ee6e30354294ebca28c93d", + "to_execution_address": "0x1cb989437169ae6f9cc483c46a7456e6eff45260" }, - "signature": "0x8ca190827c66ff26c1fa594eae169b7efbd84c9456304f2194df7b0c204b0a29ac53034c9b20e4977b8e8b46d6b246da03a9337d3bf5e6f7ac941407a2a3437d7e2c0dcacda29b7623141833e02b4b12350ccaf8b27dbf96b3c520078f49efe2" + "signature": "0x833c3424606fa52c035536e38b8c677a1b922a8d35cc38b55e6f057725893ff621d9f49153fcda3af9d7cde737ee0c830e3189e94a62a8d655c328f7b3c77142c53a3e9f6029e16d22ace761f8e60f4b28f2b487821be3272e1905598649f1a0" }, { "message": { - "validator_index": "1972522", - "from_bls_pubkey": "0x8db8ee645b614f990839e4d98fdbf921263bb62cd917fb4eff9084dff23d7cc453f6cc645ad8b869aa9d31a6b9560630", - "to_execution_address": "0xc8e25443111288db3b1f254bdb430f1c27104a82" + "validator_index": "1780148", + "from_bls_pubkey": "0x98d6103215e3916a0cff3af6b6f29f22374a32d87d440a302e18a9e2daa80b32a2824798030f6a2e06ab612b07c41f74", + "to_execution_address": "0xdb034f43b15d672031628c76afcc23e92d134914" }, - "signature": "0xb0c3172e9bab8d04faa5d27f9818c36ad61a71b114f5bd9dbe77306be3edef2bcb56c215511ba76145006daec95f24be0f1f0dd24377cf7b440b5cdc7d0b520d6b64c539eaacaf14875d49c293af5974751bb0ce2daafde3bd01e097a466e75f" + "signature": "0xa2f3dc0cbadf0807f2d864d0c98c2e474972419b1ef936d0c68976eb732a146c8bd86194e95381d1b9245530b1f138cc0de425bd6478bc56a394619e1192a114680c4e9f8b0278816bd4f5df9e24cc31ca73cf5eb26da54eebf958966d4a957f" }, { "message": { - "validator_index": "48778", - "from_bls_pubkey": "0x8ba697cdd6f8c34a1fb96a4c88f03360d19515ccc4e1ea24aa5e80075d821059806a0047e6bbf5d908d312d1902aff5d", - "to_execution_address": "0xee24494351a9466526a5f3a1825538b6331648a6" + "validator_index": "2856403", + "from_bls_pubkey": "0xac60d2ec631e27b37f4f5541319b94c8cf82299d71ae4139039cbc1d0c30c71a075cb62166801ccd0a56f0bc29edcdae", + "to_execution_address": "0x01464343f1f425aa1be85acd56de4c833a194738" }, - "signature": "0x87fadfd11bc5612e06c59d576c91599bc21095531fcc27a177967de7b521c377ee7a2b10d0fadf38779089929cfe136518757803c369b4ce94873e28d7d9cdf54c31a53ed86b07f76ea6104ee65d76de02267a4b736c949785ef233cbb73ad4a" + "signature": "0x818852c88a6e16f2294cb51803a155dcac4f6ec5ee0d095e8890be8907201ee1c8790abb6d5f05faa2b3d8d9a03972800a04fc1666d877c7cbfb62c387d6e119f8f827ea2ba94d5b6429b33d6f3770b79999da3cb8ed17f2c8977234bd2a1cdc" }, { "message": { - "validator_index": "2820011", - "from_bls_pubkey": "0xa32a5f28ae7d36f888820160335232fc42ef994b4f93acf6a8659762b2ec52ca79354cc07c73a229b529bfcebc705eff", - "to_execution_address": "0x4a4dca439229167a13e413e752937416aad35d1a" + "validator_index": "2627637", + "from_bls_pubkey": "0x92f00f85478ad1224c1be3a9b9230444411e9a2beeb6304e5c1fba1b7b54c9ecc3965abeb3385e4916040260544b2580", + "to_execution_address": "0x5d6ec4433175f5be08277b12261c89e3b0d65cac" }, - "signature": "0xa2089742415bdf32fa2dde853661a095ac24d273413687ae04fabb99ae2982700bcdb885d239e32543ffb95763a43e690cb1bf3a33df40d24e12c46d150e9c59dd63f960dec39712dabf74c08a55ba1bcb6db664ff9d5b2261da353e4374466c" + "signature": "0x8b13ef837950d00a469eae427c1fea111ea85e0dfd63c09bdc02aec208523ec4c805595639d50e183dc893022f60abd8118d62c836b6d4de057967f80184532c1c3a25b26c51926a07e55d2ba264de6fd22eb0665668cc7280bbcdfdfdb3c0b6" }, { "message": { - "validator_index": "896267", - "from_bls_pubkey": "0xb679b4b686530827b2a201eb2b18454e9a5758d7257737b29bb215b9f354c2ff57e912b19d4a051556187aa24c97371b", - "to_execution_address": "0x708fbe43d1c0d403fd69e23dfaa49db0b6d95b3e" + "validator_index": "703892", + "from_bls_pubkey": "0x8939b0ed4fd0659427739e525d6990c02614d703d12c5adaa5f8aeedf64fb9ce66e769d83f9ec61ec05c6074d5095955", + "to_execution_address": "0x83b0b843710cb448f2ac4969cd2db27dbddc5ad0" }, - "signature": "0x8da9cee45a3046b209da332512a6b4e4d7c89768f55998eb79ee236b4fb1fbcea87e0bba7b05d19ea7b8c5ea6dc0081e17a7ad0ec41566a0c6d9e127b87691e1d5b823fd178069e3f30091dcdbb44c36408656941755177c45bc976bf270289d" + "signature": "0x8f65a298124021cf26323bea9328da795a7f2134f42c21e28617a1b663c568058fa3ddff9a71948362e7380cfb591ec9062f735067b1a32bd2b88e9c2d5c3404348a194098c30f55f8cc050b305bc4c2baeb2a6e4ab1d49833bd7ec4943367f0" }, { "message": { - "validator_index": "511518", - "from_bls_pubkey": "0x83b8c61b63de768821cbd82ee3c67c81bb848163d6af0186ffe1ca3936d283bb4cab886f3fbc7f6336fec3da8d542c76", - "to_execution_address": "0x92fcc742102977503966d35cb217fc55bd583232" + "validator_index": "319143", + "from_bls_pubkey": "0x8f5f289f8ae538eca9f393fd7ed1a5432ba4c145b700075d1a8ea9530ec8cba3b91511e78662d0f2bed026a1b86d6d2b", + "to_execution_address": "0xa51dc242b07456952ea93a8886a01023c35b31c4" }, - "signature": "0x8c90298abaed4b5124cff46e41c9a4ed2b2baa0d2089add6b64c70dc7547f1a83bed76aba1fac6d36605beea72734b490b7b98994c7c65fdb436286b0df898731f6ad536e5a603da85ec8cc4488b94dc8c61e11363d1cc18733382dca51c7008" + "signature": "0xa23a1e6d9410ecb12fe95fbdb3b12962bd46855fa46ccd7b2fe75696cd4b1788302d6fc3bc1c1bc6f8080d0025b3fdc9139a3b141407213b8123563622773e9b385473bcd03f149b0ea21e52626382dba56b95a2204178c2c454001c79289afb" }, { "message": { - "validator_index": "1431791", - "from_bls_pubkey": "0xa532ee397fdd9e388888d90f712e13b085ad5043402debe1caf3dabbb514ed0d06f7c897e4e2795fd018cd672bfa8948", - "to_execution_address": "0xb83ebc4250c035da23eca1b3592925f0c95e3056" + "validator_index": "1239417", + "from_bls_pubkey": "0xace9988853ce03390f8d5c93fa51e3a5f5b056bef4ed1f437a86c59fb687be25d0e6f4be5beeec4bc04806e93c3eebf7", + "to_execution_address": "0xcb5fb642f00b151f192f09df2db239bdd0612fe8" }, - "signature": "0x8fb8cb9373db269dd2a05fe0a07484db022a95b06c03807426a352499fcb65c55f8c388fd4cddbdd9936d5fe5ac5898e0d8b58ae09a73bdc7e584fe9940d3aa967607a0c4a1ad1ce5ccc0ad83f63a273e140ae0510f709cd0c214b645d68e3f4" + "signature": "0xa0053dab17b7e0ba64416b1c95b6c56ecb7f39ccc272cd57a347054fab6781ab8d834eda1a4e57ac5b037d3b71945d1805216ba518aefad29922f57f1b3149151d4266ae944b579de5399a209e482a19d3fd7e9c02069e7a01ab2e9a59477326" }, { "message": { - "validator_index": "1047042", - "from_bls_pubkey": "0xb7d85608c3cf919ee72c0481283b468c2825850f6f6028c000cb19bff464556973909667d0353582d673e1049795f20c", - "to_execution_address": "0x778981428fb4ee8ab889aa659e81f2f2087d260a" + "validator_index": "854668", + "from_bls_pubkey": "0x85a2763ffc316d21106869ce72f88e6e5aa3ffcb84689aea186a7de5056f0fa98f50ce3bcfb8a96d33585c472748b014", + "to_execution_address": "0x8aaa7b422f00cecfadcc1191710a07c00e80259c" }, - "signature": "0xa1079cff71763f60894927a0ac68cfff88642e5ec4e11d1f63ce7d7b15f2567842c80c0238a0f6e4d38ac2a9d09787c50c87daba460e05a0336332f1d37b65fed7526c5eb51a84d3a0169d09ddaf271d13710d22469e8dffde8859d50a2dd0a1" + "signature": "0x84ff1208ba8c36a14bcf8c5d3c9d9e22dd6d69f7053eaba3ce96cf7ca324ec3c3a2bd097053788b7dc64d7dbccc30ebd07fbaf41e95ae397751f8aadbc4d84219038b55e1fb3785a8f7ceebe05d629ce2c9c407bb9be6c66c0d26c14b3a7c3c2" }, { "message": { - "validator_index": "2279280", - "from_bls_pubkey": "0xa46cb4c6f51759dd36e897cf8f5f8a774dbb5968defec8bcd85b9ec0f3d873a6569fabde6c6cf3fa5dc77e910bc39938", - "to_execution_address": "0x3aa93143d0d7c378fbb0904fd1788aea4c2244ee" + "validator_index": "2086906", + "from_bls_pubkey": "0x8f220bb09673d250a17cdd562f33ca615e83e293a43e1313a9c3e9438c218cfa9a803426d29e9bffdd884daecf7e0ac6", + "to_execution_address": "0x4dca2b437023a3bdf0f3f77aa4019fb753254380" }, - "signature": "0x988ea703ce8fcbd5bc7811c49e1eede7061ce461966a9a52f03afdecb157f065a1993fd71ea29c6769121610fc9e3e190eff938fb8c2f77dcf5f511208ad23cf427c05dd207b6c6004ba2a1ee3b6a84949e39db4ef1ee254635d3527010f7794" + "signature": "0x81d6211b8ee9652820795832982520799ba2eab947083a2c6e56d9cdf1e678b1c1a6c8a108ece8b1c23b234a208e6e281477d55c41fc3d04027032277fa0922a0370e76db742037a0688697f618b8b7780cbfb3725f78bf9c5f94876d9d1957a" }, { "message": { - "validator_index": "1894531", - "from_bls_pubkey": "0xa18343c3306dae4ff3c78428069a4ae7876f0ad620219648b99b4bfaeea1d7898df50d508533e756f5903efbdf585076", - "to_execution_address": "0xf9f3f64210cc7c298f4e990115d157ed8b403aa2" + "validator_index": "1702157", + "from_bls_pubkey": "0xb63a024e98bf28daf9bf8bdcb7c89d823f29e65e362a923afec6c78aef21559a12d2c5cdf81998630ac418034c0e58ed", + "to_execution_address": "0x0c15f142b0175c6e8491002de9596cba91433934" }, - "signature": "0xa120e4f3144799db31e7487d25cbe6d8724f0076f23fdd7ff1f00b24b304a93a97862a3ebecb5e1b91018a0496a3c4020004b5d49571f4b9a3faf0f9d8f1f067d7005b5600db18872732313acf1350e1bec278384f3e0fe28d43f00203ae10e7" + "signature": "0xa386f611424c8ec936f7ef72da9d526823e3bd03f3452131910b7c5ae646a989c276001faa9398ff3ce9050cc0282c5003ee9357b8485f4c52a4321e9c5150d39cebf18546badc0a22d7d881a08bfcd1e76c4a7c9c8cd7f85da5270877698c7a" }, { "message": { - "validator_index": "2970787", - "from_bls_pubkey": "0xb23734206f673528ad12bad1b7815a9db722d7a5afffdfac97e17d453fcd2616a804619bd9f8db50b9547a357b1f5813", - "to_execution_address": "0x2036eb4250633bb379d46758bce28087974638c6" + "validator_index": "2778412", + "from_bls_pubkey": "0x90961673ed2682e726960a035e0d1e050ff0754225f97fb7501110e474cee35f7ed1bdeb70eebc97a59abbd7217bc691", + "to_execution_address": "0x3357e542f0ae1af86f17cf83906b95549e493758" }, - "signature": "0x8de01f498b48fd1df0c20529228b7e8616c7bfc35457d392404110e394db4c884dad325363be1f2a83ac383486cdea460e78e89a728ac9464f71dfbc685ac8be3fb9ecb21d67a6c105354c58bfb78f2adf7ee65f5a4d7fbe5989e522b52daccf" + "signature": "0x9590d1d0c5216aeacaa19bb58a4a66a6430e554a0b020e2977be2421bcd089fb47bccbe10f2baac88dee33fc625dd5441217042918ac793c0aa2aba45a379decdb018b7bdd277f2a66b122a95aa1974cb05208e00801ed52f7f86b671c372e2f" }, { "message": { - "validator_index": "2430055", - "from_bls_pubkey": "0xb490d2df5759bb5115690df9aa805cddc1787b17fc3984ec400d03ccd5c6da6dbc54a724816ccf0c86b4b23e4daf0b17", - "to_execution_address": "0x42a3f4418ecbddffb5d058777555df2c9ec50eba" + "validator_index": "2237681", + "from_bls_pubkey": "0xa63d491bd47a8f4caf987b7a22f228dc709f8f4a0d8ac25ed72a18cbe2b2da7662daafbe182b33c81e14eac70bc2f0d5", + "to_execution_address": "0x55c4ee412e17bd44aa13c0a248def3f9a4c80d4c" }, - "signature": "0x909ac7032213a33af76294ec19617f3fd9859bb22201e0502ae7187debe740c5cb0367ef03e944eab7fdc5ab23d303f916904a1ca5f7aadbcfbab89bdd82931dd7ff3e0efdd1135698f54774989ddd6d8ee07bebff863718c927072564a547bb" + "signature": "0x8e4e43252f668d04559aa2ecf1ae7605a054c1fc2d5b0a9b77f9b091b8fd851ef5a02d54ed31a66053144d0319d8f4ac11185d05cd68099841cc554c99de314a291e83c4bd166b924240d4851d8ff63a05c62def40f8b839f087a60db6ef5172" }, { "message": { - "validator_index": "506311", - "from_bls_pubkey": "0xa2810855686190fded08fbafafc427d3540a58c2b391c0d05a71be7a4d1aff2b4ea501c8e4c1ebb79cb49f1991ada976", - "to_execution_address": "0x68e5e841ce629c89a05627ce1c6708c7aacb0cde" + "validator_index": "313936", + "from_bls_pubkey": "0x856c75ede282fb092c2c5ce1511945d4eb5026a095e7ebb8ab6a231ef8884390141d100ecc904fdd58b1f2f0e07b1630", + "to_execution_address": "0x7b06e3416eae7bce95998ef9f0ef1c94b1ce0b70" }, - "signature": "0xa108770fd60463dfc982d8725440e47c54730329420bcf05a969e4937d06e468385b53c4a5f6c69e55a775f358fa0948171dedf3bb0ccc1679280251b7abe4cc644e10b46bcdaddd590951541bda68373c8a8dcbfb86d3cb97822a5dfc21f481" + "signature": "0xa31249a2500d0428a2b38100b6db1191f1014087af8e58cdc025e28fc9e2aa5f08c74036c1c99b5e6b9f96c250700e2505201e2d4657bff1de53e01ac3c28f2f6624da4e953c9d08b0011e547902197fc5317daa051526f68684f16e1608ff33" }, { "message": { - "validator_index": "121562", - "from_bls_pubkey": "0x8deafeba9f0184ffa1f3d1422b9d97d6975fc4d5a21df265b48b6e831d6aee5a6236b3d5fb9e03cab1e0795f3dd45206", - "to_execution_address": "0xc40d6a420fe36b9e8d954713eca4442721892252" + "validator_index": "2929187", + "from_bls_pubkey": "0xaa842a4b0acf1250c953110bfa6025bc646043fc268749af5274dd0197f06eafd7f5ec00e2d21a01b8a420e8178bf74d", + "to_execution_address": "0xd72e6442af2e4be382d8ae3ec02d59f4278c21e4" }, - "signature": "0xb489851f8a8fd535ee14505b9ae32ab27cd8d5e637236f491f71bfc987316491ef3f1b7670378875580eb247993d82511128502ea093d108730e070bb8c5919b39e78893139b3f1a499e885b15d385073e227d6a4e85ba0413ab9e2481d0b8da" + "signature": "0xa29e82672b9b023ec4496bc5ba26cd0e12ae4e168591a2412dc2c62cfbf0466710810999921e34e7249e3a4700c837ec115bb6bee111a50c55a1af9d2f996bb6600a4767e23781cf4eb177845372b39df6156906f9e24c5b908920161a44d8fa" }, { "message": { - "validator_index": "1353800", - "from_bls_pubkey": "0x97e217a0c3c7827753099f05459884b90c0fcc97c4c7b8144b06a29c3787cb2672cc36437d19f5d1a07d175683d345ae", - "to_execution_address": "0xea4f5e424f7a2a28771b166a93b66dc12d8f2076" + "validator_index": "1161425", + "from_bls_pubkey": "0xaf50133072b8d7a0ab9318facb15087021cdde3205929004ecae6df99d4cc111517fb629146398eb345a028d413624ac", + "to_execution_address": "0xfd705842efc5096d6c5e7d95673f828e34921f08" }, - "signature": "0x90261b9bbd447453cb0f85f40b0a16dd1f39c09f48b866601f7f7f01a3b5fb3ba84c04b6d6708930c9d174891b68d2bc187b888dba79f8f85ffab9f786bf8f2fe79315714da578940bfaf09e181e3a784c95a906591cf4d6091a7ad45909cf83" + "signature": "0xa34048285c5a03bac9edfcf306e845a8cc0f8e7f7b4c5590dce0146b30b5a4d6340855b4384b53cc72b4ac5bb9b372590a7f7eca40e78ef3ae9b0e9dfe020abc94d161627ff642df1386143f221aee8ba432f4e7affa7736c65a01e6f342cd4d" } ], "blob_kzg_commitments": [ - "0x70373542af8b450a2cf0e8995d74fd5c59a419747f5f4d8ed5a550526cbd4341b4564c1c2a75a955277f4cb32c6b1a7c", "0x36d44642cfa8a73b4c27b317e2d9bff5469b1cbe5c05d35f4b2286f9dd9a1da1edf7f9ff3b52088c513683aed613efc8", "0x49f540426ff48680416a1a43b562d4c24d9e1b5012cefb1979a3c9c1b8fbd42b8517c05e35b3e879984ec65a9ddb52af", - "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f", - "0xbcbb1d422fbac21d01fc8547ab974f9172b015bc5882f0768caa5e73d640216c13d5649714f92a0d43e05864498aa915" + "0xa99a23428f6ee3d80bb91e1cd80e3bc46cad162aa2b9c7bc5e291babfcdf69e17bb59e3819984a1ffcc715b881c2452f" ], "execution_requests": { "deposits": [ { - "pubkey": "0x8542101a7935a234f5630ac9af421c22079f637d52260c1c6d6aea1011e8d11075c111bd37f037e78399b3c55c7b2c2e", - "withdrawal_credentials": "0x0100000000000000000000006c624a41ad5c29cd7d660b626ed53268531df243", - "amount": "4709638425535019469", - "signature": "0x8daefba6498ad8c68f592546366a9e21f0a3e7044297efa3162f7c171b46b73a03ba872e6c7801ab17f5a80f3bcaeaea0f1e0e11a7488603c9e40df1e2d56deb5d087c70e17a1bc626f113ed000514dc2a65857feec2e52539a00142ca88d0f7", - "index": "4699723521939947405" + "pubkey": "0x82265d267f8473b8b95581d5cff9b19c81ca410538259c96c7418ef433e3c0a89d8ce7f7b91dc0789ceddd7e5f8f1f45", + "withdrawal_credentials": "0x010000000000000000000000594150410d114a888823a4369a4c1e9b4d1af3b1", + "amount": "4704680975884967085", + "signature": "0xb710f44c80db8d91f996614df20b5e9293a578f28f55e4cd65f017063fa9e36eead8417ff871fda70f6f8238fa906376066788d928178215cf5b285a0630956453a2b53fd2ecdd614e247a7c89502de682385310134924ee896501d9a1a5265a", + "index": "4707985942318335341" }, { - "pubkey": "0xa1406a0e7708eb918313d3a1f4fb748174c690e7bc5933f8481b64aff73671f1bd59c3ea53b84d65eb5afd191748eaf8", - "withdrawal_credentials": "0x01000000000000000000000092a43e41edf3e75667ecd9b815e75b026023f067", - "amount": "4693113584778243597", - "signature": "0x90eaf66c3ce8bb8adfd8c7ad829a87adb1aacfe459108ae92183846cb307c2c47d973f760507669bf13cc0fb96d524ac111657d9ad569321516b9bb151c354b39cb26de1e0fd11844782cbe64e1a73fe799ffe32054f35e1e1e41ddd7ab9d275", - "index": "4696418555506579149" + "pubkey": "0xaacb0e7f3717c59e23c32cb07ce03be33c2bb8366da2d27a9954b77f2c9198a1b5f3aea585faffcdfa4800b592c4d5d8", + "withdrawal_credentials": "0x0100000000000000000000007f8344414da8081272a9728d415e47355920f1d5", + "amount": "4701376009451598829", + "signature": "0xa9bf2689fe47ca9ac1fb90da3b08259115adab480b4f387669f209ee7747f7451af8f61e4a9c057bc33ffc18f0b08c3407be0a59b8c61c741572f5d28e2a1f6af0fc17db7c3f48901c9267606c3d7831a3d3647b885946fc95fb5689d24f7b8d", + "index": "4691461101561559469" } ], "withdrawals": [ { - "source_address": "0x51ef03412de8a007fc89e26a593f29059e41e61b", - "validator_pubkey": "0xa4a0d3ca2e08aa24e5f8da696a5ec5f9864f19e3493a1d784960dd9ee57c0f6fc8e930f3c96dbe2bb2c0812e6cea2766", - "amount": "4688156139423158509" + "source_address": "0x3ece09418d9cc1c206477b3f86b61438983ee789", + "validator_pubkey": "0xb7fbe0486f002e790bb3d674b4259c18c6bf66510576e381e128aee6c2de771d3d5c9dda65b4078b058b2667f30e1637", + "amount": "4689808622639842637" } ], "consolidations": [ { - "source_address": "0x01eeb941cebf96b04a6e6129b9adac2fdce3046e", - "source_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b", - "target_pubkey": "0x8d660371146ba6f398e715b802c30dbf1cfe3f061a559cf40fff948feb7384f52698e0aeecb94114d2f5b53f2676d5e6" + "source_address": "0x3a51a841aea2347f293797ab3448ea96efec0124", + "source_pubkey": "0x88f8fa6c349ee56559e614799a5788c17fdcde24ea5922a7c7fe6bed8df5c0140aeebbb46d0cadc7a9107e98344194f1", + "target_pubkey": "0x97995c0a4cf28bb77bfea20753ecd1e3b3469492921c9542d99a1e81355f6d09ea4cbcb35e3b8f1240e8261d20da657b" } ] } From c0c0b9ca576bc7aa6ed3f67c61a48975ea9045d8 Mon Sep 17 00:00:00 2001 From: Lucas Saldanha Date: Tue, 5 Nov 2024 09:58:25 +1300 Subject: [PATCH 6/8] Electra devnet 5 (#8817) use forkChoiceUpdatedV4 with PayloadAttributesV4 Co-authored-by: Mehdi AOUADI Co-authored-by: Enrico Del Fante --- ...ilestoneBasedEngineJsonRpcMethodsResolver.java | 5 ++--- .../ElectraExecutionClientHandlerTest.java | 15 ++++++++------- ...toneBasedEngineJsonRpcMethodsResolverTest.java | 6 ++++-- .../forkchoice/ProposersDataManager.java | 7 +++---- .../forkchoice/ForkChoiceNotifierTest.java | 5 ++++- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java b/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java index 1635326d0f2..e441b5eb193 100644 --- a/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java +++ b/ethereum/executionlayer/src/main/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolver.java @@ -31,6 +31,7 @@ import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV2; import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV3; +import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV4; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetBlobsV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetPayloadV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetPayloadV2; @@ -119,9 +120,7 @@ private Map> electraSupportedMethods() { methods.put(ENGINE_NEW_PAYLOAD, new EngineNewPayloadV4(executionEngineClient)); methods.put(ENGINE_GET_PAYLOAD, new EngineGetPayloadV4(executionEngineClient, spec)); - // TODO EIP-7742 Replace with EngineForkChoiceUpdatedV4 - // (https://github.com/Consensys/teku/issues/8745) - methods.put(ENGINE_FORK_CHOICE_UPDATED, new EngineForkChoiceUpdatedV3(executionEngineClient)); + methods.put(ENGINE_FORK_CHOICE_UPDATED, new EngineForkChoiceUpdatedV4(executionEngineClient)); methods.put(ENGINE_GET_BLOBS, new EngineGetBlobsV1(executionEngineClient, spec)); return methods; diff --git a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ElectraExecutionClientHandlerTest.java b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ElectraExecutionClientHandlerTest.java index 35a311f56f0..d63a2e33728 100644 --- a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ElectraExecutionClientHandlerTest.java +++ b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/ElectraExecutionClientHandlerTest.java @@ -31,7 +31,7 @@ import tech.pegasys.teku.ethereum.executionclient.schema.ForkChoiceStateV1; import tech.pegasys.teku.ethereum.executionclient.schema.ForkChoiceUpdatedResult; import tech.pegasys.teku.ethereum.executionclient.schema.GetPayloadV4Response; -import tech.pegasys.teku.ethereum.executionclient.schema.PayloadAttributesV3; +import tech.pegasys.teku.ethereum.executionclient.schema.PayloadAttributesV4; import tech.pegasys.teku.ethereum.executionclient.schema.PayloadStatusV1; import tech.pegasys.teku.ethereum.executionclient.schema.Response; import tech.pegasys.teku.infrastructure.async.SafeFuture; @@ -128,7 +128,6 @@ void engineNewPayload_shouldCallNewPayloadV4() { @Test void engineForkChoiceUpdated_shouldCallEngineForkChoiceUpdatedV3() { - // TODO EIP-7742 should call FcUV4 (https://github.com/Consensys/teku/issues/8745) final ExecutionClientHandler handler = getHandler(); final ForkChoiceState forkChoiceState = dataStructureUtil.randomForkChoiceState(false); final ForkChoiceStateV1 forkChoiceStateV1 = @@ -142,9 +141,11 @@ void engineForkChoiceUpdated_shouldCallEngineForkChoiceUpdatedV3() { dataStructureUtil.randomEth1Address(), Optional.empty(), Optional.of(List.of()), - dataStructureUtil.randomBytes32()); - final Optional payloadAttributes = - PayloadAttributesV3.fromInternalPayloadBuildingAttributesV3(Optional.of(attributes)); + dataStructureUtil.randomBytes32(), + spec.getMaxBlobsPerBlock().map(max -> UInt64.valueOf(max / 2)), + spec.getMaxBlobsPerBlock().map(UInt64::valueOf)); + final Optional payloadAttributes = + PayloadAttributesV4.fromInternalPayloadBuildingAttributesV4(Optional.of(attributes)); final ForkChoiceUpdatedResult responseData = new ForkChoiceUpdatedResult( new PayloadStatusV1( @@ -152,11 +153,11 @@ void engineForkChoiceUpdated_shouldCallEngineForkChoiceUpdatedV3() { dataStructureUtil.randomBytes8()); final SafeFuture> dummyResponse = SafeFuture.completedFuture(new Response<>(responseData)); - when(executionEngineClient.forkChoiceUpdatedV3(forkChoiceStateV1, payloadAttributes)) + when(executionEngineClient.forkChoiceUpdatedV4(forkChoiceStateV1, payloadAttributes)) .thenReturn(dummyResponse); final SafeFuture future = handler.engineForkChoiceUpdated(forkChoiceState, Optional.of(attributes)); - verify(executionEngineClient).forkChoiceUpdatedV3(forkChoiceStateV1, payloadAttributes); + verify(executionEngineClient).forkChoiceUpdatedV4(forkChoiceStateV1, payloadAttributes); assertThat(future).isCompletedWithValue(responseData.asInternalExecutionPayload()); } diff --git a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java index 79d6577e40a..3e670e7d8be 100644 --- a/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java +++ b/ethereum/executionlayer/src/test/java/tech/pegasys/teku/ethereum/executionlayer/MilestoneBasedEngineJsonRpcMethodsResolverTest.java @@ -34,6 +34,7 @@ import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV2; import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV3; +import tech.pegasys.teku.ethereum.executionclient.methods.EngineForkChoiceUpdatedV4; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetBlobsV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetPayloadV1; import tech.pegasys.teku.ethereum.executionclient.methods.EngineGetPayloadV2; @@ -200,7 +201,7 @@ private static Stream electraMethods() { return Stream.of( arguments(ENGINE_NEW_PAYLOAD, EngineNewPayloadV4.class), arguments(ENGINE_GET_PAYLOAD, EngineGetPayloadV4.class), - arguments(ENGINE_FORK_CHOICE_UPDATED, EngineForkChoiceUpdatedV3.class), + arguments(ENGINE_FORK_CHOICE_UPDATED, EngineForkChoiceUpdatedV4.class), arguments(ENGINE_GET_BLOBS, EngineGetBlobsV1.class)); } @@ -227,7 +228,8 @@ void getsCapabilities() { "engine_getPayloadV3", "engine_forkchoiceUpdatedV3", "engine_newPayloadV4", - "engine_getPayloadV4"); + "engine_getPayloadV4", + "engine_forkchoiceUpdatedV4"); } @Test diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManager.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManager.java index 5f8f459a3cf..34d57c0764d 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManager.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/forkchoice/ProposersDataManager.java @@ -237,9 +237,8 @@ private Optional calculatePayloadBuildingAttributes( .map(RegisteredValidatorInfo::getSignedValidatorRegistration); final Eth1Address feeRecipient = getFeeRecipient(proposerInfo, blockSlot); + final Optional maxBlobsPerBlock = spec.getMaxBlobsPerBlock().map(UInt64::valueOf); - // TODO EIP-7742 add targetBlobCount and maximumBlobCount - // (https://github.com/Consensys/teku/issues/8745) return Optional.of( new PayloadBuildingAttributes( proposerIndex, @@ -250,8 +249,8 @@ private Optional calculatePayloadBuildingAttributes( validatorRegistration, spec.getExpectedWithdrawals(state), currentHeadBlockRoot, - Optional.empty(), - Optional.empty())); + maxBlobsPerBlock.map(maxBlobs -> maxBlobs.dividedBy(2)), + maxBlobsPerBlock)); } // this function MUST return a fee recipient. diff --git a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ForkChoiceNotifierTest.java b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ForkChoiceNotifierTest.java index 31034f62e4e..e6b27bbb86c 100644 --- a/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ForkChoiceNotifierTest.java +++ b/ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/forkchoice/ForkChoiceNotifierTest.java @@ -1095,6 +1095,7 @@ private PayloadBuildingAttributes getExpectedPayloadBuildingAttributes( overrideFeeRecipient.orElse(dataStructureUtil.randomEth1Address()); final UInt64 timestamp = spec.computeTimeAtSlot(headState, blockSlot); final Bytes32 random = spec.getRandaoMix(headState, UInt64.ZERO); + final Optional maxBlobsPerBlock = spec.getMaxBlobsPerBlock().map(UInt64::valueOf); return new PayloadBuildingAttributes( proposerIndex, blockSlot, @@ -1103,7 +1104,9 @@ private PayloadBuildingAttributes getExpectedPayloadBuildingAttributes( feeRecipient, validatorRegistration, dataStructureUtil.randomWithdrawalList(), - forkChoiceState.getHeadBlockRoot()); + forkChoiceState.getHeadBlockRoot(), + maxBlobsPerBlock.map(maxBlobs -> maxBlobs.dividedBy(2)), + maxBlobsPerBlock); } private ForkChoiceState getCurrentForkChoiceState() { From d8132132ed2675a99eb9a86ccc22844c02b9bc22 Mon Sep 17 00:00:00 2001 From: Enrico Del Fante Date: Tue, 5 Nov 2024 10:33:42 +0100 Subject: [PATCH 7/8] Update dependencies (#8818) --- .../beacon/pow/Web3jEth1ProviderTest.java | 11 ++--- build.gradle | 4 +- ethereum/spec/build.gradle | 2 + .../interop/MergedGenesisTestBuilder.java | 11 +++-- .../statetransition/MappedOperationPool.java | 3 +- gradle/versions.gradle | 48 +++++++++---------- gradle/wrapper/gradle-wrapper.properties | 4 +- .../metrics/StubMetricsSystem.java | 9 ++++ .../rpc/core/Eth2IncomingRequestHandler.java | 2 +- .../eth2/rpc/core/RpcTimeoutException.java | 2 +- .../networking/eth2/rpc/core/RpcTimeouts.java | 2 +- .../p2p/connection/ConnectionManagerTest.java | 6 +-- .../client/ValidatorRegistrator.java | 2 +- 13 files changed, 59 insertions(+), 47 deletions(-) diff --git a/beacon/pow/src/test/java/tech/pegasys/teku/beacon/pow/Web3jEth1ProviderTest.java b/beacon/pow/src/test/java/tech/pegasys/teku/beacon/pow/Web3jEth1ProviderTest.java index 0bf81f7a2fd..0aec67d75ad 100644 --- a/beacon/pow/src/test/java/tech/pegasys/teku/beacon/pow/Web3jEth1ProviderTest.java +++ b/beacon/pow/src/test/java/tech/pegasys/teku/beacon/pow/Web3jEth1ProviderTest.java @@ -170,13 +170,13 @@ void needsToBeValidatedChecks() { // advance less then required timeProvider.advanceTimeBySeconds( - Constants.ETH1_INVALID_ENDPOINT_CHECK_INTERVAL.getSeconds() - 10); + Constants.ETH1_INVALID_ENDPOINT_CHECK_INTERVAL.toSeconds() - 10); // just failed, no need to validate assertThat(provider.needsToBeValidated()).isFalse(); // advance to go after - timeProvider.advanceTimeBySeconds(Constants.ETH1_INVALID_ENDPOINT_CHECK_INTERVAL.getSeconds()); + timeProvider.advanceTimeBySeconds(Constants.ETH1_INVALID_ENDPOINT_CHECK_INTERVAL.toSeconds()); // after the interval needs to be validated assertThat(provider.needsToBeValidated()).isTrue(); @@ -186,8 +186,7 @@ void needsToBeValidatedChecks() { // just validated, no need to validate assertThat(provider.needsToBeValidated()).isFalse(); - timeProvider.advanceTimeBySeconds( - Constants.ETH1_VALID_ENDPOINT_CHECK_INTERVAL.getSeconds() + 1); + timeProvider.advanceTimeBySeconds(Constants.ETH1_VALID_ENDPOINT_CHECK_INTERVAL.toSeconds() + 1); // after the interval needs to be validated assertThat(provider.needsToBeValidated()).isTrue(); @@ -198,13 +197,13 @@ void needsToBeValidatedChecks() { // advance less then required timeProvider.advanceTimeBySeconds( - Constants.ETH1_FAILED_ENDPOINT_CHECK_INTERVAL.getSeconds() - 10); + Constants.ETH1_FAILED_ENDPOINT_CHECK_INTERVAL.toSeconds() - 10); // just failed a call, no need to validate assertThat(provider.needsToBeValidated()).isFalse(); // advance to go after - timeProvider.advanceTimeBySeconds(Constants.ETH1_FAILED_ENDPOINT_CHECK_INTERVAL.getSeconds()); + timeProvider.advanceTimeBySeconds(Constants.ETH1_FAILED_ENDPOINT_CHECK_INTERVAL.toSeconds()); // after the interval needs to be validated assertThat(provider.needsToBeValidated()).isTrue(); diff --git a/build.gradle b/build.gradle index b745cb47b7a..d6df0daff8e 100644 --- a/build.gradle +++ b/build.gradle @@ -26,9 +26,9 @@ plugins { id 'com.github.ben-manes.versions' version '0.51.0' id 'com.github.jk1.dependency-license-report' version '2.9' id 'io.spring.dependency-management' version '1.1.6' - id 'net.ltgt.errorprone' version '4.0.1' apply false + id 'net.ltgt.errorprone' version '4.1.0' apply false id 'de.undercouch.download' version '5.6.0' - id 'org.ajoberstar.grgit' version '5.2.2' + id 'org.ajoberstar.grgit' version '5.3.0' } rootProject.version = calculatePublishVersion() diff --git a/ethereum/spec/build.gradle b/ethereum/spec/build.gradle index 33bd692413c..1c6ed4059f1 100644 --- a/ethereum/spec/build.gradle +++ b/ethereum/spec/build.gradle @@ -74,4 +74,6 @@ dependencies { testImplementation testFixtures(project(':infrastructure:ssz')) testImplementation testFixtures(project(':infrastructure:metrics')) testImplementation testFixtures(project(':infrastructure:time')) + + testFixturesImplementation 'org.hyperledger.besu.internal:metrics-core' } \ No newline at end of file diff --git a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/datastructures/interop/MergedGenesisTestBuilder.java b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/datastructures/interop/MergedGenesisTestBuilder.java index 712f56403ef..fc08f3fbabb 100644 --- a/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/datastructures/interop/MergedGenesisTestBuilder.java +++ b/ethereum/spec/src/testFixtures/java/tech/pegasys/teku/spec/datastructures/interop/MergedGenesisTestBuilder.java @@ -13,7 +13,6 @@ package tech.pegasys.teku.spec.datastructures.interop; -import java.util.Collections; import org.hyperledger.besu.config.GenesisConfigFile; import org.hyperledger.besu.config.GenesisConfigOptions; import org.hyperledger.besu.datatypes.Wei; @@ -24,6 +23,7 @@ import org.hyperledger.besu.ethereum.core.MiningParameters; import org.hyperledger.besu.ethereum.mainnet.MainnetProtocolSchedule; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; +import org.hyperledger.besu.metrics.noop.NoOpMetricsSystem; import tech.pegasys.teku.infrastructure.bytes.Bytes20; import tech.pegasys.teku.infrastructure.unsigned.UInt64; import tech.pegasys.teku.spec.datastructures.execution.ExecutionPayloadHeader; @@ -35,12 +35,15 @@ public class MergedGenesisTestBuilder { public static ExecutionPayloadHeader createPayloadForBesuGenesis( final SchemaDefinitions schemaDefinitions, final String genesisConfigFile) { final GenesisConfigFile configFile = GenesisConfigFile.fromConfig(genesisConfigFile); - final GenesisConfigOptions genesisConfigOptions = - configFile.getConfigOptions(Collections.emptyMap()); + final GenesisConfigOptions genesisConfigOptions = configFile.getConfigOptions(); final BadBlockManager badBlockManager = new BadBlockManager(); final ProtocolSchedule protocolSchedule = MainnetProtocolSchedule.fromConfig( - genesisConfigOptions, MiningParameters.MINING_DISABLED, badBlockManager); + genesisConfigOptions, + MiningParameters.MINING_DISABLED, + badBlockManager, + false, + new NoOpMetricsSystem()); final GenesisState genesisState = GenesisState.fromConfig(configFile, protocolSchedule); final Block genesisBlock = genesisState.getBlock(); final BlockHeader header = genesisBlock.getHeader(); diff --git a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/MappedOperationPool.java b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/MappedOperationPool.java index 657003f7e8b..1f2c4f538eb 100644 --- a/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/MappedOperationPool.java +++ b/ethereum/statetransition/src/main/java/tech/pegasys/teku/statetransition/MappedOperationPool.java @@ -114,8 +114,7 @@ private void updateLocalSubmissionsErrorHandler(final Throwable throwable) { } private void updateLocalSubmissions() { - final UInt64 staleTime = - timeProvider.getTimeInSeconds().minus(Duration.ofHours(2).getSeconds()); + final UInt64 staleTime = timeProvider.getTimeInSeconds().minus(Duration.ofHours(2).toSeconds()); final List> staleLocalOperations = operations.values().stream() .filter(OperationPoolEntry::isLocal) diff --git a/gradle/versions.gradle b/gradle/versions.gradle index ad37563f6af..87352308436 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -1,11 +1,11 @@ dependencyManagement { dependencies { - dependency 'com.fasterxml.jackson.core:jackson-databind:2.17.2' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.2' - dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.17.2' - dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.17.2' + dependency 'com.fasterxml.jackson.core:jackson-databind:2.18.1' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.1' + dependency 'com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.18.1' + dependency 'com.fasterxml.jackson.module:jackson-module-kotlin:2.18.1' - dependencySet(group: 'com.google.errorprone', version: '2.34.0') { + dependencySet(group: 'com.google.errorprone', version: '2.35.1') { entry 'error_prone_annotation' entry 'error_prone_check_api' entry 'error_prone_core' @@ -38,11 +38,11 @@ dependencyManagement { dependency 'org.hdrhistogram:HdrHistogram:2.2.2' - dependency 'org.jetbrains.kotlin:kotlin-stdlib:2.0.20' + dependency 'org.jetbrains.kotlin:kotlin-stdlib:2.0.21' dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0' - dependencySet(group: 'io.swagger.core.v3', version: '2.2.23') { + dependencySet(group: 'io.swagger.core.v3', version: '2.2.25') { entry 'swagger-parser' entry 'swagger-core' entry 'swagger-models' @@ -53,26 +53,26 @@ dependencyManagement { dependency 'org.webjars:swagger-ui:5.17.14' dependency 'org.thymeleaf:thymeleaf:3.1.2.RELEASE' - dependency 'io.github.classgraph:classgraph:4.8.175' - dependencySet(group: 'com.github.oshi', version: '6.6.3') { + dependency 'io.github.classgraph:classgraph:4.8.177' + dependencySet(group: 'com.github.oshi', version: '6.6.5') { entry 'oshi-core' entry 'oshi-core-java11' } - dependencySet(group: 'io.netty', version: '4.1.112.Final') { + dependencySet(group: 'io.netty', version: '4.1.114.Final') { entry 'netty-handler' entry 'netty-codec-http' } - dependencySet(group: 'io.vertx', version: '4.5.9') { + dependencySet(group: 'io.vertx', version: '4.5.10') { entry 'vertx-codegen' entry 'vertx-core' entry 'vertx-unit' entry 'vertx-web' } - dependency 'io.projectreactor:reactor-core:3.6.9' + dependency 'io.projectreactor:reactor-core:3.6.11' - dependency 'it.unimi.dsi:fastutil:8.5.14' + dependency 'it.unimi.dsi:fastutil:8.5.15' dependency 'javax.annotation:javax.annotation-api:1.3.2' @@ -86,10 +86,10 @@ dependencyManagement { dependency 'org.apache.commons:commons-text:1.12.0' dependency 'org.apache.commons:commons-lang3:3.17.0' - dependency 'commons-io:commons-io:2.16.1' + dependency 'commons-io:commons-io:2.17.0' dependency 'org.commonjava.mimeparse:mimeparse:0.1.3.3' - dependencySet(group: 'org.apache.logging.log4j', version: '2.23.1') { + dependencySet(group: 'org.apache.logging.log4j', version: '2.24.1') { entry 'log4j-api' entry 'log4j-core' entry 'log4j-slf4j-impl' @@ -102,20 +102,20 @@ dependencyManagement { dependency 'org.awaitility:awaitility:4.2.2' - dependencySet(group: 'org.bouncycastle', version: '1.78.1') { + dependencySet(group: 'org.bouncycastle', version: '1.79') { entry 'bcprov-jdk18on' entry 'bcpkix-jdk18on' } - dependencySet(group: 'org.junit.jupiter', version: '5.11.0') { + dependencySet(group: 'org.junit.jupiter', version: '5.11.3') { entry 'junit-jupiter-api' entry 'junit-jupiter-engine' entry 'junit-jupiter-params' } - dependency 'net.java.dev.jna:jna:5.14.0' + dependency 'net.java.dev.jna:jna:5.15.0' - dependencySet(group: 'org.mockito', version: '5.13.0') { + dependencySet(group: 'org.mockito', version: '5.14.2') { entry 'mockito-core' entry 'mockito-junit-jupiter' } @@ -137,22 +137,22 @@ dependencyManagement { entry 'utils' } - dependency 'org.xerial.snappy:snappy-java:1.1.10.6' + dependency 'org.xerial.snappy:snappy-java:1.1.10.7' dependency 'io.prometheus:simpleclient:0.16.0' - dependencySet(group: 'org.hyperledger.besu.internal', version: '24.7.0') { + dependencySet(group: 'org.hyperledger.besu.internal', version: '24.10.0') { entry('metrics-core') entry('core') entry('config') } - dependencySet(group: 'org.hyperledger.besu', version: '24.8.0') { + dependencySet(group: 'org.hyperledger.besu', version: '24.10.0') { entry('besu-datatypes') entry('evm') entry('plugin-api') } - dependencySet(group: 'org.testcontainers', version: '1.20.1') { + dependencySet(group: 'org.testcontainers', version: '1.20.3') { entry "testcontainers" entry "junit-jupiter" } @@ -176,6 +176,6 @@ dependencyManagement { entry 'jjwt-jackson' } - dependency 'net.jqwik:jqwik:1.9.0' + dependency 'net.jqwik:jqwik:1.9.1' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8e876e1c557..fb602ee2af0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=1541fa36599e12857140465f3c91a97409b4512501c26f9631fb113e392c5bd1 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionSha256Sum=31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/infrastructure/metrics/src/testFixtures/java/tech/pegasys/teku/infrastructure/metrics/StubMetricsSystem.java b/infrastructure/metrics/src/testFixtures/java/tech/pegasys/teku/infrastructure/metrics/StubMetricsSystem.java index 7095f66791b..0016785f19d 100644 --- a/infrastructure/metrics/src/testFixtures/java/tech/pegasys/teku/infrastructure/metrics/StubMetricsSystem.java +++ b/infrastructure/metrics/src/testFixtures/java/tech/pegasys/teku/infrastructure/metrics/StubMetricsSystem.java @@ -92,6 +92,15 @@ public LabelledMetric createLabelledTimer( .computeIfAbsent(name, __ -> new StubLabelledOperationTimer(category, name, help)); } + @Override + public LabelledMetric createSimpleLabelledTimer( + final MetricCategory category, + final String name, + final String help, + final String... labelNames) { + return createLabelledTimer(category, name, help, labelNames); + } + public StubGauge getGauge(final MetricCategory category, final String name) { validateMetricName(name); return Optional.ofNullable(gauges.get(category)) diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/Eth2IncomingRequestHandler.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/Eth2IncomingRequestHandler.java index 4105b76822c..dc8dd90ed46 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/Eth2IncomingRequestHandler.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/Eth2IncomingRequestHandler.java @@ -129,7 +129,7 @@ private void ensureRequestReceivedWithinTimeLimit(final RpcStream stream) { if (!requestHandled.get()) { LOG.debug( "Failed to receive incoming request data within {} sec for protocol {}. Close stream.", - timeout.getSeconds(), + timeout.toSeconds(), protocolId); stream.closeAbruptly().ifExceptionGetsHereRaiseABug(); } diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeoutException.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeoutException.java index 071956651f6..5a5af8f1fa8 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeoutException.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeoutException.java @@ -23,6 +23,6 @@ public RpcTimeoutException(final String message, final Duration timeout) { } private static String generateMessage(final String message, final Duration timeout) { - return String.format("Rpc request timed out after %d sec: %s", timeout.getSeconds(), message); + return String.format("Rpc request timed out after %d sec: %s", timeout.toSeconds(), message); } } diff --git a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeouts.java b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeouts.java index 1f9a592f07b..0fce1e93fd1 100644 --- a/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeouts.java +++ b/networking/eth2/src/main/java/tech/pegasys/teku/networking/eth2/rpc/core/RpcTimeouts.java @@ -34,7 +34,7 @@ public RpcTimeoutException(final String message, final Duration timeout) { } private static String generateMessage(final String message, final Duration timeout) { - return String.format("Rpc request timed out after %d sec: %s", timeout.getSeconds(), message); + return String.format("Rpc request timed out after %d sec: %s", timeout.toSeconds(), message); } } } diff --git a/networking/p2p/src/test/java/tech/pegasys/teku/networking/p2p/connection/ConnectionManagerTest.java b/networking/p2p/src/test/java/tech/pegasys/teku/networking/p2p/connection/ConnectionManagerTest.java index 39b9d569264..4ffdaac5622 100644 --- a/networking/p2p/src/test/java/tech/pegasys/teku/networking/p2p/connection/ConnectionManagerTest.java +++ b/networking/p2p/src/test/java/tech/pegasys/teku/networking/p2p/connection/ConnectionManagerTest.java @@ -431,17 +431,17 @@ public void shouldSwitchToLongDelayAfterFirstPeerIsFound() { advanceTimeByWarmupSearchInterval(); verify(discoveryService, times(3)).searchForPeers(); - timeProvider.advanceTimeBySeconds(ConnectionManager.DISCOVERY_INTERVAL.getSeconds()); + timeProvider.advanceTimeBySeconds(ConnectionManager.DISCOVERY_INTERVAL.toSeconds()); asyncRunner.executeDueActionsRepeatedly(); verify(discoveryService, times(4)).searchForPeers(); - timeProvider.advanceTimeBySeconds(ConnectionManager.DISCOVERY_INTERVAL.getSeconds()); + timeProvider.advanceTimeBySeconds(ConnectionManager.DISCOVERY_INTERVAL.toSeconds()); asyncRunner.executeDueActionsRepeatedly(); verify(discoveryService, times(5)).searchForPeers(); } private void advanceTimeByWarmupSearchInterval() { - timeProvider.advanceTimeBySeconds(ConnectionManager.WARMUP_DISCOVERY_INTERVAL.getSeconds()); + timeProvider.advanceTimeBySeconds(ConnectionManager.WARMUP_DISCOVERY_INTERVAL.toSeconds()); asyncRunner.executeDueActionsRepeatedly(); } diff --git a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java index 9c8feac6da8..632f21f0c18 100644 --- a/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java +++ b/validator/client/src/main/java/tech/pegasys/teku/validator/client/ValidatorRegistrator.java @@ -170,7 +170,7 @@ public void onUpdatedValidatorStatuses( .finish( error -> { VALIDATOR_LOGGER.registeringValidatorsFailed(error); - LOG.info("Will retry to register validators in {} seconds", RETRY_DELAY.getSeconds()); + LOG.info("Will retry to register validators in {} seconds", RETRY_DELAY.toSeconds()); asyncRunner.runAfterDelay( () -> onUpdatedValidatorStatuses(newValidatorStatuses, possibleMissingEvents), RETRY_DELAY); From fbfb8a28345cfb73ab85f0fb97e94fff4727ffd7 Mon Sep 17 00:00:00 2001 From: Mehdi AOUADI Date: Tue, 5 Nov 2024 15:03:20 +0100 Subject: [PATCH 8/8] add new Electra config parameters (#8819) --- .../config/NetworkingSpecConfigElectra.java | 20 ++++++++ .../teku/spec/config/SpecConfigElectra.java | 6 ++- .../spec/config/SpecConfigElectraImpl.java | 46 +++++++++++++++++-- .../spec/config/builder/ElectraBuilder.java | 38 ++++++++++++++- .../teku/spec/config/configs/chiado.yaml | 9 +++- .../teku/spec/config/configs/ephemery.yaml | 7 +++ .../teku/spec/config/configs/gnosis.yaml | 9 +++- .../teku/spec/config/configs/holesky.yaml | 9 +++- .../teku/spec/config/configs/less-swift.yaml | 9 +++- .../teku/spec/config/configs/lukso.yaml | 7 +++ .../teku/spec/config/configs/mainnet.yaml | 7 +++ .../teku/spec/config/configs/minimal.yaml | 7 +++ .../teku/spec/config/configs/sepolia.yaml | 9 +++- .../teku/spec/config/configs/swift.yaml | 7 +++ .../spec/config/SpecConfigElectraTest.java | 6 ++- .../teku/cli/subcommand/deneb_config.yaml | 9 +++- 16 files changed, 193 insertions(+), 12 deletions(-) create mode 100644 ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/NetworkingSpecConfigElectra.java diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/NetworkingSpecConfigElectra.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/NetworkingSpecConfigElectra.java new file mode 100644 index 00000000000..98a4ac45159 --- /dev/null +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/NetworkingSpecConfigElectra.java @@ -0,0 +1,20 @@ +/* + * Copyright Consensys Software Inc., 2024 + * + * 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.config; + +public interface NetworkingSpecConfigElectra extends NetworkingSpecConfigDeneb { + int getMaxRequestBlobSidecarsElectra(); + + int getBlobSidecarSubnetCountElectra(); +} diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectra.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectra.java index 83c648f6dbf..82fbf674d66 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectra.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectra.java @@ -17,7 +17,7 @@ import tech.pegasys.teku.infrastructure.bytes.Bytes4; import tech.pegasys.teku.infrastructure.unsigned.UInt64; -public interface SpecConfigElectra extends SpecConfigDeneb { +public interface SpecConfigElectra extends SpecConfigDeneb, NetworkingSpecConfigElectra { UInt64 UNSET_DEPOSIT_REQUESTS_START_INDEX = UInt64.MAX_VALUE; UInt64 FULL_EXIT_REQUEST_AMOUNT = UInt64.ZERO; @@ -66,6 +66,10 @@ static SpecConfigElectra required(final SpecConfig specConfig) { int getMaxPendingDepositsPerEpoch(); + int getMaxBlobsPerBlockElectra(); + + int getTargetBlobsPerBlockElectra(); + @Override Optional toVersionElectra(); } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectraImpl.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectraImpl.java index 5b65f071933..499d52c0399 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectraImpl.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/SpecConfigElectraImpl.java @@ -39,6 +39,10 @@ public class SpecConfigElectraImpl extends DelegatingSpecConfigDeneb implements private final int maxConsolidationRequestsPerPayload; private final int maxPendingPartialsPerWithdrawalsSweep; private final int maxPendingDepositsPerEpoch; + private final int maxBlobsPerBlockElectra; + private final int targetBlobsPerBlockElectra; + private final int maxRequestBlobSidecarsElectra; + private final int blobSidecarSubnetCountElectra; public SpecConfigElectraImpl( final SpecConfigDeneb specConfig, @@ -58,7 +62,11 @@ public SpecConfigElectraImpl( final int maxWithdrawalRequestsPerPayload, final int maxConsolidationRequestsPerPayload, final int maxPendingPartialsPerWithdrawalsSweep, - final int maxPendingDepositsPerEpoch) { + final int maxPendingDepositsPerEpoch, + final int maxBlobsPerBlockElectra, + final int targetBlobsPerBlockElectra, + final int maxRequestBlobSidecarsElectra, + final int blobSidecarSubnetCountElectra) { super(specConfig); this.electraForkVersion = electraForkVersion; this.electraForkEpoch = electraForkEpoch; @@ -77,6 +85,10 @@ public SpecConfigElectraImpl( this.maxConsolidationRequestsPerPayload = maxConsolidationRequestsPerPayload; this.maxPendingPartialsPerWithdrawalsSweep = maxPendingPartialsPerWithdrawalsSweep; this.maxPendingDepositsPerEpoch = maxPendingDepositsPerEpoch; + this.maxBlobsPerBlockElectra = maxBlobsPerBlockElectra; + this.targetBlobsPerBlockElectra = targetBlobsPerBlockElectra; + this.maxRequestBlobSidecarsElectra = maxRequestBlobSidecarsElectra; + this.blobSidecarSubnetCountElectra = blobSidecarSubnetCountElectra; } @Override @@ -164,6 +176,26 @@ public int getMaxPendingDepositsPerEpoch() { return maxPendingDepositsPerEpoch; } + @Override + public int getMaxBlobsPerBlockElectra() { + return maxBlobsPerBlockElectra; + } + + @Override + public int getTargetBlobsPerBlockElectra() { + return targetBlobsPerBlockElectra; + } + + @Override + public int getBlobSidecarSubnetCountElectra() { + return blobSidecarSubnetCountElectra; + } + + @Override + public int getMaxRequestBlobSidecarsElectra() { + return maxRequestBlobSidecarsElectra; + } + @Override public Optional toVersionElectra() { return Optional.of(this); @@ -195,7 +227,11 @@ public boolean equals(final Object o) { && maxWithdrawalRequestsPerPayload == that.maxWithdrawalRequestsPerPayload && maxConsolidationRequestsPerPayload == that.maxConsolidationRequestsPerPayload && maxPendingPartialsPerWithdrawalsSweep == that.maxPendingPartialsPerWithdrawalsSweep - && maxPendingDepositsPerEpoch == that.maxPendingDepositsPerEpoch; + && maxPendingDepositsPerEpoch == that.maxPendingDepositsPerEpoch + && maxBlobsPerBlockElectra == that.maxBlobsPerBlockElectra + && targetBlobsPerBlockElectra == that.targetBlobsPerBlockElectra + && maxRequestBlobSidecarsElectra == that.maxRequestBlobSidecarsElectra + && blobSidecarSubnetCountElectra == that.blobSidecarSubnetCountElectra; } @Override @@ -218,6 +254,10 @@ public int hashCode() { maxWithdrawalRequestsPerPayload, maxConsolidationRequestsPerPayload, maxPendingPartialsPerWithdrawalsSweep, - maxPendingDepositsPerEpoch); + maxPendingDepositsPerEpoch, + maxBlobsPerBlockElectra, + targetBlobsPerBlockElectra, + maxRequestBlobSidecarsElectra, + blobSidecarSubnetCountElectra); } } diff --git a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/ElectraBuilder.java b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/ElectraBuilder.java index f920fb56cb7..baafd2a7691 100644 --- a/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/ElectraBuilder.java +++ b/ethereum/spec/src/main/java/tech/pegasys/teku/spec/config/builder/ElectraBuilder.java @@ -47,6 +47,10 @@ public class ElectraBuilder implements ForkConfigBuilder getValidationMap() { constants.put("maxWithdrawalRequestsPerPayload", maxWithdrawalRequestsPerPayload); constants.put("maxPendingPartialsPerWithdrawalsSweep", maxPendingPartialsPerWithdrawalsSweep); constants.put("maxPendingDepositsPerEpoch", maxPendingDepositsPerEpoch); + constants.put("maxBlobsPerBlockElectra", maxBlobsPerBlockElectra); + constants.put("targetBlobsPerBlockElectra", targetBlobsPerBlockElectra); + constants.put("maxRequestBlobSidecarsElectra", maxRequestBlobSidecarsElectra); + constants.put("blobSidecarSubnetCountElectra", blobSidecarSubnetCountElectra); return constants; } diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/chiado.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/chiado.yaml index 930d8747c0c..7f30b5f6f47 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/chiado.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/chiado.yaml @@ -133,4 +133,11 @@ MAX_REQUEST_BLOB_SIDECARS: 768 # `2**14` (= 16384 epochs, ~15 days) MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 16384 # `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 \ No newline at end of file +BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/ephemery.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/ephemery.yaml index 6e495459f0f..edb3cf4bdbf 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/ephemery.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/ephemery.yaml @@ -124,6 +124,13 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 + # [New in Electra:EIP7251] MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000 # 2**7 * 10**9 (= 128,000,000,000) MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 256000000000 # 2**8 * 10**9 (= 256,000,000,000) \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml index 96c573778cf..5640cb48012 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/gnosis.yaml @@ -132,4 +132,11 @@ MAX_REQUEST_BLOB_SIDECARS: 768 # `2**14` (= 16384 epochs, ~15 days) MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 16384 # `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 \ No newline at end of file +BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml index 998bde00999..14f21a8d122 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/holesky.yaml @@ -126,4 +126,11 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 # `uint64(6)` -MAX_BLOBS_PER_BLOCK: 6 \ No newline at end of file +MAX_BLOBS_PER_BLOCK: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml index 3eabebee76f..e2743e63852 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/less-swift.yaml @@ -135,4 +135,11 @@ MAX_REQUEST_BLOB_SIDECARS: 768 # `2**12` (= 4096 epochs, ~18 days) MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 \ No newline at end of file +BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/lukso.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/lukso.yaml index 0844794f54e..5c92cee8fdd 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/lukso.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/lukso.yaml @@ -155,3 +155,10 @@ MAX_REQUEST_BLOB_SIDECARS: 768 MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml index 01e569037e6..f9bd4b00c30 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/mainnet.yaml @@ -143,6 +143,13 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 + # [New in Electra:EIP7251] MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000 # 2**7 * 10**9 (= 128,000,000,000) MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 256000000000 # 2**8 * 10**9 (= 256,000,000,000) \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml index 73eb9889463..3a160fafec3 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/minimal.yaml @@ -143,6 +143,13 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 + # [New in Electra:EIP7251] MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 64000000000 # 2**6 * 10**9 (= 64,000,000,000) MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 128000000000 # 2**7 * 10**9 (= 128,000,000,000) \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/sepolia.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/sepolia.yaml index 8b6bfc6f2d4..5df8b19e59a 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/sepolia.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/sepolia.yaml @@ -117,4 +117,11 @@ MAX_REQUEST_BLOB_SIDECARS: 768 # `2**12` (= 4096 epochs, ~18 days) MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 \ No newline at end of file +BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 \ No newline at end of file diff --git a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml index fd76be015b7..743185e8cac 100644 --- a/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml +++ b/ethereum/spec/src/main/resources/tech/pegasys/teku/spec/config/configs/swift.yaml @@ -138,6 +138,13 @@ MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` BLOB_SIDECAR_SUBNET_COUNT: 6 +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 + # [New in Electra:EIP7251] MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 64000000000 # 2**6 * 10**9 (= 64,000,000,000) MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 128000000000 # 2**7 * 10**9 (= 128,000,000,000) \ No newline at end of file diff --git a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigElectraTest.java b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigElectraTest.java index e17f6cd61c6..0691cc70fb9 100644 --- a/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigElectraTest.java +++ b/ethereum/spec/src/test/java/tech/pegasys/teku/spec/config/SpecConfigElectraTest.java @@ -96,6 +96,10 @@ private SpecConfigElectra createRandomElectraConfig( dataStructureUtil.randomPositiveInt(8192), dataStructureUtil.randomPositiveInt(16), dataStructureUtil.randomPositiveInt(8), - dataStructureUtil.randomPositiveInt(16)) {}; + dataStructureUtil.randomPositiveInt(16), + dataStructureUtil.randomPositiveInt(8), + dataStructureUtil.randomPositiveInt(4), + dataStructureUtil.randomPositiveInt(1024), + dataStructureUtil.randomPositiveInt(8)) {}; } } diff --git a/teku/src/test/resources/tech/pegasys/teku/cli/subcommand/deneb_config.yaml b/teku/src/test/resources/tech/pegasys/teku/cli/subcommand/deneb_config.yaml index da66fcfb737..d97fa353af4 100644 --- a/teku/src/test/resources/tech/pegasys/teku/cli/subcommand/deneb_config.yaml +++ b/teku/src/test/resources/tech/pegasys/teku/cli/subcommand/deneb_config.yaml @@ -138,4 +138,11 @@ MAX_REQUEST_BLOB_SIDECARS: 768 # `2**12` (= 4096 epochs, ~18 days) MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096 # `6` -BLOB_SIDECAR_SUBNET_COUNT: 6 \ No newline at end of file +BLOB_SIDECAR_SUBNET_COUNT: 6 + +# Electra +MAX_BLOBS_PER_BLOCK_ELECTRA: 8 +# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA +MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1024 +BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 8 +TARGET_BLOBS_PER_BLOCK_ELECTRA: 4 \ No newline at end of file