{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Cardano.CLI.EraBased.Transaction.Option
  ( pTransactionCmds
  )
where

import Cardano.Api hiding (QueryInShelleyBasedEra (..))
import Cardano.Api.Experimental qualified as Exp

import Cardano.CLI.Environment (EnvCli (..))
import Cardano.CLI.EraBased.Common.Option
import Cardano.CLI.EraBased.Script.Guard.Option
import Cardano.CLI.EraBased.Transaction.Command
import Cardano.CLI.EraBased.Transaction.SubTransaction.Option
import Cardano.CLI.Option.Flag
import Cardano.CLI.Parser
import Cardano.CLI.Read
import Cardano.CLI.Type.Common

import Control.Monad
import Data.Foldable
import Data.Function ((&))
import Data.Time.Clock.POSIX (posixSecondsToUTCTime)
import Data.Universe (Some)
import Options.Applicative hiding (help, str)
import Options.Applicative qualified as Opt
import Options.Applicative.Help qualified as H
import Prettyprinter (line)

pTransactionCmds
  :: Exp.IsEra era
  => EnvCli
  -> Maybe (Parser (TransactionCmds era))
pTransactionCmds :: forall era.
IsEra era =>
EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionCmds EnvCli
envCli =
  String
-> InfoMod (TransactionCmds era)
-> [Maybe (Parser (TransactionCmds era))]
-> Maybe (Parser (TransactionCmds era))
forall a.
String -> InfoMod a -> [Maybe (Parser a)] -> Maybe (Parser a)
subInfoParser
    String
"transaction"
    ( String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc (String -> InfoMod (TransactionCmds era))
-> String -> InfoMod (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
        [String] -> String
forall a. Monoid a => [a] -> a
mconcat
          [ String
"Transaction commands."
          ]
    )
    [ Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"build-raw" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. IsEra era => Parser (TransactionCmds era)
pTransactionBuildRaw (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              Maybe Doc -> InfoMod (TransactionCmds era)
forall a. Maybe Doc -> InfoMod a
Opt.progDescDoc (Maybe Doc -> InfoMod (TransactionCmds era))
-> Maybe Doc -> InfoMod (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
                Doc -> Maybe Doc
forall a. a -> Maybe a
Just (Doc -> Maybe Doc) -> Doc -> Maybe Doc
forall a b. (a -> b) -> a -> b
$
                  [Doc] -> Doc
forall a. Monoid a => [a] -> a
mconcat
                    [ forall a ann. Pretty a => a -> Doc ann
pretty @String String
"Build a transaction (low-level, inconvenient)"
                    , Doc
forall ann. Doc ann
line
                    , Doc
forall ann. Doc ann
line
                    , Doc -> Doc
H.yellow (Doc -> Doc) -> Doc -> Doc
forall a b. (a -> b) -> a -> b
$
                        [Doc] -> Doc
forall a. Monoid a => [a] -> a
mconcat
                          [ Doc
"Please note "
                          , Doc -> Doc
H.underline Doc
"the order"
                          , Doc
" of some cmd options is crucial. If used incorrectly may produce "
                          , Doc
"undesired tx body. See nested [] notation above for details."
                          ]
                    ]
    , EnvCli -> Maybe (Parser (TransactionCmds era))
forall era.
IsEra era =>
EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildCmd EnvCli
envCli
    , EnvCli -> Maybe (Parser (TransactionCmds era))
forall era.
IsEra era =>
EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildEstimateCmd EnvCli
envCli
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"sign" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (EnvCli -> Parser (TransactionCmds era)
forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionSign EnvCli
envCli) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Sign a transaction"
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"witness" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (EnvCli -> Parser (TransactionCmds era)
forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionCreateWitness EnvCli
envCli) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Create a transaction witness"
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"assemble" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTransactionAssembleTxBodyWit (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Assemble a tx body and witness(es) to form a transaction"
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pSignWitnessBackwardCompatible
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"submit" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (EnvCli -> Parser (TransactionCmds era)
forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionSubmit EnvCli
envCli) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc (String -> InfoMod (TransactionCmds era))
-> String -> InfoMod (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
                [String] -> String
forall a. Monoid a => [a] -> a
mconcat
                  [ String
"Submit a transaction to the local node whose Unix domain socket "
                  , String
"is obtained from the CARDANO_NODE_SOCKET_PATH environment variable."
                  ]
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"policyid" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTransactionPolicyId (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Calculate the PolicyId from the monetary policy script."
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"calculate-min-fee" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTransactionCalculateMinFee (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Calculate the minimum fee for a transaction."
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"calculate-min-required-utxo" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. IsEra era => Parser (TransactionCmds era)
pTransactionCalculateMinReqUTxO (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Calculate the minimum required UTxO for a transaction output."
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"calculate-plutus-script-cost" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (EnvCli -> Parser (TransactionCmds era)
forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCost EnvCli
envCli) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Calculate the costs of the Plutus scripts of a given transaction."
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just Parser (TransactionCmds era)
forall era. IsEra era => Parser (TransactionCmds era)
pCalculateMinRequiredUtxoBackwardCompatible
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"hash-script-data" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTxHashScriptData (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Calculate the hash of script data."
    , Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
Just (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
        Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"txid" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTransactionId (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
              String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Print a transaction identifier."
    ]

-- Backwards compatible parsers
calcMinValueInfo :: Exp.IsEra era => ParserInfo (TransactionCmds era)
calcMinValueInfo :: forall era. IsEra era => ParserInfo (TransactionCmds era)
calcMinValueInfo =
  Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (Parser (TransactionCmds era)
forall era. IsEra era => Parser (TransactionCmds era)
pTransactionCalculateMinReqUTxO Parser (TransactionCmds era)
-> Parser (TransactionCmds era -> TransactionCmds era)
-> Parser (TransactionCmds era)
forall (f :: * -> *) a b. Applicative f => f a -> f (a -> b) -> f b
<**> Parser (TransactionCmds era -> TransactionCmds era)
forall a. Parser (a -> a)
Opt.helper) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"DEPRECATED: Use 'calculate-min-required-utxo' instead."

pCalculateMinRequiredUtxoBackwardCompatible
  :: forall era. Exp.IsEra era => Parser (TransactionCmds era)
pCalculateMinRequiredUtxoBackwardCompatible :: forall era. IsEra era => Parser (TransactionCmds era)
pCalculateMinRequiredUtxoBackwardCompatible =
  forall a. Mod CommandFields a -> Parser a
Opt.subparser @(TransactionCmds era) (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
Opt.command String
"calculate-min-value" ParserInfo (TransactionCmds era)
forall era. IsEra era => ParserInfo (TransactionCmds era)
calcMinValueInfo Mod CommandFields (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. Semigroup a => a -> a -> a
<> Mod CommandFields (TransactionCmds era)
forall (f :: * -> *) a. Mod f a
Opt.internal

assembleInfo :: ParserInfo (TransactionCmds era)
assembleInfo :: forall era. ParserInfo (TransactionCmds era)
assembleInfo =
  Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (Parser (TransactionCmds era)
forall era. Parser (TransactionCmds era)
pTransactionAssembleTxBodyWit Parser (TransactionCmds era)
-> Parser (TransactionCmds era -> TransactionCmds era)
-> Parser (TransactionCmds era)
forall (f :: * -> *) a b. Applicative f => f a -> f (a -> b) -> f b
<**> Parser (TransactionCmds era -> TransactionCmds era)
forall a. Parser (a -> a)
Opt.helper) (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc String
"Assemble a tx body and witness(es) to form a transaction"

pSignWitnessBackwardCompatible :: Parser (TransactionCmds era)
pSignWitnessBackwardCompatible :: forall era. Parser (TransactionCmds era)
pSignWitnessBackwardCompatible =
  Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.subparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
Opt.command String
"sign-witness" ParserInfo (TransactionCmds era)
forall era. ParserInfo (TransactionCmds era)
assembleInfo Mod CommandFields (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. Semigroup a => a -> a -> a
<> Mod CommandFields (TransactionCmds era)
forall (f :: * -> *) a. Mod f a
Opt.internal

pScriptValidity :: Exp.Era era -> Parser (Maybe ScriptValidity)
pScriptValidity :: forall era. Era era -> Parser (Maybe ScriptValidity)
pScriptValidity Era era
era' = case Era era
era' of
  -- CIP-0167 removes the author-supplied validity flag from standalone transactions:
  -- https://github.com/cardano-foundation/CIPs/tree/master/CIP-0167
  Era era
Exp.DijkstraEra -> Maybe ScriptValidity -> Parser (Maybe ScriptValidity)
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Maybe ScriptValidity
forall a. Maybe a
Nothing
  Era era
Exp.ConwayEra ->
    Parser ScriptValidity -> Parser (Maybe ScriptValidity)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser ScriptValidity -> Parser (Maybe ScriptValidity))
-> Parser ScriptValidity -> Parser (Maybe ScriptValidity)
forall a b. (a -> b) -> a -> b
$
      [Parser ScriptValidity] -> Parser ScriptValidity
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum
        [ ScriptValidity
-> Mod FlagFields ScriptValidity -> Parser ScriptValidity
forall a. a -> Mod FlagFields a -> Parser a
Opt.flag' ScriptValidity
ScriptValid (Mod FlagFields ScriptValidity -> Parser ScriptValidity)
-> Mod FlagFields ScriptValidity -> Parser ScriptValidity
forall a b. (a -> b) -> a -> b
$
            [Mod FlagFields ScriptValidity] -> Mod FlagFields ScriptValidity
forall a. Monoid a => [a] -> a
mconcat
              [ String -> Mod FlagFields ScriptValidity
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"script-valid"
              , String -> Mod FlagFields ScriptValidity
forall (f :: * -> *) a. String -> Mod f a
Opt.help String
"Assertion that the script is valid. (default)"
              ]
        , ScriptValidity
-> Mod FlagFields ScriptValidity -> Parser ScriptValidity
forall a. a -> Mod FlagFields a -> Parser a
Opt.flag' ScriptValidity
ScriptInvalid (Mod FlagFields ScriptValidity -> Parser ScriptValidity)
-> Mod FlagFields ScriptValidity -> Parser ScriptValidity
forall a b. (a -> b) -> a -> b
$
            [Mod FlagFields ScriptValidity] -> Mod FlagFields ScriptValidity
forall a. Monoid a => [a] -> a
mconcat
              [ String -> Mod FlagFields ScriptValidity
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"script-invalid"
              , String -> Mod FlagFields ScriptValidity
forall (f :: * -> *) a. String -> Mod f a
Opt.help (String -> Mod FlagFields ScriptValidity)
-> String -> Mod FlagFields ScriptValidity
forall a b. (a -> b) -> a -> b
$
                  [String] -> String
forall a. Monoid a => [a] -> a
mconcat
                    [ String
"Assertion that the script is invalid.  "
                    , String
"If a transaction is submitted with such a script, "
                    , String
"the script will fail and the collateral will be taken."
                    ]
              ]
        ]

pTransactionBuildCmd
  :: forall era. Exp.IsEra era => EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildCmd :: forall era.
IsEra era =>
EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildCmd EnvCli
envCli = do
  era' <- CardanoEra era -> Maybe (Era era)
forall (eon :: * -> *) era.
Eon eon =>
CardanoEra era -> Maybe (eon era)
forEraMaybeEon (Era era -> CardanoEra era
forall era. Era era -> CardanoEra era
forall a (f :: a -> *) (g :: a -> *) (era :: a).
Convert f g =>
f era -> g era
convert (Era era -> CardanoEra era) -> Era era -> CardanoEra era
forall a b. (a -> b) -> a -> b
$ forall era. IsEra era => Era era
Exp.useEra @era)
  pure $
    Opt.hsubparser $
      commandWithMetavar "build" $
        Opt.info (pCmd era') $
          Opt.progDescDoc $
            Just $
              mconcat
                [ pretty @String "Build a balanced transaction (automatically calculates fees)"
                , line
                , line
                , H.yellow $
                    mconcat
                      [ "Please note "
                      , H.underline "the order"
                      , " of some cmd options is crucial. If used incorrectly may produce "
                      , "undesired tx body. See nested [] notation above for details."
                      ]
                ]
 where
  pCmd :: Era era -> Parser (TransactionCmds era)
pCmd Era era
era' = do
    (TransactionBuildCmdArgs era -> TransactionCmds era)
-> Parser (TransactionBuildCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionBuildCmdArgs era -> TransactionCmds era
forall era. TransactionBuildCmdArgs era -> TransactionCmds era
TransactionBuildCmd (Parser (TransactionBuildCmdArgs era)
 -> Parser (TransactionCmds era))
-> Parser (TransactionBuildCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
      Era era
-> LocalNodeConnectInfo
-> Maybe ScriptValidity
-> Maybe Word
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> TxGuardArguments era
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> Maybe Coin
-> [TxOutAnyEra]
-> TxOutChangeAddress
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> IncludeCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> TxCborFormat
-> TxBuildOutputOptions
-> TransactionBuildCmdArgs era
forall era.
Era era
-> LocalNodeConnectInfo
-> Maybe ScriptValidity
-> Maybe Word
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> TxGuardArguments era
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> Maybe Coin
-> [TxOutAnyEra]
-> TxOutChangeAddress
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> IncludeCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> TxCborFormat
-> TxBuildOutputOptions
-> TransactionBuildCmdArgs era
TransactionBuildCmdArgs Era era
era'
        (LocalNodeConnectInfo
 -> Maybe ScriptValidity
 -> Maybe Word
 -> [(TxIn, Maybe AnySpendScript)]
 -> [TxIn]
 -> TxGuardArguments era
 -> [TxIn]
 -> Maybe TxOutShelleyBasedEra
 -> Maybe Coin
 -> [TxOutAnyEra]
 -> TxOutChangeAddress
 -> Maybe (MultiAsset, [AnyMintScript])
 -> Maybe SlotNo
 -> TxValidityUpperBound era
 -> [(CertificateFile, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin)]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> TxMetadataJsonSchema
 -> [ScriptFile]
 -> [MetadataFile]
 -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
 -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
 -> IncludeCurrentTreasuryValue
 -> Maybe TxTreasuryDonation
 -> TxCborFormat
 -> TxBuildOutputOptions
 -> TransactionBuildCmdArgs era)
-> Parser LocalNodeConnectInfo
-> Parser
     (Maybe ScriptValidity
      -> Maybe Word
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( ConsensusModeParams
-> NetworkId -> SocketPath -> LocalNodeConnectInfo
LocalNodeConnectInfo
                (ConsensusModeParams
 -> NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser ConsensusModeParams
-> Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser ConsensusModeParams
pConsensusModeParams
                Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser NetworkId -> Parser (SocketPath -> LocalNodeConnectInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser NetworkId
pNetworkId EnvCli
envCli
                Parser (SocketPath -> LocalNodeConnectInfo)
-> Parser SocketPath -> Parser LocalNodeConnectInfo
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser SocketPath
pSocketPath EnvCli
envCli
            )
        Parser
  (Maybe ScriptValidity
   -> Maybe Word
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe ScriptValidity)
-> Parser
     (Maybe Word
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser (Maybe ScriptValidity)
forall era. Era era -> Parser (Maybe ScriptValidity)
pScriptValidity (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  (Maybe Word
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe Word)
-> Parser
     ([(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 Word -> Parser (Maybe Word)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser Word
pWitnessOverride
        Parser
  ([(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(TxIn, Maybe AnySpendScript)]
-> Parser
     ([TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 (TxIn, Maybe AnySpendScript)
-> Parser [(TxIn, Maybe AnySpendScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
forall era.
Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
pTxInForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance)
        Parser
  ([TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [TxIn]
-> Parser
     (TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pReadOnlyReferenceTxIn
        Parser
  (TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (TxGuardArguments era)
-> Parser
     ([TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
forall era.
Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
pTxGuardArguments (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance
        Parser
  ([TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [TxIn]
-> Parser
     (Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pTxInCollateral
        Parser
  (Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe TxOutShelleyBasedEra)
-> Parser
     (Maybe Coin
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 TxOutShelleyBasedEra -> Parser (Maybe TxOutShelleyBasedEra)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser TxOutShelleyBasedEra
pReturnCollateral
        Parser
  (Maybe Coin
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe Coin)
-> Parser
     ([TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 -> Parser (Maybe Coin)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser Coin
pTotalCollateral
        Parser
  ([TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [TxOutAnyEra]
-> Parser
     (TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 Parser TxOutAnyEra
pTxOut
        Parser
  (TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser TxOutChangeAddress
-> Parser
     (Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 TxOutChangeAddress
pChangeAddress
        Parser
  (Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser
     (Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Maybe (Maybe (MultiAsset, [AnyMintScript]))
 -> Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Maybe (Maybe (MultiAsset, [AnyMintScript]))
-> Maybe (MultiAsset, [AnyMintScript])
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> (Parser (Maybe (MultiAsset, [AnyMintScript]))
    -> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript]))))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser (Maybe (MultiAsset, [AnyMintScript]))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> a -> b
$ forall era.
IsEra era =>
BalanceTxExecUnits -> Parser (Maybe (MultiAsset, [AnyMintScript]))
pMintMultiAsset @era BalanceTxExecUnits
AutoBalance)
        Parser
  (Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe SlotNo)
-> Parser
     (TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 SlotNo -> Parser (Maybe SlotNo)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser SlotNo
pInvalidBefore
        Parser
  (TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (TxValidityUpperBound era)
-> Parser
     ([(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser (TxValidityUpperBound era)
forall era. Era era -> Parser (TxValidityUpperBound era)
pInvalidHereafter Era era
era'
        Parser
  ([(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 AnyNonAssetScript)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
pCertificateFileForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance)
        Parser
  ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 (StakeAddress, Coin, Maybe AnyNonAssetScript)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
pWithdrawalForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance)
        Parser
  ([(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(StakeAddress, Coin)]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser [(StakeAddress, Coin)]
forall era. Era era -> Parser [(StakeAddress, Coin)]
pDirectDeposits (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     (TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pStartingAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  (TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser TxMetadataJsonSchema
-> Parser
     ([ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 TxMetadataJsonSchema
pTxMetadataJsonSchema
        Parser
  ([ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [ScriptFile]
-> Parser
     ([MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 ScriptFile -> Parser [ScriptFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many
          ( String -> Maybe String -> String -> Parser ScriptFile
pScriptFor
              String
"auxiliary-script-file"
              Maybe String
forall a. Maybe a
Nothing
              String
"Filepath of auxiliary script(s)"
          )
        Parser
  ([MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [MetadataFile]
-> Parser
     ([(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 MetadataFile -> Parser [MetadataFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser MetadataFile
pMetadataFile
        Parser
  ([(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
pVoteFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance
        Parser
  ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     (IncludeCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
pProposalFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
AutoBalance
        Parser
  (IncludeCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser IncludeCurrentTreasuryValue
-> Parser
     (Maybe TxTreasuryDonation
      -> TxCborFormat
      -> TxBuildOutputOptions
      -> TransactionBuildCmdArgs 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 IncludeCurrentTreasuryValue
pIncludeCurrentTreasuryValue
        Parser
  (Maybe TxTreasuryDonation
   -> TxCborFormat
   -> TxBuildOutputOptions
   -> TransactionBuildCmdArgs era)
-> Parser (Maybe TxTreasuryDonation)
-> Parser
     (TxCborFormat
      -> TxBuildOutputOptions -> TransactionBuildCmdArgs 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 (Maybe TxTreasuryDonation)
pTreasuryDonation
        Parser
  (TxCborFormat
   -> TxBuildOutputOptions -> TransactionBuildCmdArgs era)
-> Parser TxCborFormat
-> Parser (TxBuildOutputOptions -> TransactionBuildCmdArgs 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 TxCborFormat
pIsCborOutCanonical
        Parser (TxBuildOutputOptions -> TransactionBuildCmdArgs era)
-> Parser TxBuildOutputOptions
-> Parser (TransactionBuildCmdArgs 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 TxBuildOutputOptions
pTxBuildOutputOptions

-- | Estimate the transaction fees without access to a live node.
pTransactionBuildEstimateCmd
  :: forall era
   . Exp.IsEra era
  => EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildEstimateCmd :: forall era.
IsEra era =>
EnvCli -> Maybe (Parser (TransactionCmds era))
pTransactionBuildEstimateCmd EnvCli
_envCli = do
  Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Parser (TransactionCmds era)
 -> Maybe (Parser (TransactionCmds era)))
-> Parser (TransactionCmds era)
-> Maybe (Parser (TransactionCmds era))
forall a b. (a -> b) -> a -> b
$
    Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
      String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"build-estimate" (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
        Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info Parser (TransactionCmds era)
pCmd (InfoMod (TransactionCmds era) -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
          Maybe Doc -> InfoMod (TransactionCmds era)
forall a. Maybe Doc -> InfoMod a
Opt.progDescDoc (Maybe Doc -> InfoMod (TransactionCmds era))
-> Maybe Doc -> InfoMod (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
            Doc -> Maybe Doc
forall a. a -> Maybe a
Just (Doc -> Maybe Doc) -> Doc -> Maybe Doc
forall a b. (a -> b) -> a -> b
$
              [Doc] -> Doc
forall a. Monoid a => [a] -> a
mconcat
                [ forall a ann. Pretty a => a -> Doc ann
pretty @String
                    String
"Build a balanced transaction without access to a live node (automatically estimates fees)"
                , Doc
forall ann. Doc ann
line
                , Doc
forall ann. Doc ann
line
                , Doc -> Doc
H.yellow (Doc -> Doc) -> Doc -> Doc
forall a b. (a -> b) -> a -> b
$
                    [Doc] -> Doc
forall a. Monoid a => [a] -> a
mconcat
                      [ Doc
"Please note "
                      , Doc -> Doc
H.underline Doc
"the order"
                      , Doc
" of some cmd options is crucial. If used incorrectly may produce "
                      , Doc
"undesired tx body. See nested [] notation above for details."
                      ]
                ]
 where
  pCmd :: Parser (TransactionCmds era)
  pCmd :: Parser (TransactionCmds era)
pCmd = do
    (TransactionBuildEstimateCmdArgs era -> TransactionCmds era)
-> Parser (TransactionBuildEstimateCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionBuildEstimateCmdArgs era -> TransactionCmds era
forall era.
TransactionBuildEstimateCmdArgs era -> TransactionCmds era
TransactionBuildEstimateCmd (Parser (TransactionBuildEstimateCmdArgs era)
 -> Parser (TransactionCmds era))
-> Parser (TransactionBuildEstimateCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
      Era era
-> Maybe ScriptValidity
-> Int
-> Maybe Int
-> ProtocolParamsFile
-> Value
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> TxGuardArguments era
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> [TxOutAnyEra]
-> TxOutChangeAddress
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Maybe Coin
-> Maybe ReferenceScriptSize
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Maybe TxCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> TxCborFormat
-> File TxBodyTag 'Out
-> TransactionBuildEstimateCmdArgs era
forall era.
Era era
-> Maybe ScriptValidity
-> Int
-> Maybe Int
-> ProtocolParamsFile
-> Value
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> TxGuardArguments era
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> [TxOutAnyEra]
-> TxOutChangeAddress
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Maybe Coin
-> Maybe ReferenceScriptSize
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Maybe TxCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> TxCborFormat
-> File TxBodyTag 'Out
-> TransactionBuildEstimateCmdArgs era
TransactionBuildEstimateCmdArgs Era era
forall era. IsEra era => Era era
Exp.useEra
        (Maybe ScriptValidity
 -> Int
 -> Maybe Int
 -> ProtocolParamsFile
 -> Value
 -> [(TxIn, Maybe AnySpendScript)]
 -> [TxIn]
 -> TxGuardArguments era
 -> [TxIn]
 -> Maybe TxOutShelleyBasedEra
 -> [TxOutAnyEra]
 -> TxOutChangeAddress
 -> Maybe (MultiAsset, [AnyMintScript])
 -> Maybe SlotNo
 -> TxValidityUpperBound era
 -> [(CertificateFile, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin)]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> Maybe Coin
 -> Maybe ReferenceScriptSize
 -> TxMetadataJsonSchema
 -> [ScriptFile]
 -> [MetadataFile]
 -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
 -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
 -> Maybe TxCurrentTreasuryValue
 -> Maybe TxTreasuryDonation
 -> TxCborFormat
 -> File TxBodyTag 'Out
 -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe ScriptValidity)
-> Parser
     (Int
      -> Maybe Int
      -> ProtocolParamsFile
      -> Value
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Era era -> Parser (Maybe ScriptValidity)
forall era. Era era -> Parser (Maybe ScriptValidity)
pScriptValidity (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  (Int
   -> Maybe Int
   -> ProtocolParamsFile
   -> Value
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser Int
-> Parser
     (Maybe Int
      -> ProtocolParamsFile
      -> Value
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 Int
pNumberOfShelleyKeyWitnesses
        Parser
  (Maybe Int
   -> ProtocolParamsFile
   -> Value
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe Int)
-> Parser
     (ProtocolParamsFile
      -> Value
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 Int -> Parser (Maybe Int)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser Int
pNumberOfByronKeyWitnesses
        Parser
  (ProtocolParamsFile
   -> Value
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser ProtocolParamsFile
-> Parser
     (Value
      -> [(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 ProtocolParamsFile
pProtocolParamsFile
        Parser
  (Value
   -> [(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser Value
-> Parser
     ([(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 Value
pTotalUTxOValue
        Parser
  ([(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(TxIn, Maybe AnySpendScript)]
-> Parser
     ([TxIn]
      -> TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 (TxIn, Maybe AnySpendScript)
-> Parser [(TxIn, Maybe AnySpendScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
forall era.
Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
pTxInForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
        Parser
  ([TxIn]
   -> TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [TxIn]
-> Parser
     (TxGuardArguments era
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pReadOnlyReferenceTxIn
        Parser
  (TxGuardArguments era
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (TxGuardArguments era)
-> Parser
     ([TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
forall era.
Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
pTxGuardArguments (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
        Parser
  ([TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [TxIn]
-> Parser
     (Maybe TxOutShelleyBasedEra
      -> [TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pTxInCollateral
        Parser
  (Maybe TxOutShelleyBasedEra
   -> [TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe TxOutShelleyBasedEra)
-> Parser
     ([TxOutAnyEra]
      -> TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 TxOutShelleyBasedEra -> Parser (Maybe TxOutShelleyBasedEra)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser TxOutShelleyBasedEra
pReturnCollateral
        Parser
  ([TxOutAnyEra]
   -> TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [TxOutAnyEra]
-> Parser
     (TxOutChangeAddress
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 Parser TxOutAnyEra
pTxOut
        Parser
  (TxOutChangeAddress
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser TxOutChangeAddress
-> Parser
     (Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 TxOutChangeAddress
pChangeAddress
        Parser
  (Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser
     (Maybe SlotNo
      -> TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Maybe (Maybe (MultiAsset, [AnyMintScript]))
 -> Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Maybe (Maybe (MultiAsset, [AnyMintScript]))
-> Maybe (MultiAsset, [AnyMintScript])
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> (Parser (Maybe (MultiAsset, [AnyMintScript]))
    -> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript]))))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser (Maybe (MultiAsset, [AnyMintScript]))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> a -> b
$ forall era.
IsEra era =>
BalanceTxExecUnits -> Parser (Maybe (MultiAsset, [AnyMintScript]))
pMintMultiAsset @era BalanceTxExecUnits
ManualBalance)
        Parser
  (Maybe SlotNo
   -> TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe SlotNo)
-> Parser
     (TxValidityUpperBound era
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 SlotNo -> Parser (Maybe SlotNo)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser SlotNo
pInvalidBefore
        Parser
  (TxValidityUpperBound era
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (TxValidityUpperBound era)
-> Parser
     ([(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser (TxValidityUpperBound era)
forall era. Era era -> Parser (TxValidityUpperBound era)
pInvalidHereafter Era era
forall era. IsEra era => Era era
Exp.useEra
        Parser
  ([(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 AnyNonAssetScript)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
pCertificateFileForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
        Parser
  ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 (StakeAddress, Coin, Maybe AnyNonAssetScript)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
pWithdrawalForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
        Parser
  ([(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(StakeAddress, Coin)]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser [(StakeAddress, Coin)]
forall era. Era era -> Parser [(StakeAddress, Coin)]
pDirectDeposits (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     (Maybe Coin
      -> Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pStartingAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
        Parser
  (Maybe Coin
   -> Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe Coin)
-> Parser
     (Maybe ReferenceScriptSize
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 -> Parser (Maybe Coin)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser Coin
pTotalCollateral
        Parser
  (Maybe ReferenceScriptSize
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe ReferenceScriptSize)
-> Parser
     (TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 ReferenceScriptSize -> Parser (Maybe ReferenceScriptSize)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser ReferenceScriptSize
pReferenceScriptSize
        Parser
  (TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser TxMetadataJsonSchema
-> Parser
     ([ScriptFile]
      -> [MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 TxMetadataJsonSchema
pTxMetadataJsonSchema
        Parser
  ([ScriptFile]
   -> [MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [ScriptFile]
-> Parser
     ([MetadataFile]
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 ScriptFile -> Parser [ScriptFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many
          ( String -> Maybe String -> String -> Parser ScriptFile
pScriptFor
              String
"auxiliary-script-file"
              Maybe String
forall a. Maybe a
Nothing
              String
"Filepath of auxiliary script(s)"
          )
        Parser
  ([MetadataFile]
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [MetadataFile]
-> Parser
     ([(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 MetadataFile -> Parser [MetadataFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser MetadataFile
pMetadataFile
        Parser
  ([(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
pVoteFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
        Parser
  ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     (Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
pProposalFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
        Parser
  (Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe TxCurrentTreasuryValue)
-> Parser
     (Maybe TxTreasuryDonation
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildEstimateCmdArgs 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 (Maybe TxCurrentTreasuryValue)
pCurrentTreasuryValue
        Parser
  (Maybe TxTreasuryDonation
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildEstimateCmdArgs era)
-> Parser (Maybe TxTreasuryDonation)
-> Parser
     (TxCborFormat
      -> File TxBodyTag 'Out -> TransactionBuildEstimateCmdArgs 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 (Maybe TxTreasuryDonation)
pTreasuryDonation
        Parser
  (TxCborFormat
   -> File TxBodyTag 'Out -> TransactionBuildEstimateCmdArgs era)
-> Parser TxCborFormat
-> Parser
     (File TxBodyTag 'Out -> TransactionBuildEstimateCmdArgs 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 TxCborFormat
pIsCborOutCanonical
        Parser (File TxBodyTag 'Out -> TransactionBuildEstimateCmdArgs era)
-> Parser (File TxBodyTag 'Out)
-> Parser (TransactionBuildEstimateCmdArgs 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 TxBodyTag 'Out)
pTxBodyFileOut

pChangeAddress :: Parser TxOutChangeAddress
pChangeAddress :: Parser TxOutChangeAddress
pChangeAddress =
  (AddressAny -> TxOutChangeAddress)
-> Parser AddressAny -> Parser TxOutChangeAddress
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap AddressAny -> TxOutChangeAddress
TxOutChangeAddress (Parser AddressAny -> Parser TxOutChangeAddress)
-> Parser AddressAny -> Parser TxOutChangeAddress
forall a b. (a -> b) -> a -> b
$
    ReadM AddressAny
-> Mod OptionFields AddressAny -> Parser AddressAny
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option (Parser AddressAny -> ReadM AddressAny
forall a. Parser a -> ReadM a
readerFromParsecParser Parser AddressAny
forall addr. SerialiseAddress addr => Parser addr
parseAddressAny) (Mod OptionFields AddressAny -> Parser AddressAny)
-> Mod OptionFields AddressAny -> Parser AddressAny
forall a b. (a -> b) -> a -> b
$
      [Mod OptionFields AddressAny] -> Mod OptionFields AddressAny
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod OptionFields AddressAny
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"change-address"
        , String -> Mod OptionFields AddressAny
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"ADDRESS"
        , String -> Mod OptionFields AddressAny
forall (f :: * -> *) a. String -> Mod f a
Opt.help String
"Address where ADA in excess of the tx fee will go to."
        ]

pTransactionBuildRaw :: forall era. Exp.IsEra era => Parser (TransactionCmds era)
pTransactionBuildRaw :: forall era. IsEra era => Parser (TransactionCmds era)
pTransactionBuildRaw =
  (TransactionBuildRawCmdArgs era -> TransactionCmds era)
-> Parser (TransactionBuildRawCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionBuildRawCmdArgs era -> TransactionCmds era
forall era. TransactionBuildRawCmdArgs era -> TransactionCmds era
TransactionBuildRawCmd (Parser (TransactionBuildRawCmdArgs era)
 -> Parser (TransactionCmds era))
-> Parser (TransactionBuildRawCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    Era era
-> Maybe ScriptValidity
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> Maybe Coin
-> TxGuardArguments era
-> [TxOutAnyEra]
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> Coin
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> Maybe ProtocolParamsFile
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Maybe TxCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> [SignedSubTxFile 'In]
-> TxCborFormat
-> File TxBodyTag 'Out
-> TransactionBuildRawCmdArgs era
forall era.
Era era
-> Maybe ScriptValidity
-> [(TxIn, Maybe AnySpendScript)]
-> [TxIn]
-> [TxIn]
-> Maybe TxOutShelleyBasedEra
-> Maybe Coin
-> TxGuardArguments era
-> [TxOutAnyEra]
-> Maybe (MultiAsset, [AnyMintScript])
-> Maybe SlotNo
-> TxValidityUpperBound era
-> Coin
-> [(CertificateFile, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> [(StakeAddress, Coin)]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> TxMetadataJsonSchema
-> [ScriptFile]
-> [MetadataFile]
-> Maybe ProtocolParamsFile
-> [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Maybe TxCurrentTreasuryValue
-> Maybe TxTreasuryDonation
-> [SignedSubTxFile 'In]
-> TxCborFormat
-> File TxBodyTag 'Out
-> TransactionBuildRawCmdArgs era
TransactionBuildRawCmdArgs Era era
forall era. IsEra era => Era era
Exp.useEra
      (Maybe ScriptValidity
 -> [(TxIn, Maybe AnySpendScript)]
 -> [TxIn]
 -> [TxIn]
 -> Maybe TxOutShelleyBasedEra
 -> Maybe Coin
 -> TxGuardArguments era
 -> [TxOutAnyEra]
 -> Maybe (MultiAsset, [AnyMintScript])
 -> Maybe SlotNo
 -> TxValidityUpperBound era
 -> Coin
 -> [(CertificateFile, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
 -> [(StakeAddress, Coin)]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
 -> TxMetadataJsonSchema
 -> [ScriptFile]
 -> [MetadataFile]
 -> Maybe ProtocolParamsFile
 -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
 -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
 -> Maybe TxCurrentTreasuryValue
 -> Maybe TxTreasuryDonation
 -> [SignedSubTxFile 'In]
 -> TxCborFormat
 -> File TxBodyTag 'Out
 -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe ScriptValidity)
-> Parser
     ([(TxIn, Maybe AnySpendScript)]
      -> [TxIn]
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Era era -> Parser (Maybe ScriptValidity)
forall era. Era era -> Parser (Maybe ScriptValidity)
pScriptValidity (forall era. IsEra era => Era era
Exp.useEra @era)
      Parser
  ([(TxIn, Maybe AnySpendScript)]
   -> [TxIn]
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(TxIn, Maybe AnySpendScript)]
-> Parser
     ([TxIn]
      -> [TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 (TxIn, Maybe AnySpendScript)
-> Parser [(TxIn, Maybe AnySpendScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
some (Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
forall era.
Era era
-> BalanceTxExecUnits -> Parser (TxIn, Maybe AnySpendScript)
pTxInForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
      Parser
  ([TxIn]
   -> [TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [TxIn]
-> Parser
     ([TxIn]
      -> Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pReadOnlyReferenceTxIn
      Parser
  ([TxIn]
   -> Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [TxIn]
-> Parser
     (Maybe TxOutShelleyBasedEra
      -> Maybe Coin
      -> TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 TxIn -> Parser [TxIn]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser TxIn
pTxInCollateral
      Parser
  (Maybe TxOutShelleyBasedEra
   -> Maybe Coin
   -> TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe TxOutShelleyBasedEra)
-> Parser
     (Maybe Coin
      -> TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 TxOutShelleyBasedEra -> Parser (Maybe TxOutShelleyBasedEra)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser TxOutShelleyBasedEra
pReturnCollateral
      Parser
  (Maybe Coin
   -> TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe Coin)
-> Parser
     (TxGuardArguments era
      -> [TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 -> Parser (Maybe Coin)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser Coin
pTotalCollateral
      Parser
  (TxGuardArguments era
   -> [TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (TxGuardArguments era)
-> Parser
     ([TxOutAnyEra]
      -> Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
forall era.
Era era -> BalanceTxExecUnits -> Parser (TxGuardArguments era)
pTxGuardArguments (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
      Parser
  ([TxOutAnyEra]
   -> Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [TxOutAnyEra]
-> Parser
     (Maybe (MultiAsset, [AnyMintScript])
      -> Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 Parser TxOutAnyEra
pTxOut
      Parser
  (Maybe (MultiAsset, [AnyMintScript])
   -> Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser
     (Maybe SlotNo
      -> TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Maybe (Maybe (MultiAsset, [AnyMintScript]))
 -> Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Maybe (Maybe (MultiAsset, [AnyMintScript]))
-> Maybe (MultiAsset, [AnyMintScript])
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> (Parser (Maybe (MultiAsset, [AnyMintScript]))
    -> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript]))))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (Maybe (MultiAsset, [AnyMintScript])))
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser (Maybe (MultiAsset, [AnyMintScript]))
 -> Parser (Maybe (MultiAsset, [AnyMintScript])))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
-> Parser (Maybe (MultiAsset, [AnyMintScript]))
forall a b. (a -> b) -> a -> b
$ forall era.
IsEra era =>
BalanceTxExecUnits -> Parser (Maybe (MultiAsset, [AnyMintScript]))
pMintMultiAsset @era BalanceTxExecUnits
ManualBalance)
      Parser
  (Maybe SlotNo
   -> TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe SlotNo)
-> Parser
     (TxValidityUpperBound era
      -> Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 SlotNo -> Parser (Maybe SlotNo)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser SlotNo
pInvalidBefore
      Parser
  (TxValidityUpperBound era
   -> Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (TxValidityUpperBound era)
-> Parser
     (Coin
      -> [(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser (TxValidityUpperBound era)
forall era. Era era -> Parser (TxValidityUpperBound era)
pInvalidHereafter Era era
forall era. IsEra era => Era era
Exp.useEra
      Parser
  (Coin
   -> [(CertificateFile, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser Coin
-> Parser
     ([(CertificateFile, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 AnyNonAssetScript)]
   -> [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
      -> [(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 AnyNonAssetScript)
-> Parser [(CertificateFile, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (CertificateFile, Maybe AnyNonAssetScript)
pCertificateFileForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
      Parser
  ([(StakeAddress, Coin, Maybe AnyNonAssetScript)]
   -> [(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
-> Parser
     ([(StakeAddress, Coin)]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 (StakeAddress, Coin, Maybe AnyNonAssetScript)
-> Parser [(StakeAddress, Coin, Maybe AnyNonAssetScript)]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
forall era.
Era era
-> BalanceTxExecUnits
-> Parser (StakeAddress, Coin, Maybe AnyNonAssetScript)
pWithdrawalForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance)
      Parser
  ([(StakeAddress, Coin)]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(StakeAddress, Coin)]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era -> Parser [(StakeAddress, Coin)]
forall era. Era era -> Parser [(StakeAddress, Coin)]
pDirectDeposits (forall era. IsEra era => Era era
Exp.useEra @era)
      Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
      -> TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
      Parser
  ([(StakeAddress, AccountBalanceInterval (LedgerEra era))]
   -> TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
-> Parser
     (TxMetadataJsonSchema
      -> [ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
forall era.
Era era
-> Parser [(StakeAddress, AccountBalanceInterval (LedgerEra era))]
pStartingAccountBalanceIntervals (forall era. IsEra era => Era era
Exp.useEra @era)
      Parser
  (TxMetadataJsonSchema
   -> [ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser TxMetadataJsonSchema
-> Parser
     ([ScriptFile]
      -> [MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 TxMetadataJsonSchema
pTxMetadataJsonSchema
      Parser
  ([ScriptFile]
   -> [MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [ScriptFile]
-> Parser
     ([MetadataFile]
      -> Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 ScriptFile -> Parser [ScriptFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many (String -> Maybe String -> String -> Parser ScriptFile
pScriptFor String
"auxiliary-script-file" Maybe String
forall a. Maybe a
Nothing String
"Filepath of auxiliary script(s)")
      Parser
  ([MetadataFile]
   -> Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [MetadataFile]
-> Parser
     (Maybe ProtocolParamsFile
      -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 MetadataFile -> Parser [MetadataFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser MetadataFile
pMetadataFile
      Parser
  (Maybe ProtocolParamsFile
   -> [(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe ProtocolParamsFile)
-> Parser
     ([(VoteFile 'In, Maybe AnyNonAssetScript)]
      -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 ProtocolParamsFile -> Parser (Maybe ProtocolParamsFile)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser ProtocolParamsFile
pProtocolParamsFile
      Parser
  ([(VoteFile 'In, Maybe AnyNonAssetScript)]
   -> [(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
      -> Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(VoteFile 'In, Maybe AnyNonAssetScript)]
pVoteFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
      Parser
  ([(ProposalFile 'In, Maybe AnyNonAssetScript)]
   -> Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
-> Parser
     (Maybe TxCurrentTreasuryValue
      -> Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
forall era.
Era era
-> BalanceTxExecUnits
-> Parser [(ProposalFile 'In, Maybe AnyNonAssetScript)]
pProposalFilesForEra (forall era. IsEra era => Era era
Exp.useEra @era) BalanceTxExecUnits
ManualBalance
      Parser
  (Maybe TxCurrentTreasuryValue
   -> Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe TxCurrentTreasuryValue)
-> Parser
     (Maybe TxTreasuryDonation
      -> [SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 (Maybe TxCurrentTreasuryValue)
pCurrentTreasuryValue
      Parser
  (Maybe TxTreasuryDonation
   -> [SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser (Maybe TxTreasuryDonation)
-> Parser
     ([SignedSubTxFile 'In]
      -> TxCborFormat
      -> File TxBodyTag 'Out
      -> TransactionBuildRawCmdArgs 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 (Maybe TxTreasuryDonation)
pTreasuryDonation
      Parser
  ([SignedSubTxFile 'In]
   -> TxCborFormat
   -> File TxBodyTag 'Out
   -> TransactionBuildRawCmdArgs era)
-> Parser [SignedSubTxFile 'In]
-> Parser
     (TxCborFormat
      -> File TxBodyTag 'Out -> TransactionBuildRawCmdArgs era)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> forall era. IsEra era => Parser [SignedSubTxFile 'In]
pSubTransactionFiles @era
      Parser
  (TxCborFormat
   -> File TxBodyTag 'Out -> TransactionBuildRawCmdArgs era)
-> Parser TxCborFormat
-> Parser (File TxBodyTag 'Out -> TransactionBuildRawCmdArgs 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 TxCborFormat
pIsCborOutCanonical
      Parser (File TxBodyTag 'Out -> TransactionBuildRawCmdArgs era)
-> Parser (File TxBodyTag 'Out)
-> Parser (TransactionBuildRawCmdArgs 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 TxBodyTag 'Out)
pTxBodyFileOut

pTransactionSign :: EnvCli -> Parser (TransactionCmds era)
pTransactionSign :: forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionSign EnvCli
envCli =
  (TransactionSignCmdArgs -> TransactionCmds era)
-> Parser TransactionSignCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionSignCmdArgs -> TransactionCmds era
forall era. TransactionSignCmdArgs -> TransactionCmds era
TransactionSignCmd (Parser TransactionSignCmdArgs -> Parser (TransactionCmds era))
-> Parser TransactionSignCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    InputTxBodyOrTxFile
-> [WitnessSigningData]
-> Maybe NetworkId
-> TxCborFormat
-> TxFile 'Out
-> TransactionSignCmdArgs
TransactionSignCmdArgs
      (InputTxBodyOrTxFile
 -> [WitnessSigningData]
 -> Maybe NetworkId
 -> TxCborFormat
 -> TxFile 'Out
 -> TransactionSignCmdArgs)
-> Parser InputTxBodyOrTxFile
-> Parser
     ([WitnessSigningData]
      -> Maybe NetworkId
      -> TxCborFormat
      -> TxFile 'Out
      -> TransactionSignCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser InputTxBodyOrTxFile
pInputTxOrTxBodyFile
      Parser
  ([WitnessSigningData]
   -> Maybe NetworkId
   -> TxCborFormat
   -> TxFile 'Out
   -> TransactionSignCmdArgs)
-> Parser [WitnessSigningData]
-> Parser
     (Maybe NetworkId
      -> TxCborFormat -> TxFile 'Out -> TransactionSignCmdArgs)
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
   -> TxCborFormat -> TxFile 'Out -> TransactionSignCmdArgs)
-> Parser (Maybe NetworkId)
-> Parser (TxCborFormat -> TxFile 'Out -> TransactionSignCmdArgs)
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
envCli)
      Parser (TxCborFormat -> TxFile 'Out -> TransactionSignCmdArgs)
-> Parser TxCborFormat
-> Parser (TxFile 'Out -> TransactionSignCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser TxCborFormat
pIsCborOutCanonical
      Parser (TxFile 'Out -> TransactionSignCmdArgs)
-> Parser (TxFile 'Out) -> Parser TransactionSignCmdArgs
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser (TxFile 'Out)
pTxFileOut

pTransactionCreateWitness :: EnvCli -> Parser (TransactionCmds era)
pTransactionCreateWitness :: forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionCreateWitness EnvCli
envCli =
  (TransactionWitnessCmdArgs -> TransactionCmds era)
-> Parser TransactionWitnessCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionWitnessCmdArgs -> TransactionCmds era
forall era. TransactionWitnessCmdArgs -> TransactionCmds era
TransactionWitnessCmd (Parser TransactionWitnessCmdArgs -> Parser (TransactionCmds era))
-> Parser TransactionWitnessCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    TxBodyFile 'In
-> WitnessSigningData
-> Maybe NetworkId
-> File () 'Out
-> TransactionWitnessCmdArgs
TransactionWitnessCmdArgs
      (TxBodyFile 'In
 -> WitnessSigningData
 -> Maybe NetworkId
 -> File () 'Out
 -> TransactionWitnessCmdArgs)
-> Parser (TxBodyFile 'In)
-> Parser
     (WitnessSigningData
      -> Maybe NetworkId -> File () 'Out -> TransactionWitnessCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser (TxBodyFile 'In)
pTxBodyFileIn
      Parser
  (WitnessSigningData
   -> Maybe NetworkId -> File () 'Out -> TransactionWitnessCmdArgs)
-> Parser WitnessSigningData
-> Parser
     (Maybe NetworkId -> File () 'Out -> TransactionWitnessCmdArgs)
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
pWitnessSigningData
      Parser
  (Maybe NetworkId -> File () 'Out -> TransactionWitnessCmdArgs)
-> Parser (Maybe NetworkId)
-> Parser (File () 'Out -> TransactionWitnessCmdArgs)
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
envCli)
      Parser (File () 'Out -> TransactionWitnessCmdArgs)
-> Parser (File () 'Out) -> Parser TransactionWitnessCmdArgs
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

pTransactionAssembleTxBodyWit :: Parser (TransactionCmds era)
pTransactionAssembleTxBodyWit :: forall era. Parser (TransactionCmds era)
pTransactionAssembleTxBodyWit =
  (TransactionSignWitnessCmdArgs -> TransactionCmds era)
-> Parser TransactionSignWitnessCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionSignWitnessCmdArgs -> TransactionCmds era
forall era. TransactionSignWitnessCmdArgs -> TransactionCmds era
TransactionSignWitnessCmd (Parser TransactionSignWitnessCmdArgs
 -> Parser (TransactionCmds era))
-> Parser TransactionSignWitnessCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    TxBodyFile 'In
-> [WitnessFile]
-> TxCborFormat
-> File () 'Out
-> TransactionSignWitnessCmdArgs
TransactionSignWitnessCmdArgs
      (TxBodyFile 'In
 -> [WitnessFile]
 -> TxCborFormat
 -> File () 'Out
 -> TransactionSignWitnessCmdArgs)
-> Parser (TxBodyFile 'In)
-> Parser
     ([WitnessFile]
      -> TxCborFormat -> File () 'Out -> TransactionSignWitnessCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser (TxBodyFile 'In)
pTxBodyFileIn
      Parser
  ([WitnessFile]
   -> TxCborFormat -> File () 'Out -> TransactionSignWitnessCmdArgs)
-> Parser [WitnessFile]
-> Parser
     (TxCborFormat -> File () 'Out -> TransactionSignWitnessCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser WitnessFile -> Parser [WitnessFile]
forall a. Parser a -> Parser [a]
forall (f :: * -> *) a. Alternative f => f a -> f [a]
many Parser WitnessFile
pWitnessFile
      Parser
  (TxCborFormat -> File () 'Out -> TransactionSignWitnessCmdArgs)
-> Parser TxCborFormat
-> Parser (File () 'Out -> TransactionSignWitnessCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser TxCborFormat
pIsCborOutCanonical
      Parser (File () 'Out -> TransactionSignWitnessCmdArgs)
-> Parser (File () 'Out) -> Parser TransactionSignWitnessCmdArgs
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

pTransactionSubmit :: EnvCli -> Parser (TransactionCmds era)
pTransactionSubmit :: forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionSubmit EnvCli
envCli =
  (TransactionSubmitCmdArgs -> TransactionCmds era)
-> Parser TransactionSubmitCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionSubmitCmdArgs -> TransactionCmds era
forall era. TransactionSubmitCmdArgs -> TransactionCmds era
TransactionSubmitCmd (Parser TransactionSubmitCmdArgs -> Parser (TransactionCmds era))
-> Parser TransactionSubmitCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    LocalNodeConnectInfo -> String -> TransactionSubmitCmdArgs
TransactionSubmitCmdArgs
      (LocalNodeConnectInfo -> String -> TransactionSubmitCmdArgs)
-> Parser LocalNodeConnectInfo
-> Parser (String -> TransactionSubmitCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( ConsensusModeParams
-> NetworkId -> SocketPath -> LocalNodeConnectInfo
LocalNodeConnectInfo
              (ConsensusModeParams
 -> NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser ConsensusModeParams
-> Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser ConsensusModeParams
pConsensusModeParams
              Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser NetworkId -> Parser (SocketPath -> LocalNodeConnectInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser NetworkId
pNetworkId EnvCli
envCli
              Parser (SocketPath -> LocalNodeConnectInfo)
-> Parser SocketPath -> Parser LocalNodeConnectInfo
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser SocketPath
pSocketPath EnvCli
envCli
          )
      Parser (String -> TransactionSubmitCmdArgs)
-> Parser String -> Parser TransactionSubmitCmdArgs
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser String
pTxSubmitFile

pTransactionPolicyId :: Parser (TransactionCmds era)
pTransactionPolicyId :: forall era. Parser (TransactionCmds era)
pTransactionPolicyId =
  (TransactionPolicyIdCmdArgs -> TransactionCmds era)
-> Parser TransactionPolicyIdCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionPolicyIdCmdArgs -> TransactionCmds era
forall era. TransactionPolicyIdCmdArgs -> TransactionCmds era
TransactionPolicyIdCmd (Parser TransactionPolicyIdCmdArgs -> Parser (TransactionCmds era))
-> Parser TransactionPolicyIdCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    ScriptFile -> TransactionPolicyIdCmdArgs
TransactionPolicyIdCmdArgs
      (ScriptFile -> TransactionPolicyIdCmdArgs)
-> Parser ScriptFile -> Parser TransactionPolicyIdCmdArgs
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser ScriptFile
pScript

pTransactionCalculateMinFee :: Parser (TransactionCmds era)
pTransactionCalculateMinFee :: forall era. Parser (TransactionCmds era)
pTransactionCalculateMinFee =
  (TransactionCalculateMinFeeCmdArgs -> TransactionCmds era)
-> Parser TransactionCalculateMinFeeCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionCalculateMinFeeCmdArgs -> TransactionCmds era
forall era.
TransactionCalculateMinFeeCmdArgs -> TransactionCmds era
TransactionCalculateMinFeeCmd (Parser TransactionCalculateMinFeeCmdArgs
 -> Parser (TransactionCmds era))
-> Parser TransactionCalculateMinFeeCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    TxBodyFile 'In
-> ProtocolParamsFile
-> TxShelleyWitnessCount
-> TxByronWitnessCount
-> ReferenceScriptSize
-> Vary '[FormatJson, FormatText, FormatYaml]
-> Maybe (File () 'Out)
-> TransactionCalculateMinFeeCmdArgs
TransactionCalculateMinFeeCmdArgs
      (TxBodyFile 'In
 -> ProtocolParamsFile
 -> TxShelleyWitnessCount
 -> TxByronWitnessCount
 -> ReferenceScriptSize
 -> Vary '[FormatJson, FormatText, FormatYaml]
 -> Maybe (File () 'Out)
 -> TransactionCalculateMinFeeCmdArgs)
-> Parser (TxBodyFile 'In)
-> Parser
     (ProtocolParamsFile
      -> TxShelleyWitnessCount
      -> TxByronWitnessCount
      -> ReferenceScriptSize
      -> Vary '[FormatJson, FormatText, FormatYaml]
      -> Maybe (File () 'Out)
      -> TransactionCalculateMinFeeCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser (TxBodyFile 'In)
pTxBodyFileIn
      Parser
  (ProtocolParamsFile
   -> TxShelleyWitnessCount
   -> TxByronWitnessCount
   -> ReferenceScriptSize
   -> Vary '[FormatJson, FormatText, FormatYaml]
   -> Maybe (File () 'Out)
   -> TransactionCalculateMinFeeCmdArgs)
-> Parser ProtocolParamsFile
-> Parser
     (TxShelleyWitnessCount
      -> TxByronWitnessCount
      -> ReferenceScriptSize
      -> Vary '[FormatJson, FormatText, FormatYaml]
      -> Maybe (File () 'Out)
      -> TransactionCalculateMinFeeCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser ProtocolParamsFile
pProtocolParamsFile
      Parser
  (TxShelleyWitnessCount
   -> TxByronWitnessCount
   -> ReferenceScriptSize
   -> Vary '[FormatJson, FormatText, FormatYaml]
   -> Maybe (File () 'Out)
   -> TransactionCalculateMinFeeCmdArgs)
-> Parser TxShelleyWitnessCount
-> Parser
     (TxByronWitnessCount
      -> ReferenceScriptSize
      -> Vary '[FormatJson, FormatText, FormatYaml]
      -> Maybe (File () 'Out)
      -> TransactionCalculateMinFeeCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser TxShelleyWitnessCount
pTxShelleyWitnessCount
      Parser
  (TxByronWitnessCount
   -> ReferenceScriptSize
   -> Vary '[FormatJson, FormatText, FormatYaml]
   -> Maybe (File () 'Out)
   -> TransactionCalculateMinFeeCmdArgs)
-> Parser TxByronWitnessCount
-> Parser
     (ReferenceScriptSize
      -> Vary '[FormatJson, FormatText, FormatYaml]
      -> Maybe (File () 'Out)
      -> TransactionCalculateMinFeeCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser TxByronWitnessCount
pTxByronWitnessCount
      Parser
  (ReferenceScriptSize
   -> Vary '[FormatJson, FormatText, FormatYaml]
   -> Maybe (File () 'Out)
   -> TransactionCalculateMinFeeCmdArgs)
-> Parser ReferenceScriptSize
-> Parser
     (Vary '[FormatJson, FormatText, FormatYaml]
      -> Maybe (File () 'Out) -> TransactionCalculateMinFeeCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Parser ReferenceScriptSize
pReferenceScriptSize
      Parser
  (Vary '[FormatJson, FormatText, FormatYaml]
   -> Maybe (File () 'Out) -> TransactionCalculateMinFeeCmdArgs)
-> Parser (Vary '[FormatJson, FormatText, FormatYaml])
-> Parser
     (Maybe (File () 'Out) -> TransactionCalculateMinFeeCmdArgs)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> String
-> [Flag (Vary '[FormatJson, FormatText, FormatYaml])]
-> Parser (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). String -> [Flag (Vary fs)] -> Parser (Vary fs)
pFormatFlags
        String
"calculate-min-fee query output"
        [ Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatJson :| fs) => Flag (Vary fs)
flagFormatJson Flag (Vary '[FormatJson, FormatText, FormatYaml])
-> (Flag (Vary '[FormatJson, FormatText, FormatYaml])
    -> Flag (Vary '[FormatJson, FormatText, FormatYaml]))
-> Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall a b. a -> (a -> b) -> b
& Flag (Vary '[FormatJson, FormatText, FormatYaml])
-> Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall a. Flag a -> Flag a
setDefault
        , Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatText :| fs) => Flag (Vary fs)
flagFormatText
        , Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatYaml :| fs) => Flag (Vary fs)
flagFormatYaml
        ]
      Parser (Maybe (File () 'Out) -> TransactionCalculateMinFeeCmdArgs)
-> Parser (Maybe (File () 'Out))
-> Parser TransactionCalculateMinFeeCmdArgs
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) -> Parser (Maybe (File () 'Out))
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser (File () 'Out)
forall content. Parser (File content 'Out)
pOutputFile
      -- Deprecated options:
      Parser TransactionCalculateMinFeeCmdArgs
-> Parser (Maybe NetworkId)
-> Parser TransactionCalculateMinFeeCmdArgs
forall a b. Parser a -> Parser b -> Parser a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* Parser NetworkId -> Parser (Maybe NetworkId)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser NetworkId
pNetworkIdDeprecated
      Parser TransactionCalculateMinFeeCmdArgs
-> Parser (Maybe TxInCount)
-> Parser TransactionCalculateMinFeeCmdArgs
forall a b. Parser a -> Parser b -> Parser a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* Parser TxInCount -> Parser (Maybe TxInCount)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser TxInCount
pTxInCountDeprecated
      Parser TransactionCalculateMinFeeCmdArgs
-> Parser (Maybe TxOutCount)
-> Parser TransactionCalculateMinFeeCmdArgs
forall a b. Parser a -> Parser b -> Parser a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* Parser TxOutCount -> Parser (Maybe TxOutCount)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser TxOutCount
pTxOutCountDeprecated

pTransactionCalculateMinReqUTxO :: Exp.IsEra era => Parser (TransactionCmds era)
pTransactionCalculateMinReqUTxO :: forall era. IsEra era => Parser (TransactionCmds era)
pTransactionCalculateMinReqUTxO =
  (TransactionCalculateMinValueCmdArgs era -> TransactionCmds era)
-> Parser (TransactionCalculateMinValueCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionCalculateMinValueCmdArgs era -> TransactionCmds era
forall era.
TransactionCalculateMinValueCmdArgs era -> TransactionCmds era
TransactionCalculateMinValueCmd (Parser (TransactionCalculateMinValueCmdArgs era)
 -> Parser (TransactionCmds era))
-> Parser (TransactionCalculateMinValueCmdArgs era)
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    Era era
-> ProtocolParamsFile
-> TxOutShelleyBasedEra
-> TransactionCalculateMinValueCmdArgs era
forall era.
Era era
-> ProtocolParamsFile
-> TxOutShelleyBasedEra
-> TransactionCalculateMinValueCmdArgs era
TransactionCalculateMinValueCmdArgs Era era
forall era. IsEra era => Era era
Exp.useEra
      (ProtocolParamsFile
 -> TxOutShelleyBasedEra -> TransactionCalculateMinValueCmdArgs era)
-> Parser ProtocolParamsFile
-> Parser
     (TxOutShelleyBasedEra -> TransactionCalculateMinValueCmdArgs era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser ProtocolParamsFile
pProtocolParamsFile
      Parser
  (TxOutShelleyBasedEra -> TransactionCalculateMinValueCmdArgs era)
-> Parser TxOutShelleyBasedEra
-> Parser (TransactionCalculateMinValueCmdArgs 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 TxOutShelleyBasedEra
pTxOutShelleyBased

pTransactionCalculatePlutusScriptCost
  :: EnvCli -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCost :: forall era. EnvCli -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCost EnvCli
envCli =
  ( Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser
      (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> (InfoMod (TransactionCmds era)
    -> Mod CommandFields (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> Parser (TransactionCmds era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"online"
      (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> (InfoMod (TransactionCmds era)
    -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (Parser (NodeContextInfoSource era) -> Parser (TransactionCmds era)
forall {era}.
Parser (NodeContextInfoSource era) -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCostParams (EnvCli -> Parser (NodeContextInfoSource era)
forall era. EnvCli -> Parser (NodeContextInfoSource era)
pNodeConnectionInfo EnvCli
envCli))
      (InfoMod (TransactionCmds era) -> Parser (TransactionCmds era))
-> InfoMod (TransactionCmds era) -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$ String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc
        String
"Connect to a running node to get context info and calculate the costs of the Plutus scripts of a given transaction."
  )
    Parser (TransactionCmds era)
-> Parser (TransactionCmds era) -> Parser (TransactionCmds era)
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> ( Mod CommandFields (TransactionCmds era)
-> Parser (TransactionCmds era)
forall a. Mod CommandFields a -> Parser a
Opt.hsubparser
            (Mod CommandFields (TransactionCmds era)
 -> Parser (TransactionCmds era))
-> (InfoMod (TransactionCmds era)
    -> Mod CommandFields (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> Parser (TransactionCmds era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String
-> ParserInfo (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall a. String -> ParserInfo a -> Mod CommandFields a
commandWithMetavar String
"offline"
            (ParserInfo (TransactionCmds era)
 -> Mod CommandFields (TransactionCmds era))
-> (InfoMod (TransactionCmds era)
    -> ParserInfo (TransactionCmds era))
-> InfoMod (TransactionCmds era)
-> Mod CommandFields (TransactionCmds era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Parser (TransactionCmds era)
-> InfoMod (TransactionCmds era)
-> ParserInfo (TransactionCmds era)
forall a. Parser a -> InfoMod a -> ParserInfo a
Opt.info (Parser (NodeContextInfoSource era) -> Parser (TransactionCmds era)
forall {era}.
Parser (NodeContextInfoSource era) -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCostParams Parser (NodeContextInfoSource era)
forall era. Parser (NodeContextInfoSource era)
pLocalContext)
            (InfoMod (TransactionCmds era) -> Parser (TransactionCmds era))
-> InfoMod (TransactionCmds era) -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$ String -> InfoMod (TransactionCmds era)
forall a. String -> InfoMod a
Opt.progDesc
              String
"Manually provide get context info and calculate the costs of the Plutus scripts of a given transaction."
        )
 where
  pTransactionCalculatePlutusScriptCostParams :: Parser (NodeContextInfoSource era) -> Parser (TransactionCmds era)
pTransactionCalculatePlutusScriptCostParams Parser (NodeContextInfoSource era)
nodeContext =
    TransactionCalculatePlutusScriptCostCmdArgs era
-> TransactionCmds era
forall era.
TransactionCalculatePlutusScriptCostCmdArgs era
-> TransactionCmds era
TransactionCalculatePlutusScriptCostCmd
      (TransactionCalculatePlutusScriptCostCmdArgs era
 -> TransactionCmds era)
-> Parser (TransactionCalculatePlutusScriptCostCmdArgs era)
-> Parser (TransactionCmds era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( NodeContextInfoSource era
-> String
-> Maybe (File () 'Out)
-> TransactionCalculatePlutusScriptCostCmdArgs era
forall era.
NodeContextInfoSource era
-> String
-> Maybe (File () 'Out)
-> TransactionCalculatePlutusScriptCostCmdArgs era
TransactionCalculatePlutusScriptCostCmdArgs
              (NodeContextInfoSource era
 -> String
 -> Maybe (File () 'Out)
 -> TransactionCalculatePlutusScriptCostCmdArgs era)
-> Parser (NodeContextInfoSource era)
-> Parser
     (String
      -> Maybe (File () 'Out)
      -> TransactionCalculatePlutusScriptCostCmdArgs era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser (NodeContextInfoSource era)
nodeContext
              Parser
  (String
   -> Maybe (File () 'Out)
   -> TransactionCalculatePlutusScriptCostCmdArgs era)
-> Parser String
-> Parser
     (Maybe (File () 'Out)
      -> TransactionCalculatePlutusScriptCostCmdArgs 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 String
pTxInputFile
              Parser
  (Maybe (File () 'Out)
   -> TransactionCalculatePlutusScriptCostCmdArgs era)
-> Parser (Maybe (File () 'Out))
-> Parser (TransactionCalculatePlutusScriptCostCmdArgs 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) -> Parser (Maybe (File () 'Out))
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional Parser (File () 'Out)
forall content. Parser (File content 'Out)
pOutputFile
          )

  pTxInputFile :: Parser FilePath
  pTxInputFile :: Parser String
pTxInputFile =
    String -> String -> Parser String
parseFilePath
      String
"tx-file"
      String
"Filepath of the transaction whose Plutus scripts to calculate the cost. Use `-` to read from standard input."

pLocalContext :: Parser (NodeContextInfoSource era)
pLocalContext :: forall era. Parser (NodeContextInfoSource era)
pLocalContext =
  TransactionContext era -> NodeContextInfoSource era
forall era. TransactionContext era -> NodeContextInfoSource era
ProvidedTransactionContextInfo
    (TransactionContext era -> NodeContextInfoSource era)
-> Parser (TransactionContext era)
-> Parser (NodeContextInfoSource era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( SystemStartOrGenesisFileSource
-> MustExtendSafeZone
-> File EraHistory 'In
-> File (Some UTxO) 'In
-> ProtocolParamsFile
-> TransactionContext era
forall era.
SystemStartOrGenesisFileSource
-> MustExtendSafeZone
-> File EraHistory 'In
-> File (Some UTxO) 'In
-> ProtocolParamsFile
-> TransactionContext era
TransactionContext
            (SystemStartOrGenesisFileSource
 -> MustExtendSafeZone
 -> File EraHistory 'In
 -> File (Some UTxO) 'In
 -> ProtocolParamsFile
 -> TransactionContext era)
-> Parser SystemStartOrGenesisFileSource
-> Parser
     (MustExtendSafeZone
      -> File EraHistory 'In
      -> File (Some UTxO) 'In
      -> ProtocolParamsFile
      -> TransactionContext era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser SystemStartOrGenesisFileSource
pSystemStart
            Parser
  (MustExtendSafeZone
   -> File EraHistory 'In
   -> File (Some UTxO) 'In
   -> ProtocolParamsFile
   -> TransactionContext era)
-> Parser MustExtendSafeZone
-> Parser
     (File EraHistory 'In
      -> File (Some UTxO) 'In
      -> ProtocolParamsFile
      -> TransactionContext 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 MustExtendSafeZone
pMustExtendEraHistorySafeZone
            Parser
  (File EraHistory 'In
   -> File (Some UTxO) 'In
   -> ProtocolParamsFile
   -> TransactionContext era)
-> Parser (File EraHistory 'In)
-> Parser
     (File (Some UTxO) 'In
      -> ProtocolParamsFile -> TransactionContext 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 EraHistory 'In)
pEraHistoryFile
            Parser
  (File (Some UTxO) 'In
   -> ProtocolParamsFile -> TransactionContext era)
-> Parser (File (Some UTxO) 'In)
-> Parser (ProtocolParamsFile -> TransactionContext 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 (Some UTxO) 'In)
pUtxoFile
            Parser (ProtocolParamsFile -> TransactionContext era)
-> Parser ProtocolParamsFile -> Parser (TransactionContext 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 ProtocolParamsFile
pProtocolParamsFile
        )

pMustExtendEraHistorySafeZone :: Parser MustExtendSafeZone
pMustExtendEraHistorySafeZone :: Parser MustExtendSafeZone
pMustExtendEraHistorySafeZone =
  MustExtendSafeZone
-> Mod FlagFields MustExtendSafeZone -> Parser MustExtendSafeZone
forall a. a -> Mod FlagFields a -> Parser a
Opt.flag'
    MustExtendSafeZone
MustExtendSafeZone
    ( [Mod FlagFields MustExtendSafeZone]
-> Mod FlagFields MustExtendSafeZone
forall a. Monoid a => [a] -> a
mconcat
        [ String -> Mod FlagFields MustExtendSafeZone
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"unsafe-extend-safe-zone"
        , String -> Mod FlagFields MustExtendSafeZone
forall (f :: * -> *) a. String -> Mod f a
Opt.help (String -> Mod FlagFields MustExtendSafeZone)
-> String -> Mod FlagFields MustExtendSafeZone
forall a b. (a -> b) -> a -> b
$
            [String] -> String
forall a. Monoid a => [a] -> a
mconcat
              [ String
"Allow overriding the validity of the era history past the safe zone. The "
              , String
"safe zone is a period of time during which we are sure there won't be any "
              , String
"era transition (hard fork), and we are confident that the slot duration "
              , String
"will not change, thus the conversion from slot numbers to POSIX times "
              , String
"using the era history will be correct. "
              , String
"This safe zone is conservative. Even if we are past the safe zone, if "
              , String
"there hasn't been any era transition (hard fork) since we obtained it, we can "
              , String
"continue safely using the era history. "
              , String
"This flag essentially disables the safe zone check. This allows the user to "
              , String
"use the era history past the safe zone, at the user's discretion."
              ]
        ]
    )
    Parser MustExtendSafeZone
-> Parser MustExtendSafeZone -> Parser MustExtendSafeZone
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> MustExtendSafeZone -> Parser MustExtendSafeZone
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MustExtendSafeZone
DoNotExtendSafeZone

pSystemStart :: Parser SystemStartOrGenesisFileSource
pSystemStart :: Parser SystemStartOrGenesisFileSource
pSystemStart =
  [Parser SystemStartOrGenesisFileSource]
-> Parser SystemStartOrGenesisFileSource
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum
    [ SystemStart -> SystemStartOrGenesisFileSource
SystemStartLiteral (SystemStart -> SystemStartOrGenesisFileSource)
-> Parser SystemStart -> Parser SystemStartOrGenesisFileSource
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Parser SystemStart
systemStartUTC Parser SystemStart -> Parser SystemStart -> Parser SystemStart
forall a. Parser a -> Parser a -> Parser a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Parser SystemStart
systemStartPOSIX)
    , GenesisFile -> SystemStartOrGenesisFileSource
SystemStartFromGenesisFile (GenesisFile -> SystemStartOrGenesisFileSource)
-> (String -> GenesisFile)
-> String
-> SystemStartOrGenesisFileSource
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> GenesisFile
GenesisFile
        (String -> SystemStartOrGenesisFileSource)
-> Parser String -> Parser SystemStartOrGenesisFileSource
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> Parser String
parseFilePath
          String
"genesis-file"
          String
"Path to the Byron genesis file from which to get the start time."
    ]

systemStartPOSIX :: Parser SystemStart
systemStartPOSIX :: Parser SystemStart
systemStartPOSIX =
  UTCTime -> SystemStart
SystemStart (UTCTime -> SystemStart)
-> (Integer -> UTCTime) -> Integer -> SystemStart
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NominalDiffTime -> UTCTime
posixSecondsToUTCTime (NominalDiffTime -> UTCTime)
-> (Integer -> NominalDiffTime) -> Integer -> UTCTime
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> NominalDiffTime
forall a. Num a => Integer -> a
fromInteger
    (Integer -> SystemStart) -> Parser Integer -> Parser SystemStart
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( ReadM Integer -> Mod OptionFields Integer -> Parser Integer
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option ReadM Integer
forall a. (Typeable a, Integral a, Bits a) => ReadM a
integralReader (Mod OptionFields Integer -> Parser Integer)
-> Mod OptionFields Integer -> Parser Integer
forall a b. (a -> b) -> a -> b
$
            [Mod OptionFields Integer] -> Mod OptionFields Integer
forall a. Monoid a => [a] -> a
mconcat
              [ String -> Mod OptionFields Integer
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"start-time-posix"
              , String -> Mod OptionFields Integer
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"POSIX_TIME"
              , String -> Mod OptionFields Integer
forall (f :: * -> *) a. String -> Mod f a
Opt.help
                  String
"The genesis start time as POSIX seconds."
              ]
        )

systemStartUTC :: Parser SystemStart
systemStartUTC :: Parser SystemStart
systemStartUTC =
  UTCTime -> SystemStart
SystemStart
    (UTCTime -> SystemStart) -> Parser UTCTime -> Parser SystemStart
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( ReadM UTCTime -> Mod OptionFields UTCTime -> Parser UTCTime
forall a. ReadM a -> Mod OptionFields a -> Parser a
Opt.option ReadM UTCTime
timeReader (Mod OptionFields UTCTime -> Parser UTCTime)
-> Mod OptionFields UTCTime -> Parser UTCTime
forall a b. (a -> b) -> a -> b
$
            [Mod OptionFields UTCTime] -> Mod OptionFields UTCTime
forall a. Monoid a => [a] -> a
mconcat
              [ String -> Mod OptionFields UTCTime
forall (f :: * -> *) a. HasName f => String -> Mod f a
Opt.long String
"start-time-utc"
              , String -> Mod OptionFields UTCTime
forall (f :: * -> *) a. HasMetavar f => String -> Mod f a
Opt.metavar String
"UTC_TIME"
              , String -> Mod OptionFields UTCTime
forall (f :: * -> *) a. String -> Mod f a
Opt.help
                  String
"The genesis start time in YYYY-MM-DDThh:mm:ssZ format."
              ]
        )

pEraHistoryFile :: Parser (File EraHistory In)
pEraHistoryFile :: Parser (File EraHistory 'In)
pEraHistoryFile =
  String -> File EraHistory 'In
forall content (direction :: FileDirection).
String -> File content direction
File
    (String -> File EraHistory 'In)
-> Parser String -> Parser (File EraHistory 'In)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> Parser String
parseFilePath
      String
"era-history-file"
      ( [String] -> String
forall a. Monoid a => [a] -> a
mconcat
          [ String
"Filepath of the era history file as produced by the 'query era-history' command. "
          , String
"The era history contains information about when era transitions happened and can "
          , String
"be used together with the start time to convert slot numbers to POSIX times."
          ]
      )

pUtxoFile :: Parser (File (Some UTxO) In)
pUtxoFile :: Parser (File (Some UTxO) 'In)
pUtxoFile =
  String -> File (Some UTxO) 'In
forall content (direction :: FileDirection).
String -> File content direction
File
    (String -> File (Some UTxO) 'In)
-> Parser String -> Parser (File (Some UTxO) 'In)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( String -> String -> Parser String
parseFilePath String
"utxo-file" (String -> Parser String) -> String -> Parser String
forall a b. (a -> b) -> a -> b
$
            [String] -> String
forall a. Monoid a => [a] -> a
mconcat
              [ String
"Filepath to a JSON-encoded UTxO file as produced by the 'query utxo' "
              , String
"command. Only UTxOs referenced by the transaction are needed, not the "
              , String
"whole UTxO, but unnecessary info will be ignored."
              ]
        )

pNodeConnectionInfo :: EnvCli -> Parser (NodeContextInfoSource era)
pNodeConnectionInfo :: forall era. EnvCli -> Parser (NodeContextInfoSource era)
pNodeConnectionInfo EnvCli
envCli =
  LocalNodeConnectInfo -> NodeContextInfoSource era
forall era. LocalNodeConnectInfo -> NodeContextInfoSource era
NodeConnectionInfo
    (LocalNodeConnectInfo -> NodeContextInfoSource era)
-> Parser LocalNodeConnectInfo
-> Parser (NodeContextInfoSource era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ( ConsensusModeParams
-> NetworkId -> SocketPath -> LocalNodeConnectInfo
LocalNodeConnectInfo
            (ConsensusModeParams
 -> NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser ConsensusModeParams
-> Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser ConsensusModeParams
pConsensusModeParams
            Parser (NetworkId -> SocketPath -> LocalNodeConnectInfo)
-> Parser NetworkId -> Parser (SocketPath -> LocalNodeConnectInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser NetworkId
pNetworkId EnvCli
envCli
            Parser (SocketPath -> LocalNodeConnectInfo)
-> Parser SocketPath -> Parser LocalNodeConnectInfo
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EnvCli -> Parser SocketPath
pSocketPath EnvCli
envCli
        )

pTxHashScriptData :: Parser (TransactionCmds era)
pTxHashScriptData :: forall era. Parser (TransactionCmds era)
pTxHashScriptData =
  (TransactionHashScriptDataCmdArgs -> TransactionCmds era)
-> Parser TransactionHashScriptDataCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionHashScriptDataCmdArgs -> TransactionCmds era
forall era. TransactionHashScriptDataCmdArgs -> TransactionCmds era
TransactionHashScriptDataCmd (Parser TransactionHashScriptDataCmdArgs
 -> Parser (TransactionCmds era))
-> Parser TransactionHashScriptDataCmdArgs
-> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    ScriptDataOrFile -> TransactionHashScriptDataCmdArgs
TransactionHashScriptDataCmdArgs
      (ScriptDataOrFile -> TransactionHashScriptDataCmdArgs)
-> Parser ScriptDataOrFile
-> Parser TransactionHashScriptDataCmdArgs
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> String -> String -> Parser ScriptDataOrFile
pScriptDataOrFile
        String
"script-data"
        String
"The script data."
        String
"The script data file."

pTransactionId :: Parser (TransactionCmds era)
pTransactionId :: forall era. Parser (TransactionCmds era)
pTransactionId =
  (TransactionTxIdCmdArgs -> TransactionCmds era)
-> Parser TransactionTxIdCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap TransactionTxIdCmdArgs -> TransactionCmds era
forall era. TransactionTxIdCmdArgs -> TransactionCmds era
TransactionTxIdCmd (Parser TransactionTxIdCmdArgs -> Parser (TransactionCmds era))
-> Parser TransactionTxIdCmdArgs -> Parser (TransactionCmds era)
forall a b. (a -> b) -> a -> b
$
    InputTxBodyOrTxFile
-> Vary '[FormatJson, FormatText, FormatYaml]
-> TransactionTxIdCmdArgs
TransactionTxIdCmdArgs
      (InputTxBodyOrTxFile
 -> Vary '[FormatJson, FormatText, FormatYaml]
 -> TransactionTxIdCmdArgs)
-> Parser InputTxBodyOrTxFile
-> Parser
     (Vary '[FormatJson, FormatText, FormatYaml]
      -> TransactionTxIdCmdArgs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Parser InputTxBodyOrTxFile
pInputTxOrTxBodyFile
      Parser
  (Vary '[FormatJson, FormatText, FormatYaml]
   -> TransactionTxIdCmdArgs)
-> Parser (Vary '[FormatJson, FormatText, FormatYaml])
-> Parser TransactionTxIdCmdArgs
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> String
-> [Flag (Vary '[FormatJson, FormatText, FormatYaml])]
-> Parser (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). String -> [Flag (Vary fs)] -> Parser (Vary fs)
pFormatFlags
        String
"output"
        [ Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatJson :| fs) => Flag (Vary fs)
flagFormatJson Flag (Vary '[FormatJson, FormatText, FormatYaml])
-> (Flag (Vary '[FormatJson, FormatText, FormatYaml])
    -> Flag (Vary '[FormatJson, FormatText, FormatYaml]))
-> Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall a b. a -> (a -> b) -> b
& Flag (Vary '[FormatJson, FormatText, FormatYaml])
-> Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall a. Flag a -> Flag a
setDefault
        , Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatText :| fs) => Flag (Vary fs)
flagFormatText
        , Flag (Vary '[FormatJson, FormatText, FormatYaml])
forall (fs :: [*]). (FormatYaml :| fs) => Flag (Vary fs)
flagFormatYaml
        ]