{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Mary.BlockBody () where import Cardano.Ledger.BaseTypes (ProtVer (..)) import Cardano.Ledger.Binary (EncCBORGroup (..), serialize') import Cardano.Ledger.Core (EraBlockBody (..)) import Cardano.Ledger.Mary.Era (MaryEra) import Cardano.Ledger.Mary.Tx () import Cardano.Ledger.Shelley.BlockBody ( ShelleyBlockBody, mkBasicBlockBodyShelley, shelleyBlockBodyHash, txSeqBlockBodyShelleyL, ) import qualified Data.ByteString as BS instance EraBlockBody MaryEra where type BlockBody MaryEra = ShelleyBlockBody MaryEra mkBasicBlockBody :: BlockBody MaryEra mkBasicBlockBody = BlockBody MaryEra forall era. (EraBlockBody era, SafeToHash (TxWits era), BlockBody era ~ ShelleyBlockBody era) => BlockBody era mkBasicBlockBodyShelley txSeqBlockBodyL :: Lens' (BlockBody MaryEra) (StrictSeq (Tx TopTx MaryEra)) txSeqBlockBodyL = (StrictSeq (Tx TopTx MaryEra) -> f (StrictSeq (Tx TopTx MaryEra))) -> BlockBody MaryEra -> f (BlockBody MaryEra) forall era. (EraBlockBody era, SafeToHash (TxWits era), BlockBody era ~ ShelleyBlockBody era) => Lens' (BlockBody era) (StrictSeq (Tx TopTx era)) Lens' (BlockBody MaryEra) (StrictSeq (Tx TopTx MaryEra)) txSeqBlockBodyShelleyL hashBlockBody :: BlockBody MaryEra -> Hash HASH EraIndependentBlockBody hashBlockBody = BlockBody MaryEra -> Hash HASH EraIndependentBlockBody ShelleyBlockBody MaryEra -> Hash HASH EraIndependentBlockBody forall era. ShelleyBlockBody era -> Hash HASH EraIndependentBlockBody shelleyBlockBodyHash numSegComponents :: Word64 numSegComponents = Word64 3 blockBodySize :: ProtVer -> BlockBody MaryEra -> Int blockBodySize (ProtVer Version v Natural _) = ByteString -> Int BS.length (ByteString -> Int) -> (ShelleyBlockBody MaryEra -> ByteString) -> ShelleyBlockBody MaryEra -> Int forall b c a. (b -> c) -> (a -> b) -> a -> c . Version -> Encoding -> ByteString forall a. EncCBOR a => Version -> a -> ByteString serialize' Version v (Encoding -> ByteString) -> (ShelleyBlockBody MaryEra -> Encoding) -> ShelleyBlockBody MaryEra -> ByteString forall b c a. (b -> c) -> (a -> b) -> a -> c . ShelleyBlockBody MaryEra -> Encoding forall a. EncCBORGroup a => a -> Encoding encCBORGroup