@fluffylabs/anan-as 1.2.0-e8a5af8 → 1.2.0-ef04361

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 (102) hide show
  1. package/dist/bin/src/trace-replay.js +2 -2
  2. package/dist/build/compiler-inline.js +1 -1
  3. package/dist/build/compiler.wasm +0 -0
  4. package/dist/build/debug-inline.js +1 -1
  5. package/dist/build/debug-raw-inline.js +1 -1
  6. package/dist/build/debug-raw.d.ts +34 -98
  7. package/dist/build/debug-raw.js +51 -105
  8. package/dist/build/debug-raw.wasm +0 -0
  9. package/dist/build/debug.d.ts +34 -98
  10. package/dist/build/debug.js +53 -112
  11. package/dist/build/debug.wasm +0 -0
  12. package/dist/build/js/assembly/api-debugger.d.ts +55 -0
  13. package/dist/build/js/assembly/api-debugger.js +245 -0
  14. package/dist/build/js/assembly/api-internal.d.ts +13 -0
  15. package/dist/build/js/assembly/api-internal.js +192 -0
  16. package/dist/build/js/assembly/api-types.d.ts +45 -0
  17. package/dist/build/js/assembly/api-types.js +53 -0
  18. package/dist/build/js/assembly/api-utils.d.ts +71 -0
  19. package/dist/build/js/assembly/api-utils.js +206 -0
  20. package/dist/build/js/assembly/arguments.d.ts +44 -0
  21. package/dist/build/js/assembly/arguments.js +164 -0
  22. package/dist/build/js/assembly/codec.d.ts +24 -0
  23. package/dist/build/js/assembly/codec.js +139 -0
  24. package/dist/build/js/assembly/gas-costs.d.ts +6 -0
  25. package/dist/build/js/assembly/gas-costs.js +39 -0
  26. package/dist/build/js/assembly/gas.d.ts +16 -0
  27. package/dist/build/js/assembly/gas.js +23 -0
  28. package/dist/build/js/assembly/index-shared.d.ts +4 -0
  29. package/dist/build/js/assembly/index-shared.js +4 -0
  30. package/dist/build/js/assembly/instructions/bit.d.ts +11 -0
  31. package/dist/build/js/assembly/instructions/bit.js +53 -0
  32. package/dist/build/js/assembly/instructions/branch.d.ts +17 -0
  33. package/dist/build/js/assembly/instructions/branch.js +120 -0
  34. package/dist/build/js/assembly/instructions/jump.d.ts +5 -0
  35. package/dist/build/js/assembly/instructions/jump.js +21 -0
  36. package/dist/build/js/assembly/instructions/load.d.ts +17 -0
  37. package/dist/build/js/assembly/instructions/load.js +134 -0
  38. package/dist/build/js/assembly/instructions/logic.d.ts +10 -0
  39. package/dist/build/js/assembly/instructions/logic.js +47 -0
  40. package/dist/build/js/assembly/instructions/math.d.ts +28 -0
  41. package/dist/build/js/assembly/instructions/math.js +225 -0
  42. package/dist/build/js/assembly/instructions/misc.d.ts +6 -0
  43. package/dist/build/js/assembly/instructions/misc.js +22 -0
  44. package/dist/build/js/assembly/instructions/mov.d.ts +6 -0
  45. package/dist/build/js/assembly/instructions/mov.js +35 -0
  46. package/dist/build/js/assembly/instructions/outcome.d.ts +30 -0
  47. package/dist/build/js/assembly/instructions/outcome.js +63 -0
  48. package/dist/build/js/assembly/instructions/rot.d.ts +15 -0
  49. package/dist/build/js/assembly/instructions/rot.js +66 -0
  50. package/dist/build/js/assembly/instructions/set.d.ts +7 -0
  51. package/dist/build/js/assembly/instructions/set.js +36 -0
  52. package/dist/build/js/assembly/instructions/shift.d.ts +19 -0
  53. package/dist/build/js/assembly/instructions/shift.js +121 -0
  54. package/dist/build/js/assembly/instructions/store.d.ts +17 -0
  55. package/dist/build/js/assembly/instructions/store.js +101 -0
  56. package/dist/build/js/assembly/instructions/utils.d.ts +23 -0
  57. package/dist/build/js/assembly/instructions/utils.js +75 -0
  58. package/dist/build/js/assembly/instructions-exe.d.ts +2 -0
  59. package/dist/build/js/assembly/instructions-exe.js +245 -0
  60. package/dist/build/js/assembly/instructions.d.ts +11 -0
  61. package/dist/build/js/assembly/instructions.js +252 -0
  62. package/dist/build/js/assembly/interpreter.d.ts +29 -0
  63. package/dist/build/js/assembly/interpreter.js +229 -0
  64. package/dist/build/js/assembly/math.d.ts +8 -0
  65. package/dist/build/js/assembly/math.js +14 -0
  66. package/dist/build/js/assembly/memory-page.d.ts +38 -0
  67. package/dist/build/js/assembly/memory-page.js +68 -0
  68. package/dist/build/js/assembly/memory.d.ts +82 -0
  69. package/dist/build/js/assembly/memory.js +386 -0
  70. package/dist/build/js/assembly/portable.d.ts +24 -0
  71. package/dist/build/js/assembly/portable.js +362 -0
  72. package/dist/build/js/assembly/program-build.d.ts +2 -0
  73. package/dist/build/js/assembly/program-build.js +104 -0
  74. package/dist/build/js/assembly/program.d.ts +78 -0
  75. package/dist/build/js/assembly/program.js +284 -0
  76. package/dist/build/js/assembly/registers.d.ts +6 -0
  77. package/dist/build/js/assembly/registers.js +9 -0
  78. package/dist/build/js/assembly/spi.d.ts +92 -0
  79. package/dist/build/js/assembly/spi.js +152 -0
  80. package/dist/build/js/portable/bootstrap.d.ts +1 -0
  81. package/dist/build/js/portable/bootstrap.js +5 -0
  82. package/dist/build/js/portable/index.d.ts +4 -0
  83. package/dist/build/js/portable/index.js +6 -0
  84. package/dist/build/js/portable-bundle.js +4309 -0
  85. package/dist/build/release-inline.js +1 -1
  86. package/dist/build/release-mini-inline.js +1 -1
  87. package/dist/build/release-mini.d.ts +34 -98
  88. package/dist/build/release-mini.js +53 -112
  89. package/dist/build/release-mini.wasm +0 -0
  90. package/dist/build/release-stub-inline.js +1 -1
  91. package/dist/build/release-stub.d.ts +34 -98
  92. package/dist/build/release-stub.js +53 -112
  93. package/dist/build/release-stub.wasm +0 -0
  94. package/dist/build/release.d.ts +34 -98
  95. package/dist/build/release.js +53 -112
  96. package/dist/build/release.wasm +0 -0
  97. package/dist/build/test-inline.js +1 -1
  98. package/dist/build/test.wasm +0 -0
  99. package/dist/test/test-w3f-common.js +126 -0
  100. package/dist/test/test-w3f-portable.js +5 -0
  101. package/dist/test/test-w3f.js +3 -120
  102. package/package.json +11 -4
