From 3acbb3ea6c689f571f1ea10bcecfa35e94eee7d6 Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Tue, 16 May 2023 10:05:35 +0200 Subject: [PATCH] fix missing shuffling dependent slot computation --- beacon_chain/consensus_object_pools/block_pools_types.nim | 3 +++ beacon_chain/rpc/rest_validator_api.nim | 2 +- beacon_chain/spec/beacon_time.nim | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/beacon_chain/consensus_object_pools/block_pools_types.nim b/beacon_chain/consensus_object_pools/block_pools_types.nim index 75c1477f7..832e04bd8 100644 --- a/beacon_chain/consensus_object_pools/block_pools_types.nim +++ b/beacon_chain/consensus_object_pools/block_pools_types.nim @@ -353,6 +353,9 @@ type block_root* {.serializedFieldName: "block".}: Eth2Digest optimistic* {.serializedFieldName: "execution_optimistic".}: Option[bool] +func attester_dependent_slot*(shuffling: ShufflingRef): Slot = + dependent_slot((if shuffling.epoch == 0: Epoch(0) else: shuffling.epoch - 1)) + template head*(dag: ChainDAGRef): BlockRef = dag.headState.blck template frontfill*(dagParam: ChainDAGRef): Opt[BlockId] = diff --git a/beacon_chain/rpc/rest_validator_api.nim b/beacon_chain/rpc/rest_validator_api.nim index de9cbf248..9162d4201 100644 --- a/beacon_chain/rpc/rest_validator_api.nim +++ b/beacon_chain/rpc/rest_validator_api.nim @@ -104,7 +104,7 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) = res let optimistic = node.getShufflingOptimistic( - qepoch.shufflingDependentSlot, + shufflingRef.attester_dependent_slot, shufflingRef.attester_dependent_root) return RestApiResponse.jsonResponseWRoot( diff --git a/beacon_chain/spec/beacon_time.nim b/beacon_chain/spec/beacon_time.nim index b4c971129..613845c06 100644 --- a/beacon_chain/spec/beacon_time.nim +++ b/beacon_chain/spec/beacon_time.nim @@ -254,6 +254,10 @@ template start_slot*(period: SyncCommitteePeriod): Slot = if period >= maxPeriod: FAR_FUTURE_SLOT else: Slot(period * SLOTS_PER_SYNC_COMMITTEE_PERIOD) +func dependent_slot*(epoch: Epoch): Slot = + if epoch == 0: Slot(0) + else: epoch.start_slot() - 1 + func `$`*(t: BeaconTime): string = if t.ns_since_genesis >= 0: $(timer.nanoseconds(t.ns_since_genesis))