@helios-lang/contract-utils 0.2.81 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -7
- package/src/cast/Cast.js +149 -140
- package/src/cast/UserFunc.js +43 -50
- package/src/cast/index.js +2 -29
- package/src/codegen/LoadedScriptsWriter.js +55 -55
- package/src/codegen/TypeSchema.js +6 -14
- package/src/codegen/index.js +1 -14
- package/src/compiler/CompilerLib.js +1 -80
- package/src/compiler/CompilerLib_v0_16.js +14 -14
- package/src/compiler/CompilerLib_v0_17.js +25 -23
- package/src/compiler/index.js +0 -5
- package/src/compiler/ops.js +5 -7
- package/src/context/CacheEntry.js +86 -64
- package/src/context/ContractContextBuilder.js +37 -57
- package/src/context/ContractContextCache.js +5 -7
- package/src/context/DagCompiler.js +24 -20
- package/src/context/index.js +1 -7
- package/src/hl2ts.js +3 -6
- package/src/index.js +355 -9
- package/types/cast/Cast.d.ts +17 -103
- package/types/cast/Cast.d.ts.map +1 -1
- package/types/cast/UserFunc.d.ts +11 -94
- package/types/cast/UserFunc.d.ts.map +1 -1
- package/types/cast/index.d.ts +2 -9
- package/types/cast/index.d.ts.map +1 -1
- package/types/codegen/LoadedScriptsWriter.d.ts +8 -83
- package/types/codegen/LoadedScriptsWriter.d.ts.map +1 -1
- package/types/codegen/TypeCheckedValidator.d.ts +1 -1
- package/types/codegen/TypeCheckedValidator.d.ts.map +1 -1
- package/types/codegen/TypeSchema.d.ts +1 -1
- package/types/codegen/TypeSchema.d.ts.map +1 -1
- package/types/codegen/index.d.ts +1 -7
- package/types/codegen/index.d.ts.map +1 -1
- package/types/compiler/CompilerLib.d.ts +3 -138
- package/types/compiler/CompilerLib.d.ts.map +1 -1
- package/types/compiler/CompilerLib_v0_16.d.ts +8 -118
- package/types/compiler/CompilerLib_v0_16.d.ts.map +1 -1
- package/types/compiler/CompilerLib_v0_17.d.ts +12 -52
- package/types/compiler/CompilerLib_v0_17.d.ts.map +1 -1
- package/types/compiler/index.d.ts +0 -2
- package/types/compiler/index.d.ts.map +1 -1
- package/types/compiler/ops.d.ts +2 -2
- package/types/compiler/ops.d.ts.map +1 -1
- package/types/context/CacheEntry.d.ts +9 -22
- package/types/context/CacheEntry.d.ts.map +1 -1
- package/types/context/ContractContext.d.ts +8 -8
- package/types/context/ContractContext.d.ts.map +1 -1
- package/types/context/ContractContextBuilder.d.ts +5 -100
- package/types/context/ContractContextBuilder.d.ts.map +1 -1
- package/types/context/ContractContextCache.d.ts +5 -8
- package/types/context/ContractContextCache.d.ts.map +1 -1
- package/types/context/DagCompiler.d.ts +11 -15
- package/types/context/DagCompiler.d.ts.map +1 -1
- package/types/context/index.d.ts +1 -6
- package/types/context/index.d.ts.map +1 -1
- package/types/hl2ts.d.ts +0 -3
- package/types/hl2ts.d.ts.map +1 -1
- package/types/index.d.ts +284 -9
- package/types/index.d.ts.map +1 -1
- package/src/cast/PermissiveType.js +0 -18
- package/src/cast/StrictType.js +0 -18
- package/src/codegen/LoadedModule.js +0 -23
- package/src/codegen/LoadedValidator.js +0 -52
- package/src/codegen/TypeCheckedModule.js +0 -31
- package/src/codegen/TypeCheckedValidator.js +0 -15
- package/src/context/ContractContext.js +0 -130
package/types/cast/UserFunc.d.ts
CHANGED
|
@@ -1,102 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @
|
|
4
|
-
* @
|
|
5
|
-
* @typedef {import("@helios-lang/uplc").UplcLoggingI} UplcLoggingI
|
|
6
|
-
* @typedef {import("@helios-lang/uplc").UplcProgram} UplcProgram
|
|
7
|
-
* @typedef {import("@helios-lang/uplc").UplcValue} UplcValue
|
|
8
|
-
* @typedef {import("./Cast.js").CastConfig} CastConfig
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* TODO: add logOptions here as well (which can be overridden by logOptions passed directly to eval(), evalUnsafe() and profile())?
|
|
12
|
-
* `returns` is optional to accomodate main functions that return void
|
|
13
|
-
* @typedef {{
|
|
14
|
-
* name: string
|
|
15
|
-
* requiresScriptContext: boolean
|
|
16
|
-
* requiresCurrentScript: boolean
|
|
17
|
-
* arguments: {
|
|
18
|
-
* name: string
|
|
19
|
-
* type: TypeSchema
|
|
20
|
-
* isOptional: boolean
|
|
21
|
-
* }[]
|
|
22
|
-
* returns?: TypeSchema
|
|
23
|
-
* validatorIndices?: Record<string, number>
|
|
24
|
-
* castConfig: CastConfig
|
|
25
|
-
* }} UserFuncProps
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* @template ArgsT
|
|
29
|
-
* @typedef {{[K in keyof ArgsT]: K extends "$currentScript" ? string : UplcData}} UnsafeArgsT
|
|
2
|
+
* @import { TypeSchema } from "@helios-lang/type-utils"
|
|
3
|
+
* @import { CekResult, UplcData, UplcLogger, UplcProgram, UplcValue } from "@helios-lang/uplc"
|
|
4
|
+
* @import { Cast, CastConfig, UnsafeArgsT, UserFunc, UserFuncProps } from "../index.js"
|
|
30
5
|
*/
|
|
31
6
|
/**
|
|
32
7
|
* @template {{[argName: string]: any}} ArgsT
|
|
33
8
|
* @template RetT
|
|
9
|
+
* @param {UplcProgram} uplc
|
|
10
|
+
* @param {UserFuncProps} props
|
|
11
|
+
* @returns {UserFunc<ArgsT, RetT>}
|
|
34
12
|
*/
|
|
35
|
-
export
|
|
13
|
+
export function makeUserFunc<ArgsT extends {
|
|
36
14
|
[argName: string]: any;
|
|
37
|
-
}, RetT>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
*/
|
|
42
|
-
constructor(uplc: UplcProgram, props: UserFuncProps);
|
|
43
|
-
/**
|
|
44
|
-
* @readonly
|
|
45
|
-
* @type {UplcProgram}
|
|
46
|
-
*/
|
|
47
|
-
readonly uplc: UplcProgram;
|
|
48
|
-
/**
|
|
49
|
-
* @private
|
|
50
|
-
* @readonly
|
|
51
|
-
* @type {UserFuncProps}
|
|
52
|
-
*/
|
|
53
|
-
private readonly props;
|
|
54
|
-
/**
|
|
55
|
-
* @type {string}
|
|
56
|
-
*/
|
|
57
|
-
get name(): string;
|
|
58
|
-
/**
|
|
59
|
-
* @param {ArgsT} namedArgs
|
|
60
|
-
* @param {Option<UplcLoggingI>} logOptions
|
|
61
|
-
* @returns {RetT}
|
|
62
|
-
*/
|
|
63
|
-
eval(namedArgs: ArgsT, logOptions?: Option<UplcLoggingI>): RetT;
|
|
64
|
-
/**
|
|
65
|
-
* @param {UnsafeArgsT<ArgsT>} namedArgs
|
|
66
|
-
* @param {Option<UplcLoggingI>} logOptions
|
|
67
|
-
* @returns {RetT extends void ? void : UplcData}
|
|
68
|
-
*/
|
|
69
|
-
evalUnsafe(namedArgs: UnsafeArgsT<ArgsT>, logOptions?: Option<UplcLoggingI>): RetT extends void ? void : UplcData;
|
|
70
|
-
/**
|
|
71
|
-
* @param {UnsafeArgsT<ArgsT>} namedArgs
|
|
72
|
-
* @param {Option<UplcLoggingI>} logOptions - optional, passed to UplcProgram.eval if provided
|
|
73
|
-
* @returns {CekResult}
|
|
74
|
-
*/
|
|
75
|
-
profile(namedArgs: UnsafeArgsT<ArgsT>, logOptions?: Option<UplcLoggingI>): CekResult;
|
|
76
|
-
}
|
|
77
|
-
export type TypeSchema = import("@helios-lang/type-utils").TypeSchema;
|
|
78
|
-
export type CekResult = import("@helios-lang/uplc").CekResult;
|
|
79
|
-
export type UplcData = import("@helios-lang/uplc").UplcData;
|
|
80
|
-
export type UplcLoggingI = import("@helios-lang/uplc").UplcLoggingI;
|
|
81
|
-
export type UplcProgram = import("@helios-lang/uplc").UplcProgram;
|
|
82
|
-
export type UplcValue = import("@helios-lang/uplc").UplcValue;
|
|
83
|
-
export type CastConfig = import("./Cast.js").CastConfig;
|
|
84
|
-
/**
|
|
85
|
-
* TODO: add logOptions here as well (which can be overridden by logOptions passed directly to eval(), evalUnsafe() and profile())?
|
|
86
|
-
* `returns` is optional to accomodate main functions that return void
|
|
87
|
-
*/
|
|
88
|
-
export type UserFuncProps = {
|
|
89
|
-
name: string;
|
|
90
|
-
requiresScriptContext: boolean;
|
|
91
|
-
requiresCurrentScript: boolean;
|
|
92
|
-
arguments: {
|
|
93
|
-
name: string;
|
|
94
|
-
type: TypeSchema;
|
|
95
|
-
isOptional: boolean;
|
|
96
|
-
}[];
|
|
97
|
-
returns?: TypeSchema;
|
|
98
|
-
validatorIndices?: Record<string, number>;
|
|
99
|
-
castConfig: CastConfig;
|
|
100
|
-
};
|
|
101
|
-
export type UnsafeArgsT<ArgsT> = { [K in keyof ArgsT]: K extends "$currentScript" ? string : UplcData; };
|
|
15
|
+
}, RetT>(uplc: UplcProgram, props: UserFuncProps): UserFunc<ArgsT, RetT>;
|
|
16
|
+
import type { UplcProgram } from "@helios-lang/uplc";
|
|
17
|
+
import type { UserFuncProps } from "../index.js";
|
|
18
|
+
import type { UserFunc } from "../index.js";
|
|
102
19
|
//# sourceMappingURL=UserFunc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFunc.d.ts","sourceRoot":"","sources":["../../src/cast/UserFunc.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserFunc.d.ts","sourceRoot":"","sources":["../../src/cast/UserFunc.js"],"names":[],"mappings":"AAaA;;;;GAIG;AAEH;;;;;;GAMG;AACH,6BANwC,KAAK,SAAhC;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,IAAI,QACN,WAAW,SACX,aAAa,GACX,SAAS,KAAK,EAAE,IAAI,CAAC,CAIjC;iCAb2E,mBAAmB;mCACpB,aAAa;8BAAb,aAAa"}
|
package/types/cast/index.d.ts
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { configureCast } from "./Cast.js";
|
|
3
|
-
export { UserFunc } from "./UserFunc.js";
|
|
4
|
-
export type CastConfig = import("./Cast.js").CastConfig;
|
|
5
|
-
export type ConfigurableCast<TStrict, TPermissive> = import("./Cast.js").ConfigurableCast<TStrict, TPermissive>;
|
|
6
|
-
export type CastLike<TStrict, TPermissive> = import("./Cast.js").CastLike<TStrict, TPermissive>;
|
|
7
|
-
export type PermissiveType<C extends CastLike<any, any>> = import("./PermissiveType.js").PermissiveType<C>;
|
|
8
|
-
export type StrictType<C extends CastLike<any, any>> = import("./StrictType.js").StrictType<C>;
|
|
9
|
-
import { Cast } from "./Cast.js";
|
|
1
|
+
export { makeUserFunc } from "./UserFunc.js";
|
|
2
|
+
export { makeCast, configureCast } from "./Cast.js";
|
|
10
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cast/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cast/index.js"],"names":[],"mappings":""}
|
|
@@ -1,86 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @
|
|
4
|
-
* @typedef {import("./TypeCheckedValidator.js").TypeCheckedValidator} TypeCheckedValidator
|
|
5
|
-
* @typedef {import("./TypeSchema.js").TypeSchema} TypeSchema
|
|
2
|
+
* @import { TypeSchema } from "@helios-lang/type-utils"
|
|
3
|
+
* @import { LoadedScriptsWriter, TypeCheckedModule, TypeCheckedUserFunc, TypeCheckedValidator } from "../index.js"
|
|
6
4
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
definition: StringWriter;
|
|
14
|
-
declaration: StringWriter;
|
|
15
|
-
combined: StringWriter;
|
|
16
|
-
/**
|
|
17
|
-
* @param {{[name: string]: TypeCheckedModule}} ms
|
|
18
|
-
* @returns {LoadedScriptsWriter}
|
|
19
|
-
*/
|
|
20
|
-
writeModules(ms: {
|
|
21
|
-
[name: string]: TypeCheckedModule;
|
|
22
|
-
}): LoadedScriptsWriter;
|
|
23
|
-
/**
|
|
24
|
-
* @param {{[name: string]: TypeCheckedValidator}} validators
|
|
25
|
-
* @returns {LoadedScriptsWriter}
|
|
26
|
-
*/
|
|
27
|
-
writeValidators(validators: {
|
|
28
|
-
[name: string]: TypeCheckedValidator;
|
|
29
|
-
}): LoadedScriptsWriter;
|
|
30
|
-
/**
|
|
31
|
-
* @returns {[string, string, string]}
|
|
32
|
-
*/
|
|
33
|
-
finalize(): [string, string, string];
|
|
34
|
-
/**
|
|
35
|
-
* @private
|
|
36
|
-
* @param {string} def
|
|
37
|
-
* @param {string} decl
|
|
38
|
-
* @returns {LoadedScriptsWriter}
|
|
39
|
-
*/
|
|
40
|
-
private write;
|
|
41
|
-
/**
|
|
42
|
-
* @param {string} path
|
|
43
|
-
* @param {string} typeName
|
|
44
|
-
* @param {string[]} typeParams
|
|
45
|
-
* @returns {LoadedScriptsWriter}
|
|
46
|
-
*/
|
|
47
|
-
writeImportType(path: string, typeName: string, typeParams?: string[]): LoadedScriptsWriter;
|
|
48
|
-
/**
|
|
49
|
-
* @param {string} path
|
|
50
|
-
* @param {string[]} objectNames
|
|
51
|
-
* @returns {LoadedScriptsWriter}
|
|
52
|
-
*/
|
|
53
|
-
writeImport(path: string, ...objectNames: string[]): LoadedScriptsWriter;
|
|
54
|
-
/**
|
|
55
|
-
* @private
|
|
56
|
-
*/
|
|
57
|
-
private writeHeaders;
|
|
58
|
-
/**
|
|
59
|
-
* @param {Record<string, TypeSchema>} types
|
|
60
|
-
*/
|
|
61
|
-
writeTypes(types: Record<string, TypeSchema>): void;
|
|
62
|
-
/**
|
|
63
|
-
* @param {Record<string, TypeCheckedUserFunc>} functions
|
|
64
|
-
*/
|
|
65
|
-
writeFunctions(functions: Record<string, TypeCheckedUserFunc>): void;
|
|
66
|
-
/**
|
|
67
|
-
* @private
|
|
68
|
-
* @param {TypeCheckedModule} m
|
|
69
|
-
*/
|
|
70
|
-
private writeModule;
|
|
71
|
-
/**
|
|
72
|
-
* @private
|
|
73
|
-
* @param {TypeCheckedValidator} v
|
|
74
|
-
*/
|
|
75
|
-
private writeValidator;
|
|
76
|
-
/**
|
|
77
|
-
* @param {Record<string, TypeCheckedValidator>} validators
|
|
78
|
-
*/
|
|
79
|
-
writeValidatorIndices(validators: Record<string, TypeCheckedValidator>): void;
|
|
80
|
-
}
|
|
81
|
-
export type TypeCheckedModule = import("./TypeCheckedModule.js").TypeCheckedModule;
|
|
82
|
-
export type TypeCheckedUserFunc = import("./TypeCheckedModule.js").TypeCheckedUserFunc;
|
|
83
|
-
export type TypeCheckedValidator = import("./TypeCheckedValidator.js").TypeCheckedValidator;
|
|
84
|
-
export type TypeSchema = import("./TypeSchema.js").TypeSchema;
|
|
85
|
-
import { StringWriter } from "@helios-lang/codec-utils";
|
|
5
|
+
/**
|
|
6
|
+
* Constructs a LoadedScriptsWriter instance and initializes it be writing the header
|
|
7
|
+
* @returns {LoadedScriptsWriter}
|
|
8
|
+
*/
|
|
9
|
+
export function makeLoadedScriptsWriter(): LoadedScriptsWriter;
|
|
10
|
+
import type { LoadedScriptsWriter } from "../index.js";
|
|
86
11
|
//# sourceMappingURL=LoadedScriptsWriter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadedScriptsWriter.d.ts","sourceRoot":"","sources":["../../src/codegen/LoadedScriptsWriter.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"LoadedScriptsWriter.d.ts","sourceRoot":"","sources":["../../src/codegen/LoadedScriptsWriter.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;GAGG;AACH,2CAFa,mBAAmB,CAI/B;yCATqG,aAAa"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export type TypeCheckedModule = import("./TypeCheckedModule.js").TypeCheckedModule;
|
|
2
|
-
export type TypeSchema = import("./TypeSchema.js").TypeSchema;
|
|
3
2
|
export type TypeCheckedValidator = TypeCheckedModule & {
|
|
4
3
|
hashDependencies: string[];
|
|
5
4
|
currentScriptIndex?: number;
|
|
6
5
|
Redeemer: TypeSchema;
|
|
7
6
|
Datum?: TypeSchema;
|
|
8
7
|
};
|
|
8
|
+
import type { TypeSchema } from "@helios-lang/type-utils";
|
|
9
9
|
//# sourceMappingURL=TypeCheckedValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeCheckedValidator.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeCheckedValidator.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TypeCheckedValidator.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeCheckedValidator.js"],"names":[],"mappings":"gCAIa,OAAO,wBAAwB,EAAE,iBAAiB;mCAIlD,iBAAiB,GAAG;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,UAAU,CAAA;IACpB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;gCAV2B,yBAAyB"}
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* @returns {[string, string]} - the first entry is the strict canonical type, the second is the permissive type
|
|
5
5
|
*/
|
|
6
6
|
export function genTypes(schema: TypeSchema): [string, string];
|
|
7
|
-
|
|
7
|
+
import type { TypeSchema } from "@helios-lang/type-utils";
|
|
8
8
|
//# sourceMappingURL=TypeSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeSchema.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeSchema.js"],"names":[],"mappings":"AAMA;;;;GAIG;AAGH,iCALW,UAAU,GACR,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"TypeSchema.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeSchema.js"],"names":[],"mappings":"AAMA;;;;GAIG;AAGH,iCALW,UAAU,GACR,CAAC,MAAM,EAAE,MAAM,CAAC,CA8J5B;gCAtK8B,yBAAyB"}
|
package/types/codegen/index.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type LoadedModule = import("./LoadedModule.js").LoadedModule;
|
|
3
|
-
export type LoadedValidator = import("./LoadedValidator.js").LoadedValidator;
|
|
4
|
-
export type TypeCheckedModule = import("./TypeCheckedModule.js").TypeCheckedModule;
|
|
5
|
-
export type TypeCheckedValidator = import("./TypeCheckedValidator.js").TypeCheckedValidator;
|
|
6
|
-
export type TypeSchema = import("./TypeSchema.js").TypeSchema;
|
|
7
|
-
export type ExtractDependencies<V extends LoadedValidator> = import("./LoadedValidator.js").ExtractDependencies<V>;
|
|
1
|
+
export { makeLoadedScriptsWriter } from "./LoadedScriptsWriter.js";
|
|
8
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.js"],"names":[],"mappings":""}
|
|
@@ -1,75 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @typedef {import("@helios-lang/uplc").UplcData} UplcData
|
|
4
|
-
* @typedef {import("@helios-lang/uplc").UplcSourceMapJsonSafe} UplcSourceMapJsonSafe
|
|
5
|
-
* @typedef {import("../codegen/index.js").TypeSchema} InternalTypeDetails
|
|
6
|
-
* @typedef {import("../codegen/index.js").TypeCheckedModule} TypeCheckedModule
|
|
7
|
-
* @typedef {import("../codegen/index.js").TypeCheckedValidator} TypeCheckedValidator
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* @typedef {any} ScriptHashType
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* if `debug` is true, the ir is included in the user functions where possible
|
|
14
|
-
* @typedef {{
|
|
15
|
-
* allValidatorHashTypes: Record<string, ScriptHashType>
|
|
16
|
-
* allValidatorIndices?: Record<string, number>
|
|
17
|
-
* hashDependencies: Record<string, string>
|
|
18
|
-
* dependsOnOwnHash?: boolean
|
|
19
|
-
* ownHash?: string
|
|
20
|
-
* parameters?: Record<string, UplcData>
|
|
21
|
-
* isTestnet: boolean
|
|
22
|
-
* optimize: boolean
|
|
23
|
-
* debug?: boolean
|
|
24
|
-
* excludeUserFuncs?: Set<string>
|
|
25
|
-
* onCompileUserFunc?: (props: {
|
|
26
|
-
* name: string
|
|
27
|
-
* cborHex: string
|
|
28
|
-
* plutusVersion: PlutusVersion
|
|
29
|
-
* ir?: string
|
|
30
|
-
* sourceMap?: UplcSourceMapJsonSafe
|
|
31
|
-
* alt?: {
|
|
32
|
-
* cborHex: string
|
|
33
|
-
* ir?: string
|
|
34
|
-
* sourceMap?: UplcSourceMapJsonSafe
|
|
35
|
-
* }
|
|
36
|
-
* }) => void
|
|
37
|
-
* }} CompileOptions
|
|
38
|
-
*/
|
|
39
|
-
/**
|
|
40
|
-
* @typedef {{
|
|
41
|
-
* cborHex: string
|
|
42
|
-
* plutusVersion: PlutusVersion
|
|
43
|
-
* ir?: string
|
|
44
|
-
* sourceMap?: import("@helios-lang/uplc").UplcSourceMapJsonSafe
|
|
45
|
-
* }} CompileOutput
|
|
46
|
-
*/
|
|
47
|
-
/**
|
|
48
|
-
* @typedef {{
|
|
49
|
-
* modules: {[name: string]: TypeCheckedModule}
|
|
50
|
-
* validators: {[name: string]: TypeCheckedValidator}
|
|
51
|
-
* }} TypeCheckOutput
|
|
52
|
-
*/
|
|
53
|
-
/**
|
|
54
|
-
* @typedef {{
|
|
55
|
-
* name: string
|
|
56
|
-
* purpose: string
|
|
57
|
-
* sourceCode: string
|
|
58
|
-
* }} SourceDetails
|
|
59
|
-
*/
|
|
60
|
-
/**
|
|
61
|
-
* @typedef {{
|
|
62
|
-
* version: string
|
|
63
|
-
* getScriptHashType: (purpose: string) => ScriptHashType
|
|
64
|
-
* typeCheck: (validators: string[], modules: string[]) => ({
|
|
65
|
-
* modules: {[name: string]: TypeCheckedModule},
|
|
66
|
-
* validators: {[name: string]: TypeCheckedValidator}
|
|
67
|
-
* })
|
|
68
|
-
* compile: (main: string, modules: string[], options: CompileOptions) => CompileOutput
|
|
69
|
-
* }} CompilerLib
|
|
70
|
-
*/
|
|
71
|
-
/**
|
|
72
|
-
* @typedef {Record<string, string[]>} DagDependencies
|
|
2
|
+
* @import { CompilerLib, ScriptHashType } from "../index.js"
|
|
73
3
|
*/
|
|
74
4
|
/**
|
|
75
5
|
* @param {CompilerLib} lib
|
|
@@ -79,71 +9,6 @@
|
|
|
79
9
|
export function getValidatorTypes(lib: CompilerLib, validators: string[]): {
|
|
80
10
|
[name: string]: ScriptHashType;
|
|
81
11
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
export type UplcSourceMapJsonSafe = import("@helios-lang/uplc").UplcSourceMapJsonSafe;
|
|
85
|
-
export type InternalTypeDetails = import("../codegen/index.js").TypeSchema;
|
|
86
|
-
export type TypeCheckedModule = import("../codegen/index.js").TypeCheckedModule;
|
|
87
|
-
export type TypeCheckedValidator = import("../codegen/index.js").TypeCheckedValidator;
|
|
88
|
-
export type ScriptHashType = any;
|
|
89
|
-
/**
|
|
90
|
-
* if `debug` is true, the ir is included in the user functions where possible
|
|
91
|
-
*/
|
|
92
|
-
export type CompileOptions = {
|
|
93
|
-
allValidatorHashTypes: Record<string, ScriptHashType>;
|
|
94
|
-
allValidatorIndices?: Record<string, number>;
|
|
95
|
-
hashDependencies: Record<string, string>;
|
|
96
|
-
dependsOnOwnHash?: boolean;
|
|
97
|
-
ownHash?: string;
|
|
98
|
-
parameters?: Record<string, UplcData>;
|
|
99
|
-
isTestnet: boolean;
|
|
100
|
-
optimize: boolean;
|
|
101
|
-
debug?: boolean;
|
|
102
|
-
excludeUserFuncs?: Set<string>;
|
|
103
|
-
onCompileUserFunc?: (props: {
|
|
104
|
-
name: string;
|
|
105
|
-
cborHex: string;
|
|
106
|
-
plutusVersion: PlutusVersion;
|
|
107
|
-
ir?: string;
|
|
108
|
-
sourceMap?: UplcSourceMapJsonSafe;
|
|
109
|
-
alt?: {
|
|
110
|
-
cborHex: string;
|
|
111
|
-
ir?: string;
|
|
112
|
-
sourceMap?: UplcSourceMapJsonSafe;
|
|
113
|
-
};
|
|
114
|
-
}) => void;
|
|
115
|
-
};
|
|
116
|
-
export type CompileOutput = {
|
|
117
|
-
cborHex: string;
|
|
118
|
-
plutusVersion: PlutusVersion;
|
|
119
|
-
ir?: string;
|
|
120
|
-
sourceMap?: import("@helios-lang/uplc").UplcSourceMapJsonSafe;
|
|
121
|
-
};
|
|
122
|
-
export type TypeCheckOutput = {
|
|
123
|
-
modules: {
|
|
124
|
-
[name: string]: TypeCheckedModule;
|
|
125
|
-
};
|
|
126
|
-
validators: {
|
|
127
|
-
[name: string]: TypeCheckedValidator;
|
|
128
|
-
};
|
|
129
|
-
};
|
|
130
|
-
export type SourceDetails = {
|
|
131
|
-
name: string;
|
|
132
|
-
purpose: string;
|
|
133
|
-
sourceCode: string;
|
|
134
|
-
};
|
|
135
|
-
export type CompilerLib = {
|
|
136
|
-
version: string;
|
|
137
|
-
getScriptHashType: (purpose: string) => ScriptHashType;
|
|
138
|
-
typeCheck: (validators: string[], modules: string[]) => ({
|
|
139
|
-
modules: {
|
|
140
|
-
[name: string]: TypeCheckedModule;
|
|
141
|
-
};
|
|
142
|
-
validators: {
|
|
143
|
-
[name: string]: TypeCheckedValidator;
|
|
144
|
-
};
|
|
145
|
-
});
|
|
146
|
-
compile: (main: string, modules: string[], options: CompileOptions) => CompileOutput;
|
|
147
|
-
};
|
|
148
|
-
export type DagDependencies = Record<string, string[]>;
|
|
12
|
+
import type { CompilerLib } from "../index.js";
|
|
13
|
+
import type { ScriptHashType } from "../index.js";
|
|
149
14
|
//# sourceMappingURL=CompilerLib.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompilerLib.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CompilerLib.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;GAIG;AACH,uCAJW,WAAW,cACX,MAAM,EAAE,GACN;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAC,CAS5C;iCAf+C,aAAa;oCAAb,aAAa"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
* @
|
|
4
|
-
* @
|
|
5
|
-
* @typedef {import("../codegen/index.js").TypeSchema} TypeSchema
|
|
6
|
-
* @typedef {import("./CompilerLib.js").CompileOptions} CompileOptions
|
|
7
|
-
* @typedef {import("./CompilerLib.js").CompileOutput} CompileOutput
|
|
8
|
-
* @typedef {import("./CompilerLib.js").CompilerLib} CompilerLib
|
|
9
|
-
* @typedef {import("./CompilerLib.js").DagDependencies} DagDependencies
|
|
10
|
-
* @typedef {import("./CompilerLib.js").ScriptHashType} ScriptHashType
|
|
11
|
-
* @typedef {import("./CompilerLib.js").SourceDetails} SourceDetails
|
|
12
|
-
* @typedef {import("./CompilerLib.js").TypeCheckOutput} TypeCheckOutput
|
|
2
|
+
* @import { TypeSchema } from "@helios-lang/type-utils"
|
|
3
|
+
* @import { UplcData } from "@helios-lang/uplc"
|
|
4
|
+
* @import { CompileOptions, CompileOutput, CompilerLib, DagDependencies, ScriptHashType, SourceDetails, TypeCheckOutput, TypeCheckedModule, TypeCheckedValidator } from "../index.js"
|
|
13
5
|
*/
|
|
14
6
|
/**
|
|
15
7
|
* @typedef {{
|
|
@@ -112,114 +104,10 @@
|
|
|
112
104
|
* }} UserTypes
|
|
113
105
|
*/
|
|
114
106
|
/**
|
|
115
|
-
* @
|
|
107
|
+
* @param {any} lib
|
|
108
|
+
* @returns {CompilerLib}
|
|
116
109
|
*/
|
|
117
|
-
export
|
|
118
|
-
/**
|
|
119
|
-
* @param {any} lib
|
|
120
|
-
*/
|
|
121
|
-
constructor(lib: any);
|
|
122
|
-
lib: any;
|
|
123
|
-
/**
|
|
124
|
-
* @private
|
|
125
|
-
*/
|
|
126
|
-
private applyPatches;
|
|
127
|
-
/**
|
|
128
|
-
* @type {string}
|
|
129
|
-
*/
|
|
130
|
-
get version(): string;
|
|
131
|
-
/**
|
|
132
|
-
* @param {string} purpose
|
|
133
|
-
* @returns {ScriptHashType}
|
|
134
|
-
*/
|
|
135
|
-
getScriptHashType(purpose: string): ScriptHashType;
|
|
136
|
-
/**
|
|
137
|
-
* @param {string} main
|
|
138
|
-
* @param {string[]} modules
|
|
139
|
-
* @param {CompileOptions} options
|
|
140
|
-
* @returns {CompileOutput}
|
|
141
|
-
*/
|
|
142
|
-
compile(main: string, modules: string[], options: CompileOptions): CompileOutput;
|
|
143
|
-
/**
|
|
144
|
-
* @param {string[]} validators
|
|
145
|
-
* @param {string[]} modules
|
|
146
|
-
* @returns {TypeCheckOutput}
|
|
147
|
-
*/
|
|
148
|
-
typeCheck(validators: string[], modules: string[]): TypeCheckOutput;
|
|
149
|
-
/**
|
|
150
|
-
* Generate additional IR definitions
|
|
151
|
-
* * dependency on own precalculated hash (eg. unoptimized program should use hash of optimized program)
|
|
152
|
-
* * dependency on own hash through methods defined on the ScriptContext
|
|
153
|
-
* * dependency on hashes of other validators
|
|
154
|
-
* @private
|
|
155
|
-
* @param {string} name - name of the validator being compiled
|
|
156
|
-
* @param {string} purpose - purpose the validator being compiled
|
|
157
|
-
* @param {number} nPosParams
|
|
158
|
-
* @param {CompileOptions} options
|
|
159
|
-
* @returns {Map<string, IR>}
|
|
160
|
-
*/
|
|
161
|
-
private genExtraIRDefs;
|
|
162
|
-
/**
|
|
163
|
-
* @private
|
|
164
|
-
* @param {string[]} validators
|
|
165
|
-
* @param {string[]} modules
|
|
166
|
-
* @param {{[name: string]: ScriptHashType}} validatorTypes
|
|
167
|
-
* @returns {Program[]}
|
|
168
|
-
*/
|
|
169
|
-
private createPrograms;
|
|
170
|
-
/**
|
|
171
|
-
* @private
|
|
172
|
-
* @param {Program} program
|
|
173
|
-
* @param {{[name: string]: ScriptHashType}} validatorTypes
|
|
174
|
-
* @returns {IR}
|
|
175
|
-
*/
|
|
176
|
-
private toTestIR;
|
|
177
|
-
/**
|
|
178
|
-
* @private
|
|
179
|
-
* @param {Program[]} validators
|
|
180
|
-
* @param {{[name: string]: ScriptHashType}} validatorTypes
|
|
181
|
-
* @returns {DagDependencies}
|
|
182
|
-
*/
|
|
183
|
-
private buildDagDependencies;
|
|
184
|
-
/**
|
|
185
|
-
* @private
|
|
186
|
-
* @param {TypeSchema16} it
|
|
187
|
-
* @returns {TypeSchema}
|
|
188
|
-
*/
|
|
189
|
-
private convertInternalType;
|
|
190
|
-
/**
|
|
191
|
-
* Tries to convert a compiler type into TypeSchema
|
|
192
|
-
* TODO: make sure it works for all structs and enums
|
|
193
|
-
* @private
|
|
194
|
-
* @param {DataType} dt
|
|
195
|
-
* @returns {TypeSchema}
|
|
196
|
-
*/
|
|
197
|
-
private getInternalTypeDetails;
|
|
198
|
-
/**
|
|
199
|
-
* @private
|
|
200
|
-
* @param {Program} program
|
|
201
|
-
* @param {{[name: string]: ScriptHashType}} validatorTypes
|
|
202
|
-
* @returns {Record<string, Record<string, DataType>>}}
|
|
203
|
-
*/
|
|
204
|
-
private getProgramTypes;
|
|
205
|
-
/**
|
|
206
|
-
* @private
|
|
207
|
-
* @param {any} program
|
|
208
|
-
* @param {Option<Record<string, UplcData>>} parameters
|
|
209
|
-
*/
|
|
210
|
-
private setParameters;
|
|
211
|
-
}
|
|
212
|
-
export type UplcData = import("@helios-lang/uplc").UplcData;
|
|
213
|
-
export type TypeCheckedModule = import("../codegen/index.js").TypeCheckedModule;
|
|
214
|
-
export type TypeCheckedValidator = import("../codegen/index.js").TypeCheckedValidator;
|
|
215
|
-
export type TypeSchema = import("../codegen/index.js").TypeSchema;
|
|
216
|
-
export type CompileOptions = import("./CompilerLib.js").CompileOptions;
|
|
217
|
-
export type CompileOutput = import("./CompilerLib.js").CompileOutput;
|
|
218
|
-
export type CompilerLib = import("./CompilerLib.js").CompilerLib;
|
|
219
|
-
export type DagDependencies = import("./CompilerLib.js").DagDependencies;
|
|
220
|
-
export type ScriptHashType = import("./CompilerLib.js").ScriptHashType;
|
|
221
|
-
export type SourceDetails = import("./CompilerLib.js").SourceDetails;
|
|
222
|
-
export type TypeCheckOutput = import("./CompilerLib.js").TypeCheckOutput;
|
|
110
|
+
export function makeCompilerLib_v0_16(lib: any): CompilerLib;
|
|
223
111
|
export type IR = {
|
|
224
112
|
includes: (m: string) => boolean;
|
|
225
113
|
};
|
|
@@ -296,4 +184,6 @@ export type TypeDetails = {
|
|
|
296
184
|
internalType: TypeSchema16;
|
|
297
185
|
};
|
|
298
186
|
export type UserTypes = {};
|
|
187
|
+
import type { CompilerLib } from "../index.js";
|
|
188
|
+
import type { ScriptHashType } from "../index.js";
|
|
299
189
|
//# sourceMappingURL=CompilerLib_v0_16.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompilerLib_v0_16.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib_v0_16.js"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"CompilerLib_v0_16.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib_v0_16.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AACH;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AAEH;;;GAGG;AACH,2CAHW,GAAG,GACD,WAAW,CAIvB;iBAtHY;IACR,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;CACjC;wBAIS;IACR,IAAI,EAAE,SAAS,CAAA;CAChB;mBAIS;IACR,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;wBAIS;IACR,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,IAAI,CAAA;CACX;qBAIS;IACR,IAAI,EAAE,SAAS,CAAA;IACf,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;IAC/C,UAAU,EAAE,SAAS,EAAE,CAAA;CACxB;sBAGS;IACR,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC3F,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;IAC1C,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,QAAQ,EAAE,CAAA;IACxB,WAAW,QAAE;IACb,SAAS,CAAC,cAAc,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAC,GAAG,QAAQ,CAAA;CACtE;uBAIS;IACR,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAA;CACvC;yBAIS;IACR,UAAU,CAAC,EAAE,QAAQ,CAAA;CACtB;oBAIS;IACR,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,OAAC;CAC9D;uBAIS;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;2BAIS;IACR,IAAI,EAAG,MAAM,CAAA;CACd,GAAG;IACF,IAAI,EAAM,MAAM,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;CACvB,GAAG;IACF,IAAI,EAAO,KAAK,CAAA;IAChB,OAAO,EAAI,YAAY,CAAA;IACvB,SAAS,EAAE,YAAY,CAAA;CACxB,GAAG;IACF,IAAI,EAAM,QAAQ,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;CACvB,GAAG;IACF,IAAI,EAAQ,QAAQ,CAAA;IACpB,UAAU,EAAE,iBAAiB,EAAE,CAAA;CAChC,GAAG;IACF,IAAI,EAAU,MAAM,CAAA;IACpB,YAAY,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,iBAAiB,EAAE,CAAA;KAAC,EAAE,CAAA;CAChE;gCAIS;IACR,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,YAAY;0BAIN;IACR,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;CAC3B;wBAIS,EACT;iCAjHsK,aAAa;oCAAb,aAAa"}
|