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

module Cardano.Ledger.Conway.BlockBody where

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

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