@fluffylabs/anan-as 1.1.5 → 1.1.6-38dddc8

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 (64) hide show
  1. package/README.md +107 -12
  2. package/dist/bin/build-inline.js +70 -0
  3. package/dist/bin/index.js +293 -0
  4. package/dist/bin/src/fuzz.js +155 -0
  5. package/dist/bin/src/log-host-call.js +41 -0
  6. package/dist/bin/src/test-json.js +135 -0
  7. package/dist/bin/src/trace-parse.js +315 -0
  8. package/dist/bin/src/trace-replay.js +130 -0
  9. package/dist/bin/src/tracer.js +64 -0
  10. package/dist/bin/src/utils.js +25 -0
  11. package/dist/bin/test.js +1 -0
  12. package/dist/build/compiler-inline.d.ts +11 -0
  13. package/dist/build/compiler-inline.js +22 -0
  14. package/dist/build/compiler.d.ts +26 -0
  15. package/dist/build/compiler.js +76 -0
  16. package/dist/build/compiler.wasm +0 -0
  17. package/{build → dist/build}/debug-inline.d.ts +1 -1
  18. package/dist/build/debug-inline.js +22 -0
  19. package/{build → dist/build}/debug-raw-inline.d.ts +1 -1
  20. package/dist/build/debug-raw-inline.js +22 -0
  21. package/{build → dist/build}/debug-raw.d.ts +155 -37
  22. package/{build → dist/build}/debug-raw.js +128 -41
  23. package/dist/build/debug-raw.wasm +0 -0
  24. package/{build → dist/build}/debug.d.ts +155 -37
  25. package/{build → dist/build}/debug.js +141 -43
  26. package/dist/build/debug.wasm +0 -0
  27. package/{build → dist/build}/release-inline.d.ts +1 -1
  28. package/dist/build/release-inline.js +22 -0
  29. package/{build → dist/build}/release-mini-inline.d.ts +1 -1
  30. package/dist/build/release-mini-inline.js +22 -0
  31. package/{build → dist/build}/release-mini.d.ts +155 -37
  32. package/{build → dist/build}/release-mini.js +141 -43
  33. package/dist/build/release-mini.wasm +0 -0
  34. package/{build → dist/build}/release-stub-inline.d.ts +1 -1
  35. package/dist/build/release-stub-inline.js +22 -0
  36. package/{build → dist/build}/release-stub.d.ts +155 -37
  37. package/{build → dist/build}/release-stub.js +141 -43
  38. package/dist/build/release-stub.wasm +0 -0
  39. package/{build → dist/build}/release.d.ts +155 -37
  40. package/{build → dist/build}/release.js +141 -43
  41. package/dist/build/release.wasm +0 -0
  42. package/{build → dist/build}/test-inline.d.ts +1 -1
  43. package/dist/build/test-inline.js +22 -0
  44. package/dist/build/test.wasm +0 -0
  45. package/dist/test/test-as.js +3 -0
  46. package/dist/test/test-gas-cost.js +57 -0
  47. package/dist/test/test-trace-replay.js +19 -0
  48. package/dist/test/test-w3f.js +121 -0
  49. package/dist/web/bump-version.js +7 -0
  50. package/package.json +47 -36
  51. package/build/debug-inline.js +0 -22
  52. package/build/debug-raw-inline.js +0 -22
  53. package/build/debug-raw.wasm +0 -0
  54. package/build/debug.wasm +0 -0
  55. package/build/release-inline.js +0 -22
  56. package/build/release-mini-inline.js +0 -22
  57. package/build/release-mini.wasm +0 -0
  58. package/build/release-stub-inline.js +0 -22
  59. package/build/release-stub.wasm +0 -0
  60. package/build/release.wasm +0 -0
  61. package/build/test-inline.js +0 -22
  62. package/build/test.wasm +0 -0
  63. /package/{build → dist/build}/test.d.ts +0 -0
  64. /package/{build → dist/build}/test.js +0 -0
@@ -1,21 +1,9 @@
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: __Internref26): 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;
15
3
  /**
16
4
  * assembly/api-debugger/resetJAM
17
5
  * @param program `~lib/array/Array<u8>`
18
- * @param pc `f64`
6
+ * @param pc `u32`
19
7
  * @param initialGas `i64`
20
8
  * @param args `~lib/array/Array<u8>`
21
9
  * @param hasMetadata `bool`
@@ -110,6 +98,48 @@ export declare function getMemory(address: number, length: number): Uint8Array |
110
98
  * @returns `bool`
111
99
  */
