@helios-lang/contract-utils 0.2.67 → 0.2.69
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helios-lang/contract-utils",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.69",
|
|
4
4
|
"description": "Convenience and type-safety utilities for using Helios validators from within Typescript",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@helios-lang/cli-utils": "^0.1.6",
|
|
29
29
|
"@helios-lang/codec-utils": "^0.1.35",
|
|
30
|
-
"@helios-lang/compiler-utils": "^0.1.
|
|
31
|
-
"@helios-lang/ledger": "^0.5.
|
|
32
|
-
"@helios-lang/type-utils": "^0.1.
|
|
33
|
-
"@helios-lang/uplc": "^0.3.
|
|
30
|
+
"@helios-lang/compiler-utils": "^0.1.57",
|
|
31
|
+
"@helios-lang/ledger": "^0.5.4",
|
|
32
|
+
"@helios-lang/type-utils": "^0.1.22",
|
|
33
|
+
"@helios-lang/uplc": "^0.3.12"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "pnpm run prettify && pnpm run build:types && pnpm run test:suite",
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
} from "@helios-lang/ledger"
|
|
8
8
|
import { Cast } from "../cast/Cast.js"
|
|
9
9
|
import { None, expectSome } from "@helios-lang/type-utils"
|
|
10
|
-
import { UplcProgramV1 } from "@helios-lang/uplc"
|
|
11
|
-
import { UplcProgramV2 } from "@helios-lang/uplc"
|
|
10
|
+
import { UplcProgramV1, UplcProgramV2, UplcSourceMap } from "@helios-lang/uplc"
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* @typedef {import("@helios-lang/uplc").PlutusVersion} PlutusVersion
|
|
15
14
|
* @typedef {import("@helios-lang/uplc").UplcProgram} UplcProgram
|
|
15
|
+
* @typedef {import("@helios-lang/uplc").UplcSourceMapJsonSafe} UplcSourceMapJsonSafe
|
|
16
16
|
* @typedef {import("../cast/index.js").CastConfig} CastConfig
|
|
17
17
|
* @typedef {import("../codegen/index.js").TypeSchema} TypeSchema
|
|
18
18
|
* @typedef {import("./ContractContext.js").AnyContractValidatorContext} AnyContractValidatorContext
|
|
@@ -32,8 +32,10 @@ import { UplcProgramV2 } from "@helios-lang/uplc"
|
|
|
32
32
|
* bytes: number[]
|
|
33
33
|
* unoptimizedCborHex?: string
|
|
34
34
|
* unoptimizedIr?: string
|
|
35
|
+
* unoptimizedSourceMap?: UplcSourceMapJsonSafe
|
|
35
36
|
* optimizedCborHex: string
|
|
36
37
|
* optimizedIr?: string
|
|
38
|
+
* optimizedSourceMap?: UplcSourceMapJsonSafe
|
|
37
39
|
* plutusVersion: PlutusVersion
|
|
38
40
|
* castConfig: CastConfig
|
|
39
41
|
* datum?: TypeSchema
|
|
@@ -45,8 +47,10 @@ import { UplcProgramV2 } from "@helios-lang/uplc"
|
|
|
45
47
|
* @typedef {{[name: string]: {
|
|
46
48
|
* unoptimizedCborHex?: string
|
|
47
49
|
* unoptimizedIr?: string
|
|
50
|
+
* unoptimizedSourceMap?: UplcSourceMapJsonSafe
|
|
48
51
|
* optimizedCborHex: string
|
|
49
52
|
* optimizedIr?: string
|
|
53
|
+
* optimizedSourceMap?: UplcSourceMapJsonSafe
|
|
50
54
|
* plutusVersion: PlutusVersion
|
|
51
55
|
* }}} CacheEntryUserFuncsJson
|
|
52
56
|
*/
|
|
@@ -109,23 +113,27 @@ class ContractContextCache {
|
|
|
109
113
|
let program =
|
|
110
114
|
props.plutusVersion == "PlutusScriptV1"
|
|
111
115
|
? UplcProgramV1.fromCbor(props.optimizedCborHex, {
|
|
112
|
-
ir: props.optimizedIr
|
|
116
|
+
ir: props.optimizedIr,
|
|
117
|
+
sourceMap: props.optimizedSourceMap
|
|
113
118
|
})
|
|
114
119
|
: UplcProgramV2.fromCbor(props.optimizedCborHex, {
|
|
115
|
-
ir: props.optimizedIr
|
|
120
|
+
ir: props.optimizedIr,
|
|
121
|
+
sourceMap: props.optimizedSourceMap
|
|
116
122
|
})
|
|
117
123
|
|
|
118
124
|
if (props.unoptimizedCborHex) {
|
|
119
125
|
if (program.plutusVersion == "PlutusScriptV1") {
|
|
120
126
|
program = program.withAlt(
|
|
121
127
|
UplcProgramV1.fromCbor(props.unoptimizedCborHex, {
|
|
122
|
-
ir: props.unoptimizedIr
|
|
128
|
+
ir: props.unoptimizedIr,
|
|
129
|
+
sourceMap: props.unoptimizedSourceMap
|
|
123
130
|
})
|
|
124
131
|
)
|
|
125
132
|
} else if (program.plutusVersion == "PlutusScriptV2") {
|
|
126
133
|
program = program.withAlt(
|
|
127
134
|
UplcProgramV2.fromCbor(props.unoptimizedCborHex, {
|
|
128
|
-
ir: props.unoptimizedIr
|
|
135
|
+
ir: props.unoptimizedIr,
|
|
136
|
+
sourceMap: props.unoptimizedSourceMap
|
|
129
137
|
})
|
|
130
138
|
)
|
|
131
139
|
} else {
|
|
@@ -192,23 +200,27 @@ class ContractContextCache {
|
|
|
192
200
|
let program =
|
|
193
201
|
props.plutusVersion == "PlutusScriptV1"
|
|
194
202
|
? UplcProgramV1.fromCbor(props.optimizedCborHex, {
|
|
195
|
-
ir: props.optimizedIr
|
|
203
|
+
ir: props.optimizedIr,
|
|
204
|
+
sourceMap: props.optimizedSourceMap
|
|
196
205
|
})
|
|
197
206
|
: UplcProgramV2.fromCbor(props.optimizedCborHex, {
|
|
198
|
-
ir: props.optimizedIr
|
|
207
|
+
ir: props.optimizedIr,
|
|
208
|
+
sourceMap: props.optimizedSourceMap
|
|
199
209
|
})
|
|
200
210
|
|
|
201
211
|
if (props.unoptimizedCborHex) {
|
|
202
212
|
if (program.plutusVersion == "PlutusScriptV1") {
|
|
203
213
|
program = program.withAlt(
|
|
204
214
|
UplcProgramV1.fromCbor(props.unoptimizedCborHex, {
|
|
205
|
-
ir: props.unoptimizedIr
|
|
215
|
+
ir: props.unoptimizedIr,
|
|
216
|
+
sourceMap: props.unoptimizedSourceMap
|
|
206
217
|
})
|
|
207
218
|
)
|
|
208
219
|
} else if (program.plutusVersion == "PlutusScriptV2") {
|
|
209
220
|
program = program.withAlt(
|
|
210
221
|
UplcProgramV2.fromCbor(props.unoptimizedCborHex, {
|
|
211
|
-
ir: props.unoptimizedIr
|
|
222
|
+
ir: props.unoptimizedIr,
|
|
223
|
+
sourceMap: props.unoptimizedSourceMap
|
|
212
224
|
})
|
|
213
225
|
)
|
|
214
226
|
} else {
|
|
@@ -300,19 +312,31 @@ class ContractContextCache {
|
|
|
300
312
|
throw new Error("Datum is not a Cast type")
|
|
301
313
|
}
|
|
302
314
|
|
|
315
|
+
/**
|
|
316
|
+
* @type {UplcProgramV1 | UplcProgramV2}
|
|
317
|
+
*/
|
|
318
|
+
const program = hash.context.program
|
|
319
|
+
|
|
303
320
|
resValidators[name] = {
|
|
304
321
|
purpose: purpose,
|
|
305
322
|
bytes: hash.bytes,
|
|
306
|
-
optimizedCborHex: bytesToHex(
|
|
307
|
-
unoptimizedCborHex:
|
|
308
|
-
? bytesToHex(
|
|
323
|
+
optimizedCborHex: bytesToHex(program.toCbor()),
|
|
324
|
+
unoptimizedCborHex: program.alt
|
|
325
|
+
? bytesToHex(program.alt.toCbor())
|
|
309
326
|
: undefined,
|
|
310
327
|
optimizedIr:
|
|
311
|
-
/** @type {UplcProgramV2} */ (
|
|
312
|
-
.ir ?? undefined,
|
|
328
|
+
/** @type {UplcProgramV2} */ (program).ir ?? undefined,
|
|
313
329
|
unoptimizedIr:
|
|
314
|
-
/** @type {UplcProgramV2} */ (
|
|
315
|
-
|
|
330
|
+
/** @type {UplcProgramV2} */ (program).alt?.ir ??
|
|
331
|
+
undefined,
|
|
332
|
+
optimizedSourceMap: UplcSourceMap.fromUplcTerm(
|
|
333
|
+
program.root
|
|
334
|
+
).toJsonSafe(),
|
|
335
|
+
unoptimizedSourceMap: program.alt
|
|
336
|
+
? UplcSourceMap.fromUplcTerm(
|
|
337
|
+
program.alt.root
|
|
338
|
+
).toJsonSafe()
|
|
339
|
+
: undefined,
|
|
316
340
|
plutusVersion: hash.context.program.plutusVersion,
|
|
317
341
|
castConfig: redeemer.config,
|
|
318
342
|
redeemer: redeemer.schema,
|
|
@@ -325,7 +349,6 @@ class ContractContextCache {
|
|
|
325
349
|
|
|
326
350
|
resUserFuncs[name] = {
|
|
327
351
|
optimizedCborHex: bytesToHex(userFunc.toCbor()),
|
|
328
|
-
optimizedIr: userFunc.ir ?? undefined,
|
|
329
352
|
unoptimizedCborHex: /** @type {UplcProgramV2} */ (userFunc)
|
|
330
353
|
.alt
|
|
331
354
|
? bytesToHex(
|
|
@@ -334,7 +357,16 @@ class ContractContextCache {
|
|
|
334
357
|
).alt.toCbor()
|
|
335
358
|
)
|
|
336
359
|
: undefined,
|
|
337
|
-
|
|
360
|
+
optimizedIr: userFunc.ir ?? undefined,
|
|
361
|
+
unoptimizedIr: userFunc.alt?.ir ?? undefined,
|
|
362
|
+
optimizedSourceMap: UplcSourceMap.fromUplcTerm(
|
|
363
|
+
userFunc.root
|
|
364
|
+
).toJsonSafe(),
|
|
365
|
+
unoptimizedSourceMap: userFunc.alt
|
|
366
|
+
? UplcSourceMap.fromUplcTerm(
|
|
367
|
+
userFunc.alt.root
|
|
368
|
+
).toJsonSafe()
|
|
369
|
+
: undefined,
|
|
338
370
|
plutusVersion: userFunc.plutusVersion
|
|
339
371
|
}
|
|
340
372
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const contractContextCache: ContractContextCache;
|
|
2
2
|
export type PlutusVersion = import("@helios-lang/uplc").PlutusVersion;
|
|
3
3
|
export type UplcProgram = import("@helios-lang/uplc").UplcProgram;
|
|
4
|
+
export type UplcSourceMapJsonSafe = import("@helios-lang/uplc").UplcSourceMapJsonSafe;
|
|
4
5
|
export type CastConfig = import("../cast/index.js").CastConfig;
|
|
5
6
|
export type TypeSchema = import("../codegen/index.js").TypeSchema;
|
|
6
7
|
export type AnyContractValidatorContext = import("./ContractContext.js").AnyContractValidatorContext;
|
|
@@ -19,8 +20,10 @@ export type CacheEntryValidatorsJson = {
|
|
|
19
20
|
bytes: number[];
|
|
20
21
|
unoptimizedCborHex?: string;
|
|
21
22
|
unoptimizedIr?: string;
|
|
23
|
+
unoptimizedSourceMap?: UplcSourceMapJsonSafe;
|
|
22
24
|
optimizedCborHex: string;
|
|
23
25
|
optimizedIr?: string;
|
|
26
|
+
optimizedSourceMap?: UplcSourceMapJsonSafe;
|
|
24
27
|
plutusVersion: PlutusVersion;
|
|
25
28
|
castConfig: CastConfig;
|
|
26
29
|
datum?: TypeSchema;
|
|
@@ -31,8 +34,10 @@ export type CacheEntryUserFuncsJson = {
|
|
|
31
34
|
[name: string]: {
|
|
32
35
|
unoptimizedCborHex?: string;
|
|
33
36
|
unoptimizedIr?: string;
|
|
37
|
+
unoptimizedSourceMap?: UplcSourceMapJsonSafe;
|
|
34
38
|
optimizedCborHex: string;
|
|
35
39
|
optimizedIr?: string;
|
|
40
|
+
optimizedSourceMap?: UplcSourceMapJsonSafe;
|
|
36
41
|
plutusVersion: PlutusVersion;
|
|
37
42
|
};
|
|
38
43
|
};
|
|
@@ -44,6 +49,7 @@ export type CacheEntryJson = {
|
|
|
44
49
|
/**
|
|
45
50
|
* @typedef {import("@helios-lang/uplc").PlutusVersion} PlutusVersion
|
|
46
51
|
* @typedef {import("@helios-lang/uplc").UplcProgram} UplcProgram
|
|
52
|
+
* @typedef {import("@helios-lang/uplc").UplcSourceMapJsonSafe} UplcSourceMapJsonSafe
|
|
47
53
|
* @typedef {import("../cast/index.js").CastConfig} CastConfig
|
|
48
54
|
* @typedef {import("../codegen/index.js").TypeSchema} TypeSchema
|
|
49
55
|
* @typedef {import("./ContractContext.js").AnyContractValidatorContext} AnyContractValidatorContext
|
|
@@ -61,8 +67,10 @@ export type CacheEntryJson = {
|
|
|
61
67
|
* bytes: number[]
|
|
62
68
|
* unoptimizedCborHex?: string
|
|
63
69
|
* unoptimizedIr?: string
|
|
70
|
+
* unoptimizedSourceMap?: UplcSourceMapJsonSafe
|
|
64
71
|
* optimizedCborHex: string
|
|
65
72
|
* optimizedIr?: string
|
|
73
|
+
* optimizedSourceMap?: UplcSourceMapJsonSafe
|
|
66
74
|
* plutusVersion: PlutusVersion
|
|
67
75
|
* castConfig: CastConfig
|
|
68
76
|
* datum?: TypeSchema
|
|
@@ -73,8 +81,10 @@ export type CacheEntryJson = {
|
|
|
73
81
|
* @typedef {{[name: string]: {
|
|
74
82
|
* unoptimizedCborHex?: string
|
|
75
83
|
* unoptimizedIr?: string
|
|
84
|
+
* unoptimizedSourceMap?: UplcSourceMapJsonSafe
|
|
76
85
|
* optimizedCborHex: string
|
|
77
86
|
* optimizedIr?: string
|
|
87
|
+
* optimizedSourceMap?: UplcSourceMapJsonSafe
|
|
78
88
|
* plutusVersion: PlutusVersion
|
|
79
89
|
* }}} CacheEntryUserFuncsJson
|
|
80
90
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractContextCache.d.ts","sourceRoot":"","sources":["../../src/context/ContractContextCache.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContractContextCache.d.ts","sourceRoot":"","sources":["../../src/context/ContractContextCache.js"],"names":[],"mappings":"AA8XA,wDAA8D;4BAlXjD,OAAO,mBAAmB,EAAE,aAAa;0BACzC,OAAO,mBAAmB,EAAE,WAAW;oCACvC,OAAO,mBAAmB,EAAE,qBAAqB;yBACjD,OAAO,kBAAkB,EAAE,UAAU;yBACrC,OAAO,qBAAqB,EAAE,UAAU;0CACxC,OAAO,sBAAsB,EAAE,2BAA2B;yBAI1D;IACZ,KAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAc,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAC,CAAA;IAC7D,SAAa,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAC,CAAA;CACzC;uCAIS;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG;QAC7B,OAAa,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA;QAC3D,KAAW,EAAE,MAAM,EAAE,CAAA;QACrB,kBAAwB,CAAC,EAAE,MAAM,CAAA;QACjC,aAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,oBAA0B,CAAC,EAAE,qBAAqB,CAAA;QAClD,gBAAsB,EAAE,MAAM,CAAA;QAC9B,WAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,kBAAwB,CAAC,EAAE,qBAAqB,CAAA;QAChD,aAAmB,EAAE,aAAa,CAAA;QAClC,UAAgB,EAAE,UAAU,CAAA;QAC5B,KAAW,CAAC,EAAE,UAAU,CAAA;QACxB,QAAc,EAAE,UAAU,CAAA;KACrB,CAAA;CAAC;sCAIM;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG;QAC7B,kBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,aAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,oBAAwB,CAAC,EAAE,qBAAqB,CAAA;QAChD,gBAAoB,EAAE,MAAM,CAAA;QAC5B,WAAe,CAAC,EAAE,MAAM,CAAA;QACxB,kBAAsB,CAAC,EAAE,qBAAqB,CAAA;QAC9C,aAAiB,EAAE,aAAa,CAAA;KAC7B,CAAA;CAAC;6BAIQ;IACZ,KAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAc,EAAE,wBAAwB,CAAA;IACxC,SAAa,EAAE,uBAAuB,CAAA;CACnC;AAnDJ;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AAEH;IACI;;OAEG;IACH,OAFU,UAAU,EAAE,CAEjB;IAEL;;;OAGG;IACH,GAFU,MAAM,CAEf;IAED;;OAEG;IACH,SAFU,OAAO,CAEV;IAQP,eAEC;IAED;;OAEG;IACH,WAFW,cAAc,EAAE,QA6I1B;IAED;;OAEG;IACH,aAFW,UAAU,QAMpB;IAED;;OAEG;IACH,SAFa,MAAM,CAAC,UAAU,CAAC,CAY9B;IAED;;OAEG;IACH,UAFY,cAAc,EAAE,CAsH3B;CACJ"}
|