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

module Cardano.Ledger.Dijkstra.TxAuxData () where

import Cardano.Ledger.Alonzo.TxAuxData (
  AlonzoTxAuxData (..),
  metadataAlonzoTxAuxDataL,
  nativeScriptsAlonzoTxAuxDataL,
  plutusScriptsAllegraTxAuxDataL,
  validateAlonzoTxAuxData,
 )
import Cardano.Ledger.Conway.Core (
  AllegraEraTxAuxData (..),
  AlonzoEraTxAuxData (..),
  EraTxAuxData (..),
 )
import Cardano.Ledger.Dijkstra.Era (DijkstraEra)
import Cardano.Ledger.Dijkstra.Scripts ()

instance EraTxAuxData DijkstraEra where
  type TxAuxData DijkstraEra = AlonzoTxAuxData DijkstraEra

  mkBasicTxAuxData :: TxAuxData DijkstraEra
mkBasicTxAuxData = Map Word64 Metadatum
-> StrictSeq (NativeScript DijkstraEra)
-> Map Language (NonEmpty PlutusBinary)
-> AlonzoTxAuxData DijkstraEra
forall era.
(HasCallStack, AlonzoEraScript era) =>
Map Word64 Metadatum
-> StrictSeq (NativeScript era)
-> Map Language (NonEmpty PlutusBinary)
-> AlonzoTxAuxData era
AlonzoTxAuxData Map Word64 Metadatum
forall a. Monoid a => a
mempty StrictSeq (NativeScript DijkstraEra)
StrictSeq (DijkstraNativeScript DijkstraEra)
forall a. Monoid a => a
mempty Map Language (NonEmpty PlutusBinary)
forall a. Monoid a => a
mempty

  metadataTxAuxDataL :: Lens' (TxAuxData DijkstraEra) (Map Word64 Metadatum)
metadataTxAuxDataL = (Map Word64 Metadatum -> f (Map Word64 Metadatum))
-> TxAuxData DijkstraEra -> f (TxAuxData DijkstraEra)
(Map Word64 Metadatum -> f (Map Word64 Metadatum))
-> AlonzoTxAuxData DijkstraEra -> f (AlonzoTxAuxData DijkstraEra)
forall era.
(Era era, EncCBOR (NativeScript era)) =>
Lens' (AlonzoTxAuxData era) (Map Word64 Metadatum)
Lens' (AlonzoTxAuxData DijkstraEra) (Map Word64 Metadatum)
metadataAlonzoTxAuxDataL

  validateTxAuxData :: ProtVer -> TxAuxData DijkstraEra -> Bool
validateTxAuxData = ProtVer -> TxAuxData DijkstraEra -> Bool
ProtVer -> AlonzoTxAuxData DijkstraEra -> Bool
forall era.
(AlonzoEraScript era, Script era ~ AlonzoScript era) =>
ProtVer -> AlonzoTxAuxData era -> Bool
validateAlonzoTxAuxData

instance AllegraEraTxAuxData DijkstraEra where
  nativeScriptsTxAuxDataL :: Lens'
  (TxAuxData DijkstraEra) (StrictSeq (NativeScript DijkstraEra))
nativeScriptsTxAuxDataL = (StrictSeq (NativeScript DijkstraEra)
 -> f (StrictSeq (NativeScript DijkstraEra)))
-> TxAuxData DijkstraEra -> f (TxAuxData DijkstraEra)
(StrictSeq (NativeScript DijkstraEra)
 -> f (StrictSeq (NativeScript DijkstraEra)))
-> AlonzoTxAuxData DijkstraEra -> f (AlonzoTxAuxData DijkstraEra)
forall era.
(Era era, EncCBOR (NativeScript era)) =>
Lens' (AlonzoTxAuxData era) (StrictSeq (NativeScript era))
Lens'
  (AlonzoTxAuxData DijkstraEra)
  (StrictSeq (NativeScript DijkstraEra))
nativeScriptsAlonzoTxAuxDataL

instance AlonzoEraTxAuxData DijkstraEra where
  plutusScriptsTxAuxDataL :: Lens'
  (TxAuxData DijkstraEra) (Map Language (NonEmpty PlutusBinary))
plutusScriptsTxAuxDataL = (Map Language (NonEmpty PlutusBinary)
 -> f (Map Language (NonEmpty PlutusBinary)))
-> TxAuxData DijkstraEra -> f (TxAuxData DijkstraEra)
(Map Language (NonEmpty PlutusBinary)
 -> f (Map Language (NonEmpty PlutusBinary)))
-> AlonzoTxAuxData DijkstraEra -> f (AlonzoTxAuxData DijkstraEra)
forall era.
(Era era, EncCBOR (NativeScript era)) =>
Lens' (AlonzoTxAuxData era) (Map Language (NonEmpty PlutusBinary))
Lens'
  (AlonzoTxAuxData DijkstraEra)
  (Map Language (NonEmpty PlutusBinary))
plutusScriptsAllegraTxAuxDataL