diff --git a/cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs b/cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs index ad7e4a4e525..b54135d4a51 100644 --- a/cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs +++ b/cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs @@ -238,7 +238,7 @@ genScriptData = , ScriptDataBytes <$> genByteString ] -- The Gen.recursive combinator calls these with the size halved - [ ScriptDataConstructor <$> genInteger + [ ScriptDataConstructor <$> genConstructorInteger <*> genScriptDataList , ScriptDataList <$> genScriptDataList , ScriptDataMap <$> genScriptDataMap @@ -246,6 +246,13 @@ genScriptData = where genInteger :: Gen Integer genInteger = Gen.integral + (Range.linear + (-fromIntegral (maxBound :: Word64) :: Integer) + (2 * fromIntegral (maxBound :: Word64) :: Integer)) + + + genConstructorInteger :: Gen Integer + genConstructorInteger = Gen.integral (Range.linear 0 -- TODO: Alonzo should be -> (-fromIntegral (maxBound :: Word64) :: Integer) -- Wrapping bug needs to be fixed in Plutus library diff --git a/cardano-api/src/Cardano/Api/ScriptData.hs b/cardano-api/src/Cardano/Api/ScriptData.hs index 5d0e90fa446..6100d2fed83 100644 --- a/cardano-api/src/Cardano/Api/ScriptData.hs +++ b/cardano-api/src/Cardano/Api/ScriptData.hs @@ -270,7 +270,7 @@ validateScriptData d = -- newtype ScriptDataRangeError = - -- | The number is outside the maximum range of @-2^64-1 .. 2^64-1@. + -- | The constructor number is outside the maximum range of @-2^64-1 .. 2^64-1@. -- ScriptDataConstructorOutOfRange Integer deriving (Eq, Show) diff --git a/cardano-api/test/Test/Cardano/Api/Typed/CBOR.hs b/cardano-api/test/Test/Cardano/Api/Typed/CBOR.hs index 92a0690de15..5ae41145950 100644 --- a/cardano-api/test/Test/Cardano/Api/Typed/CBOR.hs +++ b/cardano-api/test/Test/Cardano/Api/Typed/CBOR.hs @@ -147,6 +147,10 @@ prop_roundtrip_script_PlutusScriptV2_CBOR = roundtrip_CBOR (AsScript AsPlutusScriptV2) (genScript (PlutusScriptLanguage PlutusScriptV2)) +prop_roundtrip_ScriptData_CBOR :: Property +prop_roundtrip_ScriptData_CBOR = + roundtrip_CBOR AsHashableScriptData genHashableScriptData + prop_roundtrip_UpdateProposal_CBOR :: Property prop_roundtrip_UpdateProposal_CBOR = roundtrip_CBOR AsUpdateProposal genUpdateProposal @@ -216,6 +220,7 @@ tests = testGroup "Test.Cardano.Api.Typed.CBOR" , testPropertyNamed "roundtrip script PlutusScriptV1 CBOR" "roundtrip script PlutusScriptV1 CBOR" prop_roundtrip_script_PlutusScriptV1_CBOR , testPropertyNamed "roundtrip script PlutusScriptV2 CBOR" "roundtrip script PlutusScriptV2 CBOR" prop_roundtrip_script_PlutusScriptV2_CBOR , testPropertyNamed "roundtrip UpdateProposal CBOR" "roundtrip UpdateProposal CBOR" prop_roundtrip_UpdateProposal_CBOR + , testPropertyNamed "roundtrip ScriptData CBOR" "roundtrip ScriptData CBOR" prop_roundtrip_ScriptData_CBOR , testGroup "roundtrip txbody CBOR" test_roundtrip_txbody_CBOR , testGroup "roundtrip tx CBOR" test_roundtrip_tx_CBOR , testGroup "roundtrip Tx Cddl" test_roundtrip_Tx_Cddl diff --git a/cardano-api/test/Test/Cardano/Api/Typed/Script.hs b/cardano-api/test/Test/Cardano/Api/Typed/Script.hs index 8c69cc8040b..dd2a5af02f0 100644 --- a/cardano-api/test/Test/Cardano/Api/Typed/Script.hs +++ b/cardano-api/test/Test/Cardano/Api/Typed/Script.hs @@ -116,6 +116,12 @@ prop_roundtrip_ScriptData = sData <- H.forAll genHashableScriptData sData === fromAlonzoData (toAlonzoData sData) +prop_roundtrip_HashableScriptData_JSON :: Property +prop_roundtrip_HashableScriptData_JSON = + H.property $ do + sData <- H.forAll genHashableScriptData + H.tripping sData scriptDataToJsonDetailedSchema scriptDataFromJsonDetailedSchema + -- ----------------------------------------------------------------------------- tests :: TestTree @@ -128,4 +134,5 @@ tests = testGroup "Test.Cardano.Api.Typed.Script" , testPropertyNamed "golden SimpleScriptV2 MofN" "golden SimpleScriptV2 MofN" prop_golden_SimpleScriptV2_MofN , testPropertyNamed "roundtrip SimpleScript JSON" "roundtrip SimpleScript JSON" prop_roundtrip_SimpleScript_JSON , testPropertyNamed "roundtrip ScriptData" "roundtrip ScriptData" prop_roundtrip_ScriptData + , testPropertyNamed "roundtrip HashableScriptData" "roundtrip HashableScriptData" prop_roundtrip_HashableScriptData_JSON ]