Skip to content

Commit 0351d3e

Browse files
sgillespiekderme
authored andcommitted
feature(cardano-db-sync): Add a new InsertConfig type
1 parent 045330d commit 0351d3e

35 files changed

+2572
-4
lines changed

cardano-chain-gen/cardano-chain-gen.cabal

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ test-suite cardano-chain-gen
130130
Test.Cardano.Db.Mock.Examples
131131
Test.Cardano.Db.Mock.Property.Property
132132
Test.Cardano.Db.Mock.Unit.Alonzo
133+
Test.Cardano.Db.Mock.Unit.Alonzo.Config
133134
Test.Cardano.Db.Mock.Unit.Alonzo.Plutus
134135
Test.Cardano.Db.Mock.Unit.Alonzo.PoolAndSmash
135136
Test.Cardano.Db.Mock.Unit.Alonzo.Reward
@@ -141,6 +142,7 @@ test-suite cardano-chain-gen
141142
Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.EpochDisabled
142143
Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.ForceIndex
143144
Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.MigrateConsumedPruneTxOut
145+
Test.Cardano.Db.Mock.Unit.Babbage.Config
144146
Test.Cardano.Db.Mock.Unit.Babbage.InlineAndReference
145147
Test.Cardano.Db.Mock.Unit.Babbage.Other
146148
Test.Cardano.Db.Mock.Unit.Babbage.Plutus
@@ -187,6 +189,7 @@ test-suite cardano-chain-gen
187189
, cardano-strict-containers
188190
, containers
189191
, contra-tracer
192+
, data-default-class
190193
, directory
191194
, esqueleto
192195
, extra

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Alonzo.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Data.Text (Text)
1010
import Test.Tasty (TestTree, testGroup)
1111
import Test.Tasty.HUnit (Assertion, testCase)
1212

