@fluffylabs/anan-as 1.1.3-dde58f0 → 1.1.3-dffbae7

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 (39) hide show
  1. package/README.md +47 -10
  2. package/dist/bin/index.js +97 -42
  3. package/dist/bin/{fuzz.js → src/fuzz.js} +4 -21
  4. package/dist/bin/src/log-host-call.js +41 -0
  5. package/dist/bin/src/trace-parse.js +315 -0
  6. package/dist/bin/src/trace-replay.js +130 -0
  7. package/dist/bin/src/tracer.js +64 -0
  8. package/dist/bin/src/utils.js +25 -0
  9. package/dist/bin/test.js +1 -3
  10. package/dist/build/compiler-inline.js +1 -1
  11. package/dist/build/compiler.wasm +0 -0
  12. package/dist/build/debug-inline.js +1 -1
  13. package/dist/build/debug-raw-inline.js +1 -1
  14. package/dist/build/debug-raw.d.ts +121 -42
  15. package/dist/build/debug-raw.js +109 -48
  16. package/dist/build/debug-raw.wasm +0 -0
  17. package/dist/build/debug.d.ts +121 -42
  18. package/dist/build/debug.js +119 -50
  19. package/dist/build/debug.wasm +0 -0
  20. package/dist/build/release-inline.js +1 -1
  21. package/dist/build/release-mini-inline.js +1 -1
  22. package/dist/build/release-mini.d.ts +121 -42
  23. package/dist/build/release-mini.js +119 -50
  24. package/dist/build/release-mini.wasm +0 -0
  25. package/dist/build/release-stub-inline.js +1 -1
  26. package/dist/build/release-stub.d.ts +121 -42
  27. package/dist/build/release-stub.js +119 -50
  28. package/dist/build/release-stub.wasm +0 -0
  29. package/dist/build/release.d.ts +121 -42
  30. package/dist/build/release.js +119 -50
  31. package/dist/build/release.wasm +0 -0
  32. package/dist/build/test-inline.js +1 -1
  33. package/dist/build/test.wasm +0 -0
  34. package/dist/test/test-as.js +3 -0
  35. package/dist/{bin → test}/test-gas-cost.js +1 -1
  36. package/dist/test/test-trace-replay.js +19 -0
  37. package/dist/{bin → test}/test-w3f.js +2 -2
  38. package/package.json +5 -5
  39. /package/dist/bin/{test-json.js → src/test-json.js} +0 -0
@@ -111,27 +111,41 @@ export declare function setMemory(address: number, data: Uint8Array): boolean;
111
111
  */
112
112
  export declare function getAssembly(p: __Internref26): string;
113
113
  /**
114
- * assembly/api-internal/runVm
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
115
130
  * @param input `assembly/api-types/VmInput`
116
131
  * @param logs `bool`
117
132
  * @param useSbrkGas `bool`
118
133
  * @returns `assembly/api-types/VmOutput`
119
134
  */
120
- export declare function runVm(input: __Internref48, logs?: boolean, useSbrkGas?: boolean): __Record49<never>;
135
+ export declare function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
121
136
  /**
122
- * assembly/api-internal/getOutputChunks
123
- * @param memory `assembly/memory/Memory`
124
- * @returns `~lib/array/Array<assembly/api-types/InitialChunk>`
137
+ * assembly/api-internal/vmExecute
138
+ * @param int `assembly/interpreter/Interpreter`
139
+ * @param logs `bool`
125
140
  */
126
- export declare function getOutputChunks(memory: __Internref15): Array<__Record45<never>>;
141
+ export declare function vmExecute(int: __Internref25, logs?: boolean): void;
127
142
  /**
128
- * assembly/api-internal/buildMemory
129
- * @param builder `assembly/memory/MemoryBuilder`
130
- * @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
131
- * @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
132
- * @returns `assembly/memory/Memory`
143
+ * assembly/api-internal/vmDestroy
144
+ * @param int `assembly/interpreter/Interpreter`
145
+ * @param dumpMemory `bool`
146
+ * @returns `assembly/api-types/VmOutput`
133
147
  */
