@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
TypeScript
/**
* @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