@@ -17,10 +17,24 @@ module Test.Cardano.Db.Mock.Config (
17
17
fingerprintRoot ,
18
18
getDBSyncPGPass ,
19
19
getPoolLayer ,
20
+
21
+ -- * Configs
20
22
mkConfig ,
21
23
mkSyncNodeConfig ,
22
- mkCustomSyncNodeConfig ,
23
24
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 ,
24
38
mkFingerPrint ,
25
39
mkMutableDir ,
26
40
mkDBSyncEnv ,
@@ -51,13 +65,14 @@ import qualified Cardano.Db as Db
51
65
import Cardano.DbSync
52
66
import Cardano.DbSync.Config
53
67
import Cardano.DbSync.Config.Cardano
68
+ import Cardano.DbSync.Config.Types
54
69
import Cardano.DbSync.Error (runOrThrowIO )
55
70
import Cardano.DbSync.Types (CardanoBlock , MetricSetters (.. ))
56
71
import Cardano.Mock.ChainSync.Server
57
72
import Cardano.Mock.Forging.Interpreter
58
73
import Cardano.Node.Protocol.Shelley (readLeaderCredentials )
59
74
import Cardano.Node.Types (ProtocolFilepaths (.. ))
60
- import Cardano.Prelude (ReaderT , panic , stderr , textShow )
75
+ import Cardano.Prelude (NonEmpty ( (:|) ), ReaderT , panic , stderr , textShow )
61
76
import Cardano.SMASH.Server.PoolDataLayer
62
77
import Control.Concurrent.Async (Async , async , cancel , poll )
63
78
import Control.Concurrent.STM (atomically )
@@ -117,7 +132,6 @@ data CommandLineArgs = CommandLineArgs
117
132
, claFullMode :: Bool
118
133
, claMigrateConsumed :: Bool
119
134
, claPruneTxOut :: Bool
120
- , claBootstrap :: Bool
121
135
}
122
136
123
137
data WithConfigArgs = WithConfigArgs
@@ -243,11 +257,6 @@ mkSyncNodeConfig configFilePath cmdLineArgs =
243
257
configFilename = claConfigFilename cmdLineArgs
244
258
configDir = mkConfigDir configFilePath
245
259
246
- mkCustomSyncNodeConfig :: FilePath -> CommandLineArgs -> (SyncNodeConfig -> SyncNodeConfig ) -> IO SyncNodeConfig
247
- mkCustomSyncNodeConfig cfgDir args updateFn = do
248
- initConfigFile <- mkSyncNodeConfig cfgDir args
249
- pure $ updateFn initConfigFile
250
-
251
260
mkShelleyCredentials :: FilePath -> IO [ShelleyLeaderCredentials StandardCrypto ]
252
261
mkShelleyCredentials bulkFile = do
253
262
eitherM (panic . textShow) pure $ runExceptT $ readLeaderCredentials (Just protFiles)
@@ -285,10 +294,65 @@ mkSyncNodeParams staticDir mutableDir CommandLineArgs {..} = do
285
294
, enpMaybeRollback = Nothing
286
295
}
287
296
297
+ ------------------------------------------------------------------------------
298
+ -- Custom Configs
299
+ ------------------------------------------------------------------------------
288
300
mkConfigFile :: FilePath -> FilePath -> ConfigFile
289
301
mkConfigFile staticDir cliConfigFilename =
290
302
ConfigFile $ staticDir </> cliConfigFilename
291
303
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
+
292
356
initCommandLineArgs :: CommandLineArgs
293
357
initCommandLineArgs =
294
358
CommandLineArgs
@@ -307,7 +371,6 @@ initCommandLineArgs =
307
371
, claFullMode = True
308
372
, claMigrateConsumed = False
309
373
, claPruneTxOut = False
310
- , claBootstrap = False
311
374
}
312
375
313
376
emptyMetricsSetters :: MetricSetters
@@ -383,7 +446,7 @@ withFullConfigAndLogs =
383
446
withCustomConfig ::
384
447
CommandLineArgs ->
385
448
-- | custom SyncNodeConfig
386
- Maybe SyncNodeConfig ->
449
+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
387
450
-- | config filepath
388
451
FilePath ->
389
452
-- | test label
@@ -404,7 +467,7 @@ withCustomConfig =
404
467
withCustomConfigAndDropDB ::
405
468
CommandLineArgs ->
406
469
-- | custom SyncNodeConfig
407
- Maybe SyncNodeConfig ->
470
+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
408
471
-- | config filepath
409
472
FilePath ->
410
473
-- | test label
@@ -426,7 +489,7 @@ withCustomConfigAndDropDB =
426
489
withCustomConfigAndLogs ::
427
490
CommandLineArgs ->
428
491
-- | custom SyncNodeConfig
429
- Maybe SyncNodeConfig ->
492
+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
430
493
-- | config filepath
431
494
FilePath ->
432
495
-- | test label
@@ -447,7 +510,7 @@ withCustomConfigAndLogs =
447
510
withCustomConfigAndLogsAndDropDB ::
448
511
CommandLineArgs ->
449
512
-- | custom SyncNodeConfig
450
- Maybe SyncNodeConfig ->
513
+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
451
514
-- | config filepath
452
515
FilePath ->
453
516
-- | test label
@@ -469,7 +532,7 @@ withFullConfig' ::
469
532
WithConfigArgs ->
470
533
CommandLineArgs ->
471
534
-- | custom SyncNodeConfig
472
- Maybe SyncNodeConfig ->
535
+ Maybe ( SyncNodeConfig -> SyncNodeConfig ) ->
473
536
-- | config filepath
474
537
FilePath ->
475
538
-- | test label
@@ -483,7 +546,9 @@ withFullConfig' WithConfigArgs {..} cmdLineArgs mSyncNodeConfig configFilePath t
483
546
-- check if custom syncNodeConfigs have been passed or not
484
547
syncNodeConfig <-
485
548
case mSyncNodeConfig of
486
- Just snc -> pure snc
549
+ Just updateFn -> do
550
+ initConfigFile <- mkSyncNodeConfig configFilePath cmdLineArgs
551
+ pure $ updateFn initConfigFile
487
552
Nothing -> mkSyncNodeConfig configFilePath cmdLineArgs
488
553
489
554
cfg <- mkConfig configFilePath mutableDir cmdLineArgs syncNodeConfig
0 commit comments