Skip to content

Commit 7a36983

Browse files
committed
Simplify EpochState to CurrentEpochNo
1 parent e41159d commit 7a36983

File tree

2 files changed

+24
-28
lines changed

2 files changed

+24
-28
lines changed

cardano-db-sync/src/Cardano/DbSync/Api.hs

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -261,36 +261,33 @@ disableAllInsertOptions =
261261
, sioJsonType = JsonTypeText
262262
}
263263

264-
initEpochState :: EpochState
265-
initEpochState =
266-
EpochState
267-
{ esInitialized = False
268-
, esEpochNo = Strict.Nothing
264+
initCurrentEpochNo :: CurrentEpochNo
265+
initCurrentEpochNo =
266+
CurrentEpochNo
267+
{ cenEpochNo = Strict.Nothing
269268
}
270269

271270
generateNewEpochEvents :: SyncEnv -> SlotDetails -> STM [LedgerEvent]
272271
generateNewEpochEvents env details = do
273-
!oldEpochState <- readTVar (envEpochState env)
274-
writeTVar (envEpochState env) newEpochState
275-
pure $ maybeToList (newEpochEvent oldEpochState)
272+
!lastEpochNo <- readTVar (envCurrentEpochNo env)
273+
writeTVar (envCurrentEpochNo env) newCurrentEpochNo
274+
pure $ maybeToList (newEpochEvent lastEpochNo)
276275
where
277276
currentEpochNo :: EpochNo
278277
currentEpochNo = sdEpochNo details
279278

280-
newEpochEvent :: EpochState -> Maybe LedgerEvent
281-
newEpochEvent oldEpochState =
282-
case esEpochNo oldEpochState of
279+
newEpochEvent :: CurrentEpochNo -> Maybe LedgerEvent
280+
newEpochEvent lastEpochNo =
281+
case cenEpochNo lastEpochNo of
283282
Strict.Nothing -> Just $ LedgerStartAtEpoch currentEpochNo
284-
Strict.Just oldEpoch ->
285-
if currentEpochNo == EpochNo (1 + unEpochNo oldEpoch)
286-
then Just $ LedgerNewEpoch currentEpochNo (getSyncStatus details)
287-
else Nothing
288-
289-
newEpochState :: EpochState
290-
newEpochState =
291-
EpochState
292-
{ esInitialized = True
293-
, esEpochNo = Strict.Just currentEpochNo
283+
Strict.Just oldEpoch | currentEpochNo == EpochNo (1 + unEpochNo oldEpoch)
284+
-> Just $ LedgerNewEpoch currentEpochNo (getSyncStatus details)
285+
_ -> Nothing
286+
287+
newCurrentEpochNo :: CurrentEpochNo
288+
newCurrentEpochNo =
289+
CurrentEpochNo
290+
{ cenEpochNo = Strict.Just currentEpochNo
294291
}
295292

296293
getTopLevelConfig :: SyncEnv -> TopLevelConfig CardanoBlock
@@ -395,7 +392,7 @@ mkSyncEnv trce backend connectionString syncOptions protoInfo nw nwMagic systemS
395392
oprq <- newTBQueueIO 1000
396393
oawq <- newTBQueueIO 1000
397394
oarq <- newTBQueueIO 1000
398-
epochVar <- newTVarIO initEpochState
395+
epochVar <- newTVarIO initCurrentEpochNo
399396
epochSyncTime <- newTVarIO =<< getCurrentTime
400397
ledgerEnvType <-
401398
case (enpMaybeLedgerStateDir syncNP, hasLedger' syncNodeConfigFromFile) of
@@ -425,7 +422,7 @@ mkSyncEnv trce backend connectionString syncOptions protoInfo nw nwMagic systemS
425422
, envConnectionString = connectionString
426423
, envConsistentLevel = consistentLevelVar
427424
, envDbConstraints = dbCNamesVar
428-
, envEpochState = epochVar
425+
, envCurrentEpochNo = epochVar
429426
, envEpochSyncTime = epochSyncTime
430427
, envIndexes = indexesVar
431428
, envIsFixed = fixDataVar

cardano-db-sync/src/Cardano/DbSync/Api/Types.hs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module Cardano.DbSync.Api.Types (
1010
RunMigration,
1111
FixesRan (..),
1212
ConsistentLevel (..),
13-
EpochState (..),
13+
CurrentEpochNo (..),
1414
) where
1515

1616
import qualified Cardano.Db as DB
@@ -43,7 +43,7 @@ data SyncEnv = SyncEnv
4343
, envConnectionString :: !ConnectionString
4444
, envConsistentLevel :: !(StrictTVar IO ConsistentLevel)
4545
, envDbConstraints :: !(StrictTVar IO DB.ManualDbConstraints)
46-
, envEpochState :: !(StrictTVar IO EpochState)
46+
, envCurrentEpochNo :: !(StrictTVar IO CurrentEpochNo)
4747
, envEpochSyncTime :: !(StrictTVar IO UTCTime)
4848
, envIndexes :: !(StrictTVar IO Bool)
4949
, envIsFixed :: !(StrictTVar IO FixesRan)
@@ -99,7 +99,6 @@ data FixesRan = NoneFixRan | DataFixRan | AllFixRan
9999
data ConsistentLevel = Consistent | DBAheadOfLedger | Unchecked
100100
deriving (Show, Eq)
101101

102-
data EpochState = EpochState
103-
{ esInitialized :: !Bool
104-
, esEpochNo :: !(Strict.Maybe EpochNo)
102+
newtype CurrentEpochNo = CurrentEpochNo
103+
{ cenEpochNo :: Strict.Maybe EpochNo
105104
}

0 commit comments

Comments
 (0)