{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Mary.State.CertState () where

import Cardano.Ledger.Mary.Era (MaryEra)
import Cardano.Ledger.Shelley.State

instance EraCertState MaryEra where
  type CertState MaryEra = ShelleyCertState MaryEra

  certDStateL :: Lens' (CertState MaryEra) (DState MaryEra)
certDStateL = (DState MaryEra -> f (DState MaryEra))
-> CertState MaryEra -> f (CertState MaryEra)
(DState MaryEra -> f (DState MaryEra))
-> ShelleyCertState MaryEra -> f (ShelleyCertState MaryEra)
forall era (f :: * -> *).
Functor f =>
(DState era -> f (DState era))
-> ShelleyCertState era -> f (ShelleyCertState era)
shelleyCertDStateL
  {-# INLINE certDStateL #-}

  certPStateL :: Lens' (CertState MaryEra) (PState MaryEra)
certPStateL = (PState MaryEra -> f (PState MaryEra))
-> CertState MaryEra -> f (CertState MaryEra)
(PState MaryEra -> f (PState MaryEra))
-> ShelleyCertState MaryEra -> f (ShelleyCertState MaryEra)
forall era (f :: * -> *).
Functor f =>
(PState era -> f (PState era))
-> ShelleyCertState era -> f (ShelleyCertState era)
shelleyCertPStateL
  {-# INLINE certPStateL #-}

  obligationCertState :: CertState MaryEra -> Obligations
obligationCertState = CertState MaryEra -> Obligations
forall era. EraCertState era => CertState era -> Obligations
shelleyObligationCertState

  certsTotalDepositsTxBody :: EraTxBody MaryEra =>
PParams MaryEra -> CertState MaryEra -> TxBody MaryEra -> Coin
certsTotalDepositsTxBody = PParams MaryEra -> CertState MaryEra -> TxBody MaryEra -> Coin
PParams MaryEra
-> ShelleyCertState MaryEra -> TxBody MaryEra -> Coin
forall era.
EraTxBody era =>
PParams era -> ShelleyCertState era -> TxBody era -> Coin
shelleyCertsTotalDepositsTxBody

  certsTotalRefundsTxBody :: EraTxBody MaryEra =>
PParams MaryEra -> CertState MaryEra -> TxBody MaryEra -> Coin
certsTotalRefundsTxBody = PParams MaryEra -> CertState MaryEra -> TxBody MaryEra -> Coin
PParams MaryEra
-> ShelleyCertState MaryEra -> TxBody MaryEra -> Coin
forall era.
EraTxBody era =>
PParams era -> ShelleyCertState era -> TxBody era -> Coin
shelleyCertsTotalRefundsTxBody