@helios-lang/contract-utils 0.2.55 → 0.2.57
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 +1 -1
- package/src/cast/Cast.js +7 -0
- package/src/cast/UserFunc.js +16 -25
- package/src/codegen/LoadedScriptsWriter.js +6 -7
- package/src/codegen/TypeCheckedModule.js +0 -1
- package/src/codegen/TypeSchema.js +5 -3
- package/types/cast/Cast.d.ts.map +1 -1
- package/types/cast/UserFunc.d.ts +0 -2
- package/types/cast/UserFunc.d.ts.map +1 -1
- package/types/codegen/LoadedScriptsWriter.d.ts.map +1 -1
- package/types/codegen/TypeCheckedModule.d.ts +0 -1
- package/types/codegen/TypeCheckedModule.d.ts.map +1 -1
- package/types/codegen/TypeSchema.d.ts +0 -3
- package/types/codegen/TypeSchema.d.ts.map +1 -1
package/package.json
CHANGED
package/src/cast/Cast.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
AssetClass,
|
|
5
5
|
DatumHash,
|
|
6
6
|
MintingPolicyHash,
|
|
7
|
+
PubKey,
|
|
7
8
|
PubKeyHash,
|
|
8
9
|
ScriptHash,
|
|
9
10
|
SpendingCredential,
|
|
@@ -143,6 +144,8 @@ function schemaToUplc(schema, x, defs = {}) {
|
|
|
143
144
|
return new IntData(x)
|
|
144
145
|
case "MintingPolicyHash":
|
|
145
146
|
return MintingPolicyHash.new(x).toUplcData()
|
|
147
|
+
case "PubKey":
|
|
148
|
+
return PubKey.new(x).toUplcData()
|
|
146
149
|
case "PubKeyHash":
|
|
147
150
|
return PubKeyHash.new(x).toUplcData()
|
|
148
151
|
case "Real":
|
|
@@ -331,6 +334,8 @@ function uplcToSchema(schema, data, config, defs = {}) {
|
|
|
331
334
|
return IntData.expect(data).value
|
|
332
335
|
case "MintingPolicyHash":
|
|
333
336
|
return MintingPolicyHash.fromUplcData(data)
|
|
337
|
+
case "PubKey":
|
|
338
|
+
return PubKey.fromUplcData(data)
|
|
334
339
|
case "PubKeyHash":
|
|
335
340
|
return PubKeyHash.fromUplcData(data)
|
|
336
341
|
case "Ratio": {
|
|
@@ -362,6 +367,8 @@ function uplcToSchema(schema, data, config, defs = {}) {
|
|
|
362
367
|
return TxInput.fromUplcData(config.isMainnet, data)
|
|
363
368
|
case "TxOutput":
|
|
364
369
|
return TxOutput.fromUplcData(config.isMainnet, data)
|
|
370
|
+
case "TxOutputDatum":
|
|
371
|
+
return TxOutputDatum.fromUplcData(data)
|
|
365
372
|
case "TxOutputId":
|
|
366
373
|
return TxOutputId.fromUplcData(data)
|
|
367
374
|
case "ValidatorHash":
|
package/src/cast/UserFunc.js
CHANGED
|
@@ -22,7 +22,6 @@ import { Cast } from "./Cast.js"
|
|
|
22
22
|
* name: string
|
|
23
23
|
* type: TypeSchema
|
|
24
24
|
* isOptional: boolean
|
|
25
|
-
* isIgnored?: boolean
|
|
26
25
|
* }[]
|
|
27
26
|
* returns?: TypeSchema
|
|
28
27
|
* validatorIndices?: Record<string, number>
|
|
@@ -144,36 +143,28 @@ export class UserFunc {
|
|
|
144
143
|
*/
|
|
145
144
|
const args = []
|
|
146
145
|
|
|
147
|
-
this.props.arguments.forEach(
|
|
148
|
-
(
|
|
149
|
-
if (
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
args.push(namedArgs[name])
|
|
154
|
-
}
|
|
155
|
-
} else if (isIgnored) {
|
|
156
|
-
if (name in namedArgs && namedArgs[name]) {
|
|
157
|
-
args.push(namedArgs[name])
|
|
158
|
-
} else {
|
|
159
|
-
args.push(new IntData(0))
|
|
160
|
-
}
|
|
161
|
-
} else {
|
|
162
|
-
args.push(expectSome(namedArgs[name]))
|
|
146
|
+
this.props.arguments.forEach(({ name, type, isOptional }) => {
|
|
147
|
+
if (isMain) {
|
|
148
|
+
if (isOptional) {
|
|
149
|
+
// used for $datum in mixed script
|
|
150
|
+
if (name in namedArgs && namedArgs[name]) {
|
|
151
|
+
args.push(namedArgs[name])
|
|
163
152
|
}
|
|
164
153
|
} else {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
154
|
+
args.push(expectSome(namedArgs[name]))
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
if (isOptional) {
|
|
158
|
+
if (name in namedArgs && namedArgs[name]) {
|
|
159
|
+
args.push(new ConstrData(0, [namedArgs[name]]))
|
|
171
160
|
} else {
|
|
172
|
-
args.push(
|
|
161
|
+
args.push(new ConstrData(1, []))
|
|
173
162
|
}
|
|
163
|
+
} else {
|
|
164
|
+
args.push(expectSome(namedArgs[name]))
|
|
174
165
|
}
|
|
175
166
|
}
|
|
176
|
-
)
|
|
167
|
+
})
|
|
177
168
|
|
|
178
169
|
if (this.props.requiresScriptContext) {
|
|
179
170
|
args.push(expectSome(namedArgs["$scriptContext"]))
|
|
@@ -179,9 +179,11 @@ export class LoadedScriptsWriter {
|
|
|
179
179
|
"Address",
|
|
180
180
|
"AssetClass",
|
|
181
181
|
"DatumHash",
|
|
182
|
+
"DCert",
|
|
182
183
|
"MintingPolicyHash",
|
|
183
184
|
"PubKey",
|
|
184
185
|
"PubKeyHash",
|
|
186
|
+
"ScriptHash",
|
|
185
187
|
"SpendingCredential",
|
|
186
188
|
"StakingCredential",
|
|
187
189
|
"StakingHash",
|
|
@@ -191,6 +193,7 @@ export class LoadedScriptsWriter {
|
|
|
191
193
|
"TxInput",
|
|
192
194
|
"TxOutput",
|
|
193
195
|
"TxOutputDatum",
|
|
196
|
+
"TxOutputId",
|
|
194
197
|
"ValidatorHash",
|
|
195
198
|
"Value"
|
|
196
199
|
)
|
|
@@ -202,7 +205,7 @@ export class LoadedScriptsWriter {
|
|
|
202
205
|
["TStrict", "TPermissive"]
|
|
203
206
|
)
|
|
204
207
|
this.writeImportType("@helios-lang/ledger", "TimeLike")
|
|
205
|
-
this.writeImportType("@helios-lang/
|
|
208
|
+
this.writeImportType("@helios-lang/uplc", "UplcData")
|
|
206
209
|
this.writeImportType("@helios-lang/uplc", "UplcProgram")
|
|
207
210
|
}
|
|
208
211
|
|
|
@@ -403,12 +406,8 @@ function genFuncType(fn) {
|
|
|
403
406
|
fields.push("$currentScript: string")
|
|
404
407
|
}
|
|
405
408
|
|
|
406
|
-
fn.arguments.forEach(({ name, type, isOptional
|
|
407
|
-
|
|
408
|
-
fields.push(`${name}?: UplcData`)
|
|
409
|
-
} else {
|
|
410
|
-
fields.push(`${name}${isOptional ? "?" : ""}: ${genTypes(type)[1]}`)
|
|
411
|
-
}
|
|
409
|
+
fn.arguments.forEach(({ name, type, isOptional }, i) => {
|
|
410
|
+
fields.push(`${name}${isOptional ? "?" : ""}: ${genTypes(type)[1]}`)
|
|
412
411
|
})
|
|
413
412
|
|
|
414
413
|
const argsTypeStr = `{${fields.join(", ")}}`
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* @typedef {import("@helios-lang/type-utils").TypeSchema} TypeSchema
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
const NONE = "null"
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* TODO: handle recursive data structures
|
|
7
9
|
* @param {TypeSchema} schema
|
|
@@ -82,8 +84,8 @@ export function genTypes(schema) {
|
|
|
82
84
|
return ["TxOutput", "TxOutput"]
|
|
83
85
|
case "TxOutputDatum":
|
|
84
86
|
return [
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
`TxOutputDatum | ${NONE}`,
|
|
88
|
+
`TxOutputDatum | ${NONE} | undefined | DatumHash | UplcData`
|
|
87
89
|
]
|
|
88
90
|
case "TxOutputId":
|
|
89
91
|
return ["TxOutputId", "TxOutputId | string"]
|
|
@@ -120,7 +122,7 @@ export function genTypes(schema) {
|
|
|
120
122
|
}
|
|
121
123
|
case "option": {
|
|
122
124
|
const [c, p] = genTypes(schema.someType)
|
|
123
|
-
return [`(${c}) |
|
|
125
|
+
return [`(${c}) | ${NONE}`, `(${p}) | null | undefined`]
|
|
124
126
|
}
|
|
125
127
|
case "struct": {
|
|
126
128
|
const fieldTypes = schema.fieldTypes.map(({ name, type }) => ({
|
package/types/cast/Cast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cast.d.ts","sourceRoot":"","sources":["../../src/cast/Cast.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cast.d.ts","sourceRoot":"","sources":["../../src/cast/Cast.js"],"names":[],"mappings":"AAmhBA;;;;;;GAMG;AACH,8BANa,OAAO,EACP,WAAW,QACb,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,UAC9B,UAAU,GACR,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAQtC;AA3fD;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;GAGG;AACH,kBAHa,OAAO,EACP,WAAW;IAepB;;;OAGG;IACH,oBAHW,UAAU,UACV,UAAU,EAKpB;IAnBD;;;OAGG;IACH,iBAFU,UAAU,CAEd;IAEN;;;OAGG;IACH,iBAFU,UAAU,CAEd;IAWN;;;OAGG;IACH,mBAHW,QAAQ,GACN,OAAO,CAInB;IAED;;;OAGG;IACH,cAHW,WAAW,GACT,QAAQ,CAIpB;CACJ;uBAhEY,OAAO,mBAAmB,EAAE,QAAQ;yBACpC,OAAO,qBAAqB,EAAE,UAAU;yBAIxC;IACZ,SAAa,EAAE,OAAO,CAAA;CACnB;6BAIS,OAAO,EACP,WAAW,IACX,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;;;;qBAKlD,OAAO,EACP,WAAW,IACX,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC"}
|
package/types/cast/UserFunc.d.ts
CHANGED
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
* name: string
|
|
17
17
|
* type: TypeSchema
|
|
18
18
|
* isOptional: boolean
|
|
19
|
-
* isIgnored?: boolean
|
|
20
19
|
* }[]
|
|
21
20
|
* returns?: TypeSchema
|
|
22
21
|
* validatorIndices?: Record<string, number>
|
|
@@ -87,7 +86,6 @@ export type UserFuncProps = {
|
|
|
87
86
|
name: string;
|
|
88
87
|
type: TypeSchema;
|
|
89
88
|
isOptional: boolean;
|
|
90
|
-
isIgnored?: boolean;
|
|
91
89
|
}[];
|
|
92
90
|
returns?: TypeSchema;
|
|
93
91
|
validatorIndices?: Record<string, number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFunc.d.ts","sourceRoot":"","sources":["../../src/cast/UserFunc.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH
|
|
1
|
+
{"version":3,"file":"UserFunc.d.ts","sourceRoot":"","sources":["../../src/cast/UserFunc.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AAEH;;;GAGG;AACH,sBAHwC,KAAK,SAAhC;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,IAAI;IAgBb;;;OAGG;IACH,kBAHW,WAAW,SACX,aAAa,EAKvB;IApBD;;;OAGG;IACH,eAFU,WAAW,CAEjB;IAEJ;;;;OAIG;IACH,uBAAK;IAWL;;OAEG;IACH,mBAEC;IAED;;;OAGG;IACH,gBAHW,KAAK,GACH,IAAI,CAyChB;IAED;;;OAGG;IACH,sBAHW,WAAW,CAAC,KAAK,CAAC,GAChB,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,CAc/C;IAED;;;OAGG;IACH,mBAHW,WAAW,CAAC,KAAK,CAAC,GAChB,SAAS,CAiGrB;CACJ;yBAnOY,OAAO,yBAAyB,EAAE,UAAU;wBAC5C,OAAO,mBAAmB,EAAE,SAAS;uBACrC,OAAO,mBAAmB,EAAE,QAAQ;0BACpC,OAAO,mBAAmB,EAAE,WAAW;wBACvC,OAAO,mBAAmB,EAAE,SAAS;yBACrC,OAAO,WAAW,EAAE,UAAU;;;;4BAK9B;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,qBAAyB,EAAE,OAAO,CAAA;IAClC,qBAAyB,EAAE,OAAO,CAAA;IAClC,SAAa,EAAE;QACf,IAAU,EAAE,MAAM,CAAA;QAClB,IAAU,EAAE,UAAU,CAAA;QACtB,UAAgB,EAAE,OAAO,CAAA;KACpB,EAAE,CAAA;IACP,OAAW,CAAC,EAAE,UAAU,CAAA;IACxB,gBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,UAAc,EAAE,UAAU,CAAA;CACvB;wBAIS,KAAK,IACL,GAAE,CAAgB,IAAX,MAAM,KAAK,GAAG,CAAC,SAAS,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadedScriptsWriter.d.ts","sourceRoot":"","sources":["../../src/codegen/LoadedScriptsWriter.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH;IAUI;;;OAGG;IACH,gBAFa,mBAAmB,CAQ/B;IAfG,yBAAoC;IACpC,0BAAqC;IACrC,uBAAkC;IAetC;;;OAGG;IACH,iBAHW;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAC,GACjC,mBAAmB,CAgC/B;IAED;;;OAGG;IACH,4BAHW;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAC,GACpC,mBAAmB,CAoC/B;IAED;;OAEG;IACH,YAFa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQpC;IAED;;;;;OAKG;IACH,cAKC;IAED;;;;;OAKG;IACH,sBALW,MAAM,YACN,MAAM,eACN,MAAM,EAAE,GACN,mBAAmB,CAmB/B;IAED;;;;OAIG;IACH,kBAJW,MAAM,kBACN,MAAM,EAAE,GACN,mBAAmB,CAQ/B;IAED;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"LoadedScriptsWriter.d.ts","sourceRoot":"","sources":["../../src/codegen/LoadedScriptsWriter.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH;IAUI;;;OAGG;IACH,gBAFa,mBAAmB,CAQ/B;IAfG,yBAAoC;IACpC,0BAAqC;IACrC,uBAAkC;IAetC;;;OAGG;IACH,iBAHW;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAC,GACjC,mBAAmB,CAgC/B;IAED;;;OAGG;IACH,4BAHW;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAC,GACpC,mBAAmB,CAoC/B;IAED;;OAEG;IACH,YAFa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQpC;IAED;;;;;OAKG;IACH,cAKC;IAED;;;;;OAKG;IACH,sBALW,MAAM,YACN,MAAM,eACN,MAAM,EAAE,GACN,mBAAmB,CAmB/B;IAED;;;;OAIG;IACH,kBAJW,MAAM,kBACN,MAAM,EAAE,GACN,mBAAmB,CAQ/B;IAED;;OAEG;IACH,qBAmCC;IAED;;OAEG;IACH,kBAFW,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,QAyBpC;IAED;;OAEG;IACH,0BAFW,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,QA2B7C;IAED;;;OAGG;IACH,oBA6BC;IAED;;;OAGG;IACH,uBAqDC;IAED;;OAEG;IACH,kCAFW,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAuB9C;CACJ;gCA/XY,OAAO,wBAAwB,EAAE,iBAAiB;kCAClD,OAAO,wBAAwB,EAAE,mBAAmB;mCACpD,OAAO,2BAA2B,EAAE,oBAAoB;yBACxD,OAAO,iBAAiB,EAAE,UAAU;6BARpB,0BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeCheckedModule.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeCheckedModule.js"],"names":[],"mappings":"yBAGa,OAAO,iBAAiB,EAAE,UAAU;;;;kCAKpC;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,qBAAyB,EAAE,OAAO,CAAA;IAClC,qBAAyB,EAAE,OAAO,CAAA;IAClC,SAAa,EAAE;QACf,IAAU,EAAE,MAAM,CAAA;QAClB,IAAU,EAAE,UAAU,CAAA;QACtB,UAAgB,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TypeCheckedModule.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeCheckedModule.js"],"names":[],"mappings":"yBAGa,OAAO,iBAAiB,EAAE,UAAU;;;;kCAKpC;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,qBAAyB,EAAE,OAAO,CAAA;IAClC,qBAAyB,EAAE,OAAO,CAAA;IAClC,SAAa,EAAE;QACf,IAAU,EAAE,MAAM,CAAA;QAClB,IAAU,EAAE,UAAU,CAAA;QACtB,UAAgB,EAAE,OAAO,CAAA;KACpB,EAAE,CAAA;IACP,OAAW,CAAC,EAAE,UAAU,CAAA;CACrB;gCAIS;IACZ,IAAQ,EAAE,MAAM,CAAA;IAChB,OAAW,EAAE,MAAM,CAAA;IACnB,UAAc,EAAE,MAAM,CAAA;IACtB,iBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,KAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACrC,SAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;CAChD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeSchema.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeSchema.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TypeSchema.d.ts","sourceRoot":"","sources":["../../src/codegen/TypeSchema.js"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,iCAHW,UAAU,GACR,CAAC,MAAM,EAAE,MAAM,CAAC,CAgK5B;yBAxKY,OAAO,yBAAyB,EAAE,UAAU"}
|