{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Mary.TxSeq () where

import Cardano.Ledger.Core (EraSegWits (..))
import Cardano.Ledger.Mary.Era (MaryEra)
import Cardano.Ledger.Mary.Tx ()
import Cardano.Ledger.Shelley.BlockChain (ShelleyTxSeq (..), bbHash, txSeqTxns)

instance EraSegWits MaryEra where
  type TxSeq MaryEra = ShelleyTxSeq MaryEra
  fromTxSeq :: TxSeq MaryEra -> StrictSeq (Tx MaryEra)
fromTxSeq = forall era. ShelleyTxSeq era -> StrictSeq (ShelleyTx era)
txSeqTxns
  toTxSeq :: StrictSeq (Tx MaryEra) -> TxSeq MaryEra
toTxSeq = forall era.
(EraTx era, Tx era ~ ShelleyTx era, SafeToHash (TxWits era)) =>
StrictSeq (Tx era) -> ShelleyTxSeq era
ShelleyTxSeq
  hashTxSeq :: TxSeq MaryEra -> Hash HASH EraIndependentBlockBody
hashTxSeq = forall era. ShelleyTxSeq era -> Hash HASH EraIndependentBlockBody
bbHash
  numSegComponents :: Word64
numSegComponents = Word64
3