@@ -18,7 +18,7 @@ import Cardano.Prelude
1818import Cardano.Slotting.Slot (EpochNo (.. ))
1919
2020import Cardano.DbSync.Api
21- import Cardano.DbSync.Api.Types (EpochStatistics (.. ), SyncEnv (.. ), UnicodeNullSource , formatUnicodeNullSource )
21+ import Cardano.DbSync.Api.Types (EpochStatistics (.. ), SyncEnv (.. ), InsertOptions ( .. ), UnicodeNullSource , formatUnicodeNullSource )
2222import Cardano.DbSync.Cache.Types (textShowCacheStats )
2323import Cardano.DbSync.Era.Cardano.Util (insertEpochSyncTime , resetEpochStatistics )
2424import qualified Cardano.DbSync.Era.Shelley.Generic as Generic
@@ -54,6 +54,7 @@ insertNewEpochLedgerEvents syncEnv currentEpochNo@(EpochNo curEpoch) =
5454 tracer = getTrace syncEnv
5555 cache = envCache syncEnv
5656 ntw = getNetwork syncEnv
57+ iopts = getInsertOptions syncEnv
5758
5859 subFromCurrentEpoch :: Word64 -> EpochNo
5960 subFromCurrentEpoch m =
@@ -127,19 +128,20 @@ insertNewEpochLedgerEvents syncEnv currentEpochNo@(EpochNo curEpoch) =
127128 LedgerAdaPots _ ->
128129 pure () -- These are handled separately by insertBlock
129130 LedgerGovInfo enacted dropped expired uncl -> do
130- unless (Set. null uncl) $
131- liftIO $
132- logInfo tracer $
133- " Found " <> textShow (Set. size uncl) <> " unclaimed proposal refunds"
134- updateDropped syncEnv (EpochNo curEpoch) (garGovActionId <$> (dropped <> expired))
135- let refunded = filter (\ e -> Set. notMember (garGovActionId e) uncl) (enacted <> dropped <> expired)
136- insertProposalRefunds syncEnv ntw (subFromCurrentEpoch 1 ) currentEpochNo refunded -- TODO: check if they are disjoint to avoid double entries.
137- forM_ enacted $ \ gar -> do
138- gaId <- resolveGovActionProposal syncEnv (garGovActionId gar)
139- void $ lift $ DB. updateGovActionEnacted gaId (unEpochNo currentEpochNo)
140- whenJust (garMTreasury gar) $ \ treasuryMap -> do
141- let rewards = Map. mapKeys Ledger. raCredential $ Map. map (Set. singleton . mkTreasuryReward) treasuryMap
142- insertRewardRests syncEnv ntw (subFromCurrentEpoch 1 ) currentEpochNo (Map. toList rewards)
131+ when (ioGov iopts) $ do
132+ unless (Set. null uncl) $
133+ liftIO $
134+ logInfo tracer $
135+ " Found " <> textShow (Set. size uncl) <> " unclaimed proposal refunds"
136+ updateDropped syncEnv (EpochNo curEpoch) (garGovActionId <$> (dropped <> expired))
137+ let refunded = filter (\ e -> Set. notMember (garGovActionId e) uncl) (enacted <> dropped <> expired)
138+ insertProposalRefunds syncEnv ntw (subFromCurrentEpoch 1 ) currentEpochNo refunded -- TODO: check if they are disjoint to avoid double entries.
139+ forM_ enacted $ \ gar -> do
140+ gaId <- resolveGovActionProposal syncEnv (garGovActionId gar)
141+ void $ lift $ DB. updateGovActionEnacted gaId (unEpochNo currentEpochNo)
142+ whenJust (garMTreasury gar) $ \ treasuryMap -> do
143+ let rewards = Map. mapKeys Ledger. raCredential $ Map. map (Set. singleton . mkTreasuryReward) treasuryMap
144+ insertRewardRests syncEnv ntw (subFromCurrentEpoch 1 ) currentEpochNo (Map. toList rewards)
143145 LedgerMirDist rwd -> do
144146 unless (Map. null rwd) $ do
145147 let rewards = Map. toList rwd
0 commit comments