Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace TxMetadataSupportedInEra #263

Merged
merged 1 commit into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 @@ -120,7 +120,6 @@ module Cardano.Api.TxBody (
ValidityUpperBoundSupportedInEra(..),
ValidityNoUpperBoundSupportedInEra(..),
ValidityLowerBoundSupportedInEra(..),
TxMetadataSupportedInEra(..),
AuxScriptsSupportedInEra(..),
TxExtraKeyWitnessesSupportedInEra(..),
ScriptDataSupportedInEra(..),
Expand All @@ -135,7 +134,6 @@ module Cardano.Api.TxBody (
validityUpperBoundSupportedInEra,
validityNoUpperBoundSupportedInEra,
validityLowerBoundSupportedInEra,
txMetadataSupportedInEra,
auxScriptsSupportedInEra,
extraKeyWitnessesSupportedInEra,
scriptDataSupportedInEra,
Expand Down Expand Up @@ -1121,32 +1119,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 @@ -1626,11 +1598,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 @@ -3065,60 +3039,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 @@ -347,7 +347,6 @@ module Cardano.Api (
ValidityUpperBoundSupportedInEra(..),
ValidityNoUpperBoundSupportedInEra(..),
ValidityLowerBoundSupportedInEra(..),
TxMetadataSupportedInEra(..),
AuxScriptsSupportedInEra(..),
TxExtraKeyWitnessesSupportedInEra(..),
ScriptDataSupportedInEra(..),
Expand All @@ -362,7 +361,6 @@ module Cardano.Api (
validityUpperBoundSupportedInEra,
validityNoUpperBoundSupportedInEra,
validityLowerBoundSupportedInEra,
txMetadataSupportedInEra,
auxScriptsSupportedInEra,
extraKeyWitnessesSupportedInEra,
withdrawalsSupportedInEra,
Expand Down