@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) {
@@ -376,8 +477,6 @@ async function instantiate(module, imports = {}) {
376
477
  }
377
478
  export const {
378
479
  memory,
379
- getAssembly,
380
- wrapAsProgram,
381
480
  resetJAM,
382
481
  resetGeneric,
383
482
  resetGenericWithMemory,
@@ -394,12 +493,25 @@ export const {
394
493
  getPageDump,
395
494
  getMemory,
396
495
  setMemory,
496
+ getAssembly,
497
+ buildMemory,
498
+ vmInit,
499
+ vmRunOnce,
500
+ vmExecute,
501
+ vmDestroy,
397
502
  InputKind,
398
503
  HasMetadata,
399
504
  getGasCosts,
400
505
  disassemble,
401
506
  prepareProgram,
402
507
  runProgram,
508
+ pvmStart,
509
+ pvmDestroy,
510
+ pvmSetRegisters,
511
+ pvmReadMemory,
512
+ pvmWriteMemory,
513
+ pvmResume,
514
+ wrapAsProgram,
403
515
  } = await (async url => instantiate(
404
516
  await (async () => {
405
517
  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: test
3
- // Source: build/test.wasm
3
+ // Source: dist/build/test.wasm
4
4
 
5
5
  import {__AdaptedExports} from "./debug-raw.d.ts";
6
6