@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.67",
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.25",
31
- "@helios-lang/ledger": "^0.5.3",
32
- "@helios-lang/type-utils": "^0.1.21",
33
- "@helios-lang/uplc": "^0.3.11"
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(hash.context.program.toCbor()),
307
- unoptimizedCborHex: hash.context.program.alt
308
- ? bytesToHex(hash.context.program.alt.toCbor())
323
+ optimizedCborHex: bytesToHex(program.toCbor()),
324
+ unoptimizedCborHex: program.alt
325
+ ? bytesToHex(program.alt.toCbor())
309
326
  : undefined,
310
327
  optimizedIr:
311
- /** @type {UplcProgramV2} */ (hash.context.program)
312
- .ir ?? undefined,
328
+ /** @type {UplcProgramV2} */ (program).ir ?? undefined,
313
329
  unoptimizedIr:
314
- /** @type {UplcProgramV2} */ (hash.context.program).alt
315
- ?.ir ?? undefined,
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
- unoptimizedIr: userFunc?.alt?.ir ?? undefined,
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":"AA8VA,wDAA8D;4BAjVjD,OAAO,mBAAmB,EAAE,aAAa;0BACzC,OAAO,mBAAmB,EAAE,WAAW;yBACvC,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,gBAAsB,EAAE,MAAM,CAAA;QAC9B,WAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,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,gBAAoB,EAAE,MAAM,CAAA;QAC5B,WAAe,CAAC,EAAE,MAAM,CAAA;QACxB,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;AA9CJ;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;GAQG;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,QAqI1B;IAED;;OAEG;IACH,aAFW,UAAU,QAMpB;IAED;;OAEG;IACH,SAFa,MAAM,CAAC,UAAU,CAAC,CAY9B;IAED;;OAEG;IACH,UAFY,cAAc,EAAE,CAkG3B;CACJ"}
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"}