@fluffylabs/anan-as 1.1.3-e748fc6 → 1.1.3-eee81bd

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 +106 -11
  2. package/dist/bin/build-inline.js +70 -0
  3. package/dist/bin/index.js +292 -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 +154 -37
  22. package/{build → dist/build}/debug-raw.js +126 -39
  23. package/dist/build/debug-raw.wasm +0 -0
  24. package/{build → dist/build}/debug.d.ts +154 -37
  25. package/{build → dist/build}/debug.js +139 -41
  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 +154 -37
  32. package/{build → dist/build}/release-mini.js +139 -41
  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 +154 -37
  37. package/{build → dist/build}/release-stub.js +139 -41
  38. package/dist/build/release-stub.wasm +0 -0
  39. package/{build → dist/build}/release.d.ts +154 -37
  40. package/{build → dist/build}/release.js +139 -41
  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 +50 -41
  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,22 +1,10 @@
1
1
  declare namespace __AdaptedExports {
2
2
  /** Exported memory */
3
3
  export const memory: WebAssembly.Memory;
4
- /**
5
- * assembly/api-internal/getAssembly
6
- * @param p `assembly/program/Program`
7
- * @returns `~lib/string/String`
8
- */
9
- export function getAssembly(p: __Internref26): string;
10
- /**
11
- * assembly/program-build/wrapAsProgram
12
- * @param bytecode `~lib/typedarray/Uint8Array`
13
- * @returns `~lib/typedarray/Uint8Array`
14
- */
15
- export function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
16
4
  /**
17
5
  * assembly/api-debugger/resetJAM
18
6
  * @param program `~lib/array/Array<u8>`
19
- * @param pc `f64`
7
+ * @param pc `u32`
20
8
  * @param initialGas `i64`
21
9
  * @param args `~lib/array/Array<u8>`
22
10
  * @param hasMetadata `bool`
@@ -111,6 +99,48 @@ declare namespace __AdaptedExports {
111
99
  * @returns `bool`
112
100
  */
113
101
  export function setMemory(address: number, data: Uint8Array): boolean;
102
+ /**
103
+ * assembly/api-internal/getAssembly
104
+ * @param p `assembly/program/Program`
105
+ * @returns `~lib/string/String`
106
+ */
107
+ export function getAssembly(p: __Internref26): string;
108
+ /**
109
+ * assembly/api-internal/buildMemory
110
+ * @param builder `assembly/memory/MemoryBuilder`
111
+ * @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
112
+ * @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
113
+ * @returns `assembly/memory/Memory`
114
+ */
115
+ export function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
116
+ /**
117
+ * assembly/api-internal/vmInit
118
+ * @param input `assembly/api-types/VmInput`
119
+ * @param useSbrkGas `bool`
120
+ * @returns `assembly/interpreter/Interpreter`
121
+ */
122
+ export function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
123
+ /**
124
+ * assembly/api-internal/vmRunOnce
125
+ * @param input `assembly/api-types/VmInput`
126
+ * @param logs `bool`
127
+ * @param useSbrkGas `bool`
128
+ * @returns `assembly/api-types/VmOutput`
129
+ */
130
+ export function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
131
+ /**
132
+ * assembly/api-internal/vmExecute
133
+ * @param int `assembly/interpreter/Interpreter`
134
+ * @param logs `bool`
135
+ */
136
+ export function vmExecute(int: __Internref25, logs?: boolean): void;
137
+ /**
138
+ * assembly/api-internal/vmDestroy
139
+ * @param int `assembly/interpreter/Interpreter`
140
+ * @param dumpMemory `bool`
141
+ * @returns `assembly/api-types/VmOutput`
142
+ */
143
+ export function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
114
144
  /** assembly/api-utils/InputKind */
115
145
  export enum InputKind {
116
146
  /** @type `i32` */
@@ -132,7 +162,7 @@ declare namespace __AdaptedExports {
132
162
  * @param withMetadata `i32`
133
163
  * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
134
164
  */
135
- export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record50<never>>;
165
+ export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
136
166
  /**
137
167
  * assembly/api-utils/disassemble
138
168
  * @param input `~lib/array/Array<u8>`
@@ -147,12 +177,12 @@ declare namespace __AdaptedExports {
147
177
  * @param hasMetadata `i32`
148
178
  * @param program `~lib/array/Array<u8>`
149
179
  * @param initialRegisters `~lib/array/Array<u64>`
150
- * @param initialPageMap `~lib/array/Array<assembly/api-internal/InitialPage>`
151
- * @param initialMemory `~lib/array/Array<assembly/api-internal/InitialChunk>`
180
+ * @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
181
+ * @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
152
182
  * @param args `~lib/array/Array<u8>`
153
183
  * @returns `assembly/spi/StandardProgram`
154
184
  */
155
- export 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 function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record44<undefined>>, initialMemory: Array<__Record46<undefined>>, args: Array<number>): __Internref40;
156
186
  /**
157
187
  * assembly/api-utils/runProgram
158
188
  * @param program `assembly/spi/StandardProgram`
@@ -160,24 +190,72 @@ declare namespace __AdaptedExports {
160
190
  * @param programCounter `u32`
161
191
  * @param logs `bool`
162
192
  * @param useSbrkGas `bool`
163
- * @returns `assembly/api-internal/VmOutput`
193
+ * @returns `assembly/api-types/VmOutput`
194
+ */
195
+ export 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 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 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 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 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`
164
229
  */
165
- export function runProgram(program: __Internref42, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record55<never>;
230
+ export 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 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 function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
166
246
  }
167
247
  /** assembly/program/Program */
168
248
  declare class __Internref26 extends Number {
169
249
  private __nominal26: symbol;
170
250
  private __nominal0: symbol;
171
251
  }
172
- /** assembly/gas-costs/BlockGasCost */
173
- declare interface __Record50<TOmittable> {
174
- /** @type `u32` */
175
- pc: number | TOmittable;
176
- /** @type `u64` */
177
- gas: bigint | TOmittable;
252
+ /** assembly/memory/MemoryBuilder */
253
+ declare class __Internref41 extends Number {
254
+ private __nominal41: symbol;
255
+ private __nominal0: symbol;
178
256
  }
179
- /** assembly/api-internal/InitialPage */
180
- declare interface __Record46<TOmittable> {
257
+ /** assembly/api-types/InitialPage */
258
+ declare interface __Record44<TOmittable> {
181
259
  /** @type `u32` */
182
260
  address: number | TOmittable;
183
261
  /** @type `u32` */
@@ -185,32 +263,71 @@ declare interface __Record46<TOmittable> {
185
263
  /** @type `i32` */
186
264
  access: number | TOmittable;
187
265
  }
188
- /** assembly/api-internal/InitialChunk */
189
- declare interface __Record48<TOmittable> {
266
+ /** assembly/api-types/InitialChunk */
267
+ declare interface __Record46<TOmittable> {
190
268
  /** @type `u32` */
191
269
  address: number | TOmittable;
192
270
  /** @type `~lib/array/Array<u8>` */
193
271
  data: Array<number>;
194
272
  }
195
- /** assembly/spi/StandardProgram */
196
- declare class __Internref42 extends Number {
197
- private __nominal42: symbol;
273
+ /** assembly/memory/Memory */
274
+ declare class __Internref15 extends Number {
275
+ private __nominal15: symbol;
198
276
  private __nominal0: symbol;
199
277
  }
200
- /** assembly/api-internal/VmOutput */
201
- declare interface __Record55<TOmittable> {
278
+ /** assembly/api-types/VmInput */
279
+ declare class __Internref49 extends Number {
280
+ private __nominal49: symbol;
281
+ private __nominal0: symbol;
282
+ }
283
+ /** assembly/interpreter/Interpreter */
284
+ declare class __Internref25 extends Number {
285
+ private __nominal25: symbol;
286
+ private __nominal0: symbol;
287
+ }
288
+ /** assembly/api-types/VmOutput */
289
+ declare interface __Record50<TOmittable> {
202
290
  /** @type `i32` */
203
291
  status: number | TOmittable;
292
+ /** @type `u32` */
293
+ exitCode: number | TOmittable;
294
+ /** @type `u32` */
295
+ pc: number | TOmittable;
296
+ /** @type `i64` */
297
+ gas: bigint | TOmittable;
298
+ /** @type `~lib/array/Array<u8>` */
299
+ result: Array<number>;
204
300
  /** @type `~lib/array/Array<u64>` */
205
301
  registers: Array<bigint>;
302
+ /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
303
+ memory: Array<__Record46<never>>;
304
+ }
305
+ /** assembly/gas-costs/BlockGasCost */
306
+ declare interface __Record55<TOmittable> {
206
307
  /** @type `u32` */
207
308
  pc: number | TOmittable;
208
- /** @type `~lib/array/Array<assembly/api-internal/InitialChunk>` */
209
- memory: Array<__Record48<never>>;
210
- /** @type `i64` */
309
+ /** @type `u64` */
211
310
  gas: bigint | TOmittable;
311
+ }
312
+ /** assembly/spi/StandardProgram */
313
+ declare class __Internref40 extends Number {
314
+ private __nominal40: symbol;
315
+ private __nominal0: symbol;
316
+ }
317
+ /** assembly/api-types/VmPause */
318
+ declare interface __Record59<TOmittable> {
319
+ /** @type `i32` */
320
+ status: number | TOmittable;
212
321
  /** @type `u32` */
213
322
  exitCode: number | TOmittable;
323
+ /** @type `u32` */
324
+ pc: number | TOmittable;
325
+ /** @type `u32` */
326
+ nextPc: number | TOmittable;
327
+ /** @type `i64` */
328
+ gas: bigint | TOmittable;
329
+ /** @type `~lib/array/Array<u64>` */
330
+ registers: Array<bigint>;
214
331
  }
215
332
  /** Instantiates the compiled WebAssembly module with the given imports. */
216
333
  export declare function instantiate(module: WebAssembly.Module, imports: {
@@ -22,18 +22,8 @@ export 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 @@ export 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,7 +169,7 @@ export 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
@@ -141,11 +177,11 @@ export async function instantiate(module, imports = {}) {
141
177
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
142
178
  },
143
179
  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
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>) => 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
187
  return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
@@ -157,47 +193,75 @@ export 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 @@ export 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) {
Binary file