From e5c8cf5bad4bb4ed280c0ecb195ffe4bcbf26bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ecl=C3=A9sio=20Junior?= Date: Thu, 9 Jun 2022 15:31:11 -0400 Subject: [PATCH] fix(state/epoch): assign epoch 1 when block number is 0 (#2592) * fix: assign `nextEpoch` to 1 when block number 0 --- dot/state/epoch.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/dot/state/epoch.go b/dot/state/epoch.go index 2862e622df..c53ed7f799 100644 --- a/dot/state/epoch.go +++ b/dot/state/epoch.go @@ -546,13 +546,16 @@ func (s *EpochState) FinalizeBABENextEpochData(finalizedHeader *types.Header) er s.nextEpochDataLock.Lock() defer s.nextEpochDataLock.Unlock() - finalizedBlockEpoch, err := s.GetEpochForBlock(finalizedHeader) - if err != nil { - return fmt.Errorf("cannot get epoch for block %d (%s): %w", - finalizedHeader.Number, finalizedHeader.Hash(), err) - } + var nextEpoch uint64 = 1 + if finalizedHeader.Number != 0 { + finalizedBlockEpoch, err := s.GetEpochForBlock(finalizedHeader) + if err != nil { + return fmt.Errorf("cannot get epoch for block %d (%s): %w", + finalizedHeader.Number, finalizedHeader.Hash(), err) + } - nextEpoch := finalizedBlockEpoch + 1 + nextEpoch = finalizedBlockEpoch + 1 + } epochInDatabase, err := s.getEpochDataFromDatabase(nextEpoch) @@ -600,13 +603,16 @@ func (s *EpochState) FinalizeBABENextConfigData(finalizedHeader *types.Header) e s.nextConfigDataLock.Lock() defer s.nextConfigDataLock.Unlock() - finalizedBlockEpoch, err := s.GetEpochForBlock(finalizedHeader) - if err != nil { - return fmt.Errorf("cannot get epoch for block %d (%s): %w", - finalizedHeader.Number, finalizedHeader.Hash(), err) - } + var nextEpoch uint64 = 1 + if finalizedHeader.Number != 0 { + finalizedBlockEpoch, err := s.GetEpochForBlock(finalizedHeader) + if err != nil { + return fmt.Errorf("cannot get epoch for block %d (%s): %w", + finalizedHeader.Number, finalizedHeader.Hash(), err) + } - nextEpoch := finalizedBlockEpoch + 1 + nextEpoch = finalizedBlockEpoch + 1 + } configInDatabase, err := s.getConfigDataFromDatabase(nextEpoch)