{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Cardano.CLI.Compatible.Transaction.Option
( pAllCompatibleTransactionCommands
)
where
import Cardano.Api
import Cardano.CLI.Compatible.Transaction.Command
import Cardano.CLI.Environment
import Cardano.CLI.EraBased.Common.Option hiding (pRefScriptFp, pTxOutDatum)
import Cardano.CLI.Parser
import Cardano.CLI.Type.Common
import Data.Foldable hiding (toList)
import Options.Applicative
import Options.Applicative qualified as Opt
pAllCompatibleTransactionCommands
:: EnvCli -> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pAllCompatibleTransactionCommands :: forall era.
EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pAllCompatibleTransactionCommands EnvCli
envCli ShelleyBasedEra era
sbe =
let allCommannds :: Parser (CompatibleTransactionCmds era)
allCommannds =
[Parser (CompatibleTransactionCmds era)]
-> Parser (CompatibleTransactionCmds era)
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum
[ EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
forall era.
EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransactionCommand EnvCli
envCli ShelleyBasedEra era
sbe
]
in Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era))
-> Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
String
-> ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"transaction" (ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era))
-> ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
Parser (CompatibleTransactionCmds era)
-> InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (CompatibleTransactionCmds era)
allCommannds (InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era))
-> InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
String -> InfoMod (CompatibleTransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Transaction commands."
pCompatibleSignedTransactionCommand
:: EnvCli -> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransactionCommand :: forall era.
EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransactionCommand EnvCli
envCli ShelleyBasedEra era
sbe =
Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era))
-> Mod CommandFields (CompatibleTransactionCmds era)
-> Parser (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
String
-> ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"signed-transaction" (ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era))
-> ParserInfo (CompatibleTransactionCmds era)
-> Mod CommandFields (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
Parser (CompatibleTransactionCmds era)
-> InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
forall era.
EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransaction EnvCli
envCli ShelleyBasedEra era
sbe) (InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era))
-> InfoMod (CompatibleTransactionCmds era)
-> ParserInfo (CompatibleTransactionCmds era)
forall a b. (a -> b) -> a -> b
$
String -> InfoMod (CompatibleTransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Create a simple signed transaction."
pCompatibleSignedTransaction
:: EnvCli -> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransaction :: forall era.
EnvCli
-> ShelleyBasedEra era -> Parser (CompatibleTransactionCmds era)
pCompatibleSignedTransaction EnvCli
env ShelleyBasedEra era
sbe =
ShelleyBasedEra era
-> [TxIn]
-> [TxOutAnyEra]
-> Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era
forall era.
ShelleyBasedEra era
-> [TxIn]
-> [TxOutAnyEra]
-> Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era
CreateCompatibleSignedTransaction ShelleyBasedEra era
sbe
([TxIn]
-> [TxOutAnyEra]
-> Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser [TxIn]
-> Parser
([TxOutAnyEra]
-> Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pTxInOnly
Parser
([TxOutAnyEra]
-> Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser [TxOutAnyEra]
-> Parser
(Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser TxOutAnyEra -> Parser [TxOutAnyEra]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (ShelleyBasedEra era -> Parser TxOutAnyEra
forall era. ShelleyBasedEra era -> Parser TxOutAnyEra
pTxOutEraAware ShelleyBasedEra era
sbe)
Parser
(Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))
-> Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser
(Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
-> Parser
(Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> CardanoEra era
-> Parser (Maybe UpdateProposalFile)
-> Parser
(Maybe
(Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
forall (eon :: * -> *) (f :: * -> *) era a.
(Eon eon, ToCardanoEra f) =>
f era -> Parser a -> Parser (Maybe (Featured eon era a))
pFeatured (ShelleyBasedEra era -> CardanoEra era
forall era. ShelleyBasedEra era -> CardanoEra era
forall (eon :: * -> *) era.
ToCardanoEra eon =>
eon era -> CardanoEra era
toCardanoEra ShelleyBasedEra era
sbe) (Parser UpdateProposalFile -> Parser (Maybe UpdateProposalFile)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser UpdateProposalFile
pUpdateProposalFile)
Parser
(Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)])
-> [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser
(Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)]))
-> Parser
([(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> CardanoEra era
-> Parser [(ProposalFile 'In, Maybe CliProposalScriptRequirements)]
-> Parser
(Maybe
(Featured
ConwayEraOnwards
era
[(ProposalFile 'In, Maybe CliProposalScriptRequirements)]))
forall (eon :: * -> *) (f :: * -> *) era a.
(Eon eon, ToCardanoEra f) =>
f era -> Parser a -> Parser (Maybe (Featured eon era a))
pFeatured (ShelleyBasedEra era -> CardanoEra era
forall era. ShelleyBasedEra era -> CardanoEra era
forall (eon :: * -> *) era.
ToCardanoEra eon =>
eon era -> CardanoEra era
toCardanoEra ShelleyBasedEra era
sbe) (Parser (ProposalFile 'In, Maybe CliProposalScriptRequirements)
-> Parser [(ProposalFile 'In, Maybe CliProposalScriptRequirements)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (BalanceTxExecUnits
-> Parser (ProposalFile 'In, Maybe CliProposalScriptRequirements)
pProposalFile BalanceTxExecUnits
ManualBalance))
Parser
([(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> [WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
-> Parser
([WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ShelleyBasedEra era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
forall era.
ShelleyBasedEra era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe CliVoteScriptRequirements)]
pVoteFiles ShelleyBasedEra era
sbe BalanceTxExecUnits
ManualBalance
Parser
([WitnessSigningData]
-> Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser [WitnessSigningData]
-> Parser
(Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser WitnessSigningData -> Parser [WitnessSigningData]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser WitnessSigningData
pWitnessSigningData
Parser
(Maybe NetworkId
-> Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser (Maybe NetworkId)
-> Parser
(Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser NetworkId -> Parser (Maybe NetworkId)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (EnvCli -> Parser NetworkId
pNetworkId EnvCli
env)
Parser
(Coin
-> [(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out
-> CompatibleTransactionCmds era)
-> Parser Coin
-> Parser
([(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out -> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser Coin
pTxFee
Parser
([(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> File () 'Out -> CompatibleTransactionCmds era)
-> Parser
[(CertificateFile, Maybe CliCertificateScriptRequirements)]
-> Parser (File () 'Out -> CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (CertificateFile, Maybe CliCertificateScriptRequirements)
-> Parser
[(CertificateFile, Maybe CliCertificateScriptRequirements)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (BalanceTxExecUnits
-> Parser (CertificateFile, Maybe CliCertificateScriptRequirements)
pCertificateFile BalanceTxExecUnits
ManualBalance)
Parser (File () 'Out -> CompatibleTransactionCmds era)
-> Parser (File () 'Out) -> Parser (CompatibleTransactionCmds era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (File () 'Out)
forall content. Parser (File content 'Out)
pOutputFile
pTxInOnly :: Parser TxIn
pTxInOnly :: Parser TxIn
pTxInOnly =
ReadM TxIn -> Mod OptionFields TxIn -> Parser TxIn
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option
(Parser TxIn -> ReadM TxIn
forall a. Parser a -> ReadM a
readerFromParsecParser Parser TxIn
parseTxIn)
( String -> Mod OptionFields TxIn
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"tx-in"
Mod OptionFields TxIn
-> Mod OptionFields TxIn -> Mod OptionFields TxIn
forall a. Semigroup a => a -> a -> a
<> String -> Mod OptionFields TxIn
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"TX-IN"
Mod OptionFields TxIn
-> Mod OptionFields TxIn -> Mod OptionFields TxIn
forall a. Semigroup a => a -> a -> a
<> String -> Mod OptionFields TxIn
forall (f :: * -> *) a. String -> Mod f a
Opt.help String
"TxId#TxIx"
)
pTxOutEraAware :: ShelleyBasedEra era -> Parser TxOutAnyEra
pTxOutEraAware :: forall era. ShelleyBasedEra era -> Parser TxOutAnyEra
pTxOutEraAware ShelleyBasedEra era
sbe =
ReadM (TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Parser
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option
(Parser (TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> ReadM (TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall a. Parser a -> ReadM a
readerFromParsecParser Parser (TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
parseTxOutAnyEra)
( String
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"tx-out"
Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall a. Semigroup a => a -> a -> a
<> String
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"ADDRESS VALUE"
Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall a. Semigroup a => a -> a -> a
<> String
-> Mod
OptionFields
(TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
forall (f :: * -> *) a. String -> Mod f a
Opt.help
String
"The transaction output as ADDRESS VALUE where ADDRESS is \
\the Bech32-encoded address followed by the value in \
\the multi-asset syntax (including simply Lovelace)."
)
Parser (TxOutDatumAnyEra -> ReferenceScriptAnyEra -> TxOutAnyEra)
-> Parser TxOutDatumAnyEra
-> Parser (ReferenceScriptAnyEra -> TxOutAnyEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ShelleyBasedEra era -> Parser TxOutDatumAnyEra
forall era. ShelleyBasedEra era -> Parser TxOutDatumAnyEra
pTxOutDatum ShelleyBasedEra era
sbe
Parser (ReferenceScriptAnyEra -> TxOutAnyEra)
-> Parser ReferenceScriptAnyEra -> Parser TxOutAnyEra
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ShelleyBasedEra era -> Parser ReferenceScriptAnyEra
forall era. ShelleyBasedEra era -> Parser ReferenceScriptAnyEra
pRefScriptFp ShelleyBasedEra era
sbe
pTxOutDatum :: ShelleyBasedEra era -> Parser TxOutDatumAnyEra
pTxOutDatum :: forall era. ShelleyBasedEra era -> Parser TxOutDatumAnyEra
pTxOutDatum =
(ShelleyToMaryEraConstraints era =>
ShelleyToMaryEra era -> Parser TxOutDatumAnyEra)
-> (AlonzoEraOnwardsConstraints era =>
AlonzoEraOnwards era -> Parser TxOutDatumAnyEra)
-> ShelleyBasedEra era
-> Parser TxOutDatumAnyEra
forall era a.
(ShelleyToMaryEraConstraints era => ShelleyToMaryEra era -> a)
-> (AlonzoEraOnwardsConstraints era => AlonzoEraOnwards era -> a)
-> ShelleyBasedEra era
-> a
caseShelleyToMaryOrAlonzoEraOnwards
(Parser TxOutDatumAnyEra
-> ShelleyToMaryEra era -> Parser TxOutDatumAnyEra
forall a b. a -> b -> a
const (Parser TxOutDatumAnyEra
-> ShelleyToMaryEra era -> Parser TxOutDatumAnyEra)
-> Parser TxOutDatumAnyEra
-> ShelleyToMaryEra era
-> Parser TxOutDatumAnyEra
forall a b. (a -> b) -> a -> b
$ TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TxOutDatumAnyEra
TxOutDatumByNone)
( \case
AlonzoEraOnwards era
AlonzoEraOnwardsAlonzo ->
Parser TxOutDatumAnyEra
pAlonzoDatumFunctionality Parser TxOutDatumAnyEra
-> Parser TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TxOutDatumAnyEra
TxOutDatumByNone
AlonzoEraOnwards era
AlonzoEraOnwardsBabbage ->
Parser TxOutDatumAnyEra
pBabbageDatumFunctionality Parser TxOutDatumAnyEra
-> Parser TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TxOutDatumAnyEra
TxOutDatumByNone
AlonzoEraOnwards era
AlonzoEraOnwardsConway -> Parser TxOutDatumAnyEra
pConwayDatumFunctionality Parser TxOutDatumAnyEra
-> Parser TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> TxOutDatumAnyEra -> Parser TxOutDatumAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TxOutDatumAnyEra
TxOutDatumByNone
)
where
pAlonzoDatumFunctionality :: Parser TxOutDatumAnyEra
pAlonzoDatumFunctionality =
[Parser TxOutDatumAnyEra] -> Parser TxOutDatumAnyEra
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum
[ Parser TxOutDatumAnyEra
pTxOutDatumByHashOnly
, Parser TxOutDatumAnyEra
pTxOutDatumByHashOf
, Parser TxOutDatumAnyEra
pTxOutDatumByValue
]
pBabbageDatumFunctionality :: Parser TxOutDatumAnyEra
pBabbageDatumFunctionality =
[Parser TxOutDatumAnyEra] -> Parser TxOutDatumAnyEra
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum
[ Parser TxOutDatumAnyEra
pAlonzoDatumFunctionality
, Parser TxOutDatumAnyEra
pTxOutInlineDatumByValue
]
pConwayDatumFunctionality :: Parser TxOutDatumAnyEra
pConwayDatumFunctionality = Parser TxOutDatumAnyEra
pBabbageDatumFunctionality
pTxOutDatumByHashOnly :: Parser TxOutDatumAnyEra
pTxOutDatumByHashOnly =
(Hash ScriptData -> TxOutDatumAnyEra)
-> Parser (Hash ScriptData) -> Parser TxOutDatumAnyEra
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Hash ScriptData -> TxOutDatumAnyEra
TxOutDatumByHashOnly (Parser (Hash ScriptData) -> Parser TxOutDatumAnyEra)
-> Parser (Hash ScriptData) -> Parser TxOutDatumAnyEra
forall a b. (a -> b) -> a -> b
$
ReadM (Hash ScriptData)
-> Mod OptionFields (Hash ScriptData) -> Parser (Hash ScriptData)
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option (Parser (Hash ScriptData) -> ReadM (Hash ScriptData)
forall a. Parser a -> ReadM a
readerFromParsecParser (Parser (Hash ScriptData) -> ReadM (Hash ScriptData))
-> Parser (Hash ScriptData) -> ReadM (Hash ScriptData)
forall a b. (a -> b) -> a -> b
$ AsType (Hash ScriptData) -> Parser (Hash ScriptData)
forall a.
SerialiseAsRawBytes (Hash a) =>
AsType (Hash a) -> Parser (Hash a)
parseHash (AsType ScriptData -> AsType (Hash ScriptData)
forall a. AsType a -> AsType (Hash a)
AsHash AsType ScriptData
AsScriptData)) (Mod OptionFields (Hash ScriptData) -> Parser (Hash ScriptData))
-> Mod OptionFields (Hash ScriptData) -> Parser (Hash ScriptData)
forall a b. (a -> b) -> a -> b
$
[Mod OptionFields (Hash ScriptData)]
-> Mod OptionFields (Hash ScriptData)
forall a. Monoid a => [a] -> a
mconcat
[ String -> Mod OptionFields (Hash ScriptData)
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"tx-out-datum-hash"
, String -> Mod OptionFields (Hash ScriptData)
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"HASH"
, String -> Mod OptionFields (Hash ScriptData)
forall (f :: * -> *) a. String -> Mod f a
Opt.help (String -> Mod OptionFields (Hash ScriptData))
-> String -> Mod OptionFields (Hash ScriptData)
forall a b. (a -> b) -> a -> b
$
[String] -> String
forall a. Monoid a => [a] -> a
mconcat
[ String
"The script datum hash for this tx output, as "
, String
"the raw datum hash (in hex)."
]
]
pTxOutDatumByHashOf :: Parser TxOutDatumAnyEra
pTxOutDatumByHashOf =
ScriptDataOrFile -> TxOutDatumAnyEra
TxOutDatumByHashOf
(ScriptDataOrFile -> TxOutDatumAnyEra)
-> Parser ScriptDataOrFile -> Parser TxOutDatumAnyEra
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> String -> Parser ScriptDataOrFile
pScriptDataOrFile
String
"tx-out-datum-hash"
String
"The script datum hash for this tx output, by hashing the script datum given here."
String
"The script datum hash for this tx output, by hashing the script datum in the file."
pTxOutDatumByValue :: Parser TxOutDatumAnyEra
pTxOutDatumByValue =
ScriptDataOrFile -> TxOutDatumAnyEra
TxOutDatumByValue
(ScriptDataOrFile -> TxOutDatumAnyEra)
-> Parser ScriptDataOrFile -> Parser TxOutDatumAnyEra
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> String -> Parser ScriptDataOrFile
pScriptDataOrFile
String
"tx-out-datum-embed"
String
"The script datum to embed in the tx for this output, given here."
String
"The script datum to embed in the tx for this output, in the given file."
pTxOutInlineDatumByValue :: Parser TxOutDatumAnyEra
pTxOutInlineDatumByValue =
ScriptDataOrFile -> TxOutDatumAnyEra
TxOutInlineDatumByValue
(ScriptDataOrFile -> TxOutDatumAnyEra)
-> Parser ScriptDataOrFile -> Parser TxOutDatumAnyEra
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> String -> Parser ScriptDataOrFile
pScriptDataOrFile
String
"tx-out-inline-datum"
String
"The script datum to embed in the tx output as an inline datum, given here."
String
"The script datum to embed in the tx output as an inline datum, in the given file."
pRefScriptFp :: ShelleyBasedEra era -> Parser ReferenceScriptAnyEra
pRefScriptFp :: forall era. ShelleyBasedEra era -> Parser ReferenceScriptAnyEra
pRefScriptFp =
(ShelleyToBabbageEraConstraints era =>
ShelleyToBabbageEra era -> Parser ReferenceScriptAnyEra)
-> (ConwayEraOnwardsConstraints era =>
ConwayEraOnwards era -> Parser ReferenceScriptAnyEra)
-> ShelleyBasedEra era
-> Parser ReferenceScriptAnyEra
forall era a.
(ShelleyToBabbageEraConstraints era =>
ShelleyToBabbageEra era -> a)
-> (ConwayEraOnwardsConstraints era => ConwayEraOnwards era -> a)
-> ShelleyBasedEra era
-> a
caseShelleyToBabbageOrConwayEraOnwards
(Parser ReferenceScriptAnyEra
-> ShelleyToBabbageEra era -> Parser ReferenceScriptAnyEra
forall a b. a -> b -> a
const (Parser ReferenceScriptAnyEra
-> ShelleyToBabbageEra era -> Parser ReferenceScriptAnyEra)
-> Parser ReferenceScriptAnyEra
-> ShelleyToBabbageEra era
-> Parser ReferenceScriptAnyEra
forall a b. (a -> b) -> a -> b
$ ReferenceScriptAnyEra -> Parser ReferenceScriptAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ReferenceScriptAnyEra
ReferenceScriptAnyEraNone)
( Parser ReferenceScriptAnyEra
-> ConwayEraOnwards era -> Parser ReferenceScriptAnyEra
forall a b. a -> b -> a
const (Parser ReferenceScriptAnyEra
-> ConwayEraOnwards era -> Parser ReferenceScriptAnyEra)
-> Parser ReferenceScriptAnyEra
-> ConwayEraOnwards era
-> Parser ReferenceScriptAnyEra
forall a b. (a -> b) -> a -> b
$
String -> ReferenceScriptAnyEra
ReferenceScriptAnyEra
(String -> ReferenceScriptAnyEra)
-> Parser String -> Parser ReferenceScriptAnyEra
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> Parser String
parseFilePath String
"tx-out-reference-script-file" String
"Reference script input file."
Parser ReferenceScriptAnyEra
-> Parser ReferenceScriptAnyEra -> Parser ReferenceScriptAnyEra
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> ReferenceScriptAnyEra -> Parser ReferenceScriptAnyEra
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ReferenceScriptAnyEra
ReferenceScriptAnyEraNone
)