switch some beacon_chain/spec/ from eip4844.Foo to deneb.Foo (#4642)

This commit is contained in:
tersec 2023-02-20 09:45:49 +01:00 committed by GitHub
parent 629b005c27
commit 72797cad09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 82 additions and 80 deletions

View File

@ -0,0 +1,2 @@
import ./eip4844
export eip4844

View File

@ -16,7 +16,7 @@ import
./datatypes/[phase0, altair, bellatrix, capella],
./eth2_merkleization
from ./datatypes/eip4844 import SignedBeaconBlock, TrustedSignedBeaconBlock
from ./datatypes/deneb import SignedBeaconBlock, TrustedSignedBeaconBlock
export phase0, altair, ssz_codec, ssz_serialization, eth2_merkleization
@ -54,13 +54,13 @@ template readSszBytes*(
data: openArray[byte], val: var capella.TrustedSignedBeaconBlock, updateRoot = true) =
readAndUpdateRoot(data, val, updateRoot)
template readSszBytes*(
data: openArray[byte], val: var eip4844.SignedBeaconBlock, updateRoot = true) =
data: openArray[byte], val: var deneb.SignedBeaconBlock, updateRoot = true) =
readAndUpdateRoot(data, val, updateRoot)
template readSszBytes*(
data: openArray[byte], val: var eip4844.TrustedSignedBeaconBlock, updateRoot = true) =
data: openArray[byte], val: var deneb.TrustedSignedBeaconBlock, updateRoot = true) =
readAndUpdateRoot(data, val, updateRoot)
template readSszBytes*(
data: openArray[byte], val: var eip4844.SignedBeaconBlockAndBlobsSidecar, updateRoot = true) =
data: openArray[byte], val: var deneb.SignedBeaconBlockAndBlobsSidecar, updateRoot = true) =
readSszValue(data, val)
val.beacon_block.root = hash_tree_root(val.beacon_block.message)

View File

