Program

Represents a Helios program containing a main function.

This is the principal API class with which users of the library interact.

Constructor

The constructor isn't intended for direct use. The new static method should be used instead:

helios.Program.new(
    mainSrc: string, 
    moduleSrcs: string[] = []
): helios.Program

The 1st argument here is the source of the entrypoint of the program. The 2nd argument here is optional, and is a list of the sources of modules that can be import by the entrypoint source.

Getters

name

Get the name of the script (contained in the header of the script).

program.name: string

paramTypes

Returns a mapping of top-level const names to const types.

program.paramTypes: Object.<string, helios.Type>

parameters

Returns an object containing all the evaluated parameters.

program.parameters: {[paramName: string]: helios.HeliosData}

HeliosData is the abstract parent class of many Helios API types that have Helios language equivalents.

types

Returns an object containing Javascript contructors for the user-defined types in the main script (including those imported into the main script).

program.types: {[typeName: string]: {new(...any) => helios.HeliosData}}

Instantiating these constructors creates objects with HeliosData as a parent type.

Setters

parameters

Parameters can be set using the parameters setter. Parameters are const statements that are visible in the main Helios script. In many cases a Javascript value can be used directly (i.e. JSON-like).

program.parameters = {MY_PARAM: my_param, ...} as {[name: string]: helios.HeliosData | any}

Primitive Javascript values can also be used as a rhs when setting parameters like this. Helios will intelligently convert these in the necessary HeliosData instances.

Methods

compile

Compiles a Helios program, with optional optimization. Returns a UplcProgram instance.

program.compile(simplify: boolean = false): helios.UplcProgram

evalParam

Eval the rhs of a const statement, and return the result as a UplcValue.

program.evalParam(paramName: string): helios.UplcValue