{-# LANGUAGE DataKinds #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Api.Serialise.TextEnvelope.Internal
( HasTextEnvelope (..)
, textEnvelopeType
, textEnvelopeTypeInEra
, TextEnvelope (..)
, TextEnvelopeType (..)
, TextEnvelopeDescr (..)
, textEnvelopeRawCBOR
, TextEnvelopeError (..)
, serialiseToTextEnvelope
, deserialiseFromTextEnvelope
, readFileTextEnvelope
, writeFileTextEnvelope
, writeFileTextEnvelopeWithOwnerPermissions
, readTextEnvelopeFromFile
, readTextEnvelopeOfTypeFromFile
, textEnvelopeToJSON
, serialiseTextEnvelope
, legacyComparison
, textEnvelopeTypeToEra
, FromSomeType (..)
, deserialiseFromTextEnvelopeAnyOf
, decodeTextEnvelopeJSON
, deserialiseFromTextEnvelopeJSON
, deserialiseFromTextEnvelopeJSONAnyOf
, readFileTextEnvelopeAnyOf
, AsType (..)
)
where
import Cardano.Api.Era
import Cardano.Api.Error
import Cardano.Api.HasTypeProxy
import Cardano.Api.IO
import Cardano.Keys.Serialise.TextEnvelope
import Control.Monad.IO.Class (MonadIO)
import Control.Monad.Trans.Except (ExceptT (..), runExceptT)
import Control.Monad.Trans.Except.Extra (firstExceptT, hoistEither)
import Data.Aeson qualified as Aeson
import Data.Text (Text)
instance Error TextEnvelopeError where
prettyError :: forall ann. TextEnvelopeError -> Doc ann
prettyError = TextEnvelopeError -> Doc ann
forall ann. TextEnvelopeError -> Doc ann
renderTextEnvelopeError
textEnvelopeTypeInEra
:: ()
=> HasTextEnvelope (f era)
=> CardanoEra era
-> AsType (f era)
-> TextEnvelopeType
textEnvelopeTypeInEra :: forall (f :: * -> *) era.
HasTextEnvelope (f era) =>
CardanoEra era -> AsType (f era) -> TextEnvelopeType
textEnvelopeTypeInEra CardanoEra era
_ =
AsType (f era) -> TextEnvelopeType
forall a. HasTextEnvelope a => AsType a -> TextEnvelopeType
textEnvelopeType
writeFileTextEnvelope
:: HasTextEnvelope a
=> File content Out
-> Maybe TextEnvelopeDescr
-> a
-> IO (Either (FileError ()) ())
writeFileTextEnvelope :: forall a content.
HasTextEnvelope a =>
File content 'Out
-> Maybe TextEnvelopeDescr -> a -> IO (Either (FileError ()) ())
writeFileTextEnvelope File content 'Out
outputFile Maybe TextEnvelopeDescr
mbDescr a
a =
File content 'Out -> ByteString -> IO (Either (FileError ()) ())
forall (m :: * -> *) content e.
MonadIO m =>
File content 'Out -> ByteString -> m (Either (FileError e) ())
writeLazyByteStringFile File content 'Out
outputFile (Maybe TextEnvelopeDescr -> a -> ByteString
forall a.
HasTextEnvelope a =>
Maybe TextEnvelopeDescr -> a -> ByteString
textEnvelopeToJSON Maybe TextEnvelopeDescr
mbDescr a
a)
writeFileTextEnvelopeWithOwnerPermissions
:: HasTextEnvelope a
=> MonadIO m
=> File content Out
-> Maybe TextEnvelopeDescr
-> a
-> m (Either (FileError ()) ())
writeFileTextEnvelopeWithOwnerPermissions :: forall a (m :: * -> *) content.
(HasTextEnvelope a, MonadIO m) =>
File content 'Out
-> Maybe TextEnvelopeDescr -> a -> m (Either (FileError ()) ())
writeFileTextEnvelopeWithOwnerPermissions File content 'Out
outputFile Maybe TextEnvelopeDescr
mbDescr a
a =
File content 'Out -> ByteString -> m (Either (FileError ()) ())
forall (m :: * -> *) content e.
MonadIO m =>
File content 'Out -> ByteString -> m (Either (FileError e) ())
writeLazyByteStringFileWithOwnerPermissions File content 'Out
outputFile (Maybe TextEnvelopeDescr -> a -> ByteString
forall a.
HasTextEnvelope a =>
Maybe TextEnvelopeDescr -> a -> ByteString
textEnvelopeToJSON Maybe TextEnvelopeDescr
mbDescr a
a)
readFileTextEnvelope
:: HasTextEnvelope a
=> File content In
-> IO (Either (FileError TextEnvelopeError) a)
readFileTextEnvelope :: forall a content.
HasTextEnvelope a =>
File content 'In -> IO (Either (FileError TextEnvelopeError) a)
readFileTextEnvelope File content 'In
path =
ExceptT (FileError TextEnvelopeError) IO a
-> IO (Either (FileError TextEnvelopeError) a)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT (ExceptT (FileError TextEnvelopeError) IO a
-> IO (Either (FileError TextEnvelopeError) a))
-> ExceptT (FileError TextEnvelopeError) IO a
-> IO (Either (FileError TextEnvelopeError) a)
forall a b. (a -> b) -> a -> b
$ do
content <- FilePath
-> (FilePath -> IO ByteString)
-> ExceptT (FileError TextEnvelopeError) IO ByteString
forall (m :: * -> *) s e.
MonadIO m =>
FilePath -> (FilePath -> IO s) -> ExceptT (FileError e) m s
fileIOExceptT (File content 'In -> FilePath
forall content (direction :: FileDirection).
File content direction -> FilePath
unFile File content 'In
path) FilePath -> IO ByteString
readFileBlocking
firstExceptT (FileError (unFile path)) $
hoistEither $
deserialiseFromTextEnvelopeJSON content
readFileTextEnvelopeAnyOf
:: [FromSomeType HasTextEnvelope b]
-> File content In
-> IO (Either (FileError TextEnvelopeError) b)
readFileTextEnvelopeAnyOf :: forall b content.
[FromSomeType HasTextEnvelope b]
-> File content 'In -> IO (Either (FileError TextEnvelopeError) b)
readFileTextEnvelopeAnyOf [FromSomeType HasTextEnvelope b]
types File content 'In
path =
ExceptT (FileError TextEnvelopeError) IO b
-> IO (Either (FileError TextEnvelopeError) b)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT (ExceptT (FileError TextEnvelopeError) IO b
-> IO (Either (FileError TextEnvelopeError) b))
-> ExceptT (FileError TextEnvelopeError) IO b
-> IO (Either (FileError TextEnvelopeError) b)
forall a b. (a -> b) -> a -> b
$ do
content <- FilePath
-> (FilePath -> IO ByteString)
-> ExceptT (FileError TextEnvelopeError) IO ByteString
forall (m :: * -> *) s e.
MonadIO m =>
FilePath -> (FilePath -> IO s) -> ExceptT (FileError e) m s
fileIOExceptT (File content 'In -> FilePath
forall content (direction :: FileDirection).
File content direction -> FilePath
unFile File content 'In
path) FilePath -> IO ByteString
readFileBlocking
firstExceptT (FileError (unFile path)) $
hoistEither $
deserialiseFromTextEnvelopeJSONAnyOf types content
readTextEnvelopeFromFile
:: FilePath
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeFromFile :: FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeFromFile FilePath
path =
ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT (ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope))
-> ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
forall a b. (a -> b) -> a -> b
$ do
bs <- FilePath
-> (FilePath -> IO ByteString)
-> ExceptT (FileError TextEnvelopeError) IO ByteString
forall (m :: * -> *) s e.
MonadIO m =>
FilePath -> (FilePath -> IO s) -> ExceptT (FileError e) m s
fileIOExceptT FilePath
path FilePath -> IO ByteString
readFileBlocking
firstExceptT (FileError path . TextEnvelopeAesonDecodeError)
. hoistEither
$ Aeson.eitherDecodeStrict' bs
readTextEnvelopeOfTypeFromFile
:: TextEnvelopeType
-> FilePath
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeOfTypeFromFile :: TextEnvelopeType
-> FilePath
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeOfTypeFromFile TextEnvelopeType
expectedType FilePath
path =
ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
forall e (m :: * -> *) a. ExceptT e m a -> m (Either e a)
runExceptT (ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope))
-> ExceptT (FileError TextEnvelopeError) IO TextEnvelope
-> IO (Either (FileError TextEnvelopeError) TextEnvelope)
forall a b. (a -> b) -> a -> b
$ do
te <- IO (Either (FileError TextEnvelopeError) TextEnvelope)
-> ExceptT (FileError TextEnvelopeError) IO TextEnvelope
forall e (m :: * -> *) a. m (Either e a) -> ExceptT e m a
ExceptT (FilePath -> IO (Either (FileError TextEnvelopeError) TextEnvelope)
readTextEnvelopeFromFile FilePath
path)
firstExceptT (FileError path) $
hoistEither $
expectTextEnvelopeOfType (pure expectedType) te
return te
textEnvelopeTypeToEra :: Text -> Either TextEnvelopeError AnyShelleyBasedEra
textEnvelopeTypeToEra :: Text -> Either TextEnvelopeError AnyShelleyBasedEra
textEnvelopeTypeToEra =
\case
Text
"TxSignedShelley" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ShelleyEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ShelleyEra
ShelleyBasedEraShelley
Text
"Tx AllegraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AllegraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AllegraEra
ShelleyBasedEraAllegra
Text
"Tx MaryEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra MaryEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra MaryEra
ShelleyBasedEraMary
Text
"Tx AlonzoEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AlonzoEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AlonzoEra
ShelleyBasedEraAlonzo
Text
"Tx BabbageEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra BabbageEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra BabbageEra
ShelleyBasedEraBabbage
Text
"Tx ConwayEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ConwayEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ConwayEra
ShelleyBasedEraConway
Text
"Tx DijkstraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra DijkstraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra DijkstraEra
ShelleyBasedEraDijkstra
Text
"Witnessed Tx ShelleyEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ShelleyEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ShelleyEra
ShelleyBasedEraShelley
Text
"Witnessed Tx AllegraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AllegraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AllegraEra
ShelleyBasedEraAllegra
Text
"Witnessed Tx MaryEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra MaryEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra MaryEra
ShelleyBasedEraMary
Text
"Witnessed Tx AlonzoEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AlonzoEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AlonzoEra
ShelleyBasedEraAlonzo
Text
"Witnessed Tx BabbageEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra BabbageEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra BabbageEra
ShelleyBasedEraBabbage
Text
"Witnessed Tx ConwayEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ConwayEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ConwayEra
ShelleyBasedEraConway
Text
"Witnessed Tx DijkstraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra DijkstraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra DijkstraEra
ShelleyBasedEraDijkstra
Text
"Unwitnessed Tx ShelleyEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ShelleyEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ShelleyEra
ShelleyBasedEraShelley
Text
"Unwitnessed Tx AllegraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AllegraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AllegraEra
ShelleyBasedEraAllegra
Text
"Unwitnessed Tx MaryEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra MaryEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra MaryEra
ShelleyBasedEraMary
Text
"Unwitnessed Tx AlonzoEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AlonzoEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AlonzoEra
ShelleyBasedEraAlonzo
Text
"Unwitnessed Tx BabbageEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra BabbageEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra BabbageEra
ShelleyBasedEraBabbage
Text
"Unwitnessed Tx ConwayEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ConwayEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ConwayEra
ShelleyBasedEraConway
Text
"Unwitnessed Tx DijkstraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra DijkstraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra DijkstraEra
ShelleyBasedEraDijkstra
Text
"TxWitness ShelleyEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ShelleyEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ShelleyEra
ShelleyBasedEraShelley
Text
"TxWitness AllegraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AllegraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AllegraEra
ShelleyBasedEraAllegra
Text
"TxWitness MaryEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra MaryEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra MaryEra
ShelleyBasedEraMary
Text
"TxWitness AlonzoEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra AlonzoEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra AlonzoEra
ShelleyBasedEraAlonzo
Text
"TxWitness BabbageEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra BabbageEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra BabbageEra
ShelleyBasedEraBabbage
Text
"TxWitness ConwayEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra ConwayEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra ConwayEra
ShelleyBasedEraConway
Text
"TxWitness DijkstraEra" -> AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra
forall a. a -> Either TextEnvelopeError a
forall (m :: * -> *) a. Monad m => a -> m a
return (AnyShelleyBasedEra -> Either TextEnvelopeError AnyShelleyBasedEra)
-> AnyShelleyBasedEra
-> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ ShelleyBasedEra DijkstraEra -> AnyShelleyBasedEra
forall era.
Typeable era =>
ShelleyBasedEra era -> AnyShelleyBasedEra
AnyShelleyBasedEra ShelleyBasedEra DijkstraEra
ShelleyBasedEraDijkstra
Text
unknownCddlType -> TextEnvelopeError -> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. a -> Either a b
Left (TextEnvelopeError -> Either TextEnvelopeError AnyShelleyBasedEra)
-> TextEnvelopeError -> Either TextEnvelopeError AnyShelleyBasedEra
forall a b. (a -> b) -> a -> b
$ Text -> TextEnvelopeError
TextEnvelopeUnknownType Text
unknownCddlType