-- | Common types and functions used across all the ledger API modules.
module PlutusLedgerApi.Common
    ( evaluateScriptCounting
    , evaluateScriptRestricting
    , EvaluationContext (..)
    , ScriptDecodeError (..)
    , mkDynEvaluationContext
    , assertScriptWellFormed
    , assertWellFormedCostModelParams
    , toMachineParameters
    , SerialisedScript
    , serialiseCompiledCode
    , serialiseUPLC
    , deserialiseUPLC
    , VerboseMode (..)
    , LogOutput
    , EvaluationError (..)
    , ProtocolVersion (..)
    , LedgerPlutusVersion (..)
    , builtinsIntroducedIn
    , builtinsAvailableIn
    , IsParamName
    , GenericParamName
    , toCostModelParams
    , showParamName
    ) where

import PlutusLedgerApi.Common.Eval
import PlutusLedgerApi.Common.ParamName
import PlutusLedgerApi.Common.SerialisedScript
import PlutusLedgerApi.Common.Versions