{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
module Cardano.CLI.Type.Error.GovernanceCmdError where
import Cardano.Api
data GovernanceCmdError
=
WriteFileError (FileError ())
|
GovernanceCmdEmptyUpdateProposalError
| GovernanceCmdMIRCertificateKeyRewardMistmach
!FilePath
!Int
!Int
| GovernanceCmdEmptyCostModel !FilePath
|
GovernanceCmdPollOutOfBoundAnswer
!Int
| GovernanceCmdPollInvalidChoice
| GovernanceCmdHashMismatchError
!(Hash DRepMetadata)
!(Hash DRepMetadata)
deriving Int -> GovernanceCmdError -> ShowS
[GovernanceCmdError] -> ShowS
GovernanceCmdError -> String
(Int -> GovernanceCmdError -> ShowS)
-> (GovernanceCmdError -> String)
-> ([GovernanceCmdError] -> ShowS)
-> Show GovernanceCmdError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GovernanceCmdError -> ShowS
showsPrec :: Int -> GovernanceCmdError -> ShowS
$cshow :: GovernanceCmdError -> String
show :: GovernanceCmdError -> String
$cshowList :: [GovernanceCmdError] -> ShowS
showList :: [GovernanceCmdError] -> ShowS
Show
instance Error GovernanceCmdError where
prettyError :: forall ann. GovernanceCmdError -> Doc ann
prettyError = \case
WriteFileError FileError ()
fileError ->
FileError () -> Doc ann
forall e ann. Error e => e -> Doc ann
forall ann. FileError () -> Doc ann
prettyError FileError ()
fileError
GovernanceCmdError
GovernanceCmdEmptyUpdateProposalError ->
Doc ann
"Empty update proposals are not allowed."
GovernanceCmdMIRCertificateKeyRewardMistmach String
fp Int
nStakeVerKeys Int
nRewards ->
Doc ann
"Error creating the MIR certificate at: "
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
fp
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Doc ann
" The number of staking keys: "
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Int -> Doc ann
forall a ann. Show a => a -> Doc ann
pshow Int
nStakeVerKeys
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Doc ann
" and the number of reward amounts: "
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Int -> Doc ann
forall a ann. Show a => a -> Doc ann
pshow Int
nRewards
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Doc ann
" are not equivalent."
GovernanceCmdEmptyCostModel String
fp ->
Doc ann
"The decoded cost model was empty at: " Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
fp
GovernanceCmdPollOutOfBoundAnswer Int
maxIdx ->
Doc ann
"Poll answer out of bounds. Choices are between 0 and " Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Int -> Doc ann
forall a ann. Show a => a -> Doc ann
pshow Int
maxIdx
GovernanceCmdError
GovernanceCmdPollInvalidChoice ->
Doc ann
"Invalid choice. Please choose from the available answers."
GovernanceCmdHashMismatchError (DRepMetadataHash Hash HASH ByteString
expectedHash) (DRepMetadataHash Hash HASH ByteString
actualHash) ->
Doc ann
"Hashes do not match!"
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Doc ann
"\nExpected:"
Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (Hash HASH ByteString -> String
forall a. Show a => a -> String
show Hash HASH ByteString
expectedHash)
Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Doc ann
"\n Actual:"
Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (Hash HASH ByteString -> String
forall a. Show a => a -> String
show Hash HASH ByteString
actualHash)