1818import Cardano.Api.Error
1919import Cardano.Api.Pretty
2020
21+ import Cardano.Chain.Genesis qualified as Byron
2122import Cardano.Ledger.Alonzo.PParams qualified as Ledger
2223import Cardano.Ledger.Babbage.PParams qualified as Ledger
2324import Cardano.Ledger.BaseTypes (strictMaybeToMaybe )
@@ -28,6 +29,7 @@ import Cardano.Ledger.Coin qualified as L
2829import Cardano.Ledger.Conway.PParams qualified as Ledger
2930import Cardano.Ledger.HKD (NoUpdate (.. ))
3031import Cardano.Ledger.Shelley.PParams qualified as Ledger
32+ import Ouroboros.Consensus.Cardano.Block (EraMismatch (.. ))
3133import PlutusLedgerApi.Common qualified as P
3234
3335import Codec.Binary.Bech32 qualified as Bech32
@@ -36,8 +38,10 @@ import Data.ListMap (ListMap)
3638import Data.ListMap qualified as ListMap
3739import Data.Maybe.Strict (StrictMaybe (.. ))
3840import Data.Monoid
41+ import Data.Text.Encoding.Error qualified as T
3942import GHC.Exts (IsList (.. ))
4043import Network.Mux qualified as Mux
44+ import Text.Parsec.Error qualified as P
4145
4246deriving instance Data DecoderError
4347
@@ -270,3 +274,21 @@ instance Error CBOR.DecoderError where
270274
271275instance Error P. ScriptDecodeError where
272276 prettyError = pshow
277+
278+ instance Error T. UnicodeException where
279+ prettyError = pshow
280+
281+ instance Error EraMismatch where
282+ prettyError (EraMismatch ledgerEraName' otherEraName') =
283+ " The era of the node and the tx do not match. "
284+ <> " The node is running in the "
285+ <> pshow ledgerEraName'
286+ <> " era, but the transaction is for the "
287+ <> pshow otherEraName'
288+ <> " era."
289+
290+ instance Error Byron. GenesisDataGenerationError where
291+ prettyError = pretty . show
292+
293+ instance Error P. ParseError where
294+ prettyError = pretty . show
0 commit comments