1
{-# LANGUAGE DataKinds #-}
2
{-# LANGUAGE DeriveAnyClass #-}
3
{-# LANGUAGE DerivingStrategies #-}
4
{-# LANGUAGE FlexibleContexts #-}
5
{-# LANGUAGE FlexibleInstances #-}
6
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
7
{-# LANGUAGE OverloadedStrings #-}
8
{-# LANGUAGE StandaloneDeriving #-}
9
{-# LANGUAGE TypeFamilies #-}
10
{-# LANGUAGE UndecidableInstances #-}
12
{-# OPTIONS_GHC -Wno-orphans #-}
14
module Cardano.CLI.Shelley.Orphans () where
16
import Cardano.Prelude
18
import Control.SetAlgebra as SetAlgebra
20
import qualified Data.ByteString.Base16 as Base16
21
import qualified Data.ByteString.Short as SBS
22
import qualified Data.Text.Encoding as Text
24
import Cardano.Api.Orphans ()
26
import Cardano.Crypto.Hash.Class as Crypto
28
import Ouroboros.Consensus.Byron.Ledger.Block (ByronHash (..))
29
import Ouroboros.Consensus.HardFork.Combinator (OneEraHash (..))
30
import Ouroboros.Consensus.Shelley.Ledger.Block (ShelleyHash (..))
31
import Ouroboros.Consensus.Shelley.Eras (StandardCrypto)
32
import Ouroboros.Network.Block (BlockNo (..), HeaderHash, Tip (..))
34
import Cardano.Ledger.AuxiliaryData (AuxiliaryDataHash (..))
36
import qualified Shelley.Spec.Ledger.API.Protocol as Ledger
37
import Shelley.Spec.Ledger.BlockChain (HashHeader (..))
38
import qualified Shelley.Spec.Ledger.Credential as Ledger
39
import qualified Shelley.Spec.Ledger.Delegation.Certificates as Ledger
40
import qualified Shelley.Spec.Ledger.EpochBoundary as Ledger
41
import qualified Shelley.Spec.Ledger.Rewards as Ledger
42
import qualified Shelley.Spec.Ledger.STS.Prtcl as Ledger
43
import qualified Shelley.Spec.Ledger.STS.Tickn as Ledger
44
import Shelley.Spec.Ledger.TxBody (TxId (..))
46
import qualified Cardano.Ledger.Mary.Value as Ledger.Mary
48
instance ToJSON (OneEraHash xs) where
55
deriving newtype instance ToJSON ByronHash
57
-- This instance is temporarily duplicated in cardano-config
59
instance ToJSON (HeaderHash blk) => ToJSON (Tip blk) where
60
toJSON TipGenesis = object [ "genesis" .= True ]
61
toJSON (Tip slotNo headerHash blockNo) =
64
, "headerHash" .= headerHash
65
, "blockNo" .= blockNo
68
-- This instance is temporarily duplicated in cardano-config
69
deriving newtype instance ToJSON BlockNo
72
-- Simple newtype wrappers JSON conversion
75
deriving newtype instance ToJSON (TxId era)
77
deriving newtype instance ToJSON (ShelleyHash era)
78
deriving newtype instance ToJSON (HashHeader era)
80
deriving newtype instance ToJSON (AuxiliaryDataHash StandardCrypto)
81
deriving newtype instance ToJSON Ledger.LogWeight
82
deriving newtype instance ToJSON (Ledger.PoolDistr StandardCrypto)
84
deriving newtype instance ToJSON (Ledger.Stake StandardCrypto)
86
deriving instance ToJSON (Ledger.StakeReference StandardCrypto)
88
deriving instance ToJSON (Ledger.PrtclState StandardCrypto)
89
deriving instance ToJSON Ledger.TicknState
90
deriving instance ToJSON (Ledger.ChainDepState StandardCrypto)
92
deriving instance ToJSONKey Ledger.Ptr
94
deriving newtype instance ToJSON (Ledger.Mary.PolicyID StandardCrypto)
96
instance (ToJSONKey k, ToJSON v) => ToJSON (SetAlgebra.BiMap v k v) where
97
toJSON = toJSON . SetAlgebra.forwards -- to normal Map