@@ -1,5 +1,17 @@
1
1
  /** Exported memory */
2
2
  export declare const memory: WebAssembly.Memory;
3
+ /**
4
+ * assembly/api-internal/getAssembly
5
+ * @param p `assembly/program/Program`
6
+ * @returns `~lib/string/String`
7
+ */
8
+ export declare function getAssembly(p: __Internref28): string;
9
+ /**
10
+ * assembly/program-build/wrapAsProgram
11
+ * @param bytecode `~lib/typedarray/Uint8Array`
12
+ * @returns `~lib/typedarray/Uint8Array`
13
+ */
14
+ export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
3
15
  /**
4
16
  * assembly/api-debugger/resetJAM
5
17
  * @param program `~lib/array/Array<u8>`
@@ -104,47 +116,6 @@ export declare function getMemory(address: number, length: number): Uint8Array |
104
116
  * @returns `bool`
105
117
  */
106
118
  export declare function setMemory(address: number, data: Uint8Array): boolean;
107
- /**
108
- * assembly/api-internal/getAssembly
109
- * @param p `assembly/program/Program`
110
- * @returns `~lib/string/String`
111
- */
112
- export declare function getAssembly(p: __Internref26): string;
113
- /**
114
- * assembly/api-internal/buildMemory
115
- * @param builder `assembly/memory/MemoryBuilder`
116
- * @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
117
- * @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
118
- * @returns `assembly/memory/Memory`
119
- */
120
- export declare function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
121
- /**
122
- * assembly/api-internal/vmInit
123
- * @param input `assembly/api-types/VmInput`
124
- * @param useSbrkGas `bool`
125
- * @returns `assembly/interpreter/Interpreter`
126
- */
127
- export declare function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
128
- /**
129
- * assembly/api-internal/vmRunOnce
130
- * @param input `assembly/api-types/VmInput`
131
- * @param options `assembly/api-types/VmRunOptions`
132
- * @returns `assembly/api-types/VmOutput`
133
- */
134
- export declare function vmRunOnce(input: __Internref49, options: __Record50<undefined>): __Record51<never>;
135
- /**
136
- * assembly/api-internal/vmExecute
137
- * @param int `assembly/interpreter/Interpreter`
138
- * @param logs `bool`
139
- */
140
- export declare function vmExecute(int: __Internref25, logs?: boolean): void;
141
- /**
142
- * assembly/api-internal/vmDestroy
143
- * @param int `assembly/interpreter/Interpreter`
144
- * @param dumpMemory `bool`
145
- * @returns `assembly/api-types/VmOutput`
146
- */
147
- export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record51<never>;
148
119
  /** assembly/api-utils/InputKind */
