@fluffylabs/anan-as 1.1.5 → 1.1.6-8306b17

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 +164 -37
  22. package/{build → dist/build}/debug-raw.js +143 -42
  23. package/dist/build/debug-raw.wasm +0 -0
  24. package/{build → dist/build}/debug.d.ts +164 -37
  25. package/{build → dist/build}/debug.js +156 -44
  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 +164 -37
  32. package/{build → dist/build}/release-mini.js +156 -44
  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 +164 -37
  37. package/{build → dist/build}/release-stub.js +156 -44
  38. package/dist/build/release-stub.wasm +0 -0
  39. package/{build → dist/build}/release.d.ts +164 -37
  40. package/{build → dist/build}/release.js +156 -44
  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
@@ -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,54 @@ 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, options) {
136
+ // assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, assembly/api-types/VmRunOptions) => assembly/api-types/VmOutput
137
+ input = __retain(__lowerInternref(input) || __notnull());
138
+ options = __lowerRecord50(options) || __notnull();
139
+ try {
140
+ return __liftRecord51(exports.vmRunOnce(input, options) >>> 0);
141
+ } finally {
142
+ __release(input);
143
+ }
144
+ },
145
+ vmExecute(int, logs) {
146
+ // assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
147
+ int = __lowerInternref(int) || __notnull();
148
+ logs = logs ? 1 : 0;
149
+ exports.__setArgumentsLength(arguments.length);
150
+ exports.vmExecute(int, logs);
151
+ },
152
+ vmDestroy(int, dumpMemory) {
153
+ // assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
154
+ int = __lowerInternref(int) || __notnull();
155
+ dumpMemory = dumpMemory ? 1 : 0;
156
+ exports.__setArgumentsLength(arguments.length);
157
+ return __liftRecord51(exports.vmDestroy(int, dumpMemory) >>> 0);
158
+ },
121
159
  InputKind: (values => (
122
160
  // assembly/api-utils/InputKind
123
161
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -133,22 +171,22 @@ async function instantiate(module, imports = {}) {
133
171
  getGasCosts(input, kind, withMetadata) {
134
172
  // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
135
173
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
136
- return __liftArray(pointer => __liftRecord50(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
174
+ return __liftArray(pointer => __liftRecord56(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
137
175
  },
138
176
  disassemble(input, kind, withMetadata) {
139
177
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
140
178
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
141
179
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
142
180
  },
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
181
+ prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
182
+ // 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
183
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
146
184
  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());
185
+ initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
186
+ initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
149
187
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
150
188
  try {
151
- return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
189
+ return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
152
190
  } finally {
153
191
  __release(program);
154
192
  __release(initialRegisters);
@@ -156,48 +194,88 @@ async function instantiate(module, imports = {}) {
156
194
  __release(initialMemory);
157
195
  }
158
196
  },
159
- runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
160
- // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-internal/VmOutput
197
+ runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) {
198
+ // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?, bool?) => assembly/api-types/VmOutput
161
199
  program = __lowerInternref(program) || __notnull();
162
200
  initialGas = initialGas || 0n;
163
201
  logs = logs ? 1 : 0;
164
202
  useSbrkGas = useSbrkGas ? 1 : 0;
203
+ dumpMemory = dumpMemory ? 1 : 0;
204
+ exports.__setArgumentsLength(arguments.length);
205
+ return __liftRecord51(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
206
+ },
207
+ pvmStart(program, useSbrkGas) {
208
+ // assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
209
+ program = __lowerInternref(program) || __notnull();
210
+ useSbrkGas = useSbrkGas ? 1 : 0;
211
+ exports.__setArgumentsLength(arguments.length);
212
+ return exports.pvmStart(program, useSbrkGas) >>> 0;
213
+ },
214
+ pvmDestroy(pvmId) {
215
+ // assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
216
+ return __liftRecord51(exports.pvmDestroy(pvmId) >>> 0);
217
+ },
218
+ pvmSetRegisters(pvmId, registers) {
219
+ // assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
220
+ registers = __lowerArray(__setU64, 52, 3, registers) || __notnull();
221
+ exports.pvmSetRegisters(pvmId, registers);
222
+ },
223
+ pvmReadMemory(pvmId, address, length) {
224
+ // assembly/api-utils/pvmReadMemory(u32, u32, u32) => ~lib/typedarray/Uint8Array | null
225
+ return __liftTypedArray(Uint8Array, exports.pvmReadMemory(pvmId, address, length) >>> 0);
226
+ },
227
+ pvmWriteMemory(pvmId, address, data) {
228
+ // assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
229
+ data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
230
+ return exports.pvmWriteMemory(pvmId, address, data) != 0;
231
+ },
232
+ pvmResume(pvmId, gas, pc, logs) {
233
+ // assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
234
+ gas = gas || 0n;
235
+ logs = logs ? 1 : 0;
165
236
  exports.__setArgumentsLength(arguments.length);
166
- return __liftRecord55(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
237
+ return __liftRecord60(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
238
+ },
239
+ wrapAsProgram(bytecode) {
240
+ // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
241
+ bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
242
+ return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
167
243
  },
168
244
  }, 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
245
+ function __lowerRecord44(value) {
246
+ // assembly/api-types/InitialPage
180
247
  // Hint: Opt-out from lowering as a record by providing an empty constructor
181
248
  if (value == null) return 0;
182
- const pointer = exports.__pin(exports.__new(12, 46));
249
+ const pointer = exports.__pin(exports.__new(12, 44));
183
250
  __setU32(pointer + 0, value.address);
184
251
  __setU32(pointer + 4, value.length);
185
252
  __setU32(pointer + 8, value.access);
186
253
  exports.__unpin(pointer);
187
254
  return pointer;
188
255
  }
189
- function __lowerRecord48(value) {
190
- // assembly/api-internal/InitialChunk
256
+ function __lowerRecord46(value) {
257
+ // assembly/api-types/InitialChunk
191
258
  // Hint: Opt-out from lowering as a record by providing an empty constructor
192
259
  if (value == null) return 0;
193
- const pointer = exports.__pin(exports.__new(8, 48));
260
+ const pointer = exports.__pin(exports.__new(8, 46));
194
261
  __setU32(pointer + 0, value.address);
195
262
  __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
196
263
  exports.__unpin(pointer);
197
264
  return pointer;
198
265
  }
199
- function __liftRecord48(pointer) {
200
- // assembly/api-internal/InitialChunk
266
+ function __lowerRecord50(value) {
267
+ // assembly/api-types/VmRunOptions
268
+ // Hint: Opt-out from lowering as a record by providing an empty constructor
269
+ if (value == null) return 0;
270
+ const pointer = exports.__pin(exports.__new(3, 50));
271
+ __setU8(pointer + 0, value.useSbrkGas ? 1 : 0);
272
+ __setU8(pointer + 1, value.logs ? 1 : 0);
273
+ __setU8(pointer + 2, value.dumpMemory ? 1 : 0);
274
+ exports.__unpin(pointer);
275
+ return pointer;
276
+ }
277
+ function __liftRecord46(pointer) {
278
+ // assembly/api-types/InitialChunk
201
279
  // Hint: Opt-out from lifting as a record by providing an empty constructor
202
280
  if (!pointer) return null;
203
281
  return {
@@ -205,17 +283,40 @@ async function instantiate(module, imports = {}) {
205
283
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
206
284
  };
207
285
  }
208
- function __liftRecord55(pointer) {
209
- // assembly/api-internal/VmOutput
286
+ function __liftRecord51(pointer) {
287
+ // assembly/api-types/VmOutput
210
288
  // Hint: Opt-out from lifting as a record by providing an empty constructor
211
289
  if (!pointer) return null;
212
290
  return {
213
291
  status: __getI32(pointer + 0),
214
- registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 4)),
292
+ exitCode: __getU32(pointer + 4),
215
293
  pc: __getU32(pointer + 8),
216
- memory: __liftArray(pointer => __liftRecord48(__getU32(pointer)), 2, __getU32(pointer + 12)),
217
294
  gas: __getI64(pointer + 16),
218
- exitCode: __getU32(pointer + 24),
295
+ result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
296
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
297
+ memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
298
+ };
299
+ }
300
+ function __liftRecord56(pointer) {
301
+ // assembly/gas-costs/BlockGasCost
302
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
303
+ if (!pointer) return null;
304
+ return {
305
+ pc: __getU32(pointer + 0),
306
+ gas: __getU64(pointer + 8),
307
+ };
308
+ }
309
+ function __liftRecord60(pointer) {
310
+ // assembly/api-types/VmPause
311
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
312
+ if (!pointer) return null;
313
+ return {
314
+ status: __getI32(pointer + 0),
315
+ exitCode: __getU32(pointer + 4),
316
+ pc: __getU32(pointer + 8),
317
+ nextPc: __getU32(pointer + 12),
318
+ gas: __getI64(pointer + 16),
319
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
219
320
  };
220
321
  }
221
322
  function __liftString(pointer) {
@@ -381,8 +482,6 @@ export const {
381
482
  __unpin,
382
483
  __collect,
383
484
  __rtti_base,
384
- getAssembly,
385
- wrapAsProgram,
386
485
  resetJAM,
387
486
  resetGeneric,
388
487
  resetGenericWithMemory,
@@ -399,12 +498,25 @@ export const {
399
498
  getPageDump,
400
499
  getMemory,
401
500
  setMemory,
501
+ getAssembly,
502
+ buildMemory,
503
+ vmInit,
504
+ vmRunOnce,
505
+ vmExecute,
506
+ vmDestroy,
402
507
  InputKind,
403
508
  HasMetadata,
404
509
  getGasCosts,
405
510
  disassemble,
406
511
  prepareProgram,
407
512
  runProgram,
513
+ pvmStart,
514
+ pvmDestroy,
515
+ pvmSetRegisters,
516
+ pvmReadMemory,
517
+ pvmWriteMemory,
518
+ pvmResume,
519
+ wrapAsProgram,
408
520
  } = await (async url => instantiate(
409
521
  await (async () => {
410
522
  const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
Binary file
@@ -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,47 @@ 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 options `assembly/api-types/VmRunOptions`
126
+ * @returns `assembly/api-types/VmOutput`
127
+ */
128
+ export declare function vmRunOnce(input: __Internref49, options: __Record50<undefined>): __Record51<never>;
129
+ /**
130
+ * assembly/api-internal/vmExecute
131
+ * @param int `assembly/interpreter/Interpreter`
132
+ * @param logs `bool`
133
+ */
134
+ export declare function vmExecute(int: __Internref25, logs?: boolean): void;
135
+ /**
136
+ * assembly/api-internal/vmDestroy
137
+ * @param int `assembly/interpreter/Interpreter`
138
+ * @param dumpMemory `bool`
139
+ * @returns `assembly/api-types/VmOutput`
140
+ */
141
+ export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record51<never>;
113
142
  /** assembly/api-utils/InputKind */
114
143
  export declare enum InputKind {
115
144
  /** @type `i32` */
@@ -131,7 +160,7 @@ export declare enum HasMetadata {
131
160
  * @param withMetadata `i32`
132
161
  * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
133
162
  */
134
- export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record50<never>>;
163
+ export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record56<never>>;
135
164
  /**
136
165
  * assembly/api-utils/disassemble
137
166
  * @param input `~lib/array/Array<u8>`
@@ -146,12 +175,13 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
146
175
  * @param hasMetadata `i32`
147
176
  * @param program `~lib/array/Array<u8>`
148
177
  * @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>`
178
+ * @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
179
+ * @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
151
180
  * @param args `~lib/array/Array<u8>`
181
+ * @param preallocateMemoryPages `u32`
152
182
  * @returns `assembly/spi/StandardProgram`
153
183
  */
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;
184
+ 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
185
  /**
156
186
  * assembly/api-utils/runProgram
157
187
  * @param program `assembly/spi/StandardProgram`
@@ -159,23 +189,72 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
159
189
  * @param programCounter `u32`
160
190
  * @param logs `bool`
161
191
  * @param useSbrkGas `bool`
162
- * @returns `assembly/api-internal/VmOutput`
192
+ * @param dumpMemory `bool`
193
+ * @returns `assembly/api-types/VmOutput`
163
194
  */
164
- export declare function runProgram(program: __Internref42, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record55<never>;
195
+ export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record51<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): __Record51<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`
229
+ */
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): __Record60<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,78 @@ 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;
275
+ private __nominal0: symbol;
276
+ }
277
+ /** assembly/api-types/VmInput */
278
+ declare class __Internref49 extends Number {
279
+ private __nominal49: symbol;
196
280
  private __nominal0: symbol;
197
281
  }
198
- /** assembly/api-internal/VmOutput */
199
- declare interface __Record55<TOmittable> {
282
+ /** assembly/interpreter/Interpreter */
283
+ declare class __Internref25 extends Number {
284
+ private __nominal25: symbol;
285
+ private __nominal0: symbol;
286
+ }
287
+ /** assembly/api-types/VmRunOptions */
288
+ declare interface __Record50<TOmittable> {
289
+ /** @type `bool` */
290
+ useSbrkGas: boolean | TOmittable;
291
+ /** @type `bool` */
292
+ logs: boolean | TOmittable;
293
+ /** @type `bool` */
294
+ dumpMemory: boolean | TOmittable;
295
+ }
296
+ /** assembly/api-types/VmOutput */
297
+ declare interface __Record51<TOmittable> {
200
298
  /** @type `i32` */
201
299
  status: number | TOmittable;
300
+ /** @type `u32` */
301
+ exitCode: number | TOmittable;
302
+ /** @type `u32` */
303
+ pc: number | TOmittable;
304
+ /** @type `i64` */
305
+ gas: bigint | TOmittable;
306
+ /** @type `~lib/array/Array<u8>` */
307
+ result: Array<number>;
202
308
  /** @type `~lib/array/Array<u64>` */
203
309
  registers: Array<bigint>;
310
+ /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
311
+ memory: Array<__Record46<never>>;
312
+ }
313
+ /** assembly/gas-costs/BlockGasCost */
314
+ declare interface __Record56<TOmittable> {
204
315
  /** @type `u32` */
205
316
  pc: number | TOmittable;
206
- /** @type `~lib/array/Array<assembly/api-internal/InitialChunk>` */
207
- memory: Array<__Record48<never>>;
208
- /** @type `i64` */
317
+ /** @type `u64` */
209
318
  gas: bigint | TOmittable;
319
+ }
320
+ /** assembly/spi/StandardProgram */
321
+ declare class __Internref40 extends Number {
322
+ private __nominal40: symbol;
323
+ private __nominal0: symbol;
324
+ }
325
+ /** assembly/api-types/VmPause */
326
+ declare interface __Record60<TOmittable> {
327
+ /** @type `i32` */
328
+ status: number | TOmittable;
210
329
  /** @type `u32` */
211
330
  exitCode: number | TOmittable;
331
+ /** @type `u32` */
332
+ pc: number | TOmittable;
333
+ /** @type `u32` */
334
+ nextPc: number | TOmittable;
335
+ /** @type `i64` */
336
+ gas: bigint | TOmittable;
337
+ /** @type `~lib/array/Array<u64>` */
338
+ registers: Array<bigint>;
212
339
  }