@fluffylabs/anan-as 1.1.2 → 1.1.3-001e039

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 (63) hide show
  1. package/README.md +106 -11
  2. package/dist/bin/build-inline.js +70 -0
  3. package/dist/bin/index.js +263 -0
  4. package/dist/bin/src/fuzz.js +155 -0
  5. package/dist/bin/src/test-json.js +135 -0
  6. package/dist/bin/src/trace-parse.js +315 -0
  7. package/dist/bin/src/trace-replay.js +125 -0
  8. package/dist/bin/src/tracer.js +64 -0
  9. package/dist/bin/src/utils.js +25 -0
  10. package/dist/bin/test.js +1 -0
  11. package/dist/build/compiler-inline.d.ts +11 -0
  12. package/dist/build/compiler-inline.js +22 -0
  13. package/dist/build/compiler.d.ts +26 -0
  14. package/dist/build/compiler.js +76 -0
  15. package/dist/build/compiler.wasm +0 -0
  16. package/{build → dist/build}/debug-inline.d.ts +1 -1
  17. package/dist/build/debug-inline.js +22 -0
  18. package/{build → dist/build}/debug-raw-inline.d.ts +1 -1
  19. package/dist/build/debug-raw-inline.js +22 -0
  20. package/{build → dist/build}/debug-raw.d.ts +154 -37
  21. package/{build → dist/build}/debug-raw.js +126 -39
  22. package/dist/build/debug-raw.wasm +0 -0
  23. package/{build → dist/build}/debug.d.ts +154 -37
  24. package/{build → dist/build}/debug.js +139 -41
  25. package/dist/build/debug.wasm +0 -0
  26. package/{build → dist/build}/release-inline.d.ts +1 -1
  27. package/dist/build/release-inline.js +22 -0
  28. package/{build → dist/build}/release-mini-inline.d.ts +1 -1
  29. package/dist/build/release-mini-inline.js +22 -0
  30. package/{build → dist/build}/release-mini.d.ts +154 -37
  31. package/{build → dist/build}/release-mini.js +139 -41
  32. package/dist/build/release-mini.wasm +0 -0
  33. package/{build → dist/build}/release-stub-inline.d.ts +1 -1
  34. package/dist/build/release-stub-inline.js +22 -0
  35. package/{build → dist/build}/release-stub.d.ts +154 -37
  36. package/{build → dist/build}/release-stub.js +139 -41
  37. package/dist/build/release-stub.wasm +0 -0
  38. package/{build → dist/build}/release.d.ts +154 -37
  39. package/{build → dist/build}/release.js +139 -41
  40. package/dist/build/release.wasm +0 -0
  41. package/{build → dist/build}/test-inline.d.ts +1 -1
  42. package/dist/build/test-inline.js +22 -0
  43. package/dist/build/test.wasm +0 -0
  44. package/dist/test/test-as.js +3 -0
  45. package/dist/test/test-gas-cost.js +57 -0
  46. package/dist/test/test-trace-replay.js +19 -0
  47. package/dist/test/test-w3f.js +121 -0
  48. package/dist/web/bump-version.js +7 -0
  49. package/package.json +50 -42
  50. package/build/debug-inline.js +0 -22
  51. package/build/debug-raw-inline.js +0 -22
  52. package/build/debug-raw.wasm +0 -0
  53. package/build/debug.wasm +0 -0
  54. package/build/release-inline.js +0 -22
  55. package/build/release-mini-inline.js +0 -22
  56. package/build/release-mini.wasm +0 -0
  57. package/build/release-stub-inline.js +0 -22
  58. package/build/release-stub.wasm +0 -0
  59. package/build/release.wasm +0 -0
  60. package/build/test-inline.js +0 -22
  61. package/build/test.wasm +0 -0
  62. /package/{build → dist/build}/test.d.ts +0 -0
  63. /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,12 @@ 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>`
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>): __Internref40;
155
185
  /**
156
186
  * assembly/api-utils/runProgram
157
187
  * @param program `assembly/spi/StandardProgram`
@@ -159,23 +189,71 @@ 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
+ * @returns `assembly/api-types/VmOutput`
193
+ */
194
+ export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
195
+ /**
196
+ * assembly/api-utils/pvmStart
197
+ * @param program `assembly/spi/StandardProgram`
198
+ * @param useSbrkGas `bool`
199
+ * @returns `u32`
200
+ */
201
+ export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
202
+ /**
203
+ * assembly/api-utils/pvmDestroy
204
+ * @param pvmId `u32`
205
+ * @returns `assembly/api-types/VmOutput | null`
206
+ */
207
+ export declare function pvmDestroy(pvmId: number): __Record50<never> | null;
208
+ /**
209
+ * assembly/api-utils/pvmSetRegisters
210
+ * @param pvmId `u32`
211
+ * @param registers `~lib/array/Array<u64>`
212
+ */
213
+ export declare function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
214
+ /**
215
+ * assembly/api-utils/pvmReadMemory
216
+ * @param pvmId `u32`
217
+ * @param address `u32`
218
+ * @param length `u32`
219
+ * @returns `~lib/typedarray/Uint8Array | null`
220
+ */
221
+ export declare function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
222
+ /**
223
+ * assembly/api-utils/pvmWriteMemory
224
+ * @param pvmId `u32`
225
+ * @param address `u32`
226
+ * @param data `~lib/typedarray/Uint8Array`
227
+ * @returns `bool`
163
228
  */
164
- export declare function runProgram(program: __Internref42, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record55<never>;
229
+ export declare function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
230
+ /**
231
+ * assembly/api-utils/pvmResume
232
+ * @param pvmId `u32`
233
+ * @param gas `i64`
234
+ * @param pc `u32`
235
+ * @param logs `bool`
236
+ * @returns `assembly/api-types/VmPause | null`
237
+ */
238
+ export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
239
+ /**
240
+ * assembly/program-build/wrapAsProgram
241
+ * @param bytecode `~lib/typedarray/Uint8Array`
242
+ * @returns `~lib/typedarray/Uint8Array`
243
+ */
244
+ export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
165
245
  /** assembly/program/Program */
166
246
  declare class __Internref26 extends Number {
167
247
  private __nominal26: symbol;
168
248
  private __nominal0: symbol;
169
249
  }
170
- /** assembly/gas-costs/BlockGasCost */
171
- declare interface __Record50<TOmittable> {
172
- /** @type `u32` */
173
- pc: number | TOmittable;
174
- /** @type `u64` */
175
- gas: bigint | TOmittable;
250
+ /** assembly/memory/MemoryBuilder */
251
+ declare class __Internref41 extends Number {
252
+ private __nominal41: symbol;
253
+ private __nominal0: symbol;
176
254
  }
177
- /** assembly/api-internal/InitialPage */
178
- declare interface __Record46<TOmittable> {
255
+ /** assembly/api-types/InitialPage */
256
+ declare interface __Record44<TOmittable> {
179
257
  /** @type `u32` */
180
258
  address: number | TOmittable;
181
259
  /** @type `u32` */
@@ -183,30 +261,69 @@ declare interface __Record46<TOmittable> {
183
261
  /** @type `i32` */
184
262
  access: number | TOmittable;
185
263
  }
186
- /** assembly/api-internal/InitialChunk */
187
- declare interface __Record48<TOmittable> {
264
+ /** assembly/api-types/InitialChunk */
265
+ declare interface __Record46<TOmittable> {
188
266
  /** @type `u32` */
189
267
  address: number | TOmittable;
190
268
  /** @type `~lib/array/Array<u8>` */
191
269
  data: Array<number>;
192
270
  }
193
- /** assembly/spi/StandardProgram */
194
- declare class __Internref42 extends Number {
195
- private __nominal42: symbol;
271
+ /** assembly/memory/Memory */
272
+ declare class __Internref15 extends Number {
273
+ private __nominal15: symbol;
196
274
  private __nominal0: symbol;
197
275
  }
198
- /** assembly/api-internal/VmOutput */
199
- declare interface __Record55<TOmittable> {
276
+ /** assembly/api-types/VmInput */
277
+ declare class __Internref49 extends Number {
278
+ private __nominal49: symbol;
279
+ private __nominal0: symbol;
280
+ }
281
+ /** assembly/interpreter/Interpreter */
282
+ declare class __Internref25 extends Number {
283
+ private __nominal25: symbol;
284
+ private __nominal0: symbol;
285
+ }
286
+ /** assembly/api-types/VmOutput */
287
+ declare interface __Record50<TOmittable> {
200
288
  /** @type `i32` */
201
289
  status: number | TOmittable;
290
+ /** @type `u32` */
291
+ exitCode: number | TOmittable;
292
+ /** @type `u32` */
293
+ pc: number | TOmittable;
294
+ /** @type `i64` */
295
+ gas: bigint | TOmittable;
296
+ /** @type `~lib/array/Array<u8>` */
297
+ result: Array<number>;
202
298
  /** @type `~lib/array/Array<u64>` */
203
299
  registers: Array<bigint>;
300
+ /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
301
+ memory: Array<__Record46<never>>;
302
+ }
303
+ /** assembly/gas-costs/BlockGasCost */
304
+ declare interface __Record55<TOmittable> {
204
305
  /** @type `u32` */
205
306
  pc: number | TOmittable;
206
- /** @type `~lib/array/Array<assembly/api-internal/InitialChunk>` */
207
- memory: Array<__Record48<never>>;
208
- /** @type `i64` */
307
+ /** @type `u64` */
209
308
  gas: bigint | TOmittable;
309
+ }
310
+ /** assembly/spi/StandardProgram */
311
+ declare class __Internref40 extends Number {
312
+ private __nominal40: symbol;
313
+ private __nominal0: symbol;
314
+ }
315
+ /** assembly/api-types/VmPause */
316
+ declare interface __Record59<TOmittable> {
317
+ /** @type `i32` */
318
+ status: number | TOmittable;
210
319
  /** @type `u32` */
211
320
  exitCode: number | TOmittable;
321
+ /** @type `u32` */
322
+ pc: number | TOmittable;
323
+ /** @type `u32` */
324
+ nextPc: number | TOmittable;
325
+ /** @type `i64` */
326
+ gas: bigint | TOmittable;
327
+ /** @type `~lib/array/Array<u64>` */
328
+ registers: Array<bigint>;
212
329
  }
@@ -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,7 +169,7 @@ 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 @@ 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 @@ 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