@helios-lang/contract-utils 0.2.59 → 0.2.61

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.59",
3
+ "version": "0.2.61",
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",
@@ -44,6 +44,7 @@ export {}
44
44
  * @typedef {{
45
45
  * cborHex: string
46
46
  * plutusVersion: PlutusVersion
47
+ * ir?: string
47
48
  * }} CompileOutput
48
49
  */
49
50
 
@@ -141,7 +141,8 @@ export class CompilerLib_v0_17 {
141
141
 
142
142
  return {
143
143
  cborHex: bytesToHex(uplc.toCbor()),
144
- plutusVersion: uplc.plutusVersion
144
+ plutusVersion: uplc.plutusVersion,
145
+ ir: uplc.ir ?? undefined
145
146
  }
146
147
  }
147
148
 
@@ -114,7 +114,8 @@ export class DagCompiler {
114
114
  // optimized compilation
115
115
  const {
116
116
  cborHex: optimizedCborHex,
117
- plutusVersion: optimPlutusVersion
117
+ plutusVersion: optimPlutusVersion,
118
+ ir: optimIr
118
119
  } = this.lib.compile(sourceCode, moduleDeps, {
119
120
  optimize: true,
120
121
  hashDependencies: hashDepHashes,
@@ -131,7 +132,8 @@ export class DagCompiler {
131
132
 
132
133
  const optimizedProgram = restoreUplcProgram(
133
134
  optimPlutusVersion,
134
- optimizedCborHex
135
+ optimizedCborHex,
136
+ { ir: optimIr }
135
137
  )
136
138
 
137
139
  // calculate the hash
@@ -169,7 +171,8 @@ export class DagCompiler {
169
171
  // unoptimized compilation (so traces are untouched)
170
172
  const {
171
173
  cborHex: unoptimizedCborHex,
172
- plutusVersion: unoptimPlutusVersion
174
+ plutusVersion: unoptimPlutusVersion,
175
+ ir: unoptimIr
173
176
  } = this.lib.compile(
174
177
  validator.$sourceCode,
175
178
  Array.from(moduleDeps.values()),
@@ -179,6 +182,10 @@ export class DagCompiler {
179
182
  hashDependencies: hashDepHashes,
180
183
  allValidatorHashTypes: hashTypes,
181
184
  allValidatorIndices: validatorIndices ?? undefined,
185
+ // Even though the ownHash is available at this point (taken from the optimized script),
186
+ // fetching the ownHash in the optimized script has some logic that can fail, which must be emulated in the unoptimized script.
187
+ // Setting dependsOnOwnHash==true, whilst also specifying the ownHash, tells the internal compilation to inject such an emulation
188
+ dependsOnOwnHash: validator.$dependsOnOwnHash,
182
189
  ownHash: validator.$dependsOnOwnHash
183
190
  ? optimizedHashHex
184
191
  : undefined,
@@ -226,7 +233,8 @@ export class DagCompiler {
226
233
  // TODO: with source mapping
227
234
  const unoptimizedProgram = restoreUplcProgram(
228
235
  unoptimPlutusVersion,
229
- unoptimizedCborHex
236
+ unoptimizedCborHex,
237
+ { ir: unoptimIr }
230
238
  )
231
239
 
232
240
  const completeProgram = optimizedProgram.withAlt(
@@ -37,6 +37,7 @@
37
37
  * @typedef {{
38
38
  * cborHex: string
39
39
  * plutusVersion: PlutusVersion
40
+ * ir?: string
40
41
  * }} CompileOutput
41
42
  */
42
43
  /**
@@ -108,6 +109,7 @@ export type CompileOptions = {
108
109
  export type CompileOutput = {
109
110
  cborHex: string;
110
111
  plutusVersion: PlutusVersion;
112
+ ir?: string;
111
113
  };
112
114
  export type TypeCheckOutput = {
113
115
  modules: {
@@ -1 +1 @@
1
- {"version":3,"file":"CompilerLib.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH;;GAEG;AAEH;;;;GAIG;AACH,uCAJW,WAAW,cACX,MAAM,EAAE,GACN;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAC,CAS5C;4BAvFY,OAAO,mBAAmB,EAAE,aAAa;uBACzC,OAAO,mBAAmB,EAAE,QAAQ;kCACpC,OAAO,qBAAqB,EAAE,UAAU;gCACxC,OAAO,qBAAqB,EAAE,iBAAiB;mCAC/C,OAAO,qBAAqB,EAAE,oBAAoB;6BAIlD,GAAG;;;;6BAKH;IACZ,qBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACzD,mBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,gBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,gBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,OAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,SAAa,EAAE,OAAO,CAAA;IACtB,QAAY,EAAE,OAAO,CAAA;IACrB,KAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClC,iBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,IAAU,EAAE,MAAM,CAAC;QACnB,OAAa,EAAE,MAAM,CAAC;QACtB,aAAmB,EAAE,aAAa,CAAC;QACnC,EAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAS,CAAC,EAAE;YACZ,OAAe,EAAE,MAAM,CAAC;YACxB,EAAU,CAAC,EAAE,MAAM,CAAA;SACZ,CAAA;KACF,KAAK,IAAI,CAAA;CACX;4BAIS;IACZ,OAAW,EAAE,MAAM,CAAA;IACnB,aAAiB,EAAE,aAAa,CAAA;CAC7B;8BAIS;IACZ,OAAW,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAC,CAAA;IAChD,UAAc,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAC,CAAA;CACnD;4BAIS;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,OAAW,EAAE,MAAM,CAAA;IACnB,UAAc,EAAE,MAAM,CAAA;CACnB;0BAIS;IACZ,OAAW,EAAE,MAAM,CAAA;IACnB,iBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,CAAA;IAC1D,SAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QAC7D,OAAa,EAAE;YAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;SAAC,CAAC;QACnD,UAAgB,EAAE;YAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;SAAC,CAAA;KACnD,CAAC,CAAA;IACN,OAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,KAAK,aAAa,CAAA;CACrF;8BAIS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"CompilerLib.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH;;GAEG;AAEH;;;;GAIG;AACH,uCAJW,WAAW,cACX,MAAM,EAAE,GACN;IAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAAC,CAS5C;4BAxFY,OAAO,mBAAmB,EAAE,aAAa;uBACzC,OAAO,mBAAmB,EAAE,QAAQ;kCACpC,OAAO,qBAAqB,EAAE,UAAU;gCACxC,OAAO,qBAAqB,EAAE,iBAAiB;mCAC/C,OAAO,qBAAqB,EAAE,oBAAoB;6BAIlD,GAAG;;;;6BAKH;IACZ,qBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACzD,mBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,gBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,gBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,OAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,SAAa,EAAE,OAAO,CAAA;IACtB,QAAY,EAAE,OAAO,CAAA;IACrB,KAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClC,iBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,IAAU,EAAE,MAAM,CAAC;QACnB,OAAa,EAAE,MAAM,CAAC;QACtB,aAAmB,EAAE,aAAa,CAAC;QACnC,EAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAS,CAAC,EAAE;YACZ,OAAe,EAAE,MAAM,CAAC;YACxB,EAAU,CAAC,EAAE,MAAM,CAAA;SACZ,CAAA;KACF,KAAK,IAAI,CAAA;CACX;4BAIS;IACZ,OAAW,EAAE,MAAM,CAAA;IACnB,aAAiB,EAAE,aAAa,CAAA;IAChC,EAAM,CAAC,EAAE,MAAM,CAAA;CACZ;8BAIS;IACZ,OAAW,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAC,CAAA;IAChD,UAAc,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAC,CAAA;CACnD;4BAIS;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,OAAW,EAAE,MAAM,CAAA;IACnB,UAAc,EAAE,MAAM,CAAA;CACnB;0BAIS;IACZ,OAAW,EAAE,MAAM,CAAA;IACnB,iBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,cAAc,CAAA;IAC1D,SAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;QAC7D,OAAa,EAAE;YAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;SAAC,CAAC;QACnD,UAAgB,EAAE;YAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;SAAC,CAAA;KACnD,CAAC,CAAA;IACN,OAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,KAAK,aAAa,CAAA;CACrF;8BAIS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompilerLib_v0_17.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib_v0_17.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,0CAFgB,WAAW;IASvB;;OAEG;IACH,iBAFW,GAAG,EAIb;IAXD;;;OAGG;IACH,YAAG;IASH;;OAEG;IACH,sBAEC;IAED;;;OAGG;IACH,2BAHW,MAAM,GACJ,cAAc,CAM1B;IAED;;;;;OAKG;IACH,oBALW,MAAM,iBACN,MAAM,EAAE,WACR,cAAc,GACZ,aAAa,CA6EzB;IAED;;;;OAIG;IACH,4BAJW,MAAM,EAAE,iBACR,MAAM,EAAE,GACN,eAAe,CAM3B;CACJ;uBAxJY,OAAO,mBAAmB,EAAE,QAAQ;6BACpC,OAAO,mBAAmB,EAAE,cAAc;0BAC1C,OAAO,kBAAkB,EAAE,WAAW;6BACtC,OAAO,kBAAkB,EAAE,cAAc;4BACzC,OAAO,kBAAkB,EAAE,aAAa;6BACxC,OAAO,kBAAkB,EAAE,cAAc;8BACzC,OAAO,kBAAkB,EAAE,eAAe;sBAI1C;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,kBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,WAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnD,OAAW,CAAC,OAAO,EAAE;QACrB,QAAc,CAAC,EAAE,OAAO,CAAC;QACzB,gBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,gBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,gBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,gBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,iBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;KACjE,GAAG,aAAa,CAAA;CAClB;8BAzB0B,mBAAmB"}
1
+ {"version":3,"file":"CompilerLib_v0_17.d.ts","sourceRoot":"","sources":["../../src/compiler/CompilerLib_v0_17.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;GAEG;AACH,0CAFgB,WAAW;IASvB;;OAEG;IACH,iBAFW,GAAG,EAIb;IAXD;;;OAGG;IACH,YAAG;IASH;;OAEG;IACH,sBAEC;IAED;;;OAGG;IACH,2BAHW,MAAM,GACJ,cAAc,CAM1B;IAED;;;;;OAKG;IACH,oBALW,MAAM,iBACN,MAAM,EAAE,WACR,cAAc,GACZ,aAAa,CA8EzB;IAED;;;;OAIG;IACH,4BAJW,MAAM,EAAE,iBACR,MAAM,EAAE,GACN,eAAe,CAM3B;CACJ;uBAzJY,OAAO,mBAAmB,EAAE,QAAQ;6BACpC,OAAO,mBAAmB,EAAE,cAAc;0BAC1C,OAAO,kBAAkB,EAAE,WAAW;6BACtC,OAAO,kBAAkB,EAAE,cAAc;4BACzC,OAAO,kBAAkB,EAAE,aAAa;6BACxC,OAAO,kBAAkB,EAAE,cAAc;8BACzC,OAAO,kBAAkB,EAAE,eAAe;sBAI1C;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,kBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,WAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;IACnD,OAAW,CAAC,OAAO,EAAE;QACrB,QAAc,CAAC,EAAE,OAAO,CAAC;QACzB,gBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,gBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,gBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,gBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,iBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;KACjE,GAAG,aAAa,CAAA;CAClB;8BAzB0B,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DagCompiler.d.ts","sourceRoot":"","sources":["../../src/context/DagCompiler.js"],"names":[],"mappings":"AAqYA;;;GAGG;AACH,iDAHW,eAAe,GACb,MAAM,EAAE,CAsBpB;AAlZD;;;;;;;GAOG;AAEH;;;;GAIG;AACH;;;;;;GAMG;AAEH;;GAEG;AACH;IA6BI;;;OAGG;IACH,iBAHW,WAAW,UACX,iBAAiB,EAO3B;IArCD;;;;OAIG;IACH,qBAAG;IAEH;;;;OAIG;IACH,wBAAM;IAEN;;;;OAIG;IACH,kCAAgB;IAEhB;;;;OAIG;IACH,iCAAe;IAaf;;;;;;OAMG;IACH,kBANW,eAAe,EAAE,cACjB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,aACxB,OAAO,mBACP,MAAM,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC,GAC9B,iBAAiB,CA0K7B;IAED;;;;;OAKG;IACH,4BAsCC;IAED;;;;;OAKG;IACH,yBA8BC;IAED;;;;;OAKG;IACH,qBAoBC;IAED;;;;;OAKG;IACH,4BAeC;CACJ;uBAvXY,OAAO,mBAAmB,EAAE,QAAQ;0BACpC,OAAO,mBAAmB,EAAE,WAAW;yBACvC,OAAO,kBAAkB,EAAE,UAAU;8BACrC,OAAO,+BAA+B,EAAE,eAAe;0BACvD,OAAO,sBAAsB,EAAE,WAAW;0CAC1C,OAAO,sBAAsB,EAAE,2BAA2B;gCAI1D,UAAU,GAAG;IACzB,KAAS,CAAC,EAAE,OAAO,CAAA;CAChB;gCAGS;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"}
1
+ {"version":3,"file":"DagCompiler.d.ts","sourceRoot":"","sources":["../../src/context/DagCompiler.js"],"names":[],"mappings":"AA6YA;;;GAGG;AACH,iDAHW,eAAe,GACb,MAAM,EAAE,CAsBpB;AA1ZD;;;;;;;GAOG;AAEH;;;;GAIG;AACH;;;;;;GAMG;AAEH;;GAEG;AACH;IA6BI;;;OAGG;IACH,iBAHW,WAAW,UACX,iBAAiB,EAO3B;IArCD;;;;OAIG;IACH,qBAAG;IAEH;;;;OAIG;IACH,wBAAM;IAEN;;;;OAIG;IACH,kCAAgB;IAEhB;;;;OAIG;IACH,iCAAe;IAaf;;;;;;OAMG;IACH,kBANW,eAAe,EAAE,cACjB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,aACxB,OAAO,mBACP,MAAM,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC,GAC9B,iBAAiB,CAkL7B;IAED;;;;;OAKG;IACH,4BAsCC;IAED;;;;;OAKG;IACH,yBA8BC;IAED;;;;;OAKG;IACH,qBAoBC;IAED;;;;;OAKG;IACH,4BAeC;CACJ;uBA/XY,OAAO,mBAAmB,EAAE,QAAQ;0BACpC,OAAO,mBAAmB,EAAE,WAAW;yBACvC,OAAO,kBAAkB,EAAE,UAAU;8BACrC,OAAO,+BAA+B,EAAE,eAAe;0BACvD,OAAO,sBAAsB,EAAE,WAAW;0CAC1C,OAAO,sBAAsB,EAAE,2BAA2B;gCAI1D,UAAU,GAAG;IACzB,KAAS,CAAC,EAAE,OAAO,CAAA;CAChB;gCAGS;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"}