@helios-lang/contract-utils 0.1.20 → 0.1.24

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.
Files changed (104) hide show
  1. package/examples/multi-validator/README.md +13 -0
  2. package/examples/multi-validator/contract.js +28 -0
  3. package/examples/{spending → multi-validator}/index.d.ts +3 -3
  4. package/examples/multi-validator/index.js +27 -0
  5. package/examples/multi-validator/minting.hl +5 -0
  6. package/examples/{spending → multi-validator}/package-lock.json +6 -15
  7. package/examples/{spending → multi-validator}/package.json +0 -1
  8. package/examples/multi-validator/spending.hl +18 -0
  9. package/examples/multi-validator/utils.hl +9 -0
  10. package/package.json +7 -6
  11. package/src/{runtime → cast}/Cast.js +31 -8
  12. package/src/cast/index.js +12 -0
  13. package/src/codegen/LoadedModule.js +9 -0
  14. package/src/codegen/{TypescriptWriter.js → LoadedScriptsWriter.js} +149 -108
  15. package/src/codegen/LoadedValidator.js +23 -0
  16. package/src/codegen/{Module.js → TypeCheckedModule.js} +3 -3
  17. package/src/codegen/{Validator.js → TypeCheckedValidator.js} +5 -8
  18. package/src/codegen/TypeSchema.js +6 -2
  19. package/src/codegen/index.js +5 -4
  20. package/src/compiler/CompilerLib.js +51 -0
  21. package/src/{lib/Libg_v0_16.js → compiler/CompilerLib_v0_16.js} +244 -255
  22. package/src/compiler/index.js +6 -0
  23. package/src/compiler/ops.js +137 -0
  24. package/src/context/ContractContext.js +78 -0
  25. package/src/context/ContractContextBuilder.js +69 -0
  26. package/src/context/DagCompiler.js +229 -0
  27. package/src/context/index.js +1 -0
  28. package/src/hl2ts.js +116 -104
  29. package/src/index.js +12 -1
  30. package/types/cast/Cast.d.ts +32 -0
  31. package/types/cast/Cast.d.ts.map +1 -0
  32. package/types/cast/PermissiveType.d.ts +3 -0
  33. package/types/cast/PermissiveType.d.ts.map +1 -0
  34. package/types/cast/StrictType.d.ts +3 -0
  35. package/types/cast/StrictType.d.ts.map +1 -0
  36. package/types/cast/index.d.ts +5 -0
  37. package/types/cast/index.d.ts.map +1 -0
  38. package/types/codegen/LoadedModule.d.ts +6 -0
  39. package/types/codegen/LoadedModule.d.ts.map +1 -0
  40. package/types/codegen/LoadedScriptsWriter.d.ts +57 -0
  41. package/types/codegen/LoadedScriptsWriter.d.ts.map +1 -0
  42. package/types/codegen/LoadedValidator.d.ts +16 -0
  43. package/types/codegen/LoadedValidator.d.ts.map +1 -0
  44. package/types/codegen/TypeCheckedModule.d.ts +11 -0
  45. package/types/codegen/TypeCheckedModule.d.ts.map +1 -0
  46. package/types/codegen/TypeCheckedValidator.d.ts +8 -0
  47. package/types/codegen/TypeCheckedValidator.d.ts.map +1 -0
  48. package/types/codegen/TypeSchema.d.ts +10 -0
  49. package/types/codegen/TypeSchema.d.ts.map +1 -1
  50. package/types/codegen/TypescriptWriter.d.ts +4 -4
  51. package/types/codegen/Validator.d.ts +1 -1
  52. package/types/codegen/index.d.ts +5 -4
  53. package/types/codegen/index.d.ts.map +1 -1
  54. package/types/compiler/CompilerLib.d.ts +45 -0
  55. package/types/compiler/CompilerLib.d.ts.map +1 -0
  56. package/types/compiler/CompilerLib_v0_16.d.ts +271 -0
  57. package/types/compiler/CompilerLib_v0_16.d.ts.map +1 -0
  58. package/types/compiler/index.d.ts +4 -0
  59. package/types/compiler/index.d.ts.map +1 -0
  60. package/types/compiler/ops.d.ts +24 -0
  61. package/types/compiler/ops.d.ts.map +1 -0
  62. package/types/context/ContractContext.d.ts +23 -0
  63. package/types/context/ContractContext.d.ts.map +1 -0
  64. package/types/context/ContractContextBuilder.d.ts +53 -0
  65. package/types/context/ContractContextBuilder.d.ts.map +1 -0
  66. package/types/context/DagCompiler.d.ts +64 -0
  67. package/types/context/DagCompiler.d.ts.map +1 -0
  68. package/types/context/index.d.ts +2 -0
  69. package/types/context/index.d.ts.map +1 -0
  70. package/types/hl2ts.d.ts +9 -4
  71. package/types/hl2ts.d.ts.map +1 -1
  72. package/types/index.d.ts +4 -1
  73. package/types/index.d.ts.map +1 -1
  74. package/types/lib/Lib.d.ts +13 -71
  75. package/types/lib/Lib.d.ts.map +1 -1
  76. package/types/lib/Libg_v0_16.d.ts +53 -52
  77. package/types/lib/Libg_v0_16.d.ts.map +1 -1
  78. package/types/lib/index.d.ts +0 -1
  79. package/types/lib/index.d.ts.map +1 -1
  80. package/types/lib/load.d.ts +1 -7
  81. package/types/lib/load.d.ts.map +1 -1
  82. package/types/runtime/ContractContext.d.ts +22 -43
  83. package/types/runtime/ContractContext.d.ts.map +1 -1
  84. package/types/runtime/ContractContextBuilder.d.ts +15 -123
  85. package/types/runtime/ContractContextBuilder.d.ts.map +1 -1
  86. package/types/runtime/DagCompiler.d.ts +64 -0
  87. package/types/runtime/DagCompiler.d.ts.map +1 -0
  88. package/types/runtime/PermissiveType.d.ts +1 -1
  89. package/types/runtime/StrictType.d.ts +1 -1
  90. package/types/runtime/index.d.ts +0 -2
  91. package/examples/spending/contract.js +0 -16
  92. package/examples/spending/index.js +0 -27
  93. package/examples/spending/minting.hl +0 -5
  94. package/examples/spending/spending.hl +0 -17
  95. package/examples/spending/utils.hl +0 -5
  96. package/src/codegen/Writer.js +0 -37
  97. package/src/lib/Lib.js +0 -56
  98. package/src/lib/index.js +0 -6
  99. package/src/lib/load.js +0 -26
  100. package/src/runtime/ContractContext.js +0 -35
  101. package/src/runtime/ContractContextBuilder.js +0 -340
  102. package/src/runtime/index.js +0 -3
  103. /package/src/{runtime → cast}/PermissiveType.js +0 -0
  104. /package/src/{runtime → cast}/StrictType.js +0 -0
