@@ -17,10 +17,24 @@ module Test.Cardano.Db.Mock.Config (
1717 fingerprintRoot ,
1818 getDBSyncPGPass ,
1919 getPoolLayer ,
20+
21+ -- * Configs
2022 mkConfig ,
2123 mkSyncNodeConfig ,
22- mkCustomSyncNodeConfig ,
2324 mkConfigDir ,
25+ configPruneForceTxIn ,
26+ configPrune ,
27+ configConsume ,
28+ configBootstrap ,
29+ configPlutusDisable ,
30+ configMultiAssetsDisable ,
31+ configShelleyDisable ,
32+ configRemoveJsonFromSchema ,
33+ configRemoveJsonFromSchemaFalse ,
34+ configLedgerIgnore ,
35+ configMetadataEnable ,
36+ configMetadataDisable ,
37+ configMetadataKeys ,
2438 mkFingerPrint ,
2539 mkMutableDir ,
2640 mkDBSyncEnv ,
@@ -51,13 +65,14 @@ import qualified Cardano.Db as Db
5165import Cardano.DbSync
5266import Cardano.DbSync.Config
5367import Cardano.DbSync.Config.Cardano
68+ import Cardano.DbSync.Config.Types
5469import Cardano.DbSync.Error (runOrThrowIO )
5570import Cardano.DbSync.Types (CardanoBlock , MetricSetters (.. ))
5671import Cardano.Mock.ChainSync.Server
5772import Cardano.Mock.Forging.Interpreter
5873import Cardano.Node.Protocol.Shelley (readLeaderCredentials )
5974import Cardano.Node.Types (ProtocolFilepaths (.. ))
60- import Cardano.Prelude (ReaderT , panic , stderr , textShow )
75+ import Cardano.Prelude (NonEmpty ( (:|) ), ReaderT , panic , stderr , textShow )
6176import Cardano.SMASH.Server.PoolDataLayer
6277import Control.Concurrent.Async (Async , async , cancel , poll )
6378import Control.Concurrent.STM (atomically )
@@ -117,7 +132,6 @@ data CommandLineArgs = CommandLineArgs
117132 , claFullMode :: Bool
118133 , claMigrateConsumed :: Bool
119134 , claPruneTxOut :: Bool
120- , claBootstrap :: Bool
121135 }
122136
123137data WithConfigArgs = WithConfigArgs
@@ -243,11 +257,6 @@ mkSyncNodeConfig configFilePath cmdLineArgs =
243257 configFilename = claConfigFilename cmdLineArgs
244258 configDir = mkConfigDir configFilePath
245259
246- mkCustomSyncNodeConfig :: FilePath -> CommandLineArgs -> (SyncNodeConfig -> SyncNodeConfig ) -> IO SyncNodeConfig
247- mkCustomSyncNodeConfig cfgDir args updateFn = do
248- initConfigFile <- mkSyncNodeConfig cfgDir args
249- pure $ updateFn initConfigFile
250-
251260mkShelleyCredentials :: FilePath -> IO [ShelleyLeaderCredentials StandardCrypto ]
252261mkShelleyCredentials bulkFile = do
253262 eitherM (panic . textShow) pure $ runExceptT $ readLeaderCredentials (Just protFiles)
@@ -285,10 +294,65 @@ mkSyncNodeParams staticDir mutableDir CommandLineArgs {..} = do
285294 , enpMaybeRollback = Nothing
286295 }
287296
297+ ------------------------------------------------------------------------------
298+ -- Custom Configs
299+ ------------------------------------------------------------------------------
288300mkConfigFile :: FilePath -> FilePath -> ConfigFile
289301mkConfigFile staticDir cliConfigFilename =
290302 ConfigFile $ staticDir </> cliConfigFilename
291303
304+ configPruneForceTxIn :: SyncNodeConfig -> SyncNodeConfig
305+ configPruneForceTxIn cfg = do
306+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioTxOut = TxOutPrune (ForceTxIn True )}}
307+
308+ configPrune :: SyncNodeConfig -> SyncNodeConfig
309+ configPrune cfg = do
310+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioTxOut = TxOutPrune (ForceTxIn False )}}
311+
312+ configConsume :: SyncNodeConfig -> SyncNodeConfig
313+ configConsume cfg = do
314+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioTxOut = TxOutConsumed (ForceTxIn False )}}
315+
316+ configBootstrap :: SyncNodeConfig -> SyncNodeConfig
317+ configBootstrap cfg = do
318+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioTxOut = TxOutBootstrap (ForceTxIn False )}}
319+
320+ configPlutusDisable :: SyncNodeConfig -> SyncNodeConfig
321+ configPlutusDisable cfg = do
322+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioPlutus = PlutusDisable }}
323+
324+ configMultiAssetsDisable :: SyncNodeConfig -> SyncNodeConfig
325+ configMultiAssetsDisable cfg = do
326+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioMultiAsset = MultiAssetDisable }}
327+
328+ configShelleyDisable :: SyncNodeConfig -> SyncNodeConfig
329+ configShelleyDisable cfg = do
330+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioShelley = ShelleyDisable }}
331+
332+ configRemoveJsonFromSchema :: SyncNodeConfig -> SyncNodeConfig
333+ configRemoveJsonFromSchema cfg = do
334+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioRemoveJsonbFromSchema = RemoveJsonbFromSchemaConfig True }}
335+
336+ configRemoveJsonFromSchemaFalse :: SyncNodeConfig -> SyncNodeConfig
337+ configRemoveJsonFromSchemaFalse cfg = do
338+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioRemoveJsonbFromSchema = RemoveJsonbFromSchemaConfig False }}
339+
340+ configLedgerIgnore :: SyncNodeConfig -> SyncNodeConfig
341+ configLedgerIgnore cfg = do
342+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioLedger = LedgerIgnore }}
343+
344+ configMetadataEnable :: SyncNodeConfig -> SyncNodeConfig
345+ configMetadataEnable cfg = do
346+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioMetadata = MetadataEnable }}
347+
348+ configMetadataDisable :: SyncNodeConfig -> SyncNodeConfig
349+ configMetadataDisable cfg = do
350+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioMetadata = MetadataDisable }}
351+
352+ configMetadataKeys :: SyncNodeConfig -> SyncNodeConfig
353+ configMetadataKeys cfg = do
354+ cfg {dncInsertOptions = (dncInsertOptions cfg) {sioMetadata = MetadataKeys $ 1 :| [] }}
355+
292356initCommandLineArgs :: CommandLineArgs
293357initCommandLineArgs =
294358 CommandLineArgs
@@ -307,7 +371,6 @@ initCommandLineArgs =
307371 , claFullMode = True
308372 , claMigrateConsumed = False
309373 , claPruneTxOut = False
310- , claBootstrap = False
311374 }
312375
313376emptyMetricsSetters :: MetricSetters
@@ -383,7 +446,7 @@ withFullConfigAndLogs =
383446withCustomConfig ::
384447 CommandLineArgs ->
385448 -- | custom SyncNodeConfig
386- Maybe SyncNodeConfig ->
449+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
387450 -- | config filepath
388451 FilePath ->
389452 -- | test label
@@ -404,7 +467,7 @@ withCustomConfig =
404467withCustomConfigAndDropDB ::
405468 CommandLineArgs ->
406469 -- | custom SyncNodeConfig
407- Maybe SyncNodeConfig ->
470+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
408471 -- | config filepath
409472 FilePath ->
410473 -- | test label
@@ -426,7 +489,7 @@ withCustomConfigAndDropDB =
426489withCustomConfigAndLogs ::
427490 CommandLineArgs ->
428491 -- | custom SyncNodeConfig
429- Maybe SyncNodeConfig ->
492+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
430493 -- | config filepath
431494 FilePath ->
432495 -- | test label
@@ -447,7 +510,7 @@ withCustomConfigAndLogs =
447510withCustomConfigAndLogsAndDropDB ::
448511 CommandLineArgs ->
449512 -- | custom SyncNodeConfig
450- Maybe SyncNodeConfig ->
513+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
451514 -- | config filepath
452515 FilePath ->
453516 -- | test label
@@ -469,7 +532,7 @@ withFullConfig' ::
469532 WithConfigArgs ->
470533 CommandLineArgs ->
471534 -- | custom SyncNodeConfig
472- Maybe SyncNodeConfig ->
535+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
473536 -- | config filepath
474537 FilePath ->
475538 -- | test label
@@ -483,7 +546,9 @@ withFullConfig' WithConfigArgs {..} cmdLineArgs mSyncNodeConfig configFilePath t
483546 -- check if custom syncNodeConfigs have been passed or not
484547 syncNodeConfig <-
485548 case mSyncNodeConfig of
486- Just snc -> pure snc
549+ Just updateFn -> do
550+ initConfigFile <- mkSyncNodeConfig configFilePath cmdLineArgs
551+ pure $ updateFn initConfigFile
487552 Nothing -> mkSyncNodeConfig configFilePath cmdLineArgs
488553
489554 cfg <- mkConfig configFilePath mutableDir cmdLineArgs syncNodeConfig
0 commit comments