{-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} module Cardano.CLI.EraBased.Governance.Vote.Command ( GovernanceVoteCmds (..) , GovernanceVoteViewCmdArgs (..) , GovernanceVoteCreateCmdArgs (..) , renderGovernanceVoteCmds ) where import Cardano.Api.Experimental qualified as Exp import Cardano.Api.Governance import Cardano.Api.Ledger qualified as L import Cardano.CLI.Type.Common import Cardano.CLI.Type.Governance import Data.Text (Text) import Vary (Vary) data GovernanceVoteCmds era = GovernanceVoteCreateCmd (GovernanceVoteCreateCmdArgs era) | GovernanceVoteViewCmd (GovernanceVoteViewCmdArgs era) data GovernanceVoteCreateCmdArgs era = GovernanceVoteCreateCmdArgs { forall era. GovernanceVoteCreateCmdArgs era -> Era era era :: Exp.Era era , forall era. GovernanceVoteCreateCmdArgs era -> Vote voteChoice :: Vote , forall era. GovernanceVoteCreateCmdArgs era -> GovActionId governanceActionId :: L.GovActionId , forall era. GovernanceVoteCreateCmdArgs era -> AnyVotingStakeVerificationKeyOrHashOrFile votingStakeCredentialSource :: AnyVotingStakeVerificationKeyOrHashOrFile , forall era. GovernanceVoteCreateCmdArgs era -> Maybe (PotentiallyCheckedAnchor VoteUrl (VoteUrl, SafeHash AnchorData)) mAnchor :: !( Maybe ( PotentiallyCheckedAnchor VoteUrl (VoteUrl, L.SafeHash L.AnchorData) ) ) , forall era. GovernanceVoteCreateCmdArgs era -> VoteFile 'Out outFile :: VoteFile Out } data GovernanceVoteViewCmdArgs era = GovernanceVoteViewCmdArgs { forall era. GovernanceVoteViewCmdArgs era -> Era era era :: Exp.Era era , forall era. GovernanceVoteViewCmdArgs era -> VoteFile 'In voteFile :: VoteFile In , forall era. GovernanceVoteViewCmdArgs era -> Vary '[FormatJson, FormatYaml] outputFormat :: !(Vary [FormatJson, FormatYaml]) , forall era. GovernanceVoteViewCmdArgs era -> Maybe (File () 'Out) mOutFile :: Maybe (File () Out) } renderGovernanceVoteCmds :: () => GovernanceVoteCmds era -> Text renderGovernanceVoteCmds :: forall era. GovernanceVoteCmds era -> Text renderGovernanceVoteCmds = \case GovernanceVoteCreateCmd{} -> Text "governance vote create" GovernanceVoteViewCmd{} -> Text "governance vote view"