@ -16,11 +16,11 @@ import
"."/[
block_id, eth2_merkleization, eth2_ssz_serialization,
forks_light_client, presets],
./datatypes/[phase0, altair, bellatrix, capella, eip4844],
./datatypes/[phase0, altair, bellatrix, capella, deneb],
./mev/bellatrix_mev
export
extras, block_id, phase0, altair, bellatrix, capella, eip4844,
extras, block_id, phase0, altair, bellatrix, capella, deneb,
eth2_merkleization, eth2_ssz_serialization, forks_light_client,
presets, bellatrix_mev
@ -53,14 +53,14 @@ type
altair.BeaconState |
bellatrix.BeaconState |
capella.BeaconState |
eip4844.BeaconState
deneb.BeaconState
ForkyHashedBeaconState* =
phase0.HashedBeaconState |
altair.HashedBeaconState |
bellatrix.HashedBeaconState |
capella.HashedBeaconState |
eip4844.HashedBeaconState
deneb.HashedBeaconState
ForkedHashedBeaconState* = object
case kind*: ConsensusFork
@ -68,38 +68,38 @@ type
of ConsensusFork.Altair: altairData*: altair.HashedBeaconState
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.HashedBeaconState
of ConsensusFork.Capella: capellaData*: capella.HashedBeaconState
of ConsensusFork.EIP4844: eip4844Data*: eip4844.HashedBeaconState
of ConsensusFork.EIP4844: eip4844Data*: deneb.HashedBeaconState
ForkyExecutionPayload* =
bellatrix.ExecutionPayload |
capella.ExecutionPayload |
eip4844.ExecutionPayload
deneb.ExecutionPayload
ForkyExecutionPayloadHeader* =
bellatrix.ExecutionPayloadHeader |
capella.ExecutionPayloadHeader |
eip4844.ExecutionPayloadHeader
deneb.ExecutionPayloadHeader
ForkyBeaconBlockBody* =
phase0.BeaconBlockBody |
altair.BeaconBlockBody |
bellatrix.BeaconBlockBody |
capella.BeaconBlockBody |
eip4844.BeaconBlockBody
deneb.BeaconBlockBody
ForkySigVerifiedBeaconBlockBody* =
phase0.SigVerifiedBeaconBlockBody |
altair.SigVerifiedBeaconBlockBody |
bellatrix.SigVerifiedBeaconBlockBody |
capella.SigVerifiedBeaconBlockBody |
eip4844.SigVerifiedBeaconBlockBody
deneb.SigVerifiedBeaconBlockBody
ForkyTrustedBeaconBlockBody* =
phase0.TrustedBeaconBlockBody |
altair.TrustedBeaconBlockBody |
bellatrix.TrustedBeaconBlockBody |
capella.TrustedBeaconBlockBody |
eip4844.TrustedBeaconBlockBody
deneb.TrustedBeaconBlockBody
SomeForkyBeaconBlockBody* =
ForkyBeaconBlockBody |
@ -111,21 +111,21 @@ type
altair.BeaconBlock |
bellatrix.BeaconBlock |
capella.BeaconBlock |
eip4844.BeaconBlock
deneb.BeaconBlock
ForkySigVerifiedBeaconBlock* =
phase0.SigVerifiedBeaconBlock |
altair.SigVerifiedBeaconBlock |
bellatrix.SigVerifiedBeaconBlock |
capella.SigVerifiedBeaconBlock |
eip4844.SigVerifiedBeaconBlock
deneb.SigVerifiedBeaconBlock
ForkyTrustedBeaconBlock* =
phase0.TrustedBeaconBlock |
altair.TrustedBeaconBlock |
bellatrix.TrustedBeaconBlock |
capella.TrustedBeaconBlock |
eip4844.TrustedBeaconBlock
deneb.TrustedBeaconBlock
SomeForkyBeaconBlock* =
ForkyBeaconBlock |
@ -138,7 +138,7 @@ type
of ConsensusFork.Altair: altairData*: altair.BeaconBlock
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.BeaconBlock
of ConsensusFork.Capella: capellaData*: capella.BeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: eip4844.BeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: deneb.BeaconBlock
Web3SignerForkedBeaconBlock* = object
case kind*: ConsensusFork
@ -162,14 +162,14 @@ type
of ConsensusFork.Altair: altairData*: altair.TrustedBeaconBlock
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.TrustedBeaconBlock
of ConsensusFork.Capella: capellaData*: capella.TrustedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: eip4844.TrustedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: deneb.TrustedBeaconBlock
ForkySignedBeaconBlock* =
phase0.SignedBeaconBlock |
altair.SignedBeaconBlock |
bellatrix.SignedBeaconBlock |
capella.SignedBeaconBlock |
eip4844.SignedBeaconBlock
deneb.SignedBeaconBlock
ForkedSignedBeaconBlock* = object
case kind*: ConsensusFork
@ -177,7 +177,7 @@ type
of ConsensusFork.Altair: altairData*: altair.SignedBeaconBlock
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.SignedBeaconBlock
of ConsensusFork.Capella: capellaData*: capella.SignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: eip4844.SignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: deneb.SignedBeaconBlock
ForkySignedBlindedBeaconBlock* =
phase0.SignedBeaconBlock |
@ -197,21 +197,21 @@ type
altair.SigVerifiedSignedBeaconBlock |
bellatrix.SigVerifiedSignedBeaconBlock |
capella.SigVerifiedSignedBeaconBlock |
eip4844.SigVerifiedSignedBeaconBlock
deneb.SigVerifiedSignedBeaconBlock
ForkyMsgTrustedSignedBeaconBlock* =
phase0.MsgTrustedSignedBeaconBlock |
altair.MsgTrustedSignedBeaconBlock |
bellatrix.MsgTrustedSignedBeaconBlock |
capella.MsgTrustedSignedBeaconBlock |
eip4844.MsgTrustedSignedBeaconBlock
deneb.MsgTrustedSignedBeaconBlock
ForkyTrustedSignedBeaconBlock* =
phase0.TrustedSignedBeaconBlock |
altair.TrustedSignedBeaconBlock |
bellatrix.TrustedSignedBeaconBlock |
capella.TrustedSignedBeaconBlock |
eip4844.TrustedSignedBeaconBlock
deneb.TrustedSignedBeaconBlock
ForkedMsgTrustedSignedBeaconBlock* = object
case kind*: ConsensusFork
@ -219,7 +219,7 @@ type
of ConsensusFork.Altair: altairData*: altair.MsgTrustedSignedBeaconBlock
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.MsgTrustedSignedBeaconBlock
of ConsensusFork.Capella: capellaData*: capella.MsgTrustedSignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: eip4844.MsgTrustedSignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: deneb.MsgTrustedSignedBeaconBlock
ForkedTrustedSignedBeaconBlock* = object
case kind*: ConsensusFork
@ -227,7 +227,7 @@ type
of ConsensusFork.Altair: altairData*: altair.TrustedSignedBeaconBlock
of ConsensusFork.Bellatrix: bellatrixData*: bellatrix.TrustedSignedBeaconBlock
of ConsensusFork.Capella: capellaData*: capella.TrustedSignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: eip4844.TrustedSignedBeaconBlock
of ConsensusFork.EIP4844: eip4844Data*: deneb.TrustedSignedBeaconBlock
SomeForkySignedBeaconBlock* =
ForkySignedBeaconBlock |
@ -262,9 +262,9 @@ type ForkySignedBeaconBlockMaybeBlobs* =
altair.SignedBeaconBlock |
bellatrix.SignedBeaconBlock |
capella.SignedBeaconBlock |
eip4844.SignedBeaconBlockAndBlobsSidecar
deneb.SignedBeaconBlockAndBlobsSidecar
# ForkySignedBeaconBlockMaybeBlobs should only contain types that are gossiped.
static: doAssert not (default(eip4844.SignedBeaconBlock) is ForkySignedBeaconBlockMaybeBlobs)
static: doAssert not (default(deneb.SignedBeaconBlock) is ForkySignedBeaconBlockMaybeBlobs)
template toSignedBeaconBlock*(b: ForkySignedBeaconBlockMaybeBlobs): ForkySignedBeaconBlock =
when b is eip4844.SignedBeaconBlockAndBlobsSidecar:
@ -273,11 +273,11 @@ template toSignedBeaconBlock*(b: ForkySignedBeaconBlockMaybeBlobs): ForkySignedB
b
func optBlobs*(b: ForkySignedBeaconBlockMaybeBlobs):
Opt[eip4844.BlobsSidecar] =
Opt[deneb.BlobsSidecar] =
when b is phase0.SignedBeaconBlock or b is altair.SignedBeaconBlock or
b is bellatrix.SignedBeaconBlock or b is capella.SignedBeaconBlock:
Opt.none(eip4844.BlobsSidecar)
elif b is eip4844.SignedBeaconBlockAndBlobsSidecar:
elif b is deneb.SignedBeaconBlockAndBlobsSidecar:
Opt.some(b.blobs_sidecar)
macro getSymbolFromForkModule(fork: static ConsensusFork,
@ -336,9 +336,9 @@ func new*(T: type ForkedHashedBeaconState, data: capella.BeaconState):
ref ForkedHashedBeaconState =
(ref T)(kind: ConsensusFork.Capella, capellaData: capella.HashedBeaconState(
data: data, root: hash_tree_root(data)))
func new*(T: type ForkedHashedBeaconState, data: eip4844.BeaconState):
func new*(T: type ForkedHashedBeaconState, data: deneb.BeaconState):
ref ForkedHashedBeaconState =
(ref T)(kind: ConsensusFork.EIP4844, eip4844Data: eip4844.HashedBeaconState(
(ref T)(kind: ConsensusFork.EIP4844, eip4844Data: deneb.HashedBeaconState(
data: data, root: hash_tree_root(data)))
template init*(T: type ForkedBeaconBlock, blck: phase0.BeaconBlock): T =
@ -349,7 +349,7 @@ template init*(T: type ForkedBeaconBlock, blck: bellatrix.BeaconBlock): T =
T(kind: ConsensusFork.Bellatrix, bellatrixData: blck)
template init*(T: type ForkedBeaconBlock, blck: capella.BeaconBlock): T =
T(kind: ConsensusFork.Capella, capellaData: blck)
template init*(T: type ForkedBeaconBlock, blck: eip4844.BeaconBlock): T =
template init*(T: type ForkedBeaconBlock, blck: deneb.BeaconBlock): T =
T(kind: ConsensusFork.EIP4844, eip4844Data: blck)
template init*(T: type ForkedTrustedBeaconBlock, blck: phase0.TrustedBeaconBlock): T =
@ -369,7 +369,7 @@ template init*(T: type ForkedSignedBeaconBlock, blck: bellatrix.SignedBeaconBloc
T(kind: ConsensusFork.Bellatrix, bellatrixData: blck)
template init*(T: type ForkedSignedBeaconBlock, blck: capella.SignedBeaconBlock): T =
T(kind: ConsensusFork.Capella, capellaData: blck)
template init*(T: type ForkedSignedBeaconBlock, blck: eip4844.SignedBeaconBlock): T =
template init*(T: type ForkedSignedBeaconBlock, blck: deneb.SignedBeaconBlock): T =
T(kind: ConsensusFork.EIP4844, eip4844Data: blck)
func init*(T: type ForkedSignedBeaconBlock, forked: ForkedBeaconBlock,
@ -397,9 +397,9 @@ func init*(T: type ForkedSignedBeaconBlock, forked: ForkedBeaconBlock,
signature: signature))
of ConsensusFork.EIP4844:
T(kind: ConsensusFork.EIP4844,
eip4844Data: eip4844.SignedBeaconBlock(message: forked.eip4844Data,
root: blockRoot,
signature: signature))
eip4844Data: deneb.SignedBeaconBlock(message: forked.eip4844Data,
root: blockRoot,
signature: signature))
func init*(T: type ForkedSignedBlindedBeaconBlock,
forked: ForkedBlindedBeaconBlock, blockRoot: Eth2Digest,
@ -436,7 +436,7 @@ template init*(T: type ForkedMsgTrustedSignedBeaconBlock, blck: bellatrix.MsgTru
T(kind: ConsensusFork.Bellatrix, bellatrixData: blck)
template init*(T: type ForkedMsgTrustedSignedBeaconBlock, blck: capella.MsgTrustedSignedBeaconBlock): T =
T(kind: ConsensusFork.Capella, capellaData: blck)
template init*(T: type ForkedMsgTrustedSignedBeaconBlock, blck: eip4844.MsgTrustedSignedBeaconBlock): T =
template init*(T: type ForkedMsgTrustedSignedBeaconBlock, blck: deneb.MsgTrustedSignedBeaconBlock): T =
T(kind: ConsensusFork.EIP4844, eip4844Data: blck)
@ -448,7 +448,7 @@ template init*(T: type ForkedTrustedSignedBeaconBlock, blck: bellatrix.TrustedSi
T(kind: ConsensusFork.Bellatrix, bellatrixData: blck)
template init*(T: type ForkedTrustedSignedBeaconBlock, blck: capella.TrustedSignedBeaconBlock): T =
T(kind: ConsensusFork.Capella, capellaData: blck)
template init*(T: type ForkedTrustedSignedBeaconBlock, blck: eip4844.TrustedSignedBeaconBlock): T =
template init*(T: type ForkedTrustedSignedBeaconBlock, blck: deneb.TrustedSignedBeaconBlock): T =
T(kind: ConsensusFork.EIP4844, eip4844Data: blck)
template toString*(kind: ConsensusFork): string =
@ -530,17 +530,17 @@ template toFork*[T:
ConsensusFork.Capella
template toFork*[T:
eip4844.BeaconState |
eip4844.HashedBeaconState |
eip4844.ExecutionPayload |
eip4844.ExecutionPayloadHeader |
eip4844.BeaconBlock |
eip4844.SignedBeaconBlock |
eip4844.SignedBeaconBlockAndBlobsSidecar |
eip4844.TrustedBeaconBlock |
eip4844.SigVerifiedSignedBeaconBlock |
eip4844.MsgTrustedSignedBeaconBlock |
eip4844.TrustedSignedBeaconBlock](
deneb.BeaconState |
deneb.HashedBeaconState |
deneb.ExecutionPayload |
deneb.ExecutionPayloadHeader |
deneb.BeaconBlock |
deneb.SignedBeaconBlock |
deneb.SignedBeaconBlockAndBlobsSidecar |
deneb.TrustedBeaconBlock |
deneb.SigVerifiedSignedBeaconBlock |
deneb.MsgTrustedSignedBeaconBlock |
deneb.TrustedSignedBeaconBlock](
t: type T): ConsensusFork =
ConsensusFork.EIP4844
@ -593,7 +593,7 @@ template withEpochInfo*(
template withEpochInfo*(
state: altair.BeaconState | bellatrix.BeaconState | capella.BeaconState |
eip4844.BeaconState,
deneb.BeaconState,
x: var ForkedEpochInfo, body: untyped): untyped =
if x.kind != EpochInfoFork.Altair:
# Rare, so efficiency not critical

View File

@ -8,7 +8,7 @@
{.push raises: [].}
import
./datatypes/[phase0, altair, bellatrix, capella, eip4844],
./datatypes/[phase0, altair, bellatrix, capella, deneb],
./eth2_merkleization
type
@ -21,27 +21,27 @@ type
ForkyLightClientHeader* =
altair.LightClientHeader |
capella.LightClientHeader |
eip4844.LightClientHeader
deneb.LightClientHeader
ForkyLightClientBootstrap* =
altair.LightClientBootstrap |
capella.LightClientBootstrap |
eip4844.LightClientBootstrap
deneb.LightClientBootstrap
ForkyLightClientUpdate* =
altair.LightClientUpdate |
capella.LightClientUpdate |
eip4844.LightClientUpdate
deneb.LightClientUpdate
ForkyLightClientFinalityUpdate* =
altair.LightClientFinalityUpdate |
capella.LightClientFinalityUpdate |
eip4844.LightClientFinalityUpdate
deneb.LightClientFinalityUpdate
ForkyLightClientOptimisticUpdate* =
altair.LightClientOptimisticUpdate |
capella.LightClientOptimisticUpdate |
eip4844.LightClientOptimisticUpdate
deneb.LightClientOptimisticUpdate
SomeForkyLightClientUpdateWithSyncCommittee* =
ForkyLightClientUpdate
@ -62,7 +62,7 @@ type
ForkyLightClientStore* =
altair.LightClientStore |
capella.LightClientStore |
eip4844.LightClientStore
deneb.LightClientStore
ForkedLightClientHeader* = object
case kind*: LightClientDataFork
@ -73,7 +73,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientHeader
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientHeader
eip4844Data*: deneb.LightClientHeader
ForkedLightClientBootstrap* = object
case kind*: LightClientDataFork
@ -84,7 +84,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientBootstrap
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientBootstrap
eip4844Data*: deneb.LightClientBootstrap
ForkedLightClientUpdate* = object
case kind*: LightClientDataFork
@ -95,7 +95,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientUpdate
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientUpdate
eip4844Data*: deneb.LightClientUpdate
ForkedLightClientFinalityUpdate* = object
case kind*: LightClientDataFork
@ -106,7 +106,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientFinalityUpdate
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientFinalityUpdate
eip4844Data*: deneb.LightClientFinalityUpdate
ForkedLightClientOptimisticUpdate* = object
case kind*: LightClientDataFork
@ -117,7 +117,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientOptimisticUpdate
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientOptimisticUpdate
eip4844Data*: deneb.LightClientOptimisticUpdate
SomeForkedLightClientUpdateWithSyncCommittee* =
ForkedLightClientUpdate
@ -144,7 +144,7 @@ type
of LightClientDataFork.Capella:
capellaData*: capella.LightClientStore
of LightClientDataFork.EIP4844:
eip4844Data*: eip4844.LightClientStore
eip4844Data*: deneb.LightClientStore
func lcDataForkAtEpoch*(
cfg: RuntimeConfig, epoch: Epoch): LightClientDataFork =
@ -180,12 +180,12 @@ template kind*(
template kind*(
x: typedesc[ # `SomeLightClientObject` doesn't work here (Nim 1.6)
eip4844.LightClientHeader |
eip4844.LightClientBootstrap |
eip4844.LightClientUpdate |
eip4844.LightClientFinalityUpdate |
eip4844.LightClientOptimisticUpdate |
eip4844.LightClientStore]): LightClientDataFork =
deneb.LightClientHeader |
deneb.LightClientBootstrap |
deneb.LightClientUpdate |
deneb.LightClientFinalityUpdate |
deneb.LightClientOptimisticUpdate |
deneb.LightClientStore]): LightClientDataFork =
LightClientDataFork.EIP4844
template LightClientHeader*(kind: static LightClientDataFork): auto =
@ -874,24 +874,24 @@ func toEIP4844LightClientHeader(
phase0.SignedBeaconBlock | phase0.TrustedSignedBeaconBlock |
altair.SignedBeaconBlock | altair.TrustedSignedBeaconBlock |
bellatrix.SignedBeaconBlock | bellatrix.TrustedSignedBeaconBlock
): eip4844.LightClientHeader =
): deneb.LightClientHeader =
# Note that during fork transitions, `finalized_header` may still
# point to earlier forks. While Bellatrix blocks also contain an
# `ExecutionPayload` (minus `withdrawals_root`), it was not included
# in the corresponding light client data. To ensure compatibility
# with legacy data going through `upgrade_lc_header_to_capella`,
# leave out execution data.
eip4844.LightClientHeader(
deneb.LightClientHeader(
beacon: blck.message.toBeaconBlockHeader())
func toEIP4844LightClientHeader(
blck: # `SomeSignedBeaconBlock` doesn't work here (Nim 1.6)
capella.SignedBeaconBlock | capella.TrustedSignedBeaconBlock
): eip4844.LightClientHeader =
): deneb.LightClientHeader =
template payload: untyped = blck.message.body.execution_payload
eip4844.LightClientHeader(
deneb.LightClientHeader(
beacon: blck.message.toBeaconBlockHeader(),
execution: eip4844.ExecutionPayloadHeader(
execution: deneb.ExecutionPayloadHeader(
parent_hash: payload.parent_hash,
fee_recipient: payload.fee_recipient,
state_root: payload.state_root,
@ -912,12 +912,12 @@ func toEIP4844LightClientHeader(
func toEIP4844LightClientHeader(
blck: # `SomeSignedBeaconBlock` doesn't work here (Nim 1.6)
eip4844.SignedBeaconBlock | eip4844.TrustedSignedBeaconBlock
): eip4844.LightClientHeader =
deneb.SignedBeaconBlock | deneb.TrustedSignedBeaconBlock
): deneb.LightClientHeader =
template payload: untyped = blck.message.body.execution_payload
eip4844.LightClientHeader(
deneb.LightClientHeader(
beacon: blck.message.toBeaconBlockHeader(),
execution: eip4844.ExecutionPayloadHeader(
execution: deneb.ExecutionPayloadHeader(
parent_hash: payload.parent_hash,
fee_recipient: payload.fee_recipient,
state_root: payload.state_root,
@ -943,7 +943,7 @@ func toLightClientHeader*(
altair.SignedBeaconBlock | altair.TrustedSignedBeaconBlock |
bellatrix.SignedBeaconBlock | bellatrix.TrustedSignedBeaconBlock |
capella.SignedBeaconBlock | capella.TrustedSignedBeaconBlock |
eip4844.SignedBeaconBlock | eip4844.TrustedSignedBeaconBlock,
deneb.SignedBeaconBlock | deneb.TrustedSignedBeaconBlock,
kind: static LightClientDataFork): auto =
when kind == LightClientDataFork.EIP4844:
blck.toEIP4844LightClientHeader()