112
100
  export declare function setMemory(address: number, data: Uint8Array): boolean;
101
+ /**
102
+ * assembly/api-internal/getAssembly
103
+ * @param p `assembly/program/Program`
104
+ * @returns `~lib/string/String`
105
+ */
106
+ export declare function getAssembly(p: __Internref26): string;
107
+ /**
108
+ * assembly/api-internal/buildMemory
109
+ * @param builder `assembly/memory/MemoryBuilder`
110
+ * @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
111
+ * @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
112
+ * @returns `assembly/memory/Memory`
113
+ */
114
+ export declare function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
115
+ /**
116
+ * assembly/api-internal/vmInit
117
+ * @param input `assembly/api-types/VmInput`
118
+ * @param useSbrkGas `bool`
119
+ * @returns `assembly/interpreter/Interpreter`
120
+ */
121
+ export declare function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
122
+ /**
123
+ * assembly/api-internal/vmRunOnce
124
+ * @param input `assembly/api-types/VmInput`
125
+ * @param logs `bool`
126
+ * @param useSbrkGas `bool`
127
+ * @returns `assembly/api-types/VmOutput`
128
+ */
129
+ export declare function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
130
+ /**
131
+ * assembly/api-internal/vmExecute
132
+ * @param int `assembly/interpreter/Interpreter`
133
+ * @param logs `bool`
134
+ */
135
+ export declare function vmExecute(int: __Internref25, logs?: boolean): void;
136
+ /**
137
+ * assembly/api-internal/vmDestroy
138
+ * @param int `assembly/interpreter/Interpreter`
139
+ * @param dumpMemory `bool`
140
+ * @returns `assembly/api-types/VmOutput`
141
+ */
142
+ export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
113
143
  /** assembly/api-utils/InputKind */
