cardano-ledger-core-1.19.0.0: Core components of Cardano ledgers from the Shelley release on.
Safe HaskellNone
LanguageHaskell2010

Cardano.Ledger.Plutus.Evaluate

Synopsis

Documentation

data PlutusWithContext where Source #

This type contains all that is necessary from Ledger to evaluate a plutus script.

Constructors

PlutusWithContext 

Fields

data ScriptFailure Source #

Instances

Instances details
Generic ScriptFailure Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

Associated Types

type Rep ScriptFailure 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

type Rep ScriptFailure = D1 ('MetaData "ScriptFailure" "Cardano.Ledger.Plutus.Evaluate" "cardano-ledger-core-1.19.0.0-inplace" 'False) (C1 ('MetaCons "ScriptFailure" 'PrefixI 'True) (S1 ('MetaSel ('Just "scriptFailureMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "scriptFailurePlutus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PlutusWithContext)))
Show ScriptFailure Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

type Rep ScriptFailure Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

type Rep ScriptFailure = D1 ('MetaData "ScriptFailure" "Cardano.Ledger.Plutus.Evaluate" "cardano-ledger-core-1.19.0.0-inplace" 'False) (C1 ('MetaCons "ScriptFailure" 'PrefixI 'True) (S1 ('MetaSel ('Just "scriptFailureMessage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "scriptFailurePlutus") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PlutusWithContext)))

data ScriptResult Source #

Instances

Instances details
Monoid ScriptResult Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

Semigroup ScriptResult Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

Generic ScriptResult Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

Associated Types

type Rep ScriptResult 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

type Rep ScriptResult Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

data PlutusDebugInfo Source #

Constructors

DebugBadHex String 
DebugCannotDecode String 
DebugSuccess 

Fields

  • [Text]

    Execution logs from the plutus interpreter

  • ExBudget

    Execution budget that was consumed. It will always be less or equal to what was supplied during execution.

DebugFailure 

Fields

  • [Text]

    Execution logs from the plutus interpreter

  • EvaluationError

    Evaluation error from Plutus interpreter

  • PlutusWithContext

    Everything that is needed in order to run the script

  • (Maybe ExBudget)

    Expected execution budget. This value is Nothing when the supplied script can't be executed within 5 second limit or there is a problem with decoding plutus script itself.

DebugTimedOut

Script did not terminate within the imposed limit

Fields

  • Int

    Wall clock limit in microseconds that was imposed on the script execution.

Instances

Instances details
NFData PlutusDebugInfo Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

Methods

rnfPlutusDebugInfo → () #

Show PlutusDebugInfo Source # 
Instance details

Defined in Cardano.Ledger.Plutus.Evaluate

data PlutusDebugOverrides Source #

Various overrides that can be supplied to plutusDebug and plutusDebugUnbouded

Constructors

PlutusDebugOverrides 

Fields

debugPlutusHasCallStackStringIntPlutusDebugOverridesIO PlutusDebugInfo Source #

Execute a hex encoded script with the context that was produced within the ledger predicate failure. Using PlutusDebugOverrides it is possible to override any part of the execution.

debugPlutusUnboundedHasCallStackStringPlutusDebugOverridesPlutusDebugInfo Source #

This is just like debugPlutus, except it is pure and if a supplied script contains an infinite loop or a very expensive computation, it might not terminate within a reasonable timeframe.

explainPlutusEvaluationErrorPlutusWithContextEvaluationErrorScriptResult Source #

Explain why a script might fail. Scripts come in three flavors:

  1. with 3 arguments [data,redeemer,context] for PlutusV1 and PlustuV2
  2. with 2 arguments [redeemer,context] for PlutusV1 and PlustuV2
  3. with 1 argument context for PlutusV3 onwards