Skip to content

Commit 9e9bc25

Browse files
committed
Fix drep_distr being computed multiple times
Signed-off-by: Kostas Dermentzis <kostas.dermentzis@iohk.io>
1 parent d1600de commit 9e9bc25

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

  • cardano-db-sync/src/Cardano/DbSync/Ledger

cardano-db-sync/src/Cardano/DbSync/Ledger/State.hs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,13 @@ applyBlock env blk = do
320320
appResult <- atomically $ do
321321
let ledgerEventsFull = mapMaybe (convertAuxLedgerEvent (leHasRewards env)) (Consensus.lrEvents newResult)
322322
(ledgerEvents, deposits) = splitDeposits ledgerEventsFull
323-
!newLedgerState = finaliseDrepDistr $ clsState (Consensus.lrResult newResult)
324-
!details <- getSlotDetails env (ledgerState newLedgerState) time (cardanoBlockSlotNo blk)
325-
!newEpoch <- fromEitherSTM $ mkOnNewEpoch (clsState oldCls) newLedgerState (findAdaPots ledgerEvents)
326-
let !newEpochBlockNo = applyToEpochBlockNo (isByronLedger newLedgerState) (isJust newEpoch) (clsEpochBlockNo oldCls)
327-
!newState = (Consensus.lrResult newResult) {clsState = newLedgerState, clsEpochBlockNo = newEpochBlockNo}
323+
!rawLedgerState = clsState (Consensus.lrResult newResult)
324+
!details <- getSlotDetails env (ledgerState rawLedgerState) time (cardanoBlockSlotNo blk)
325+
!newEpoch <- fromEitherSTM $ mkOnNewEpoch (clsState oldCls) rawLedgerState (findAdaPots ledgerEvents)
326+
let !newLedgerState = case newEpoch of
327+
Just _ -> finaliseDrepDistr rawLedgerState
328+
Nothing -> rawLedgerState
329+
!newState = (Consensus.lrResult newResult) {clsState = newLedgerState}
328330
pure $
329331
if leUseLedger env
330332
then

0 commit comments

Comments
 (0)