Skip to content

Commit 22667de

Browse files
committed
bump cuddle to 1.7.0.0
1 parent 43649bf commit 22667de

8 files changed

Lines changed: 49 additions & 46 deletions

File tree

cabal.project

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ source-repository-package
2727
source-repository-package
2828
type: git
2929
location: https://github.com/input-output-hk/cuddle.git
30-
--sha256: sha256-B/YXpNnFEppqQkAHPFU6EmwzpFCPwdNLTVVSm0X+LTQ=
31-
tag: 08e1745d144696827057f4e07c677b080bfeeaa4
30+
--sha256: sha256-nUEFgDC7lQoSfwqjwDWhKfc/1ZOO/D+zPiBd7hoNaYs=
31+
tag: 05a310bc6886f48e692a39456d353aab590203be
3232

3333
-- NOTE: If you would like to update the above,
3434
-- see CONTRIBUTING.md#to-update-the-referenced-agda-ledger-spec

eras/alonzo/impl/cddl/lib/Cardano/Ledger/Alonzo/HuddleSpec.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import Cardano.Ledger.Alonzo (AlonzoEra)
3636
import Cardano.Ledger.Huddle.Gen (
3737
MonadGen (choose),
3838
Term (..),
39-
WrappedTerm (..),
39+
RuleTerm (..),
4040
genArrayTerm,
4141
generateFromGRef,
4242
liftAntiGen,
@@ -167,20 +167,20 @@ constr pname =
167167
|! oneof [choose (0, 120), choose (128, 1279), choose (1401, 0xffffffffffffffff)]
168168
let
169169
unwrapElems = traverse $ \case
170-
S e -> pure e
170+
SingleTerm e -> pure e
171171
_ -> error "Expected single term"
172172
elems <-
173173
scale (`div` 2) $
174174
if t == 101
175175
then do
176176
uInt <- TInt <$> choose (0, 2 ^ (64 :: Int) - 1)
177177
elems <- genArrayTerm =<< unwrapElems =<< listOf (generateFromGRef ref)
178-
pure . S <$> genArrayTerm [uInt, elems]
178+
pure . SingleTerm <$> genArrayTerm [uInt, elems]
179179
else listOf $ generateFromGRef ref
180180
singleElems <- unwrapElems elems
181-
S . TTagged t <$> genArrayTerm singleElems
181+
SingleTerm . TTagged t <$> genArrayTerm singleElems
182182
validator ref = \case
183-
S (TTagged t term)
183+
SingleTerm (TTagged t term)
184184
| t >= 121 && t <= 127 || t >= 1280 && t <= 1400 -> do
185185
elems <- validateArrayTerm term
186186
forM_ elems $ validateFromGRef ref

eras/conway/impl/cddl/lib/Cardano/Ledger/Conway/HuddleSpec.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ import Cardano.Ledger.Huddle.Gen (
8585
CBORGen,
8686
MonadGen (choose, resize),
8787
Term (..),
88-
WrappedTerm (..),
88+
RuleTerm (..),
8989
antiChoose,
9090
antiVectorOfUnique,
9191
arbitrary,
@@ -740,11 +740,11 @@ mkMaybeTaggedSet pname n = binding $ \x ->
740740
. withValidator (validator x)
741741
$ pname =.= tag 258 (arr [fromIntegral n <+ a x]) / sarr [fromIntegral n <+ a x]
742742
where
743-
generator :: GRef -> CBORGen WrappedTerm
743+
generator :: GRef -> CBORGen RuleTerm
744744
generator ref = do
745745
nElems <- liftAntiGen . Gen.sized $ \sz ->
746746
let sz' = max n sz in antiChoose (n, sz') (0, sz')
747-
fmap S . generateMaybeTaggedSet nElems $ unwrapSingleOrError <$> generateFromGRef ref
747+
fmap SingleTerm . generateMaybeTaggedSet nElems $ unwrapSingleOrError <$> generateFromGRef ref
748748
validator ref term = do
749749
term_ <- unwrapSingle term
750750
let
@@ -1100,7 +1100,7 @@ instance HuddleRule "language" ConwayEra where
11001100
instance HuddleRule "potential_languages" ConwayEra where
11011101
huddleRuleNamed pname _ = potentialLanguagesRule pname
11021102

1103-
conwayCostModelsGenerator :: forall era. Era era => CBORGen WrappedTerm
1103+
conwayCostModelsGenerator :: forall era. Era era => CBORGen RuleTerm
11041104
conwayCostModelsGenerator = Gen.sized $ \size -> do
11051105
nKeys <- choose (0, size)
11061106
initialKeys <- take nKeys <$> shuffle [0 :: Int .. 255]
@@ -1119,7 +1119,7 @@ conwayCostModelsGenerator = Gen.sized $ \size -> do
11191119
v <- withAntiGen (replicateMNorm nVals) $ genRule @"int64" @era
11201120
vs <- genArrayTerm v
11211121
pure (TInt k, vs)
1122-
S <$> genMapTerm kvs
1122+
SingleTerm <$> genMapTerm kvs
11231123

11241124
instance HuddleRule "cost_models" ConwayEra where
11251125
huddleRuleNamed pname p =

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ library cddl
217217
cardano-ledger-core:cddl,
218218
cardano-ledger-dijkstra,
219219
cborg,
220-
cuddle,
221220
heredoc,
222221
text,
223222

eras/dijkstra/impl/cddl/lib/Cardano/Ledger/Dijkstra/HuddleSpec.hs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,18 @@ module Cardano.Ledger.Dijkstra.HuddleSpec (
3535
import Cardano.Ledger.Conway.HuddleSpec hiding ()
3636
import Cardano.Ledger.Dijkstra (DijkstraEra)
3737
import Cardano.Ledger.Huddle.Gen (
38+
CBORGen,
3839
MonadGen (choose, liftGen),
39-
WrappedTerm (..),
40+
RuleTerm (..),
4041
genArrayTerm,
4142
genRule,
4243
generateFromName,
44+
liftAntiGen,
4345
scale,
4446
shuffle,
47+
withAntiGen,
4548
)
4649
import Cardano.Ledger.Huddle.Gen qualified as Gen
47-
import Codec.CBOR.Cuddle.CDDL.CBORGenerator (CBORGen, liftAntiGen, withAntiGen)
4850
import Codec.CBOR.Term (Term (..))
4951
import Control.Monad (zipWithM)
5052
import Data.Maybe (mapMaybe)
@@ -111,7 +113,7 @@ subTransactionsRule pname p =
111113
txs <- uniqueByBody nElems subTxGen
112114
elemsArr <- genArrayTerm txs
113115
tagged <- Gen.arbitrary
114-
pure $ S $ if tagged then TTagged 258 elemsArr else elemsArr
116+
pure $ SingleTerm $ if tagged then TTagged 258 elemsArr else elemsArr
115117
uniqueByBody :: Int -> CBORGen Term -> CBORGen [Term]
116118
uniqueByBody n gen = loop [] n
117119
where
@@ -921,7 +923,7 @@ instance HuddleRule "block_body" DijkstraEra where
921923
, "peras_certificate" ==> huddleRule @"peras_certificate" era
922924
]
923925

924-
blockBodyGen :: CBORGen WrappedTerm
926+
blockBodyGen :: CBORGen RuleTerm
925927
blockBodyGen = do
926928
numTxs <- liftGen . Gen.sized $ \s -> choose (0 :: Int, s)
927929
txs <-
@@ -950,7 +952,7 @@ blockBodyGen = do
950952
invalidTxIxsTerm <- genArrayTerm $ TInteger . toInteger <$> invalidIxIxs
951953
txsTerm <- withAntiGen (withAnnotation "transactions") $ genArrayTerm txs
952954
perasCertTerm <- generateFromName "peras_certificate"
953-
S <$> genArrayTerm [invalidTxIxsTerm, txsTerm, perasCertTerm]
955+
SingleTerm <$> genArrayTerm [invalidTxIxsTerm, txsTerm, perasCertTerm]
954956

955957
instance HuddleRule "auxiliary_scripts" DijkstraEra where
956958
huddleRuleNamed = auxiliaryScriptsRule

libs/cardano-ledger-binary/testlib/Test/Cardano/Ledger/Binary/Cuddle.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ import Codec.CBOR.Cuddle.CBOR.Validator.Trace (
4747
prettyValidationTrace,
4848
)
4949
import Codec.CBOR.Cuddle.CDDL (Name (..))
50-
import Codec.CBOR.Cuddle.CDDL.CBORGenerator (runCBORGen, GenConfig (..))
5150
import Codec.CBOR.Cuddle.CDDL.CTree (CTreeRoot)
51+
import Codec.CBOR.Cuddle.CDDL.Custom.Generator (GenConfig (..), runCBORGen)
5252
import Codec.CBOR.Cuddle.CDDL.Resolve (MonoReferenced)
5353
import qualified Codec.CBOR.Cuddle.CDDL.Resolve as Cuddle
5454
import qualified Codec.CBOR.Cuddle.Huddle as Cuddle

libs/cardano-ledger-core/cddl/Cardano/Ledger/Core/HuddleSpec.hs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import Cardano.Ledger.Huddle.Gen (
2525
CBORGen,
2626
CustomValidatorResult (..),
2727
MonadGen (..),
28-
WrappedTerm (..),
28+
RuleTerm (..),
2929
arbitrary,
3030
genArrayTerm,
3131
liftAntiGen,
@@ -53,8 +53,8 @@ genByteString n = BS.pack <$> vectorOf n arbitrary
5353

5454
-- | Generator for plutus scripts that produces random bytestrings.
5555
-- This avoids collisions when scripts appear in sets (tag 258).
56-
plutusScriptGen :: MonadGen m => m WrappedTerm
57-
plutusScriptGen = S . TBytes <$> (genByteString =<< choose (8, 1024))
56+
plutusScriptGen :: MonadGen m => m RuleTerm
57+
plutusScriptGen = SingleTerm . TBytes <$> (genByteString =<< choose (8, 1024))
5858

5959
instance Era era => HuddleRule "hash28" era where
6060
huddleRuleNamed pname _ = pname =.= VBytes `H.sized` (28 :: Word64)
@@ -101,7 +101,7 @@ instance Era era => HuddleRule "unit_interval" era where
101101
, genUnitInterval64 0 1000
102102
, genUnitInterval64 (max64 - 1000) max64
103103
]
104-
S . TTagged 30
104+
SingleTerm . TTagged 30
105105
<$> genArrayTerm [TInteger $ toInteger n, TInteger $ toInteger d]
106106

107107
instance Era era => HuddleRule "nonnegative_interval" era where
@@ -251,7 +251,7 @@ instance Era era => HuddleRule "address" era where
251251
paymentCred <- genHash28
252252
-- TODO use genBytesTerm once indefinite bytestring decoding has been fixed
253253
let bytesTerm = TBytes . BS.cons header $ paymentCred <> stakeCred
254-
pure $ S bytesTerm
254+
pure $ SingleTerm bytesTerm
255255

256256
instance Era era => HuddleRule "reward_account" era where
257257
huddleRuleNamed pname _ = withCBORGen generator $ pname =.= VBytes
@@ -265,7 +265,7 @@ instance Era era => HuddleRule "reward_account" era where
265265
header = 0b11100000 .|. mainnetMask .|. scriptMask
266266
payload <- genHash28
267267
let term = TBytes $ BS.cons header payload
268-
pure $ S term
268+
pure $ SingleTerm term
269269

270270
instance Era era => HuddleRule "transaction_index" era where
271271
huddleRuleNamed pname _ = pname =.= VUInt `H.sized` (2 :: Word64)
@@ -313,12 +313,12 @@ instance Era era => HuddleRule "stake_credential" era where
313313
instance Era era => HuddleRule "port" era where
314314
huddleRuleNamed pname _ = pname =.= VUInt `le` 65535
315315

316-
ipGen :: Int -> CBORGen WrappedTerm
316+
ipGen :: Int -> CBORGen RuleTerm
317317
ipGen n = do
318318
l <- liftAntiGen $ choose (n, 1024) |! choose (0, pred n)
319319
bs <- genByteString l
320320
-- TODO Also generate with TBytesI
321-
pure . S $ TBytes bs
321+
pure . SingleTerm $ TBytes bs
322322

323323
ipValidator :: Int -> Term -> CustomValidatorResult
324324
ipValidator n = \case

libs/cardano-ledger-core/cddl/Cardano/Ledger/Huddle/Gen.hs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ module Cardano.Ledger.Huddle.Gen (
1010
-- * MonadGen
1111
module GenT,
1212

13-
-- * CBORGen
14-
module CBORGen,
13+
-- * Cuddle core
14+
module CustomCore,
15+
Term (..),
1516

1617
-- * Term generators
17-
Term (..),
18-
WrappedTerm (..),
19-
Name (..),
20-
genRule,
18+
module CustomGen,
2119
generateFromName,
2220
generateFromGRef,
21+
genRule,
2322
genArrayTerm,
2423
genBytesTerm,
2524
genStringTerm,
@@ -28,6 +27,7 @@ module Cardano.Ledger.Huddle.Gen (
2827
unwrapSingleOrError,
2928

3029
-- * Term validators
30+
module CustomValidator,
3131
validateFromName,
3232
validateFromGRef,
3333
validateInt,
@@ -54,9 +54,12 @@ import Cardano.Ledger.Huddle (HuddleRule ())
5454
import Codec.CBOR.Cuddle.CBOR.Gen (generateFromGRef, generateFromName)
5555
import Codec.CBOR.Cuddle.CBOR.Validator (validateFromGRef, validateFromName)
5656
import Codec.CBOR.Cuddle.CDDL (Name (..))
57-
import Codec.CBOR.Cuddle.CDDL.CBORGenerator as CBORGen
5857
import Codec.CBOR.Cuddle.CDDL.CTree (nintMin, uintMax)
58+
import Codec.CBOR.Cuddle.CDDL.Custom.Core as CustomCore
59+
import Codec.CBOR.Cuddle.CDDL.Custom.Generator as CustomGen
60+
import Codec.CBOR.Cuddle.CDDL.Custom.Validator as CustomValidator
5961
import Control.Monad.Reader (asks)
62+
import Data.Bifunctor (Bifunctor (..))
6063
import Data.ByteString (ByteString)
6164
import qualified Data.ByteString.Lazy as LBS
6265
import Data.List (sortOn)
@@ -68,7 +71,6 @@ import GHC.TypeLits (symbolVal)
6871
import Test.AntiGen as AntiGen
6972
import qualified Test.QuickCheck as QC
7073
import Test.QuickCheck.GenT as GenT
71-
import Data.Bifunctor (Bifunctor(..))
7274

7375
-- | A function for generating a term from a rule. The @HuddleRule@ constraint
7476
-- ensures that the rule is actually defined in that era.
@@ -156,48 +158,48 @@ canonicalizeTerm = \case
156158

157159
-- Term validators
158160

159-
validateInt :: Term -> CBORValidator Integer
161+
validateInt :: Term -> Validator Integer
160162
validateInt (TInt (toInteger -> x))
161163
| x >= nintMin || x <= uintMax = pure x
162164
| otherwise = fail "Number not in int range"
163165
validateInt _ = fail "Expected int"
164166

165-
validateUInt :: Term -> CBORValidator Integer
167+
validateUInt :: Term -> Validator Integer
166168
validateUInt (TInt (toInteger -> x))
167169
| x >= 0 || x <= uintMax = pure x
168170
| otherwise = fail "Number not in uint range"
169171
validateUInt _ = fail "Expected uint"
170172

171-
validateNInt :: Term -> CBORValidator Integer
173+
validateNInt :: Term -> Validator Integer
172174
validateNInt (TInt (toInteger -> x))
173175
| x >= nintMin || x < 0 = pure x
174176
| otherwise = fail "Number not in nint range"
175177
validateNInt _ = fail "Expected nint"
176178

177-
validateArrayTerm :: Term -> CBORValidator [Term]
179+
validateArrayTerm :: Term -> Validator [Term]
178180
validateArrayTerm (TList xs) = pure xs
179181
validateArrayTerm (TListI xs) = pure xs
180182
validateArrayTerm _ = fail "Expected list"
181183

182-
validateBytesTerm :: Term -> CBORValidator ByteString
184+
validateBytesTerm :: Term -> Validator ByteString
183185
validateBytesTerm (TBytes bs) = pure bs
184186
validateBytesTerm (TBytesI bs) = pure $ LBS.toStrict bs
185187
validateBytesTerm _ = fail "Expected bytes"
186188

187-
validateStringTerm :: Term -> CBORValidator Text
189+
validateStringTerm :: Term -> Validator Text
188190
validateStringTerm (TString x) = pure x
189191
validateStringTerm (TStringI x) = pure $ LT.toStrict x
190192
validateStringTerm _ = fail "Expected string"
191193

192-
validateMapTerm :: Term -> CBORValidator [(Term, Term)]
194+
validateMapTerm :: Term -> Validator [(Term, Term)]
193195
validateMapTerm (TMap xs) = pure xs
194196
validateMapTerm (TMapI xs) = pure xs
195197
validateMapTerm _ = fail "Expected map"
196198

197-
unwrapSingle :: WrappedTerm -> CBORValidator Term
198-
unwrapSingle (S x) = pure x
199+
unwrapSingle :: RuleTerm -> Validator Term
200+
unwrapSingle (SingleTerm x) = pure x
199201
unwrapSingle _ = fail "Expected a single term"
200202

201-
unwrapSingleOrError :: WrappedTerm -> Term
202-
unwrapSingleOrError (S x) = x
203+
unwrapSingleOrError :: RuleTerm -> Term
204+
unwrapSingleOrError (SingleTerm x) = x
203205
unwrapSingleOrError _ = error "Expected a single term"

0 commit comments

Comments
 (0)