Skip to content

Commit

Permalink
Merge pull request #263 from input-output-hk/newhoggy/replace-TxMetad…
Browse files Browse the repository at this point in the history
…ataSupportedInEra

Replace `TxMetadataSupportedInEra`
  • Loading branch information
newhoggy committed Sep 26, 2023
2 parents 7051add + f8024e8 commit b137308
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 92 deletions.
11 changes: 6 additions & 5 deletions cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs
Original file line number Diff line number Diff line change
Expand Up @@ -562,14 +562,15 @@ genTxValidityRange era =
<*> genTxValidityUpperBound era

genTxMetadataInEra :: CardanoEra era -> Gen (TxMetadataInEra era)
genTxMetadataInEra era =
case txMetadataSupportedInEra era of
Nothing -> pure TxMetadataNone
Just supported ->
genTxMetadataInEra =
inEonForEra
(pure TxMetadataNone)
(\w ->
Gen.choice
[ pure TxMetadataNone
, TxMetadataInEra supported <$> genTxMetadata
, TxMetadataInEra w <$> genTxMetadata
]
)

genTxAuxScripts :: CardanoEra era -> Gen (TxAuxScripts era)
genTxAuxScripts era =
Expand Down
120 changes: 35 additions & 85 deletions cardano-api/internal/Cardano/Api/TxBody.hs
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,6 @@ module Cardano.Api.TxBody (
ValidityUpperBoundSupportedInEra(..),
ValidityNoUpperBoundSupportedInEra(..),
ValidityLowerBoundSupportedInEra(..),
TxMetadataSupportedInEra(..),
AuxScriptsSupportedInEra(..),
TxExtraKeyWitnessesSupportedInEra(..),
AlonzoEraOnwards(..),
Expand All @@ -131,7 +130,6 @@ module Cardano.Api.TxBody (
validityUpperBoundSupportedInEra,
validityNoUpperBoundSupportedInEra,
validityLowerBoundSupportedInEra,
txMetadataSupportedInEra,
auxScriptsSupportedInEra,
extraKeyWitnessesSupportedInEra,
withdrawalsSupportedInEra,
Expand Down Expand Up @@ -1006,32 +1004,6 @@ validityLowerBoundSupportedInEra AlonzoEra = Just ValidityLowerBoundInAlonzoEra
validityLowerBoundSupportedInEra BabbageEra = Just ValidityLowerBoundInBabbageEra
validityLowerBoundSupportedInEra ConwayEra = Just ValidityLowerBoundInConwayEra

-- | A representation of whether the era supports transaction metadata.
--
-- Transaction metadata is supported from the Shelley era onwards.
--
data TxMetadataSupportedInEra era where

TxMetadataInShelleyEra :: TxMetadataSupportedInEra ShelleyEra
TxMetadataInAllegraEra :: TxMetadataSupportedInEra AllegraEra
TxMetadataInMaryEra :: TxMetadataSupportedInEra MaryEra
TxMetadataInAlonzoEra :: TxMetadataSupportedInEra AlonzoEra
TxMetadataInBabbageEra :: TxMetadataSupportedInEra BabbageEra
TxMetadataInConwayEra :: TxMetadataSupportedInEra ConwayEra

deriving instance Eq (TxMetadataSupportedInEra era)
deriving instance Show (TxMetadataSupportedInEra era)

txMetadataSupportedInEra :: CardanoEra era
-> Maybe (TxMetadataSupportedInEra era)
txMetadataSupportedInEra ByronEra = Nothing
txMetadataSupportedInEra ShelleyEra = Just TxMetadataInShelleyEra
txMetadataSupportedInEra AllegraEra = Just TxMetadataInAllegraEra
txMetadataSupportedInEra MaryEra = Just TxMetadataInMaryEra
txMetadataSupportedInEra AlonzoEra = Just TxMetadataInAlonzoEra
txMetadataSupportedInEra BabbageEra = Just TxMetadataInBabbageEra
txMetadataSupportedInEra ConwayEra = Just TxMetadataInConwayEra


-- | A representation of whether the era supports auxiliary scripts in
-- transactions.
Expand Down Expand Up @@ -1465,11 +1437,13 @@ deriving instance Show (TxValidityLowerBound era)

data TxMetadataInEra era where

TxMetadataNone :: TxMetadataInEra era
TxMetadataNone
:: TxMetadataInEra era

TxMetadataInEra :: TxMetadataSupportedInEra era
-> TxMetadata
-> TxMetadataInEra era
TxMetadataInEra
:: ShelleyBasedEra era
-> TxMetadata
-> TxMetadataInEra era

deriving instance Eq (TxMetadataInEra era)
deriving instance Show (TxMetadataInEra era)
Expand Down Expand Up @@ -2894,60 +2868,36 @@ fromLedgerTxAuxiliaryData
-> (TxMetadataInEra era, TxAuxScripts era)
fromLedgerTxAuxiliaryData _ Nothing = (TxMetadataNone, TxAuxScriptsNone)
fromLedgerTxAuxiliaryData sbe (Just auxData) =
case sbe of
ShelleyBasedEraShelley ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInShelleyEra $ TxMetadata ms
, TxAuxScriptsNone
)
ShelleyBasedEraAllegra ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInAllegraEra $ TxMetadata ms
, case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInAllegraEra ss
)
ShelleyBasedEraMary ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInMaryEra $ TxMetadata ms
, case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInMaryEra ss
)
ShelleyBasedEraAlonzo ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInAlonzoEra $ TxMetadata ms
, case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInAlonzoEra ss
)
ShelleyBasedEraBabbage ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInBabbageEra $ TxMetadata ms
, case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInBabbageEra ss
)
ShelleyBasedEraConway ->
( if null ms then
TxMetadataNone
else
TxMetadataInEra TxMetadataInConwayEra $ TxMetadata ms
, case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInConwayEra ss
)
(metadata, auxdata)

where
metadata = if null ms then TxMetadataNone else TxMetadataInEra sbe $ TxMetadata ms

auxdata =
case sbe of
ShelleyBasedEraShelley ->
TxAuxScriptsNone
ShelleyBasedEraAllegra ->
case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInAllegraEra ss
ShelleyBasedEraMary ->
case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInMaryEra ss
ShelleyBasedEraAlonzo ->
case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInAlonzoEra ss
ShelleyBasedEraBabbage ->
case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInBabbageEra ss
ShelleyBasedEraConway ->
case ss of
[] -> TxAuxScriptsNone
_ -> TxAuxScripts AuxScriptsInConwayEra ss

(ms, ss) = fromLedgerAuxiliaryData sbe auxData


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 @@ -391,7 +391,6 @@ module Cardano.Api (
ValidityUpperBoundSupportedInEra(..),
ValidityNoUpperBoundSupportedInEra(..),
ValidityLowerBoundSupportedInEra(..),
TxMetadataSupportedInEra(..),
AuxScriptsSupportedInEra(..),
TxExtraKeyWitnessesSupportedInEra(..),
WithdrawalsSupportedInEra(..),
Expand All @@ -403,7 +402,6 @@ module Cardano.Api (
validityUpperBoundSupportedInEra,
validityNoUpperBoundSupportedInEra,
validityLowerBoundSupportedInEra,
txMetadataSupportedInEra,
auxScriptsSupportedInEra,
extraKeyWitnessesSupportedInEra,
withdrawalsSupportedInEra,
Expand Down

0 comments on commit b137308

Please sign in to comment.