plutus-tx-1.36.0.0: Libraries for Plutus Tx and its prelude
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusTx.Code

Synopsis

Documentation

data CompiledCodeIn uni fun a Source #

A compiled Plutus Tx program. The last type parameter indicates the type of the Haskell expression that was compiled, and hence the type of the compiled code.

Note: the compiled PLC program does *not* have normalized types, if you want to put it on the chain you must normalize the types first.

Constructors

SerializedCode ByteString (Maybe ByteString) CoverageIndex

Serialized UPLC code and possibly serialized PIR code with metadata used for program coverage.

DeserializedCode (Program NamedDeBruijn uni fun SrcSpans) (Maybe (Program TyName Name uni fun SrcSpans)) CoverageIndex

Deserialized UPLC program, and possibly deserialized PIR program with metadata used for program coverage.

type CompiledCode = CompiledCodeIn DefaultUni DefaultFun Source #

CompiledCodeIn instantiated with default built-in types and functions.

applyCode :: (Closed uni, uni `Everywhere` Flat, Flat fun, Pretty fun, Everywhere uni PrettyConst, PrettyBy RenderContext (SomeTypeIn uni)) => CompiledCodeIn uni fun (a -> b) -> CompiledCodeIn uni fun a -> Either String (CompiledCodeIn uni fun b) Source #

Apply a compiled function to a compiled argument. Will fail if the versions don't match.

unsafeApplyCode :: (Closed uni, uni `Everywhere` Flat, Flat fun, Pretty fun, Everywhere uni PrettyConst, PrettyBy RenderContext (SomeTypeIn uni)) => CompiledCodeIn uni fun (a -> b) -> CompiledCodeIn uni fun a -> CompiledCodeIn uni fun b Source #

Apply a compiled function to a compiled argument. Will throw if the versions don't match, should only be used in non-production code.

sizePlc :: (Closed uni, uni `Everywhere` Flat, Flat fun) => CompiledCodeIn uni fun a -> Integer Source #

The size of a CompiledCodeIn, in AST nodes.

getPlc :: (Closed uni, uni `Everywhere` Flat, Flat fun) => CompiledCodeIn uni fun a -> Program NamedDeBruijn uni fun SrcSpans Source #

Get the actual Plutus Core program out of a CompiledCodeIn.

getPlcNoAnn :: (Closed uni, uni `Everywhere` Flat, Flat fun) => CompiledCodeIn uni fun a -> Program NamedDeBruijn uni fun () Source #

getPir :: (Closed uni, uni `Everywhere` Flat, Flat fun) => CompiledCodeIn uni fun a -> Maybe (Program TyName Name uni fun SrcSpans) Source #

Get the Plutus IR program, if there is one, out of a CompiledCodeIn.

getPirNoAnn :: (Closed uni, uni `Everywhere` Flat, Flat fun) => CompiledCodeIn uni fun a -> Maybe (Program TyName Name uni fun ()) Source #