134
- export declare function buildMemory(builder: __Internref40, pages: Array<__Record43<undefined>>, chunks: Array<__Record45<undefined>>): __Internref15;
148
+ export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
135
149
  /** assembly/api-utils/InputKind */
136
150
  export declare enum InputKind {
137
151
  /** @type `i32` */
@@ -153,7 +167,7 @@ export declare enum HasMetadata {
153
167
  * @param withMetadata `i32`
154
168
  * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
155
169
  */
156
- export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record54<never>>;
170
+ export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
157
171
  /**
158
172
  * assembly/api-utils/disassemble
159
173
  * @param input `~lib/array/Array<u8>`
@@ -171,9 +185,10 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
171
185
  * @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
172
186
  * @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
173
187
  * @param args `~lib/array/Array<u8>`
188
+ * @param preallocateMemoryPages `u32`
174
189
  * @returns `assembly/spi/StandardProgram`
175
190
  */
176
- export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record43<undefined>>, initialMemory: Array<__Record45<undefined>>, args: Array<number>): __Internref39;
191
+ 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;
177
192
  /**
178
193
  * assembly/api-utils/runProgram
179
194
  * @param program `assembly/spi/StandardProgram`
@@ -183,7 +198,51 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
183
198
  * @param useSbrkGas `bool`
184
199
  * @returns `assembly/api-types/VmOutput`
185
200
  */
186
- export declare function runProgram(program: __Internref39, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record49<never>;
201
+ export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
202
+ /**
203
+ * assembly/api-utils/pvmStart
204
+ * @param program `assembly/spi/StandardProgram`
205
+ * @param useSbrkGas `bool`
206
+ * @returns `u32`
207
+ */
208
+ export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
209
+ /**
210
+ * assembly/api-utils/pvmDestroy
211
+ * @param pvmId `u32`
212
+ * @returns `assembly/api-types/VmOutput | null`
213
+ */
214
+ export declare function pvmDestroy(pvmId: number): __Record50<never> | null;
215
+ /**
216
+ * assembly/api-utils/pvmSetRegisters
217
+ * @param pvmId `u32`
218
+ * @param registers `~lib/array/Array<u64>`
219
+ */
220
+ export declare function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
221
+ /**
222
+ * assembly/api-utils/pvmReadMemory
223
+ * @param pvmId `u32`
224
+ * @param address `u32`
225
+ * @param length `u32`
226
+ * @returns `~lib/typedarray/Uint8Array | null`
227
+ */
228
+ export declare function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
229
+ /**
230
+ * assembly/api-utils/pvmWriteMemory
231
+ * @param pvmId `u32`
232
+ * @param address `u32`
233
+ * @param data `~lib/typedarray/Uint8Array`
234
+ * @returns `bool`
235
+ */
236
+ export declare function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
237
+ /**
238
+ * assembly/api-utils/pvmResume
239
+ * @param pvmId `u32`
240
+ * @param gas `i64`
241
+ * @param pc `u32`
242
+ * @param logs `bool`
243
+ * @returns `assembly/api-types/VmPause | null`
244
+ */
245
+ export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
187
246
  /**
188
247
  * assembly/program-build/wrapAsProgram
189
248
  * @param bytecode `~lib/typedarray/Uint8Array`
@@ -195,20 +254,44 @@ declare class __Internref26 extends Number {
195
254
  private __nominal26: symbol;
196
255
  private __nominal0: symbol;
197
256
  }
198
- /** assembly/api-types/VmInput */
199
- declare class __Internref48 extends Number {
200
- private __nominal48: symbol;
257
+ /** assembly/memory/MemoryBuilder */
258
+ declare class __Internref41 extends Number {
259
+ private __nominal41: symbol;
201
260
  private __nominal0: symbol;
202
261
  }
262
+ /** assembly/api-types/InitialPage */
263
+ declare interface __Record44<TOmittable> {
264
+ /** @type `u32` */
265
+ address: number | TOmittable;
266
+ /** @type `u32` */
267
+ length: number | TOmittable;
268
+ /** @type `i32` */
269
+ access: number | TOmittable;
270
+ }
203
271
  /** assembly/api-types/InitialChunk */
204
- declare interface __Record45<TOmittable> {
272
+ declare interface __Record46<TOmittable> {
205
273
  /** @type `u32` */
206
274
  address: number | TOmittable;
207
275
  /** @type `~lib/array/Array<u8>` */
208
276
  data: Array<number>;
209
277
  }
278
+ /** assembly/memory/Memory */
279
+ declare class __Internref15 extends Number {
280
+ private __nominal15: symbol;
281
+ private __nominal0: symbol;
282
+ }
283
+ /** assembly/api-types/VmInput */
284
+ declare class __Internref49 extends Number {
285
+ private __nominal49: symbol;
286
+ private __nominal0: symbol;
287
+ }
288
+ /** assembly/interpreter/Interpreter */
289
+ declare class __Internref25 extends Number {
290
+ private __nominal25: symbol;
291
+ private __nominal0: symbol;
292
+ }
210
293
  /** assembly/api-types/VmOutput */
211
- declare interface __Record49<TOmittable> {
294
+ declare interface __Record50<TOmittable> {
212
295
  /** @type `i32` */
213
296
  status: number | TOmittable;
214
297
  /** @type `u32` */
@@ -222,36 +305,32 @@ declare interface __Record49<TOmittable> {
222
305
  /** @type `~lib/array/Array<u64>` */
223
306
  registers: Array<bigint>;
224
307
  /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
225
- memory: Array<__Record45<never>>;
308
+ memory: Array<__Record46<never>>;
226
309
  }
227
- /** assembly/memory/Memory */
228
- declare class __Internref15 extends Number {
229
- private __nominal15: symbol;
230
- private __nominal0: symbol;
310
+ /** assembly/gas-costs/BlockGasCost */
311
+ declare interface __Record55<TOmittable> {
312
+ /** @type `u32` */
313
+ pc: number | TOmittable;
314
+ /** @type `u64` */
315
+ gas: bigint | TOmittable;
231
316
  }
232
- /** assembly/memory/MemoryBuilder */
317
+ /** assembly/spi/StandardProgram */
233
318
  declare class __Internref40 extends Number {
234
319
  private __nominal40: symbol;
235
320
  private __nominal0: symbol;
236
321
  }
237
- /** assembly/api-types/InitialPage */
238
- declare interface __Record43<TOmittable> {
239
- /** @type `u32` */
240
- address: number | TOmittable;
241
- /** @type `u32` */
242
- length: number | TOmittable;
322
+ /** assembly/api-types/VmPause */
323
+ declare interface __Record59<TOmittable> {
243
324
  /** @type `i32` */
244
- access: number | TOmittable;
245
- }
246
- /** assembly/gas-costs/BlockGasCost */
247
- declare interface __Record54<TOmittable> {
325
+ status: number | TOmittable;
326
+ /** @type `u32` */
327
+ exitCode: number | TOmittable;
248
328
  /** @type `u32` */
249
329
  pc: number | TOmittable;
250
- /** @type `u64` */
330
+ /** @type `u32` */
331
+ nextPc: number | TOmittable;
332
+ /** @type `i64` */
251
333
  gas: bigint | TOmittable;
252
- }
253
- /** assembly/spi/StandardProgram */
254
- declare class __Internref39 extends Number {
255
- private __nominal39: symbol;
256
- private __nominal0: symbol;
334
+ /** @type `~lib/array/Array<u64>` */
335
+ registers: Array<bigint>;
257
336
  }
@@ -113,24 +113,11 @@ async function instantiate(module, imports = {}) {
113
113
  p = __lowerInternref(p) || __notnull();
114
114
  return __liftString(exports.getAssembly(p) >>> 0);
115
115
  },
116
- runVm(input, logs, useSbrkGas) {
117
- // assembly/api-internal/runVm(assembly/api-types/VmInput, bool?, bool?) => assembly/api-types/VmOutput
118
- input = __lowerInternref(input) || __notnull();
119
- logs = logs ? 1 : 0;
120
- useSbrkGas = useSbrkGas ? 1 : 0;
121
- exports.__setArgumentsLength(arguments.length);
122
- return __liftRecord49(exports.runVm(input, logs, useSbrkGas) >>> 0);
123
- },
124
- getOutputChunks(memory) {
125
- // assembly/api-internal/getOutputChunks(assembly/memory/Memory) => ~lib/array/Array<assembly/api-types/InitialChunk>
126
- memory = __lowerInternref(memory) || __notnull();
127
- return __liftArray(pointer => __liftRecord45(__getU32(pointer)), 2, exports.getOutputChunks(memory) >>> 0);
128
- },
129
116
  buildMemory(builder, pages, chunks) {
130
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
131
118
  builder = __retain(__lowerInternref(builder) || __notnull());
132
- pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord43(value) || __notnull()); }, 44, 2, pages) || __notnull());
133
- chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord45(value) || __notnull()); }, 46, 2, chunks) || __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();
134
121
  try {
135
122
  return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
136
123
  } finally {
@@ -138,6 +125,35 @@ async function instantiate(module, imports = {}) {
138
125
  __release(pages);
139
126
  }
140
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
+ },
141
157
  InputKind: (values => (
142
158
  // assembly/api-utils/InputKind
143
159
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -153,22 +169,22 @@ async function instantiate(module, imports = {}) {
153
169
  getGasCosts(input, kind, withMetadata) {
154
170
  // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
155
171
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
156
- return __liftArray(pointer => __liftRecord54(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
172
+ return __liftArray(pointer => __liftRecord55(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
157
173
  },
158
174
  disassemble(input, kind, withMetadata) {
159
175
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
160
176
  input = __lowerArray(__setU8, 6, 0, input) || __notnull();
161
177
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
162
178
  },
163
- prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) {
164
- // 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>) => 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
165
181
  program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
166
- initialRegisters = __retain(__lowerArray(__setU64, 50, 3, initialRegisters) || __notnull());
167
- initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord43(value) || __notnull()); }, 44, 2, initialPageMap) || __notnull());
168
- initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord45(value) || __notnull()); }, 46, 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());
169
185
  args = __lowerArray(__setU8, 6, 0, args) || __notnull();
170
186
  try {
171
- 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);
172
188
  } finally {
173
189
  __release(program);
174
190
  __release(initialRegisters);
@@ -183,7 +199,39 @@ async function instantiate(module, imports = {}) {
183
199
  logs = logs ? 1 : 0;
184
200
  useSbrkGas = useSbrkGas ? 1 : 0;
185
201
  exports.__setArgumentsLength(arguments.length);
186
- return __liftRecord49(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);
187
235
  },
188
236
  wrapAsProgram(bytecode) {
189
237
  // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
@@ -191,7 +239,28 @@ async function instantiate(module, imports = {}) {
191
239
  return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
192
240
  },
193
241
  }, exports);
194
- function __liftRecord45(pointer) {
242
+ function __lowerRecord44(value) {
243
+ // assembly/api-types/InitialPage
244
+ // Hint: Opt-out from lowering as a record by providing an empty constructor
245
+ if (value == null) return 0;
246
+ const pointer = exports.__pin(exports.__new(12, 44));
247
+ __setU32(pointer + 0, value.address);
248
+ __setU32(pointer + 4, value.length);
249
+ __setU32(pointer + 8, value.access);
250
+ exports.__unpin(pointer);
251
+ return pointer;
252
+ }
253
+ function __lowerRecord46(value) {
254
+ // assembly/api-types/InitialChunk
255
+ // Hint: Opt-out from lowering as a record by providing an empty constructor
256
+ if (value == null) return 0;
257
+ const pointer = exports.__pin(exports.__new(8, 46));
258
+ __setU32(pointer + 0, value.address);
259
+ __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
260
+ exports.__unpin(pointer);
261
+ return pointer;
262
+ }
263
+ function __liftRecord46(pointer) {
195
264
  // assembly/api-types/InitialChunk
196
265
  // Hint: Opt-out from lifting as a record by providing an empty constructor
197
266
  if (!pointer) return null;
@@ -200,7 +269,7 @@ async function instantiate(module, imports = {}) {
200
269
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
201
270
  };
202
271
  }
203
- function __liftRecord49(pointer) {
272
+ function __liftRecord50(pointer) {
204
273
  // assembly/api-types/VmOutput
205
274
  // Hint: Opt-out from lifting as a record by providing an empty constructor
206
275
  if (!pointer) return null;
@@ -211,31 +280,10 @@ async function instantiate(module, imports = {}) {
211
280
  gas: __getI64(pointer + 16),
212
281
  result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
213
282
  registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
214
- memory: __liftArray(pointer => __liftRecord45(__getU32(pointer)), 2, __getU32(pointer + 32)),
283
+ memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
215
284
  };
216
285
  }
217
- function __lowerRecord43(value) {
218
- // assembly/api-types/InitialPage
219
- // Hint: Opt-out from lowering as a record by providing an empty constructor
220
- if (value == null) return 0;
221
- const pointer = exports.__pin(exports.__new(12, 43));
222
- __setU32(pointer + 0, value.address);
223
- __setU32(pointer + 4, value.length);
224
- __setU32(pointer + 8, value.access);
225
- exports.__unpin(pointer);
226
- return pointer;
227
- }
228
- function __lowerRecord45(value) {
229
- // assembly/api-types/InitialChunk
230
- // Hint: Opt-out from lowering as a record by providing an empty constructor
231
- if (value == null) return 0;
232
- const pointer = exports.__pin(exports.__new(8, 45));
233
- __setU32(pointer + 0, value.address);
234
- __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
235
- exports.__unpin(pointer);
236
- return pointer;
237
- }
238
- function __liftRecord54(pointer) {
286
+ function __liftRecord55(pointer) {
239
287
  // assembly/gas-costs/BlockGasCost
240
288
  // Hint: Opt-out from lifting as a record by providing an empty constructor
241
289
  if (!pointer) return null;
@@ -244,6 +292,19 @@ async function instantiate(module, imports = {}) {
244
292
  gas: __getU64(pointer + 8),
245
293
  };
246
294
  }
295
+ function __liftRecord59(pointer) {
296
+ // assembly/api-types/VmPause
297
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
298
+ if (!pointer) return null;
299
+ return {
300
+ status: __getI32(pointer + 0),
301
+ exitCode: __getU32(pointer + 4),
302
+ pc: __getU32(pointer + 8),
303
+ nextPc: __getU32(pointer + 12),
304
+ gas: __getI64(pointer + 16),
305
+ registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
306
+ };
307
+ }
247
308
  function __liftString(pointer) {
248
309
  if (!pointer) return null;
249
310
  const
@@ -424,15 +485,23 @@ export const {
424
485
  getMemory,
425
486
  setMemory,
426
487
  getAssembly,
427
- runVm,
428
- getOutputChunks,
429
488
  buildMemory,
489
+ vmInit,
490
+ vmRunOnce,
491
+ vmExecute,
492
+ vmDestroy,
430
493
  InputKind,
431
494
  HasMetadata,
432
495
  getGasCosts,
433
496
  disassemble,
434
497
  prepareProgram,
435
498
  runProgram,
499
+ pvmStart,
500
+ pvmDestroy,
501
+ pvmSetRegisters,
502
+ pvmReadMemory,
503
+ pvmWriteMemory,
504
+ pvmResume,
436
505
  wrapAsProgram,
437
506
  } = await (async url => instantiate(
438
507
  await (async () => {
Binary file