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

module Cardano.Ledger.Babbage.BlockBody where

import Cardano.Ledger.Alonzo.BlockBody
import Cardano.Ledger.Babbage.Era
import Cardano.Ledger.Babbage.Tx ()
import Cardano.Ledger.Core
import Lens.Micro (lens)

instance EraBlockBody BabbageEra where
  type BlockBody BabbageEra = AlonzoBlockBody BabbageEra
  mkBasicBlockBody :: BlockBody BabbageEra
mkBasicBlockBody = StrictSeq (Tx BabbageEra) -> AlonzoBlockBody BabbageEra
forall era.
(AlonzoEraTx era, SafeToHash (TxWits era)) =>
StrictSeq (Tx era) -> AlonzoBlockBody era
AlonzoBlockBody StrictSeq (Tx BabbageEra)
forall a. Monoid a => a
mempty
  txSeqBlockBodyL :: Lens' (BlockBody BabbageEra) (StrictSeq (Tx BabbageEra))
txSeqBlockBodyL = (AlonzoBlockBody BabbageEra -> StrictSeq (Tx BabbageEra))
-> (AlonzoBlockBody BabbageEra
    -> StrictSeq (Tx BabbageEra) -> AlonzoBlockBody BabbageEra)
-> Lens
     (AlonzoBlockBody BabbageEra)
     (AlonzoBlockBody BabbageEra)
     (StrictSeq (Tx BabbageEra))
     (StrictSeq (Tx BabbageEra))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens AlonzoBlockBody BabbageEra -> StrictSeq (Tx BabbageEra)
forall era. AlonzoBlockBody era -> StrictSeq (Tx era)
alonzoBlockBodyTxs (\AlonzoBlockBody BabbageEra
_ StrictSeq (Tx BabbageEra)
s -> StrictSeq (Tx BabbageEra) -> AlonzoBlockBody BabbageEra
forall era.
(AlonzoEraTx era, SafeToHash (TxWits era)) =>
StrictSeq (Tx era) -> AlonzoBlockBody era
AlonzoBlockBody StrictSeq (Tx BabbageEra)
s)
  hashBlockBody :: BlockBody BabbageEra -> Hash HASH EraIndependentBlockBody
hashBlockBody = BlockBody BabbageEra -> Hash HASH EraIndependentBlockBody
AlonzoBlockBody BabbageEra -> Hash HASH EraIndependentBlockBody
forall era.
AlonzoBlockBody era -> Hash HASH EraIndependentBlockBody
alonzoBlockBodyHash
  numSegComponents :: Word64
numSegComponents = Word64
4