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

104 lines 3.55 kB
/** * @typedef {import("@helios-lang/type-utils").EnumTypeSchema} EnumTypeSchema * @typedef {import("../codegen/index.js").Definitions} Definitions * @typedef {import("../typecheck/index.js").DataType} DataType * @typedef {import("../typecheck/index.js").TypeSchema} TypeSchema * @typedef {import("./EntryPoint.js").EntryPoint} EntryPoint */ /** * Note: all FuncArgs are converted from data to primitive format, so from an external PoV none of them are ignored, and there is no need for an `isIgnored` flag * @typedef {{ * name: string * isOptional: boolean * type: TypeSchema * }} AnalyzedFuncArg */ /** * If `returns` isn't set, the function returns undefined (i.e. void or unit) * @typedef {{ * name: string * requiresScriptContext: boolean * requiresCurrentScript: boolean * arguments: AnalyzedFuncArg[] * returns?: TypeSchema * }} AnalyzedFunc */ /** * @typedef {{ * name: string * purpose: string * sourceCode: string * moduleDepedencies: string[] * types: Record<string, TypeSchema> * functions: Record<string, AnalyzedFunc> * }} AnalyzedModule */ /** * Note: `hashDependencies` doesn't contain the indirect dependencies! It must be kept to a minimum in order to inform in which order the validators must be compiled * @typedef {AnalyzedModule & { * hashDependencies: string[] * Redeemer: TypeSchema * currentScriptIndex?: number * Datum?: TypeSchema * }} AnalyzedValidator */ /** * Maps purposes to concrete ScriptHashTypes * @param {string} purpose * @returns {ScriptHashType} */ export function getScriptHashType(purpose: string): ScriptHashType; /** * @param {string[]} validatorSources * @param {string[]} moduleSources * @returns {{ * modules: Record<string, AnalyzedModule>, * validators: Record<string, AnalyzedValidator> * }} */ export function analyzeMulti(validatorSources: string[], moduleSources: string[]): { modules: Record<string, AnalyzedModule>; validators: Record<string, AnalyzedValidator>; }; export type EnumTypeSchema = import("@helios-lang/type-utils").EnumTypeSchema; export type Definitions = import("../codegen/index.js").Definitions; export type DataType = import("../typecheck/index.js").DataType; export type TypeSchema = import("../typecheck/index.js").TypeSchema; export type EntryPoint = import("./EntryPoint.js").EntryPoint; /** * Note: all FuncArgs are converted from data to primitive format, so from an external PoV none of them are ignored, and there is no need for an `isIgnored` flag */ export type AnalyzedFuncArg = { name: string; isOptional: boolean; type: TypeSchema; }; /** * If `returns` isn't set, the function returns undefined (i.e. void or unit) */ export type AnalyzedFunc = { name: string; requiresScriptContext: boolean; requiresCurrentScript: boolean; arguments: AnalyzedFuncArg[]; returns?: TypeSchema; }; export type AnalyzedModule = { name: string; purpose: string; sourceCode: string; moduleDepedencies: string[]; types: Record<string, TypeSchema>; functions: Record<string, AnalyzedFunc>; }; /** * Note: `hashDependencies` doesn't contain the indirect dependencies! It must be kept to a minimum in order to inform in which order the validators must be compiled */ export type AnalyzedValidator = AnalyzedModule & { hashDependencies: string[]; Redeemer: TypeSchema; currentScriptIndex?: number; Datum?: TypeSchema; }; import { ScriptHashType } from "../typecheck/index.js"; //# sourceMappingURL=multi.d.ts.map