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

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

import Cardano.Ledger.Babbage.Era (BabbageEra)
import Cardano.Ledger.Shelley.State

instance EraCertState BabbageEra where
  type CertState BabbageEra = ShelleyCertState BabbageEra

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

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

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

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

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