114
144
  export declare enum InputKind {
115
145
  /** @type `i32` */
@@ -131,7 +161,7 @@ export declare enum HasMetadata {
131
161
  * @param withMetadata `i32`
132
162
  * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
133
163
  */
134
- export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record50<never>>;
164
+ export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
135
165
  /**
136
166
  * assembly/api-utils/disassemble
137
167
  * @param input `~lib/array/Array<u8>`
@@ -146,12 +176,13 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
146
176
  * @param hasMetadata `i32`
147
177
  * @param program `~lib/array/Array<u8>`
148
178
  * @param initialRegisters `~lib/array/Array<u64>`
149
- * @param initialPageMap `~lib/array/Array<assembly/api-internal/InitialPage>`
150
- * @param initialMemory `~lib/array/Array<assembly/api-internal/InitialChunk>`
179
+ * @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
180
+ * @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
151
181
  * @param args `~lib/array/Array<u8>`
182
+ * @param preallocateMemoryPages `u32`
152
183
  * @returns `assembly/spi/StandardProgram`
153
184
  */
154
- export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record46<undefined>>, initialMemory: Array<__Record48<undefined>>, args: Array<number>): __Internref42;
185
+ 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;
155
186
  /**
156
187
  * assembly/api-utils/runProgram
157
188
  * @param program `assembly/spi/StandardProgram`
@@ -159,23 +190,71 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
159
190
  * @param programCounter `u32`
160
191
  * @param logs `bool`
161
192
  * @param useSbrkGas `bool`
162
- * @returns `assembly/api-internal/VmOutput`
193
+ * @returns `assembly/api-types/VmOutput`
194
+ */
195
+ export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
196
+ /**
197
+ * assembly/api-utils/pvmStart
198
+ * @param program `assembly/spi/StandardProgram`
199
+ * @param useSbrkGas `bool`
200
+ * @returns `u32`
201
+ */
202
+ export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
203
+ /**
204
+ * assembly/api-utils/pvmDestroy
205
+ * @param pvmId `u32`
206
+ * @returns `assembly/api-types/VmOutput | null`
207
+ */
208
+ export declare function pvmDestroy(pvmId: number): __Record50<never> | null;
209
+ /**
210
+ * assembly/api-utils/pvmSetRegisters
211
+ * @param pvmId `u32`
212
+ * @param registers `~lib/array/Array<u64>`
213
+ */
214
+ export declare function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
215
+ /**
216
+ * assembly/api-utils/pvmReadMemory
217
+ * @param pvmId `u32`
218
+ * @param address `u32`
219
+ * @param length `u32`
220
+ * @returns `~lib/typedarray/Uint8Array | null`
221
+ */
222
+ export declare function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
223
+ /**
224
+ * assembly/api-utils/pvmWriteMemory
225
+ * @param pvmId `u32`
226
+ * @param address `u32`
227
+ * @param data `~lib/typedarray/Uint8Array`
228
+ * @returns `bool`
163
229
  */
164
- export declare function runProgram(program: __Internref42, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record55<never>;
230
+ export declare function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
231
+ /**
232
+ * assembly/api-utils/pvmResume
233
+ * @param pvmId `u32`
234
+ * @param gas `i64`
235
+ * @param pc `u32`
236
+ * @param logs `bool`
237
+ * @returns `assembly/api-types/VmPause | null`
238
+ */
239
+ export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
240
+ /**
241
+ * assembly/program-build/wrapAsProgram
242
+ * @param bytecode `~lib/typedarray/Uint8Array`
243
+ * @returns `~lib/typedarray/Uint8Array`
244
+ */
245
+ export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
165
246
  /** assembly/program/Program */
166
247
  declare class __Internref26 extends Number {
167
248
  private __nominal26: symbol;
168
249
  private __nominal0: symbol;
169
250
  }
170
- /** assembly/gas-costs/BlockGasCost */
171
- declare interface __Record50<TOmittable> {
172
- /** @type `u32` */
173
- pc: number | TOmittable;
174
- /** @type `u64` */
175
- gas: bigint | TOmittable;
251
+ /** assembly/memory/MemoryBuilder */
252
+ declare class __Internref41 extends Number {
253
+ private __nominal41: symbol;
254
+ private __nominal0: symbol;
176
255
  }
177
- /** assembly/api-internal/InitialPage */
178
- declare interface __Record46<TOmittable> {
256
+ /** assembly/api-types/InitialPage */
257
+ declare interface __Record44<TOmittable> {
179
258
  /** @type `u32` */
180
259
  address: number | TOmittable;
181
260
  /** @type `u32` */
@@ -183,30 +262,69 @@ declare interface __Record46<TOmittable> {
183
262
  /** @type `i32` */
184
263
  access: number | TOmittable;
185
264
  }
186
- /** assembly/api-internal/InitialChunk */
187
- declare interface __Record48<TOmittable> {
265
+ /** assembly/api-types/InitialChunk */
266
+ declare interface __Record46<TOmittable> {
188
267
  /** @type `u32` */
189
268
  address: number | TOmittable;
190
269
  /** @type `~lib/array/Array<u8>` */
191
270
  data: Array<number>;
192
271
  }
193
- /** assembly/spi/StandardProgram */
194
- declare class __Internref42 extends Number {
195
- private __nominal42: symbol;
272
+ /** assembly/memory/Memory */
273
+ declare class __Internref15 extends Number {
274
+ private __nominal15: symbol;
196
275
  private __nominal0: symbol;
197
276
  }
198
- /** assembly/api-internal/VmOutput */
199
- declare interface __Record55<TOmittable> {
277
+ /** assembly/api-types/VmInput */
278
+ declare class __Internref49 extends Number {
279
+ private __nominal49: symbol;
280
+ private __nominal0: symbol;
281
+ }
282
+ /** assembly/interpreter/Interpreter */
283
+ declare class __Internref25 extends Number {
284
+ private __nominal25: symbol;
285
+ private __nominal0: symbol;
286
+ }
287
+ /** assembly/api-types/VmOutput */
288
+ declare interface __Record50<TOmittable> {
200
289
  /** @type `i32` */
201
290
  status: number | TOmittable;
291
+ /** @type `u32` */
292
+ exitCode: number | TOmittable;
293
+ /** @type `u32` */
294
+ pc: number | TOmittable;
295
+ /** @type `i64` */
296
+ gas: bigint | TOmittable;
297
+ /** @type `~lib/array/Array<u8>` */
298
+ result: Array<number>;
202
299
  /** @type `~lib/array/Array<u64>` */
203
300
  registers: Array<bigint>;
301
+ /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
302
+ memory: Array<__Record46<never>>;
303
+ }
304
+ /** assembly/gas-costs/BlockGasCost */
305
+ declare interface __Record55<TOmittable> {
204
306
  /** @type `u32` */
205
307
  pc: number | TOmittable;
206
- /** @type `~lib/array/Array<assembly/api-internal/InitialChunk>` */
207
- memory: Array<__Record48<never>>;
208
- /** @type `i64` */
308
+ /** @type `u64` */
209
309
  gas: bigint | TOmittable;
310
+ }
311
+ /** assembly/spi/StandardProgram */
312
+ declare class __Internref40 extends Number {
313
+ private __nominal40: symbol;
314
+ private __nominal0: symbol;
315
+ }
316
+ /** assembly/api-types/VmPause */
317
+ declare interface __Record59<TOmittable> {
318
+ /** @type `i32` */
319
+ status: number | TOmittable;
210
320
  /** @type `u32` */
211
321
  exitCode: number | TOmittable;
322
+ /** @type `u32` */
323
+ pc: number | TOmittable;
324
+ /** @type `u32` */
325
+ nextPc: number | TOmittable;
326
+ /** @type `i64` */
327
+ gas: bigint | TOmittable;
328
+ /** @type `~lib/array/Array<u64>` */
329
+ registers: Array<bigint>;
212
330
  }
@@ -22,18 +22,8 @@ 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, 10, 0, bytecode) || __notnull();
33
- return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
34
- },
35
25
  resetJAM(program, pc, initialGas, args, hasMetadata) {
36
- // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, f64, i64, ~lib/array/Array<u8>, bool?) => void
26
+ // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, i64, ~lib/array/Array<u8>, bool?) => void
37
27
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
38
28
  initialGas = initialGas || 0n;
39
29
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
@@ -118,6 +108,52 @@ async function instantiate(module, imports = {}) {
118
108
  data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
119
109
  return exports.setMemory(address, data) != 0;
120
110
  },
111
+ getAssembly(p) {
112
+ // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
113
+ p = __lowerInternref(p) || __notnull();
114
+ return __liftString(exports.getAssembly(p) >>> 0);
115
+ },
116
+ buildMemory(builder, pages, chunks) {
117
+ // assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
118
+ builder = __retain(__lowerInternref(builder) || __notnull());
119
+ pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
120
+ chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
121
+ try {
122
+ return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
123
+ } finally {
124
+ __release(builder);
125
+ __release(pages);
126
+ }
127
+ },
128
+ vmInit(input, useSbrkGas) {
129
+ // assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
130
+ input = __lowerInternref(input) || __notnull();
131
+ useSbrkGas = useSbrkGas ? 1 : 0;
132
+ exports.__setArgumentsLength(arguments.length);
133
+ return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
134
+ },
135
+ vmRunOnce(input, logs, useSbrkGas) {
136
+ // assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, bool?, bool?) => assembly/api-types/VmOutput
137
+ input = __lowerInternref(input) || __notnull();
138
+ logs = logs ? 1 : 0;
139
+ useSbrkGas = useSbrkGas ? 1 : 0;
140
+ exports.__setArgumentsLength(arguments.length);
141
+ return __liftRecord50(exports.vmRunOnce(input, logs, useSbrkGas) >>> 0);
142
+ },
143
+ vmExecute(int, logs) {
144
+ // assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
145
+ int = __lowerInternref(int) || __notnull();
146
+ logs = logs ? 1 : 0;
147
+ exports.__setArgumentsLength(arguments.length);
148
+ exports.vmExecute(int, logs);
149
+ },
150
+ vmDestroy(int, dumpMemory) {
151
+ // assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
152
+ int = __lowerInternref(int) || __notnull();
153
+ dumpMemory = dumpMemory ? 1 : 0;
154
+ exports.__setArgumentsLength(arguments.length);
155
+ return __liftRecord50(exports.vmDestroy(int, dumpMemory) >>> 0);
156
+ },
121
157
  InputKind: (values => (
122
158
  // assembly/api-utils/InputKind
123
159
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -133,22 +169,22 @@ async function instantiate(module, imports = {}) {
133
169
  getGasCosts(input, kind, withMetadata) {
134
170
  // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
135
171
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
136
- return __liftArray(pointer => __liftRecord50(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
172
+ return __liftArray(pointer => __liftRecord55(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
137
173
  },
138
174
  disassemble(input, kind, withMetadata) {
139
175
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
140
176
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
141
177
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
142
178
  },
143
- prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) {
144
- // assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-internal/InitialPage>, ~lib/array/Array<assembly/api-internal/InitialChunk>, ~lib/array/Array<u8>) => assembly/spi/StandardProgram
179
+ prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
180
+ // 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
145
181
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
146
- initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
147
- initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialPageMap) || __notnull());
148
- initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord48(value) || __notnull()); }, 49, 2, initialMemory) || __notnull());
182
+ initialRegisters = __retain(__lowerArray(__setU64, 51, 3, initialRegisters) || __notnull());
183
+ initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
184
+ initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
149
185
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
150
186
  try {
151
- return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
187
+ return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
152
188
  } finally {
153
189
  __release(program);
154
190
  __release(initialRegisters);
@@ -157,47 +193,75 @@ async function instantiate(module, imports = {}) {
157
193
  }
158
194
  },
159
195
  runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
160
- // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-internal/VmOutput
196
+ // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-types/VmOutput
161
197
  program = __lowerInternref(program) || __notnull();
162
198
  initialGas = initialGas || 0n;
163
199
  logs = logs ? 1 : 0;
164
200
  useSbrkGas = useSbrkGas ? 1 : 0;
165
201
  exports.__setArgumentsLength(arguments.length);
166
- return __liftRecord55(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
202
+ return __liftRecord50(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
203
+ },
204
+ pvmStart(program, useSbrkGas) {
205
+ // assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
206
+ program = __lowerInternref(program) || __notnull();
207
+ useSbrkGas = useSbrkGas ? 1 : 0;
208
+ exports.__setArgumentsLength(arguments.length);
209
+ return exports.pvmStart(program, useSbrkGas) >>> 0;
210
+ },
211
+ pvmDestroy(pvmId) {
212
+ // assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
213
+ return __liftRecord50(exports.pvmDestroy(pvmId) >>> 0);
214
+ },
215
+ pvmSetRegisters(pvmId, registers) {
216
+ // assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
217
+ registers = __lowerArray(__setU64, 51, 3, registers) || __notnull();
218
+ exports.pvmSetRegisters(pvmId, registers);
219
+ },
220
+ pvmReadMemory(pvmId, address, length) {
221
+ // assembly/api-utils/pvmReadMemory(u32, u32, u32) => ~lib/typedarray/Uint8Array | null
222
+ return __liftTypedArray(Uint8Array, exports.pvmReadMemory(pvmId, address, length) >>> 0);
223
+ },
224
+ pvmWriteMemory(pvmId, address, data) {
225
+ // assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
226
+ data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
227
+ return exports.pvmWriteMemory(pvmId, address, data) != 0;
228
+ },
229
+ pvmResume(pvmId, gas, pc, logs) {
230
+ // assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
231
+ gas = gas || 0n;
232
+ logs = logs ? 1 : 0;
233
+ exports.__setArgumentsLength(arguments.length);
234
+ return __liftRecord59(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
235
+ },
236
+ wrapAsProgram(bytecode) {
237
+ // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
238
+ bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
239
+ return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
167
240
  },
168
241
  }, exports);
169
- function __liftRecord50(pointer) {
170
- // assembly/gas-costs/BlockGasCost
171
- // Hint: Opt-out from lifting as a record by providing an empty constructor
172
- if (!pointer) return null;
173
- return {
174
- pc: __getU32(pointer + 0),
175
- gas: __getU64(pointer + 8),
176
- };
177
- }
178
- function __lowerRecord46(value) {
179
- // assembly/api-internal/InitialPage
242
+ function __lowerRecord44(value) {
243
+ // assembly/api-types/InitialPage
180
244
  // Hint: Opt-out from lowering as a record by providing an empty constructor
181
245
  if (value == null) return 0;
182
- const pointer = exports.__pin(exports.__new(12, 46));
246
+ const pointer = exports.__pin(exports.__new(12, 44));
183
247
  __setU32(pointer + 0, value.address);
184
248
  __setU32(pointer + 4, value.length);
185
249
  __setU32(pointer + 8, value.access);
186
250
  exports.__unpin(pointer);
187
251
  return pointer;
188
252
  }
189
- function __lowerRecord48(value) {
190
- // assembly/api-internal/InitialChunk
253
+ function __lowerRecord46(value) {
254
+ // assembly/api-types/InitialChunk
191
255
  // Hint: Opt-out from lowering as a record by providing an empty constructor
192
256
  if (value == null) return 0;
193
- const pointer = exports.__pin(exports.__new(8, 48));
257
+ const pointer = exports.__pin(exports.__new(8, 46));
194
258
  __setU32(pointer + 0, value.address);
195
259
  __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
196
260
  exports.__unpin(pointer);
197
261
  return pointer;
198
262
  }
199
- function __liftRecord48(pointer) {
200
- // assembly/api-internal/InitialChunk
263
+ function __liftRecord46(pointer) {
264
+ // assembly/api-types/InitialChunk
201
265
  // Hint: Opt-out from lifting as a record by providing an empty constructor
202
266
  if (!pointer) return null;
203
267
  return {
@@ -205,17 +269,40 @@ async function instantiate(module, imports = {}) {
205
269
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
206
270
  };
207
271
  }
272
+ function __liftRecord50(pointer) {
273
+ // assembly/api-types/VmOutput
274
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
275
+ if (!pointer) return null;
276
+ return {
277
+ status: __getI32(pointer + 0),
278
+ exitCode: __getU32(pointer + 4),
279
+ pc: __getU32(pointer + 8),
280
+ gas: __getI64(pointer + 16),
281
+ result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
282
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
283
+ memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
284
+ };
285
+ }
208
286
  function __liftRecord55(pointer) {
209
- // assembly/api-internal/VmOutput
287
+ // assembly/gas-costs/BlockGasCost
288
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
289
+ if (!pointer) return null;
290
+ return {
291
+ pc: __getU32(pointer + 0),
292
+ gas: __getU64(pointer + 8),
293
+ };
294
+ }
295
+ function __liftRecord59(pointer) {
296
+ // assembly/api-types/VmPause
210
297
  // Hint: Opt-out from lifting as a record by providing an empty constructor
211
298
  if (!pointer) return null;
212
299
  return {
213
300
  status: __getI32(pointer + 0),
214
- registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 4)),
301
+ exitCode: __getU32(pointer + 4),
215
302
  pc: __getU32(pointer + 8),
216
- memory: __liftArray(pointer => __liftRecord48(__getU32(pointer)), 2, __getU32(pointer + 12)),
303
+ nextPc: __getU32(pointer + 12),
217
304
  gas: __getI64(pointer + 16),
218
- exitCode: __getU32(pointer + 24),
305
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
219
306
  };
220
307
  }
221
308
  function __liftString(pointer) {
@@ -376,8 +463,6 @@ async function instantiate(module, imports = {}) {
376
463
  }
377
464
  export const {
378
465
  memory,
379
- getAssembly,
380
- wrapAsProgram,
381
466
  resetJAM,
382
467
  resetGeneric,
383
468
  resetGenericWithMemory,
@@ -394,12 +479,25 @@ export const {
394
479
  getPageDump,
395
480
  getMemory,
396
481
  setMemory,
482
+ getAssembly,
483
+ buildMemory,
484
+ vmInit,
485
+ vmRunOnce,
486
+ vmExecute,
487
+ vmDestroy,
397
488
  InputKind,
398
489
  HasMetadata,
399
490
  getGasCosts,
400
491
  disassemble,
401
492
  prepareProgram,
402
493
  runProgram,
494
+ pvmStart,
495
+ pvmDestroy,
496
+ pvmSetRegisters,
497
+ pvmReadMemory,
498
+ pvmWriteMemory,
499
+ pvmResume,
500
+ wrapAsProgram,
403
501
  } = await (async url => instantiate(
404
502
  await (async () => {
405
503
  const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
Binary file
@@ -1,6 +1,6 @@
1
1
  // Auto-generated type definitions for inline WASM module
2
2
  // Target: release
3
- // Source: build/release.wasm
3
+ // Source: dist/build/release.wasm
4
4
 
5
5
  import {__AdaptedExports} from "./debug-raw.d.ts";
6
6