Skip to content

Commit 0fa8501

Browse files
committed
Added tests for nondisjoint RefInputs, Run BabbageFeature tests in Conway
Adjust Constraint based generator genTxAndNewEpoch to enforce disjointness.
1 parent e801553 commit 0fa8501

File tree

13 files changed

+178
-68
lines changed

13 files changed

+178
-68
lines changed

eras/babbage/impl/CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Version history for `cardano-ledger-babbage`
22

3-
## 1.6.0.1
3+
## 1.7.0.0
44

5-
*
5+
* Add the constructor BabbageNonDisjointRefInputs to BabbageUtxoPredFailure
6+
* Utxo rule raises that PredicateFailure in Conway and future Eras when they are not disjoint.
67

78
## 1.6.0.0
89

eras/babbage/impl/cardano-ledger-babbage.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 3.0
22
name: cardano-ledger-babbage
3-
version: 1.6.0.1
3+
version: 1.7.0.0
44
license: Apache-2.0
55
maintainer: operations@iohk.io
66
author: IOHK

eras/babbage/impl/src/Cardano/Ledger/Babbage/Rules/Utxo.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ import Control.State.Transition.Extended (
8080
STS (..),
8181
TRC (..),
8282
TransitionRule,
83+
failureOnNonEmpty,
8384
judgmentContext,
8485
liftSTS,
8586
trans,
@@ -115,7 +116,7 @@ data BabbageUtxoPredFailure era
115116
![(TxOut era, Coin)]
116117
| -- | TxIns that appear in both inputs and reference inputs
117118
BabbageNonDisjointRefInputs
118-
!(Set (TxIn (EraCrypto era)))
119+
!(NonEmpty (TxIn (EraCrypto era)))
119120
deriving (Generic)
120121

121122
deriving instance
@@ -202,6 +203,7 @@ feesOK pp tx (UTxO utxo) =
202203
validateTotalCollateral pp txBody utxoCollateral
203204
]
204205

206+
-- | Test that inputs and refInpts are disjoint, in Conway and later Eras.
205207
disjointRefInputs ::
206208
forall era.
207209
EraPParams era =>
@@ -212,7 +214,7 @@ disjointRefInputs ::
212214
disjointRefInputs pp inputs refInputs =
213215
when
214216
(pvMajor (pp ^. ppProtocolVersionL) > eraProtVerHigh @(BabbageEra (EraCrypto era)))
215-
(failureIf (null common) (BabbageNonDisjointRefInputs common))
217+
(failureOnNonEmpty common BabbageNonDisjointRefInputs)
216218
where
217219
common = inputs `Set.intersection` refInputs
218220

@@ -348,7 +350,7 @@ utxoTransition = do
348350
inputs = txBody ^. inputsTxBodyL
349351

350352
{- inputs ∩ refInputs = ∅ -}
351-
runTest $ disjointRefInputs @era pp inputs refInputs
353+
runTest $ disjointRefInputs pp inputs refInputs
352354

353355
{- ininterval slot (txvld txb) -}
354356
runTest $ Allegra.validateOutsideValidityIntervalUTxO slot txBody

eras/babbage/test-suite/cardano-ledger-babbage-test.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ library
3636
cardano-ledger-binary:{cardano-ledger-binary, testlib} >=1.0,
3737
cardano-ledger-alonzo:{cardano-ledger-alonzo, testlib} >=1.5.1,
3838
cardano-ledger-alonzo-test >=1.1,
39-
cardano-ledger-babbage:{cardano-ledger-babbage, testlib} >=1.5 && <1.7,
39+
cardano-ledger-babbage:{cardano-ledger-babbage, testlib} >=1.5 && <1.8,
4040
cardano-ledger-core:{cardano-ledger-core, testlib} >=1.11,
4141
cardano-ledger-shelley-ma-test >=1.1,
4242
cardano-ledger-mary >=1.4,

eras/conway/impl/cardano-ledger-conway.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ library
8484
cardano-ledger-binary ^>=1.3,
8585
cardano-ledger-allegra ^>=1.3,
8686
cardano-ledger-alonzo ^>=1.6,
87-
cardano-ledger-babbage ^>=1.6,
87+
cardano-ledger-babbage ^>=1.7,
8888
cardano-ledger-core ^>=1.11,
8989
cardano-ledger-mary ^>=1.5,
9090
cardano-ledger-shelley ^>=1.10,

eras/conway/test-suite/cardano-ledger-conway-test.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ library
3232
base >=4.14 && <5,
3333
cardano-ledger-alonzo:{cardano-ledger-alonzo, testlib} >=1.6,
3434
cardano-ledger-alonzo-test,
35-
cardano-ledger-babbage >=1.3 && <1.7,
35+
cardano-ledger-babbage >=1.3 && <1.8,
3636
cardano-ledger-babbage-test >=1.1.1,
3737
cardano-ledger-binary >=1.0,
3838
cardano-ledger-conway:{cardano-ledger-conway, testlib} ^>=1.13,

libs/cardano-ledger-api/cardano-ledger-api.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ library
5656
bytestring,
5757
cardano-ledger-allegra ^>=1.3,
5858
cardano-ledger-alonzo ^>=1.6,
59-
cardano-ledger-babbage ^>=1.6,
59+
cardano-ledger-babbage ^>=1.7,
6060
cardano-ledger-binary ^>=1.3,
6161
cardano-ledger-conway ^>=1.13,
6262
cardano-ledger-core ^>=1.11,

libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -660,7 +660,7 @@ conformsWhen makeTestsSmall condition impState =
660660
x
661661
{ usNumPreUtxo = 3
662662
, usNumColUtxo = 3
663-
, usMinInputs = 1
663+
, usMinInputs = 2
664664
, usMaxInputs = 3
665665
, usMinCollaterals = 1
666666
, usMaxCollaterals = 3

libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Preds/Tx.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,8 @@ txBodyPreds sizes@UnivSize {..} p =
533533
, -- refInputs
534534
Sized (Range 0 1) refInputs
535535
, Subset refInputs (Dom (utxo p))
536+
, NotMember feeTxIn refInputs
537+
, Disjoint refInputs inputs -- New constraint in Conway, added PR #4024
536538
, Sized (Range 1 2) reqSignerHashes
537539
, Subset reqSignerHashes (Dom keymapUniv)
538540
, ttl :<-: (Constr "(+5)" (\x -> x + 5) ^$ currentSlot)

0 commit comments

Comments
 (0)