@@ -0,0 +1,23 @@
1
+ import { Cast } from "../cast/Cast.js"
2
+
3
+ /**
4
+ * @typedef {import("./LoadedModule.js").LoadedModule} LoadedModule
5
+ */
6
+
7
+ /**
8
+ * @typedef {{
9
+ * $name: string
10
+ * $sourceCode: string
11
+ * $dependencies: LoadedModule[]
12
+ * $hashDependencies: LoadedValidator[]
13
+ * $dependsOnOwnHash: boolean
14
+ * $Redeemer: Cast
15
+ * } & (
16
+ * {
17
+ * $purpose: "spending"
18
+ * $Datum: Cast
19
+ * } | {
20
+ * $purpose: "minting" | "certifying" | "rewarding" | "staking"
21
+ * }
22
+ * )} LoadedValidator
23
+ */
@@ -1,3 +1,5 @@
1
+ export {}
2
+
1
3
  /**
2
4
  * @typedef {import("./TypeSchema.js").TypeSchema} TypeSchema
3
5
  */
@@ -9,7 +11,5 @@
9
11
  * sourceCode: string
10
12
  * moduleDepedencies: string[]
11
13
  * types: {[name: string]: TypeSchema}
12
- * }} Module
14
+ * }} TypeCheckedModule
13
15
  */
14
-
15
- export const _ = {}
@@ -1,17 +1,14 @@
1
- /**
2
- * @typedef {import("./TypeSchema.js").TypeSchema} TypeSchema
3
- */
1
+ export {}
4
2
 
5
3
  /**
6
- * @typedef {import("./Module.js").Module} Module
4
+ * @typedef {import("./TypeCheckedModule.js").TypeCheckedModule} TypeCheckedModule
5
+ * @typedef {import("./TypeSchema.js").TypeSchema} TypeSchema
7
6
  */
