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

module Cardano.Ledger.Dijkstra.BlockBody where

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

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