149
120
  export declare enum InputKind {
150
121
  /** @type `i32` */
@@ -166,7 +137,7 @@ export declare enum HasMetadata {
166
137
  * @param withMetadata `i32`
167
138
  * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
168
139
  */
169
- export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record56<never>>;
140
+ export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record53<never>>;
170
141
  /**
171
142
  * assembly/api-utils/disassemble
172
143
  * @param input `~lib/array/Array<u8>`
@@ -187,7 +158,7 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
187
158
  * @param preallocateMemoryPages `u32`
188
159
  * @returns `assembly/spi/StandardProgram`
189
160
  */
190
- export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record44<undefined>>, initialMemory: Array<__Record46<undefined>>, args: Array<number>, preallocateMemoryPages: number): __Internref40;
161
+ export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record49<undefined>>, initialMemory: Array<__Record51<undefined>>, args: Array<number>, preallocateMemoryPages: number): __Internref45;
191
162
  /**
192
163
  * assembly/api-utils/runProgram
193
164
  * @param program `assembly/spi/StandardProgram`
@@ -198,20 +169,20 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
198
169
  * @param dumpMemory `bool`
199
170
  * @returns `assembly/api-types/VmOutput`
200
171
  */
201
- export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record51<never>;
172
+ export declare function runProgram(program: __Internref45, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record58<never>;
202
173
  /**
203
174
  * assembly/api-utils/pvmStart
204
175
  * @param program `assembly/spi/StandardProgram`
205
176
  * @param useSbrkGas `bool`
206
177
  * @returns `u32`
207
178
  */
208
- export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
179
+ export declare function pvmStart(program: __Internref45, useSbrkGas?: boolean): number;
209
180
  /**
210
181
  * assembly/api-utils/pvmDestroy
211
182
  * @param pvmId `u32`
212
183
  * @returns `assembly/api-types/VmOutput | null`
213
184
  */
214
- export declare function pvmDestroy(pvmId: number): __Record51<never> | null;
185
+ export declare function pvmDestroy(pvmId: number): __Record58<never> | null;
215
186
  /**
216
187
  * assembly/api-utils/pvmSetRegisters
217
188
  * @param pvmId `u32`
@@ -249,25 +220,21 @@ export declare function pvmWriteMemory(pvmId: number, address: number, data: Uin
249
220
  * @param logs `bool`
250
221
  * @returns `assembly/api-types/VmPause | null`
251
222
  */
252
- export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record60<never> | null;
253
- /**
254
- * assembly/program-build/wrapAsProgram
255
- * @param bytecode `~lib/typedarray/Uint8Array`
256
- * @returns `~lib/typedarray/Uint8Array`
257
- */
258
- export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
223
+ export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record64<never> | null;
259
224
  /** assembly/program/Program */
260
- declare class __Internref26 extends Number {
261
- private __nominal26: symbol;
225
+ declare class __Internref28 extends Number {
226
+ private __nominal28: symbol;
262
227
  private __nominal0: symbol;
263
228
  }
264
- /** assembly/memory/MemoryBuilder */
265
- declare class __Internref41 extends Number {
266
- private __nominal41: symbol;
267
- private __nominal0: symbol;
229
+ /** assembly/gas-costs/BlockGasCost */
230
+ declare interface __Record53<TOmittable> {
231
+ /** @type `u32` */
232
+ pc: number | TOmittable;
233
+ /** @type `u64` */
234
+ gas: bigint | TOmittable;
268
235
  }
269
236
  /** assembly/api-types/InitialPage */
270
- declare interface __Record44<TOmittable> {
237
+ declare interface __Record49<TOmittable> {
271
238
  /** @type `u32` */
272
239
  address: number | TOmittable;
273
240
  /** @type `u32` */
@@ -276,38 +243,19 @@ declare interface __Record44<TOmittable> {
276
243
  access: number | TOmittable;
277
244
  }
278
245
  /** assembly/api-types/InitialChunk */
279
- declare interface __Record46<TOmittable> {
246
+ declare interface __Record51<TOmittable> {
280
247
  /** @type `u32` */
281
248
  address: number | TOmittable;
282
249
  /** @type `~lib/array/Array<u8>` */
283
250
  data: Array<number>;
284
251
  }
285
- /** assembly/memory/Memory */
286
- declare class __Internref15 extends Number {
287
- private __nominal15: symbol;
288
- private __nominal0: symbol;
289
- }
290
- /** assembly/api-types/VmInput */
291
- declare class __Internref49 extends Number {
292
- private __nominal49: symbol;
293
- private __nominal0: symbol;
294
- }
295
- /** assembly/interpreter/Interpreter */
296
- declare class __Internref25 extends Number {
297
- private __nominal25: symbol;
252
+ /** assembly/spi/StandardProgram */
253
+ declare class __Internref45 extends Number {
254
+ private __nominal45: symbol;
298
255
  private __nominal0: symbol;
299
256
  }
300
- /** assembly/api-types/VmRunOptions */
301
- declare interface __Record50<TOmittable> {
302
- /** @type `bool` */
303
- useSbrkGas: boolean | TOmittable;
304
- /** @type `bool` */
305
- logs: boolean | TOmittable;
306
- /** @type `bool` */
307
- dumpMemory: boolean | TOmittable;
308
- }
309
257
  /** assembly/api-types/VmOutput */
310
- declare interface __Record51<TOmittable> {
258
+ declare interface __Record58<TOmittable> {
311
259
  /** @type `i32` */
312
260
  status: number | TOmittable;
313
261
  /** @type `u32` */
@@ -321,22 +269,10 @@ declare interface __Record51<TOmittable> {
321
269
  /** @type `~lib/array/Array<u64>` */
322
270
  registers: Array<bigint>;
323
271
  /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
324
- memory: Array<__Record46<never>>;
325
- }
326
- /** assembly/gas-costs/BlockGasCost */
327
- declare interface __Record56<TOmittable> {
328
- /** @type `u32` */
329
- pc: number | TOmittable;
330
- /** @type `u64` */
331
- gas: bigint | TOmittable;
332
- }
333
- /** assembly/spi/StandardProgram */
334
- declare class __Internref40 extends Number {
335
- private __nominal40: symbol;
336
- private __nominal0: symbol;
272
+ memory: Array<__Record51<never>>;
337
273
  }
338
274
  /** assembly/api-types/VmPause */
339
- declare interface __Record60<TOmittable> {
275
+ declare interface __Record64<TOmittable> {
340
276
  /** @type `i32` */
341
277
  status: number | TOmittable;
342
278
  /** @type `u32` */
@@ -22,11 +22,21 @@ async function instantiate(module, imports = {}) {
22
22
  const { exports } = await WebAssembly.instantiate(module, adaptedImports);
23
23
  const memory = exports.memory || imports.env.memory;
24
24
  const adaptedExports = Object.setPrototypeOf({
25
+ getAssembly(p) {
26
+ // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
27
+ p = __lowerInternref(p) || __notnull();
28
+ return __liftString(exports.getAssembly(p) >>> 0);
29
+ },
30
+ wrapAsProgram(bytecode) {
31
+ // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
32
+ bytecode = __lowerTypedArray(Uint8Array, 12, 0, bytecode) || __notnull();
33
+ return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
34
+ },
25
35
  resetJAM(program, pc, initialGas, args, hasMetadata) {
26
36
  // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, i64, ~lib/array/Array<u8>, bool?) => void
27
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
37
+ program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
28
38
  initialGas = initialGas || 0n;
29
- args = __lowerArray(__setU8, 6, 0, args) || __notnull();
39
+ args = __lowerArray(__setU8, 7, 0, args) || __notnull();
30
40
  hasMetadata = hasMetadata ? 1 : 0;
31
41
  try {
32
42
  exports.__setArgumentsLength(arguments.length);
@@ -37,8 +47,8 @@ async function instantiate(module, imports = {}) {
37
47
  },
38
48
  resetGeneric(program, flatRegisters, initialGas, hasMetadata) {
39
49
  // assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, i64, bool?) => void
40
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
41
- flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
50
+ program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
51
+ flatRegisters = __lowerArray(__setU8, 7, 0, flatRegisters) || __notnull();
42
52
  initialGas = initialGas || 0n;
43
53
  hasMetadata = hasMetadata ? 1 : 0;
44
54
  try {
@@ -50,10 +60,10 @@ async function instantiate(module, imports = {}) {
50
60
  },
51
61
  resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata) {
52
62
  // assembly/api-debugger/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, i64, bool?) => void
53
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
54
- flatRegisters = __retain(__lowerArray(__setU8, 6, 0, flatRegisters) || __notnull());
55
- pageMap = __retain(__lowerTypedArray(Uint8Array, 10, 0, pageMap) || __notnull());
56
- chunks = __lowerTypedArray(Uint8Array, 10, 0, chunks) || __notnull();
63
+ program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
64
+ flatRegisters = __retain(__lowerArray(__setU8, 7, 0, flatRegisters) || __notnull());
65
+ pageMap = __retain(__lowerTypedArray(Uint8Array, 12, 0, pageMap) || __notnull());
66
+ chunks = __lowerTypedArray(Uint8Array, 12, 0, chunks) || __notnull();
57
67
  initialGas = initialGas || 0n;
58
68
  hasMetadata = hasMetadata ? 1 : 0;
59
69
  try {
@@ -92,7 +102,7 @@ async function instantiate(module, imports = {}) {
92
102
  },
93
103
  setRegisters(flatRegisters) {
94
104
  // assembly/api-debugger/setRegisters(~lib/array/Array<u8>) => void
95
- flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
105
+ flatRegisters = __lowerArray(__setU8, 7, 0, flatRegisters) || __notnull();
96
106
  exports.setRegisters(flatRegisters);
97
107
  },
98
108
  getPageDump(index) {
@@ -109,57 +119,9 @@ async function instantiate(module, imports = {}) {
109
119
  },
110
120
  setMemory(address, data) {
111
121
  // assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) => bool
112
- data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
122
+ data = __lowerTypedArray(Uint8Array, 12, 0, data) || __notnull();
113
123
  return exports.setMemory(address, data) != 0;
114
124
  },
115
- getAssembly(p) {
116
- // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
117
- p = __lowerInternref(p) || __notnull();
118
- return __liftString(exports.getAssembly(p) >>> 0);
119
- },
120
- buildMemory(builder, pages, chunks) {
121
- // assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
122
- builder = __retain(__lowerInternref(builder) || __notnull());
123
- pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
124
- chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
125
- try {
126
- return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
127
- } finally {
128
- __release(builder);
129
- __release(pages);
130
- }
131
- },
132
- vmInit(input, useSbrkGas) {
133
- // assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
134
- input = __lowerInternref(input) || __notnull();
135
- useSbrkGas = useSbrkGas ? 1 : 0;
136
- exports.__setArgumentsLength(arguments.length);
137
- return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
138
- },
139
- vmRunOnce(input, options) {
140
- // assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, assembly/api-types/VmRunOptions) => assembly/api-types/VmOutput
141
- input = __retain(__lowerInternref(input) || __notnull());
142
- options = __lowerRecord50(options) || __notnull();
143
- try {
144
- return __liftRecord51(exports.vmRunOnce(input, options) >>> 0);
145
- } finally {
146
- __release(input);
147
- }
148
- },
149
- vmExecute(int, logs) {
150
- // assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
151
- int = __lowerInternref(int) || __notnull();
152
- logs = logs ? 1 : 0;
153
- exports.__setArgumentsLength(arguments.length);
154
- exports.vmExecute(int, logs);
155
- },
156
- vmDestroy(int, dumpMemory) {
157
- // assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
158
- int = __lowerInternref(int) || __notnull();
159
- dumpMemory = dumpMemory ? 1 : 0;
160
- exports.__setArgumentsLength(arguments.length);
161
- return __liftRecord51(exports.vmDestroy(int, dumpMemory) >>> 0);
162
- },
163
125
  InputKind: (values => (
164
126
  // assembly/api-utils/InputKind
165
127
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -174,21 +136,21 @@ async function instantiate(module, imports = {}) {
174
136
  ))({}),
175
137
  getGasCosts(input, kind, withMetadata) {
176
138
  // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
177
- input = __lowerArray(__setU8, 6, 0, input) || __notnull();
178
- return __liftArray(pointer => __liftRecord56(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
139
+ input = __lowerArray(__setU8, 7, 0, input) || __notnull();
140
+ return __liftArray(pointer => __liftRecord53(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
179
141
  },
180
142
  disassemble(input, kind, withMetadata) {
181
143
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
182
- input = __lowerArray(__setU8, 6, 0, input) || __notnull();
144
+ input = __lowerArray(__setU8, 7, 0, input) || __notnull();
183
145
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
184
146
  },
185
147
  prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
186
148
  // assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>, ~lib/array/Array<u8>, u32) => assembly/spi/StandardProgram
187
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
188
- initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
189
- initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
190
- initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
191
- args = __lowerArray(__setU8, 6, 0, args) || __notnull();
149
+ program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
150
+ initialRegisters = __retain(__lowerArray(__setU64, 55, 3, initialRegisters) || __notnull());
151
+ initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord49(value) || __notnull()); }, 50, 2, initialPageMap) || __notnull());
152
+ initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord51(value) || __notnull()); }, 52, 2, initialMemory) || __notnull());
153
+ args = __lowerArray(__setU8, 7, 0, args) || __notnull();
192
154
  try {
193
155
  return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
194
156
  } finally {
@@ -206,7 +168,7 @@ async function instantiate(module, imports = {}) {
206
168
  useSbrkGas = useSbrkGas ? 1 : 0;
207
169
  dumpMemory = dumpMemory ? 1 : 0;
208
170
  exports.__setArgumentsLength(arguments.length);
209
- return __liftRecord51(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
171
+ return __liftRecord58(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
210
172
  },
211
173
  pvmStart(program, useSbrkGas) {
212
174
  // assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
@@ -217,11 +179,11 @@ async function instantiate(module, imports = {}) {
217
179
  },
218
180
  pvmDestroy(pvmId) {
219
181
  // assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
220
- return __liftRecord51(exports.pvmDestroy(pvmId) >>> 0);
182
+ return __liftRecord58(exports.pvmDestroy(pvmId) >>> 0);
221
183
  },
222
184
  pvmSetRegisters(pvmId, registers) {
223
185
  // assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
224
- registers = __lowerArray(__setU64, 52, 3, registers) || __notnull();
186
+ registers = __lowerArray(__setU64, 55, 3, registers) || __notnull();
225
187
  exports.pvmSetRegisters(pvmId, registers);
226
188
  },
227
189
  pvmReadMemory(pvmId, address, length) {
@@ -234,7 +196,7 @@ async function instantiate(module, imports = {}) {
234
196
  },
235
197
  pvmWriteMemory(pvmId, address, data) {
236
198
  // assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
237
- data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
199
+ data = __lowerTypedArray(Uint8Array, 12, 0, data) || __notnull();
238
200
  return exports.pvmWriteMemory(pvmId, address, data) != 0;
239
201
  },
240
202
  pvmResume(pvmId, gas, pc, logs) {
@@ -242,47 +204,40 @@ async function instantiate(module, imports = {}) {
242
204
  gas = gas || 0n;
243
205
  logs = logs ? 1 : 0;
244
206
  exports.__setArgumentsLength(arguments.length);
245
- return __liftRecord60(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
246
- },
247
- wrapAsProgram(bytecode) {
248
- // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
249
- bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
250
- return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
207
+ return __liftRecord64(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
251
208
  },
252
209
  }, exports);
253
- function __lowerRecord44(value) {
210
+ function __liftRecord53(pointer) {
211
+ // assembly/gas-costs/BlockGasCost
212
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
213
+ if (!pointer) return null;
214
+ return {
215
+ pc: __getU32(pointer + 0),
216
+ gas: __getU64(pointer + 8),
217
+ };
218
+ }
219
+ function __lowerRecord49(value) {
254
220
  // assembly/api-types/InitialPage
255
221
  // Hint: Opt-out from lowering as a record by providing an empty constructor
256
222
  if (value == null) return 0;
257
- const pointer = exports.__pin(exports.__new(12, 44));
223
+ const pointer = exports.__pin(exports.__new(12, 49));
258
224
  __setU32(pointer + 0, value.address);
259
225
  __setU32(pointer + 4, value.length);
260
226
  __setU32(pointer + 8, value.access);
261
227
  exports.__unpin(pointer);
262
228
  return pointer;
263
229
  }
264
- function __lowerRecord46(value) {
230
+ function __lowerRecord51(value) {
265
231
  // assembly/api-types/InitialChunk
266
232
  // Hint: Opt-out from lowering as a record by providing an empty constructor
267
233
  if (value == null) return 0;
268
- const pointer = exports.__pin(exports.__new(8, 46));
234
+ const pointer = exports.__pin(exports.__new(8, 51));
269
235
  __setU32(pointer + 0, value.address);
270
- __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
236
+ __setU32(pointer + 4, __lowerArray(__setU8, 7, 0, value.data) || __notnull());
271
237
  exports.__unpin(pointer);
272
238
  return pointer;
273
239
  }
274
- function __lowerRecord50(value) {
275
- // assembly/api-types/VmRunOptions
276
- // Hint: Opt-out from lowering as a record by providing an empty constructor
277
- if (value == null) return 0;
278
- const pointer = exports.__pin(exports.__new(3, 50));
279
- __setU8(pointer + 0, value.useSbrkGas ? 1 : 0);
280
- __setU8(pointer + 1, value.logs ? 1 : 0);
281
- __setU8(pointer + 2, value.dumpMemory ? 1 : 0);
282
- exports.__unpin(pointer);
283
- return pointer;
284
- }
285
- function __liftRecord46(pointer) {
240
+ function __liftRecord51(pointer) {
286
241
  // assembly/api-types/InitialChunk
287
242
  // Hint: Opt-out from lifting as a record by providing an empty constructor
288
243
  if (!pointer) return null;
@@ -291,7 +246,7 @@ async function instantiate(module, imports = {}) {
291
246
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
292
247
  };
293
248
  }
294
- function __liftRecord51(pointer) {
249
+ function __liftRecord58(pointer) {
295
250
  // assembly/api-types/VmOutput
296
251
  // Hint: Opt-out from lifting as a record by providing an empty constructor
297
252
  if (!pointer) return null;
@@ -302,19 +257,10 @@ async function instantiate(module, imports = {}) {
302
257
  gas: __getI64(pointer + 16),
303
258
  result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
304
259
  registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
305
- memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
260
+ memory: __liftArray(pointer => __liftRecord51(__getU32(pointer)), 2, __getU32(pointer + 32)),
306
261
  };
307
262
  }
308
- function __liftRecord56(pointer) {
309
- // assembly/gas-costs/BlockGasCost
310
- // Hint: Opt-out from lifting as a record by providing an empty constructor
311
- if (!pointer) return null;
312
- return {
313
- pc: __getU32(pointer + 0),
314
- gas: __getU64(pointer + 8),
315
- };
316
- }
317
- function __liftRecord60(pointer) {
263
+ function __liftRecord64(pointer) {
318
264
  // assembly/api-types/VmPause
319
265
  // Hint: Opt-out from lifting as a record by providing an empty constructor
320
266
  if (!pointer) return null;
@@ -485,6 +431,8 @@ async function instantiate(module, imports = {}) {
485
431
  }
486
432
  export const {
487
433
  memory,
434
+ getAssembly,
435
+ wrapAsProgram,
488
436
  resetJAM,
489
437
  resetGeneric,
490
438
  resetGenericWithMemory,
@@ -502,12 +450,6 @@ export const {
502
450
  getPagePointer,
503
451
  getMemory,
504
452
  setMemory,
505
- getAssembly,
506
- buildMemory,
507
- vmInit,
508
- vmRunOnce,
509
- vmExecute,
510
- vmDestroy,
511
453
  InputKind,
512
454
  HasMetadata,
513
455
  getGasCosts,
@@ -521,7 +463,6 @@ export const {
521
463
  pvmGetPagePointer,
522
464
  pvmWriteMemory,
523
465
  pvmResume,
524
- wrapAsProgram,
525
466
  } = await (async url => instantiate(
526
467
  await (async () => {
527
468
  const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
Binary file
@@ -0,0 +1,55 @@
1
+ import { Gas } from "./gas";
2
+ export declare function resetJAM(program: u8[], pc: u32, initialGas: Gas, args: u8[], hasMetadata?: boolean): void;
3
+ export declare function resetGeneric(program: u8[], flatRegisters: u8[], initialGas: Gas, hasMetadata?: boolean): void;
4
+ export declare function resetGenericWithMemory(program: u8[], flatRegisters: u8[], pageMap: Uint8Array, chunks: Uint8Array, initialGas: Gas, hasMetadata?: boolean): void;
5
+ export declare function nextStep(): boolean;
6
+ export declare function nSteps(steps: u32): boolean;
7
+ export declare function getProgramCounter(): u32;
8
+ export declare function setNextProgramCounter(pc: u32): void;
9
+ export declare function getStatus(): u8;
10
+ export declare function getExitArg(): u32;
11
+ export declare function getGasLeft(): i64;
12
+ export declare function setGasLeft(gas: i64): void;
13
+ export declare function getRegisters(): Uint8Array;
14
+ export declare function setRegisters(flatRegisters: u8[]): void;
15
+ export declare function getPageDump(index: u32): Uint8Array;
16
+ /**
17
+ * Returns the WASM linear memory pointer (byte offset) for the backing buffer of the page at `page`.
18
+ *
19
+ * Returns `0` if the page does not exist or is not readable (page/access fault).
20
+ *
21
+ * Use this instead of `getMemory` to read memory efficiently from the JS side:
22
+ * ```ts
23
+ * let pagesRead = 0;
24
+ * for (let address = start; address < end; address += PAGE_SIZE) {
25
+ * const page = address >> PAGE_SIZE_SHIFT;
26
+ * const ptr = getPagePointer(page);
27
+ * if (ptr === 0) {
28
+ * throw new Error(`Page fault at ${page << PAGE_SIZE_SHIFT}`);
29
+ * }
30
+ * destination.set(
31
+ * new Uint8Array(wasm.instance.exports.memory.buffer, ptr, Math.min(end - address, PAGE_SIZE)),
32
+ * pagesRead << PAGE_SIZE_SHIFT,
33
+ * );
34
+ * pagesRead += 1;
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function getPagePointer(page: u32): usize;
39
+ /**
40
+ * Read a chunk of memory at `[address, address + length)`.
41
+ *
42
+ * Returns the requested memory chunk or `null` if reading triggered a page fault.
43
+ *
44
+ * @deprecated Getting memory like that is extremely inefficient (copying mulitple times)
45
+ * and error prone (we may not be able to allocate).
46
+ * Use `getPagePointer` instead to read memory directly from WASM linear memory on the JS side
47
+ * with no additional WASM-side allocations.
48
+ */
49
+ export declare function getMemory(address: u32, length: u32): Uint8Array | null;
50
+ /**
51
+ * Write given `data` under memory indices `[address, address + data.length)`.
52
+ *
53
+ * Returns `true` if the write was successful and `false` if page fault has been triggered.
54
+ */
55
+ export declare function setMemory(address: u32, data: Uint8Array): boolean;