13+
import qualified Test.Cardano.Db.Mock.Unit.Alonzo.Config as AlzConfig
1314
import qualified Test.Cardano.Db.Mock.Unit.Alonzo.Plutus as AlzPlutus
1415
import qualified Test.Cardano.Db.Mock.Unit.Alonzo.PoolAndSmash as AlzPnS
1516
import qualified Test.Cardano.Db.Mock.Unit.Alonzo.Reward as AlzReward
@@ -24,6 +25,11 @@ unitTests iom knownMigrations =
2425
testGroup
2526
"Alonzo unit tests"
2627
[ testGroup
28+
"config"
29+
[ testCase "default insert config" AlzConfig.defaultInsertConfig
30+
, testCase "insert config" AlzConfig.insertConfig
31+
]
32+
, testGroup
2733
"simple"
2834
[ test "simple forge blocks" AlzSimple.forgeBlocks
2935
, test "sync one block" AlzSimple.addSimple
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
module Test.Cardano.Db.Mock.Unit.Alonzo.Config (
2+
defaultInsertConfig,
3+
insertConfig,
4+
) where
5+
6+
import Cardano.DbSync.Config
7+
import Cardano.DbSync.Config.Types
8+
import Cardano.Prelude
9+
import Data.Default.Class (Default (..))
10+
import Test.Cardano.Db.Mock.Config
11+
import Test.Tasty.HUnit (Assertion (), (@?=))
12+
import Prelude ()
13+
14+
defaultInsertConfig :: Assertion
15+
defaultInsertConfig = do
16+
cfg <- mkSyncNodeConfig alonzoConfigDir
17+
dncInsertConfig cfg @?= def
18+
19+
insertConfig :: Assertion
20+
insertConfig = do
21+
cfg <- mkSyncNodeConfig configDir
22+
let expected =
23+
SyncInsertConfig
24+
{ spcTxOut = TxOutDisable
25+
, spcLedger = LedgerDisable
26+
, spcShelley = ShelleyDisable
27+
, spcMultiAsset = MultiAssetDisable
28+
, spcMetadata = MetadataDisable
29+
, spcPlutus = PlutusDisable
30+
, spcGovernance = GovernanceConfig False
31+
, spcOffchainPoolData = OffchainPoolDataConfig False
32+
, spcJsonType = JsonTypeDisable
33+
}
34+
35+
dncInsertConfig cfg @?= expected
36+
where
37+
configDir = "config-alonzo-insert-options"

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Babbage.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import qualified Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.ConfigFile as
1616
import qualified Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.EpochDisabled as EpochDisabled
1717
import qualified Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.ForceIndex as ForceIndex
1818
import qualified Test.Cardano.Db.Mock.Unit.Babbage.CommandLineArg.MigrateConsumedPruneTxOut as MigrateConsumedPruneTxOut
19+
import qualified Test.Cardano.Db.Mock.Unit.Babbage.Config as BabConfig
1920
import qualified Test.Cardano.Db.Mock.Unit.Babbage.InlineAndReference as BabInlineRef
2021
import qualified Test.Cardano.Db.Mock.Unit.Babbage.Other as BabOther
2122
import qualified Test.Cardano.Db.Mock.Unit.Babbage.Plutus as BabPlutus
@@ -30,6 +31,11 @@ unitTests iom knownMigrations =
3031
testGroup
3132
"Babbage unit tests"
3233
[ testGroup
34+
"config"
35+
[ testCase "default insert config" BabConfig.defaultInsertConfig
36+
, testCase "insert config" BabConfig.insertConfig
37+
]
38+
, testGroup
3339
"simple"
3440
[ test "simple forge blocks" BabSimple.forgeBlocks
3541
, test "sync one block" BabSimple.addSimple
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
module Test.Cardano.Db.Mock.Unit.Babbage.Config (
2+
defaultInsertConfig,
3+
insertConfig,
4+
) where
5+
6+
import Cardano.DbSync.Config
7+
import Cardano.DbSync.Config.Types
8+
import Cardano.Prelude
9+
import Data.Default.Class (Default (..))
10+
import Test.Cardano.Db.Mock.Config
11+
import Test.Tasty.HUnit (Assertion (), (@?=))
12+
import Prelude ()
13+
14+
defaultInsertConfig :: Assertion
15+
defaultInsertConfig = do
16+
cfg <- mkSyncNodeConfig babbageConfigDir
17+
dncInsertConfig cfg @?= def
18+
19+
insertConfig :: Assertion
20+
insertConfig = do
21+
cfg <- mkSyncNodeConfig configDir
22+
let expected =
23+
SyncInsertConfig
24+
{ spcTxOut = TxOutDisable
25+
, spcLedger = LedgerDisable
26+
, spcShelley = ShelleyDisable
27+
, spcMultiAsset = MultiAssetDisable
28+
, spcMetadata = MetadataDisable
29+
, spcPlutus = PlutusDisable
30+
, spcGovernance = GovernanceConfig False
31+
, spcOffchainPoolData = OffchainPoolDataConfig False
32+
, spcJsonType = JsonTypeDisable
33+
}
34+
35+
dncInsertConfig cfg @?= expected
36+
where
37+
configDir = "config-babbage-insert-options"

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Conway.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ unitTests iom knownMigrations =
3131
, testCase "no conway genesis file" ConConfig.noConwayGenesis
3232
, testCase "no conway genesis hash" ConConfig.noConwayGenesisHash
3333
, testCase "mismatched conway genesis hash" ConConfig.wrongConwayGenesisHash
34+
, testCase "default insert config" ConConfig.defaultInsertConfig
35+
, testCase "insert config" ConConfig.insertConfig
3436
]
3537
, testGroup
3638
"simple"

cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit/Conway/Config.hs

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@ module Test.Cardano.Db.Mock.Unit.Conway.Config (
77
noConwayGenesis,
88
noConwayGenesisHash,
99
wrongConwayGenesisHash,
10+
insertConfig,
11+
defaultInsertConfig,
1012
) where
1113

1214
import Cardano.DbSync.Config
15+
import Cardano.DbSync.Config.Types
1316
import Cardano.DbSync.Error
1417
import Cardano.Prelude
1518
import qualified Data.Aeson as Aeson
19+
import Data.Default.Class (Default (..))
1620
import Test.Cardano.Db.Mock.Config
17-
import Test.Tasty.HUnit (Assertion (), assertBool)
21+
import Test.Tasty.HUnit (Assertion (), assertBool, (@?=))
1822
import Prelude ()
1923

2024
conwayGenesis :: Assertion
@@ -73,3 +77,28 @@ isConwayConfigError = either isConwayConfigError' (const False)
7377
where
7478
isConwayConfigError' (SNErrConwayConfig _ _) = True
7579
isConwayConfigError' _ = False
80+
81+
defaultInsertConfig :: Assertion
82+
defaultInsertConfig = do
83+
cfg <- mkSyncNodeConfig conwayConfigDir
84+
dncInsertConfig cfg @?= def
85+
86+
insertConfig :: Assertion
87+
insertConfig = do
88+
cfg <- mkSyncNodeConfig configDir
89+
let expected =
90+
SyncInsertConfig
91+
{ spcTxOut = TxOutDisable
92+
, spcLedger = LedgerDisable
93+
, spcShelley = ShelleyDisable
94+
, spcMultiAsset = MultiAssetDisable
95+
, spcMetadata = MetadataDisable
96+
, spcPlutus = PlutusDisable
97+
, spcGovernance = GovernanceConfig False
98+
, spcOffchainPoolData = OffchainPoolDataConfig False
99+
, spcJsonType = JsonTypeDisable
100+
}
101+
102+
dncInsertConfig cfg @?= expected
103+
where
104+
configDir = "config-conway-insert-options"
Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
{
2+
"collateralPercentage": 1,
3+
"maxBlockExUnits": {
4+
"exUnitsMem": 500000000000,
5+
"exUnitsSteps": 500000000000
6+
},
7+
"maxCollateralInputs": 5,
8+
"maxValueSize": 4000,
9+
"costModels": {
10+
"PlutusV1": {
11+
"sha2_256-memory-arguments": 4,
12+
"equalsString-cpu-arguments-constant": 1000,
13+
"cekDelayCost-exBudgetMemory": 100,
14+
"lessThanEqualsByteString-cpu-arguments-intercept": 103599,
15+
"divideInteger-memory-arguments-minimum": 1,
16+
"appendByteString-cpu-arguments-slope": 621,
17+
"blake2b-cpu-arguments-slope": 29175,
18+
"iData-cpu-arguments": 150000,
19+
"encodeUtf8-cpu-arguments-slope": 1000,
20+
"unBData-cpu-arguments": 150000,
21+
"multiplyInteger-cpu-arguments-intercept": 61516,
22+
"cekConstCost-exBudgetMemory": 100,
23+
"nullList-cpu-arguments": 150000,
24+
"equalsString-cpu-arguments-intercept": 150000,
25+
"trace-cpu-arguments": 150000,
26+
"mkNilData-memory-arguments": 32,
27+
"lengthOfByteString-cpu-arguments": 150000,
28+
"cekBuiltinCost-exBudgetCPU": 29773,
29+
"bData-cpu-arguments": 150000,
30+
"subtractInteger-cpu-arguments-slope": 0,
31+
"unIData-cpu-arguments": 150000,
32+
"consByteString-memory-arguments-intercept": 0,
33+
"divideInteger-memory-arguments-slope": 1,
34+
"divideInteger-cpu-arguments-model-arguments-slope": 118,
35+
"listData-cpu-arguments": 150000,
36+
"headList-cpu-arguments": 150000,
37+
"chooseData-memory-arguments": 32,
38+
"equalsInteger-cpu-arguments-intercept": 136542,
39+
"sha3_256-cpu-arguments-slope": 82363,
40+
"sliceByteString-cpu-arguments-slope": 5000,
41+
"unMapData-cpu-arguments": 150000,
42+
"lessThanInteger-cpu-arguments-intercept": 179690,
43+
"mkCons-cpu-arguments": 150000,
44+
"appendString-memory-arguments-intercept": 0,
45+
"modInteger-cpu-arguments-model-arguments-slope": 118,
46+
"ifThenElse-cpu-arguments": 1,
47+
"mkNilPairData-cpu-arguments": 150000,
48+
"lessThanEqualsInteger-cpu-arguments-intercept": 145276,
49+
"addInteger-memory-arguments-slope": 1,
50+
"chooseList-memory-arguments": 32,
51+
"constrData-memory-arguments": 32,
52+
"decodeUtf8-cpu-arguments-intercept": 150000,
53+
"equalsData-memory-arguments": 1,
54+
"subtractInteger-memory-arguments-slope": 1,
55+
"appendByteString-memory-arguments-intercept": 0,
56+
"lengthOfByteString-memory-arguments": 4,
57+
"headList-memory-arguments": 32,
58+
"listData-memory-arguments": 32,
59+
"consByteString-cpu-arguments-intercept": 150000,
60+
"unIData-memory-arguments": 32,
61+
"remainderInteger-memory-arguments-minimum": 1,
62+
"bData-memory-arguments": 32,
63+
"lessThanByteString-cpu-arguments-slope": 248,
64+
"encodeUtf8-memory-arguments-intercept": 0,
65+
"cekStartupCost-exBudgetCPU": 100,
66+
"multiplyInteger-memory-arguments-intercept": 0,
67+
"unListData-memory-arguments": 32,
68+
"remainderInteger-cpu-arguments-model-arguments-slope": 118,
69+
"cekVarCost-exBudgetCPU": 29773,
70+
"remainderInteger-memory-arguments-slope": 1,
71+
"cekForceCost-exBudgetCPU": 29773,
72+
"sha2_256-cpu-arguments-slope": 29175,
73+
"equalsInteger-memory-arguments": 1,
74+
"indexByteString-memory-arguments": 1,
75+
"addInteger-memory-arguments-intercept": 1,
76+
"chooseUnit-cpu-arguments": 150000,
77+
"sndPair-cpu-arguments": 150000,
78+
"cekLamCost-exBudgetCPU": 29773,
79+
"fstPair-cpu-arguments": 150000,
80+
"quotientInteger-memory-arguments-minimum": 1,
81+
"decodeUtf8-cpu-arguments-slope": 1000,
82+
"lessThanInteger-memory-arguments": 1,
83+
"lessThanEqualsInteger-cpu-arguments-slope": 1366,
84+
"fstPair-memory-arguments": 32,
85+
"modInteger-memory-arguments-intercept": 0,
86+
"unConstrData-cpu-arguments": 150000,
87+
"lessThanEqualsInteger-memory-arguments": 1,
88+
"chooseUnit-memory-arguments": 32,
89+
"sndPair-memory-arguments": 32,
90+
"addInteger-cpu-arguments-intercept": 197209,
91+
"decodeUtf8-memory-arguments-slope": 8,
92+
"equalsData-cpu-arguments-intercept": 150000,
93+
"mapData-cpu-arguments": 150000,
94+
"mkPairData-cpu-arguments": 150000,
95+
"quotientInteger-cpu-arguments-constant": 148000,
96+
"consByteString-memory-arguments-slope": 1,
97+
"cekVarCost-exBudgetMemory": 100,
98+
"indexByteString-cpu-arguments": 150000,
99+
"unListData-cpu-arguments": 150000,
100+
"equalsInteger-cpu-arguments-slope": 1326,
101+
"cekStartupCost-exBudgetMemory": 100,
102+
"subtractInteger-cpu-arguments-intercept": 197209,
103+
"divideInteger-cpu-arguments-model-arguments-intercept": 425507,
104+
"divideInteger-memory-arguments-intercept": 0,
105+
"cekForceCost-exBudgetMemory": 100,
106+
"blake2b-cpu-arguments-intercept": 2477736,
107+
"remainderInteger-cpu-arguments-constant": 148000,
108+
"tailList-cpu-arguments": 150000,
109+
"encodeUtf8-cpu-arguments-intercept": 150000,
110+
"equalsString-cpu-arguments-slope": 1000,
111+
"lessThanByteString-memory-arguments": 1,
112+
"multiplyInteger-cpu-arguments-slope": 11218,
113+
"appendByteString-cpu-arguments-intercept": 396231,
114+
"lessThanEqualsByteString-cpu-arguments-slope": 248,
115+
"modInteger-memory-arguments-slope": 1,
116+
"addInteger-cpu-arguments-slope": 0,
117+
"equalsData-cpu-arguments-slope": 10000,
118+
"decodeUtf8-memory-arguments-intercept": 0,
119+
"chooseList-cpu-arguments": 150000,
120+
"constrData-cpu-arguments": 150000,
121+
"equalsByteString-memory-arguments": 1,
122+
"cekApplyCost-exBudgetCPU": 29773,
123+
"quotientInteger-memory-arguments-slope": 1,
124+
"verifySignature-cpu-arguments-intercept": 3345831,
125+
"unMapData-memory-arguments": 32,
126+
"mkCons-memory-arguments": 32,
127+
"sliceByteString-memory-arguments-slope": 1,
128+
"sha3_256-memory-arguments": 4,
129+
"ifThenElse-memory-arguments": 1,
130+
"mkNilPairData-memory-arguments": 32,
131+
"equalsByteString-cpu-arguments-slope": 247,
132+
"appendString-cpu-arguments-intercept": 150000,
133+
"quotientInteger-cpu-arguments-model-arguments-slope": 118,
134+
"cekApplyCost-exBudgetMemory": 100,
135+
"equalsString-memory-arguments": 1,
136+
"multiplyInteger-memory-arguments-slope": 1,
137+
"cekBuiltinCost-exBudgetMemory": 100,
138+
"remainderInteger-memory-arguments-intercept": 0,
139+
"sha2_256-cpu-arguments-intercept": 2477736,
140+
"remainderInteger-cpu-arguments-model-arguments-intercept": 425507,
141+
"lessThanEqualsByteString-memory-arguments": 1,
142+
"tailList-memory-arguments": 32,
143+
"mkNilData-cpu-arguments": 150000,
144+
"chooseData-cpu-arguments": 150000,
145+
"unBData-memory-arguments": 32,
146+
"blake2b-memory-arguments": 4,
147+
"iData-memory-arguments": 32,
148+
"nullList-memory-arguments": 32,
149+
"cekDelayCost-exBudgetCPU": 29773,
150+
"subtractInteger-memory-arguments-intercept": 1,
151+
"lessThanByteString-cpu-arguments-intercept": 103599,
152+
"consByteString-cpu-arguments-slope": 1000,
153+
"appendByteString-memory-arguments-slope": 1,
154+
"trace-memory-arguments": 32,
155+
"divideInteger-cpu-arguments-constant": 148000,
156+
"cekConstCost-exBudgetCPU": 29773,
157+
"encodeUtf8-memory-arguments-slope": 8,
158+
"quotientInteger-cpu-arguments-model-arguments-intercept": 425507,
159+
"mapData-memory-arguments": 32,
160+
"appendString-cpu-arguments-slope": 1000,
161+
"modInteger-cpu-arguments-constant": 148000,
162+
"verifySignature-cpu-arguments-slope": 1,
163+
"unConstrData-memory-arguments": 32,
164+
"quotientInteger-memory-arguments-intercept": 0,
165+
"equalsByteString-cpu-arguments-constant": 150000,
166+
"sliceByteString-memory-arguments-intercept": 0,
167+
"mkPairData-memory-arguments": 32,
168+
"equalsByteString-cpu-arguments-intercept": 112536,
169+
"appendString-memory-arguments-slope": 1,
170+
"lessThanInteger-cpu-arguments-slope": 497,
171+
"modInteger-cpu-arguments-model-arguments-intercept": 425507,
172+
"modInteger-memory-arguments-minimum": 1,
173+
"sha3_256-cpu-arguments-intercept": 0,
174+
"verifySignature-memory-arguments": 1,
175+
"cekLamCost-exBudgetMemory": 100,
176+
"sliceByteString-cpu-arguments-intercept": 150000
177+
}
178+
},
179+
"executionPrices": {
180+
"prMem": 0.1,
181+
"prSteps": 0.1
182+
},
183+
"lovelacePerUTxOWord": 1,
184+
"maxTxExUnits": {
185+
"exUnitsMem": 500000000000,
186+
"exUnitsSteps": 500000000000
187+
}
188+
}

0 commit comments

Comments
 (0)