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

PlutusTx.Test.Util.Compiled

Synopsis

Documentation

countFlatBytesCompiledCode ann → Integer Source #

The size of a CompiledCodeIn as measured in Flat bytes.

This function serialises the code to ByteString and counts the number of bytes. It uses the same serialisation format as used by the ledger: CBOR(Flat(StripNames(Strip Annotations(UPLC))))

Caveat: the SerialisedCode constructor of the CompiledCode type already contains a PLC program as ByteString, but it isn't the same byte representation as the one produced by serialiseCompiledCode function: in uses the NamedDeBruijn representation, which also stores names. On the mainnet we don't serialise names, only DeBruijn indices, so this function re-serialises the code to get the size in bytes that we would actually use on the mainnet.

toAnonDeBruijnTermTermTerm DeBruijn DefaultUni DefaultFun () Source #

Remove the textual names from a NamedDeBruijn term

toNamedDeBruijnTermTerm DeBruijn DefaultUni DefaultFun () → Term NamedDeBruijn DefaultUni DefaultFun () Source #

Given a DeBruijn-named term, give every variable the name "v". If we later call unDeBruijn, that will rename the variables to things like "v123", where 123 is the relevant de Bruijn index.

compiledCodeToTermCompiledCodeIn DefaultUni DefaultFun a → Term Source #

Just extract the body of a program wrapped in a CompiledCodeIn. We use this a lot.

cekResultMatchesHaskellValueLift DefaultUni hask ⇒ Term → (∀ r. (Eq r, Show r) ⇒ r → r → k) → hask → k Source #

Evaluate a PLC term and check that the result matches a given Haskell value (perhaps obtained by running the Haskell code that the term was compiled from). We evaluate the lifted Haskell value as well, because lifting may produce reducible terms. The function is polymorphic in the comparison operator so that we can use it with both HUnit Assertions and QuickCheck Properties.