{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Cardano.CLI.Compatible.Transaction.Command
( CompatibleTransactionCmds (..)
, renderCompatibleTransactionCmd
)
where
import Cardano.Api
import Cardano.Api.Ledger hiding (TxIn, VotingProcedures)
import Cardano.CLI.EraBased.Script.Certificate.Type
import Cardano.CLI.EraBased.Script.Proposal.Type
import Cardano.CLI.EraBased.Script.Vote.Type
( CliVoteScriptRequirements
)
import Cardano.CLI.Type.Common
import Cardano.CLI.Type.Governance
import Data.Text (Text)
data CompatibleTransactionCmds era
= CreateCompatibleSignedTransaction
(ShelleyBasedEra era)
[TxIn]
[TxOutAnyEra]
!(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
!(Maybe (Featured ConwayEraOnwards era [(ProposalFile In, Maybe CliProposalScriptRequirements)]))
![(VoteFile In, Maybe CliVoteScriptRequirements)]
[WitnessSigningData]
(Maybe NetworkId)
!Coin
![(CertificateFile, Maybe CliCertificateScriptRequirements)]
!(File () Out)
renderCompatibleTransactionCmd :: CompatibleTransactionCmds era -> Text
renderCompatibleTransactionCmd :: forall era. CompatibleTransactionCmds era -> Text
renderCompatibleTransactionCmd = \case
CreateCompatibleSignedTransaction{} -> Text
"compatible transaction signed-transaction"