UNPKG

@helios-lang/compiler

Version:

Helios is a Domain Specific Language that compiles to Plutus-Core (i.e. Cardano on-chain validator scripts). Helios is a non-Haskell alternative to Plutus. With this library you can compile Helios scripts and build Cardano transactions, all you need to bu

85 lines 2.73 kB
/** * @typedef {import("@helios-lang/uplc").UplcProgramV2} UplcProgramV2 * @typedef {import("@helios-lang/ir").SourceMappedStringI} SourceMappedStringI * @typedef {import("../typecheck/index.js").ScriptTypes} ScriptTypes * @typedef {import("./EntryPoint.js").EntryPoint} EntryPoint */ export class UserFunc { /** * @param {ModuleCollection} modules * @param {string} name - member functions have a `Type::` prefix */ constructor(modules: ModuleCollection, name: string); /** * @readonly * @type {ModuleCollection} */ readonly modules: ModuleCollection; /** * @readonly * @type {string} */ readonly name: string; /** * @type {ConstStatement} */ get mainConst(): ConstStatement; /** * @type {FuncStatement} */ get mainFunc(): FuncStatement; /** * @type {FuncStatement | ConstStatement} */ get main(): ConstStatement | FuncStatement; /** * @param {{ * optimize: boolean * validatorTypes: ScriptTypes * validatorIndices?: Record<string, number> * hashDependencies: Record<string, string> * currentScriptValue?: string * }} props * @returns {UplcProgramV2} */ compile(props: { optimize: boolean; validatorTypes: ScriptTypes; validatorIndices?: Record<string, number>; hashDependencies: Record<string, string>; currentScriptValue?: string; }): UplcProgramV2; /** * @param {{ * validatorTypes: ScriptTypes * validatorIndices?: Record<string, number> * optimize?: boolean * hashDependencies?: Record<string, string> * currentScriptValue?: string * }} props * @returns {{ * ir: SourceMappedStringI * requiresScriptContext: boolean * requiresCurrentScript: boolean * }} */ toIR(props: { validatorTypes: ScriptTypes; validatorIndices?: Record<string, number>; optimize?: boolean; hashDependencies?: Record<string, string>; currentScriptValue?: string; }): { ir: SourceMappedStringI; requiresScriptContext: boolean; requiresCurrentScript: boolean; }; } export type UplcProgramV2 = import("@helios-lang/uplc").UplcProgramV2; export type SourceMappedStringI = import("@helios-lang/ir").SourceMappedStringI; export type ScriptTypes = import("../typecheck/index.js").ScriptTypes; export type EntryPoint = import("./EntryPoint.js").EntryPoint; import { ModuleCollection } from "./ModuleCollection.js"; import { ConstStatement } from "../statements/index.js"; import { FuncStatement } from "../statements/index.js"; //# sourceMappingURL=UserFunc.d.ts.map