Skip to content

Commit

Permalink
Remove deprecated functions and update types and update `serialiseTxL…
Browse files Browse the repository at this point in the history
…edgerCddl`
  • Loading branch information
palas committed Feb 4, 2025
1 parent 10b410b commit 28adec6
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 76 deletions.
56 changes: 14 additions & 42 deletions cardano-api/internal/Cardano/Api/SerialiseLedgerCddl.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ module Cardano.Api.SerialiseLedgerCddl
, writeTxFileTextEnvelopeCddl
, writeTxWitnessFileTextEnvelopeCddl
-- Exported for testing
, serialiseTxLedgerCddl
, deserialiseTxLedgerCddl
, deserialiseByronTxCddl
, serialiseWitnessLedgerCddl
, deserialiseWitnessLedgerCddl
Expand Down Expand Up @@ -122,46 +120,6 @@ instance Error TextEnvelopeCddlError where
TextEnvelopeCddlErrByronKeyWitnessUnsupported ->
"TextEnvelopeCddl error: Byron key witnesses are currently unsupported."

{-# DEPRECATED
serialiseTxLedgerCddl
"Use 'serialiseToTextEnvelope' from 'Cardano.Api.SerialiseTextEnvelope' instead."
#-}
serialiseTxLedgerCddl :: ShelleyBasedEra era -> Tx era -> TextEnvelope
serialiseTxLedgerCddl era tx =
shelleyBasedEraConstraints era $
(serialiseToTextEnvelope (Just (TextEnvelopeDescr "Ledger Cddl Format")) tx)
{ teType = TextEnvelopeType $ T.unpack $ genType tx
}
where
genType :: Tx era -> Text
genType tx' = case getTxWitnesses tx' of
[] -> "Unwitnessed " <> genTxType
_ -> "Witnessed " <> genTxType
genTxType :: Text
genTxType =
case era of
ShelleyBasedEraShelley -> "Tx ShelleyEra"
ShelleyBasedEraAllegra -> "Tx AllegraEra"
ShelleyBasedEraMary -> "Tx MaryEra"
ShelleyBasedEraAlonzo -> "Tx AlonzoEra"
ShelleyBasedEraBabbage -> "Tx BabbageEra"
ShelleyBasedEraConway -> "Tx ConwayEra"

{-# DEPRECATED
deserialiseTxLedgerCddl
"Use 'deserialiseFromTextEnvelope' from 'Cardano.Api.SerialiseTextEnvelope' instead."
#-}
deserialiseTxLedgerCddl
:: forall era
. ShelleyBasedEra era
-> TextEnvelope
-> Either TextEnvelopeError (Tx era)
deserialiseTxLedgerCddl era =
shelleyBasedEraConstraints era $ deserialiseFromTextEnvelope asType
where
asType :: AsType (Tx era)
asType = shelleyBasedEraConstraints era $ proxyToAsType Proxy

writeByronTxFileTextEnvelopeCddl
:: File content Out
-> Byron.ATxAux ByteString
Expand Down Expand Up @@ -254,6 +212,11 @@ writeTxFileTextEnvelopeCddl era path tx =
where
txJson = encodePretty' textEnvelopeCddlJSONConfig (serialiseTxLedgerCddl era tx) <> "\n"

serialiseTxLedgerCddl :: ShelleyBasedEra era -> Tx era -> TextEnvelope
serialiseTxLedgerCddl era' tx' =
shelleyBasedEraConstraints era' $
serialiseToTextEnvelope (Just (TextEnvelopeDescr "Ledger Cddl Format")) tx'

writeTxWitnessFileTextEnvelopeCddl
:: ShelleyBasedEra era
-> File () Out
Expand Down Expand Up @@ -312,6 +275,15 @@ deserialiseFromTextEnvelopeCddlAnyOf types teCddl =
matching (FromCDDLTx ttoken _f) = TextEnvelopeType (T.unpack ttoken) `legacyComparison` teType teCddl
matching (FromCDDLWitness ttoken _f) = TextEnvelopeType (T.unpack ttoken) `legacyComparison` teType teCddl

deserialiseTxLedgerCddl
:: forall era
. ShelleyBasedEra era
-> TextEnvelope
-> Either TextEnvelopeError (Tx era)
deserialiseTxLedgerCddl era =
shelleyBasedEraConstraints era $
deserialiseFromTextEnvelope (shelleyBasedEraConstraints era $ proxyToAsType Proxy)

-- Parse the text into types because this will increase code readability and
-- will make it easier to keep track of the different Cddl descriptions via
-- a single sum data type.
Expand Down
2 changes: 0 additions & 2 deletions cardano-api/src/Cardano/Api.hs
Original file line number Diff line number Diff line change
Expand Up @@ -733,8 +733,6 @@ module Cardano.Api
, deserialiseFromTextEnvelopeCddlAnyOf
, writeTxFileTextEnvelopeCddl
, writeTxWitnessFileTextEnvelopeCddl
, serialiseTxLedgerCddl
, deserialiseTxLedgerCddl
, deserialiseByronTxCddl
, serialiseWitnessLedgerCddl
, deserialiseWitnessLedgerCddl
Expand Down
32 changes: 0 additions & 32 deletions cardano-api/test/cardano-api-test/Test/Cardano/Api/CBOR.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ where
import Cardano.Api
import Cardano.Api.Script
import Cardano.Api.SerialiseLedgerCddl (cddlTypeToEra)
import Cardano.Api.SerialiseTextEnvelope (TextEnvelopeDescr (TextEnvelopeDescr))
import Cardano.Api.Shelley (AsType (..))

import qualified Data.ByteString.Base16 as Base16
Expand Down Expand Up @@ -41,28 +40,6 @@ import Test.Tasty.Hedgehog (testProperty)
-- TODO: Need to add PaymentExtendedKey roundtrip tests however
-- we can't derive an Eq instance for Crypto.HD.XPrv

-- This is the same test as prop_roundtrip_witness_CBOR but uses the
-- new function `serialiseTxLedgerCddl` instead of the deprecated
-- `serialiseToTextEnvelope`. `deserialiseTxLedgerCddl` must be
-- compatible with both during the transition.
prop_forward_compatibility_txbody_CBOR :: Property
prop_forward_compatibility_txbody_CBOR = H.property $ do
AnyShelleyBasedEra era <- H.noteShowM . H.forAll $ Gen.element [minBound .. maxBound]
x <- H.forAll $ makeSignedTransaction [] . fst <$> genValidTxBody era
shelleyBasedEraConstraints
era
( H.tripping
x
(serialiseToTextEnvelope (Just (TextEnvelopeDescr "Ledger Cddl Format")))
(deserialiseTxLedgerCddl era)
)

prop_roundtrip_txbody_CBOR :: Property
prop_roundtrip_txbody_CBOR = H.property $ do
AnyShelleyBasedEra era <- H.noteShowM . H.forAll $ Gen.element [minBound .. maxBound]
x <- H.forAll $ makeSignedTransaction [] . fst <$> genValidTxBody era
H.tripping x (serialiseTxLedgerCddl era) (deserialiseTxLedgerCddl era)

prop_roundtrip_tx_CBOR :: Property
prop_roundtrip_tx_CBOR = H.property $ do
AnyShelleyBasedEra era <- H.noteShowM . H.forAll $ Gen.element [minBound .. maxBound]
Expand Down Expand Up @@ -289,12 +266,6 @@ prop_TxWitness_cddlTypeToEra = H.property $ do
getProxy :: forall a. a -> Proxy a
getProxy _ = Proxy

prop_roundtrip_Tx_Cddl :: Property
prop_roundtrip_Tx_Cddl = H.property $ do
AnyShelleyBasedEra era <- H.noteShowM . H.forAll $ Gen.element [minBound .. maxBound]
x <- forAll $ genTx era
H.tripping x (serialiseTxLedgerCddl era) (deserialiseTxLedgerCddl era)

prop_roundtrip_TxWitness_Cddl :: Property
prop_roundtrip_TxWitness_Cddl = H.property $ do
AnyShelleyBasedEra sbe <- H.noteShowM . H.forAll $ Gen.element [minBound .. maxBound]
Expand Down Expand Up @@ -404,9 +375,6 @@ tests =
"roundtrip UpdateProposal CBOR"
prop_roundtrip_UpdateProposal_CBOR
, testProperty "roundtrip ScriptData CBOR" prop_roundtrip_ScriptData_CBOR
, testProperty "roundtrip txbody forward compatibility CBOR" prop_forward_compatibility_txbody_CBOR
, testProperty "roundtrip txbody CBOR" prop_roundtrip_txbody_CBOR
, testProperty "roundtrip Tx Cddl" prop_roundtrip_Tx_Cddl
, testProperty "roundtrip TxWitness Cddl" prop_roundtrip_TxWitness_Cddl
, testProperty "roundtrip tx CBOR" prop_roundtrip_tx_CBOR
, testProperty
Expand Down

0 comments on commit 28adec6

Please sign in to comment.