{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.CLI.Orphan
(
)
where
import Cardano.Api
import Cardano.Api.Ledger qualified as L
import Cardano.Api.Shelley (VotesMergingConflict, scriptDataToJsonDetailedSchema)
import Data.Aeson
instance Error (VotesMergingConflict era) where
prettyError :: forall ann. VotesMergingConflict era -> Doc ann
prettyError = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (String -> Doc ann)
-> (VotesMergingConflict era -> String)
-> VotesMergingConflict era
-> Doc ann
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VotesMergingConflict era -> String
forall a. Show a => a -> String
show
instance (L.EraTxOut ledgerera, L.EraGov ledgerera) => ToJSON (L.NewEpochState ledgerera) where
toJSON :: NewEpochState ledgerera -> Value
toJSON (L.NewEpochState EpochNo
nesEL BlocksMade (EraCrypto ledgerera)
nesBprev BlocksMade (EraCrypto ledgerera)
nesBCur EpochState ledgerera
nesEs StrictMaybe (PulsingRewUpdate (EraCrypto ledgerera))
nesRu PoolDistr (EraCrypto ledgerera)
nesPd StashedAVVMAddresses ledgerera
_stashedAvvm) =
[Pair] -> Value
object
[ Key
"currentEpoch" Key -> EpochNo -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EpochNo
nesEL
, Key
"priorBlocks" Key -> BlocksMade (EraCrypto ledgerera) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= BlocksMade (EraCrypto ledgerera)
nesBprev
, Key
"currentEpochBlocks" Key -> BlocksMade (EraCrypto ledgerera) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= BlocksMade (EraCrypto ledgerera)
nesBCur
, Key
"currentEpochState" Key -> EpochState ledgerera -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EpochState ledgerera
nesEs
, Key
"rewardUpdate" Key -> StrictMaybe (PulsingRewUpdate (EraCrypto ledgerera)) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (PulsingRewUpdate (EraCrypto ledgerera))
nesRu
, Key
"currentStakeDistribution" Key -> PoolDistr (EraCrypto ledgerera) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PoolDistr (EraCrypto ledgerera)
nesPd
]
instance ToJSON HashableScriptData where
toJSON :: HashableScriptData -> Value
toJSON HashableScriptData
hsd =
[Pair] -> Value
object
[ Key
"hash" Key -> Hash ScriptData -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= HashableScriptData -> Hash ScriptData
hashScriptDataBytes HashableScriptData
hsd
, Key
"json" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= HashableScriptData -> Value
scriptDataToJsonDetailedSchema HashableScriptData
hsd
]