8
7
 
9
8
  /**
10
- * @typedef {Module & {
9
+ * @typedef {TypeCheckedModule & {
11
10
  * hashDependencies: string[]
12
11
  * Redeemer: TypeSchema
13
12
  * Datum?: TypeSchema
14
- * }} Validator
13
+ * }} TypeCheckedValidator
15
14
  */
16
-
17
- export const _ = {}
@@ -1,4 +1,8 @@
1
1
  /**
2
+ * TODO: references and ids for recursive types and more descriptive codegen
3
+ * TODO: use `kind: "internal" | "list" | "map" | "struct" | "option" | "enum"` instead of `primitiveType` etc.
4
+ * TODO: additional property for struct: `format: "list" | "map"`
5
+ * TODO: rename primitiveType -> internalType
2
6
  * @typedef {{
3
7
  * primitiveType: string
4
8
  * } | {
@@ -58,11 +62,11 @@ export function genTypes(schema) {
58
62
  "MintingPolicyHash | string | number[]"
59
63
  ]
60
64
  case "PubKey":
61
- return ["string", "string | number[]"]
65
+ return ["PubKey", "PubKey | string | number[]"]
62
66
  case "PubKeyHash":
63
67
  return ["PubKeyHash", "PubKeyHash | string | number[]"]
64
68
  case "Real":
65
- return ["number", "numer"]
69
+ return ["number", "number"]
66
70
  case "StakingCredential":
67
71
  return [
68
72
  "StakingCredential",
@@ -1,8 +1,9 @@
1
- export { TypescriptWriter } from "./TypescriptWriter.js"
2
- export { Writer } from "./Writer.js"
1
+ export { LoadedScriptsWriter } from "./LoadedScriptsWriter.js"
3
2
 
4
3
  /**
5
- * @typedef {import("./Module.js").Module} Module
4
+ * @typedef {import("./LoadedModule.js").LoadedModule} LoadedModule
5
+ * @typedef {import("./LoadedValidator.js").LoadedValidator} LoadedValidator
6
+ * @typedef {import("./TypeCheckedModule.js").TypeCheckedModule} TypeCheckedModule
7
+ * @typedef {import("./TypeCheckedValidator.js").TypeCheckedValidator} TypeCheckedValidator
6
8
  * @typedef {import("./TypeSchema.js").TypeSchema} TypeSchema
7
- * @typedef {import("./Validator.js").Validator} Validator
8
9
  */
@@ -0,0 +1,51 @@
1
+ export {}
2
+
3
+ /**
4
+ * @typedef {import("../codegen/index.js").TypeSchema} InternalTypeDetails
5
+ * @typedef {import("../codegen/index.js").TypeCheckedModule} TypeCheckedModule
6
+ * @typedef {import("../codegen/index.js").TypeCheckedValidator} TypeCheckedValidator
7
+ */
8
+
9
+ /**
10
+ * @typedef {{
11
+ * allValidatorHashTypes: {[name: string]: any},
12
+ * hashDependencies: {[name: string]: string},
13
+ * dependsOnOwnHash?: boolean,
14
+ * ownHash?: string,
15
+ * optimize: boolean
16
+ * }} CompileOptions
17
+ */
18
+
19
+ /**
20
+ * @typedef {{
21
+ * cborHex: string
22
+ * prettyIR: string
23
+ * }} CompileOutput
24
+ */
25
+
26
+ /**
27
+ * @typedef {{
28
+ * modules: {[name: string]: TypeCheckedModule}
29
+ * validators: {[name: string]: TypeCheckedValidator}
30
+ * }} TypeCheckOutput
31
+ */
32
+
33
+ /**
34
+ * @typedef {{
35
+ * name: string
36
+ * purpose: string
37
+ * sourceCode: string
38
+ * }} SourceDetails
39
+ */
40
+
41
+ /**
42
+ * @typedef {{
43
+ * version: string
44
+ * getScriptHashType: (purpose: string) => any
45
+ * typeCheck: (validators: string[], modules: string[]) => ({
46
+ * modules: {[name: string]: TypeCheckedModule},
47
+ * validators: {[name: string]: TypeCheckedValidator}
48
+ * })
49
+ * compile: (main: string, modules: string[], options: CompileOptions) => CompileOutput
50
+ * }} CompilerLib
51
+ */