{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_HADDOCK not-home #-}
module Cardano.Ledger.MempoolTx.Internal (
MempoolTx (..),
unwrapMempoolTx,
) where
import Cardano.Ledger.Binary (EncCBOR, ToCBOR (..))
import Cardano.Ledger.Core (Era, EraTx (Tx), TxLevel (TopTx), toEraCBOR)
import Control.DeepSeq (NFData)
import NoThunks.Class (NoThunks)
newtype MempoolTx era = UnsafeMkMempoolTx {forall era. MempoolTx era -> Tx TopTx era
unMempoolTx :: Tx TopTx era}
unwrapMempoolTx :: MempoolTx era -> Tx TopTx era
unwrapMempoolTx :: forall era. MempoolTx era -> Tx TopTx era
unwrapMempoolTx = MempoolTx era -> Tx TopTx era
forall era. MempoolTx era -> Tx TopTx era
unMempoolTx
deriving newtype instance EraTx era => Eq (MempoolTx era)
deriving newtype instance EraTx era => Show (MempoolTx era)
deriving newtype instance EraTx era => NFData (MempoolTx era)
deriving newtype instance EraTx era => NoThunks (MempoolTx era)
instance (Era era, EncCBOR (MempoolTx era)) => ToCBOR (MempoolTx era) where
toCBOR :: MempoolTx era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era