From f8b76da3ff8c6ff2a30a359a00587b814f069044 Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 18 Aug 2023 19:29:44 +0200 Subject: [PATCH] fix fetching genesis epoch 0 duties / validators with some clients --- rpc/beaconapi.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rpc/beaconapi.go b/rpc/beaconapi.go index c69d54b3..51e51228 100644 --- a/rpc/beaconapi.go +++ b/rpc/beaconapi.go @@ -272,11 +272,14 @@ func (bc *BeaconClient) getEpochAssignments(epoch uint64) (*rpctypes.EpochAssign if err != nil { return nil, err } - depStateRoot := parsedHeader.Data.Header.Message.StateRoot + var depStateRoot string = parsedHeader.Data.Header.Message.StateRoot.String() + if epoch == 0 { + depStateRoot = "genesis" + } assignments := &rpctypes.EpochAssignments{ DependendRoot: parsedProposerResponse.DependentRoot, - DependendState: depStateRoot, + DependendState: parsedHeader.Data.Header.Message.StateRoot, ProposerAssignments: make(map[uint64]uint64), AttestorAssignments: make(map[string][]uint64), } @@ -310,7 +313,7 @@ func (bc *BeaconClient) getEpochAssignments(epoch uint64) (*rpctypes.EpochAssign if epoch >= utils.Config.Chain.Config.AltairForkEpoch { syncCommitteeState := fmt.Sprintf("%s", depStateRoot) - if epoch == utils.Config.Chain.Config.AltairForkEpoch { + if epoch > 0 && epoch == utils.Config.Chain.Config.AltairForkEpoch { syncCommitteeState = fmt.Sprintf("%d", utils.Config.Chain.Config.AltairForkEpoch*utils.Config.Chain.Config.SlotsPerEpoch) }