@fluffylabs/anan-as 1.2.0 → 1.3.0-1ebcf8f

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 (110) hide show
  1. package/dist/bin/index.js +138 -5
  2. package/dist/bin/src/fuzz.js +2 -2
  3. package/dist/bin/src/test-json.js +2 -6
  4. package/dist/bin/src/trace-parse.js +1 -0
  5. package/dist/bin/src/trace-replay.js +14 -9
  6. package/dist/bin/src/tracer.js +16 -13
  7. package/dist/bin/src/utils.js +2 -2
  8. package/dist/build/compiler-inline.js +1 -1
  9. package/dist/build/compiler.d.ts +17 -13
  10. package/dist/build/compiler.js +13 -21
  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 +50 -112
  15. package/dist/build/debug-raw.js +78 -139
  16. package/dist/build/debug-raw.wasm +0 -0
  17. package/dist/build/debug.d.ts +50 -112
  18. package/dist/build/debug.js +81 -147
  19. package/dist/build/debug.wasm +0 -0
  20. package/dist/build/js/assembly/api-debugger.d.ts +55 -0
  21. package/dist/build/js/assembly/api-debugger.js +245 -0
  22. package/dist/build/js/assembly/api-internal.d.ts +13 -0
  23. package/dist/build/js/assembly/api-internal.js +191 -0
  24. package/dist/build/js/assembly/api-types.d.ts +45 -0
  25. package/dist/build/js/assembly/api-types.js +52 -0
  26. package/dist/build/js/assembly/api-utils.d.ts +79 -0
  27. package/dist/build/js/assembly/api-utils.js +221 -0
  28. package/dist/build/js/assembly/arguments.d.ts +44 -0
  29. package/dist/build/js/assembly/arguments.js +164 -0
  30. package/dist/build/js/assembly/codec.d.ts +24 -0
  31. package/dist/build/js/assembly/codec.js +139 -0
  32. package/dist/build/js/assembly/gas.d.ts +11 -0
  33. package/dist/build/js/assembly/gas.js +33 -0
  34. package/dist/build/js/assembly/index-shared.d.ts +4 -0
  35. package/dist/build/js/assembly/index-shared.js +4 -0
  36. package/dist/build/js/assembly/instructions/bit.d.ts +11 -0
  37. package/dist/build/js/assembly/instructions/bit.js +53 -0
  38. package/dist/build/js/assembly/instructions/branch.d.ts +17 -0
  39. package/dist/build/js/assembly/instructions/branch.js +120 -0
  40. package/dist/build/js/assembly/instructions/jump.d.ts +5 -0
  41. package/dist/build/js/assembly/instructions/jump.js +21 -0
  42. package/dist/build/js/assembly/instructions/load.d.ts +17 -0
  43. package/dist/build/js/assembly/instructions/load.js +134 -0
  44. package/dist/build/js/assembly/instructions/logic.d.ts +10 -0
  45. package/dist/build/js/assembly/instructions/logic.js +47 -0
  46. package/dist/build/js/assembly/instructions/math.d.ts +28 -0
  47. package/dist/build/js/assembly/instructions/math.js +225 -0
  48. package/dist/build/js/assembly/instructions/misc.d.ts +6 -0
  49. package/dist/build/js/assembly/instructions/misc.js +22 -0
  50. package/dist/build/js/assembly/instructions/mov.d.ts +6 -0
  51. package/dist/build/js/assembly/instructions/mov.js +35 -0
  52. package/dist/build/js/assembly/instructions/outcome.d.ts +30 -0
  53. package/dist/build/js/assembly/instructions/outcome.js +88 -0
  54. package/dist/build/js/assembly/instructions/rot.d.ts +15 -0
  55. package/dist/build/js/assembly/instructions/rot.js +66 -0
  56. package/dist/build/js/assembly/instructions/set.d.ts +7 -0
  57. package/dist/build/js/assembly/instructions/set.js +36 -0
  58. package/dist/build/js/assembly/instructions/shift.d.ts +19 -0
  59. package/dist/build/js/assembly/instructions/shift.js +121 -0
  60. package/dist/build/js/assembly/instructions/store.d.ts +17 -0
  61. package/dist/build/js/assembly/instructions/store.js +101 -0
  62. package/dist/build/js/assembly/instructions/utils.d.ts +25 -0
  63. package/dist/build/js/assembly/instructions/utils.js +91 -0
  64. package/dist/build/js/assembly/instructions-exe.d.ts +2 -0
  65. package/dist/build/js/assembly/instructions-exe.js +245 -0
  66. package/dist/build/js/assembly/instructions.d.ts +10 -0
  67. package/dist/build/js/assembly/instructions.js +252 -0
  68. package/dist/build/js/assembly/interpreter.d.ts +28 -0
  69. package/dist/build/js/assembly/interpreter.js +221 -0
  70. package/dist/build/js/assembly/math.d.ts +6 -0
  71. package/dist/build/js/assembly/math.js +22 -0
  72. package/dist/build/js/assembly/memory-page.d.ts +36 -0
  73. package/dist/build/js/assembly/memory-page.js +74 -0
  74. package/dist/build/js/assembly/memory.d.ts +83 -0
  75. package/dist/build/js/assembly/memory.js +482 -0
  76. package/dist/build/js/assembly/portable.d.ts +24 -0
  77. package/dist/build/js/assembly/portable.js +363 -0
  78. package/dist/build/js/assembly/program-build.d.ts +2 -0
  79. package/dist/build/js/assembly/program-build.js +104 -0
  80. package/dist/build/js/assembly/program.d.ts +85 -0
  81. package/dist/build/js/assembly/program.js +340 -0
  82. package/dist/build/js/assembly/registers.d.ts +6 -0
  83. package/dist/build/js/assembly/registers.js +9 -0
  84. package/dist/build/js/assembly/spi.d.ts +92 -0
  85. package/dist/build/js/assembly/spi.js +152 -0
  86. package/dist/build/js/portable/bootstrap.d.ts +1 -0
  87. package/dist/build/js/portable/bootstrap.js +6 -0
  88. package/dist/build/js/portable/index.d.ts +4 -0
  89. package/dist/build/js/portable/index.js +6 -0
  90. package/dist/build/js/portable-bundle.js +4497 -0
  91. package/dist/build/release-inline.js +1 -1
  92. package/dist/build/release-mini-inline.js +1 -1
  93. package/dist/build/release-mini.d.ts +50 -112
  94. package/dist/build/release-mini.js +81 -147
  95. package/dist/build/release-mini.wasm +0 -0
  96. package/dist/build/release-stub-inline.js +1 -1
  97. package/dist/build/release-stub.d.ts +50 -112
  98. package/dist/build/release-stub.js +81 -147
  99. package/dist/build/release-stub.wasm +0 -0
  100. package/dist/build/release.d.ts +50 -112
  101. package/dist/build/release.js +81 -147
  102. package/dist/build/release.wasm +0 -0
  103. package/dist/build/test-inline.js +1 -1
  104. package/dist/build/test.wasm +0 -0
  105. package/dist/test/test-gas-cost.js +2 -3
  106. package/dist/test/test-trace-format.js +166 -0
  107. package/dist/test/test-w3f-common.js +125 -0
  108. package/dist/test/test-w3f-portable.js +5 -0
  109. package/dist/test/test-w3f.js +3 -120
  110. package/package.json +22 -11
@@ -1,33 +1,48 @@
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: __Internref35): 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;
4
16
  /**
5
17
  * assembly/api-debugger/resetJAM
6
18
  * @param program `~lib/array/Array<u8>`
7
19
  * @param pc `u32`
8
- * @param initialGas `i64`
20
+ * @param initialGas `u64`
9
21
  * @param args `~lib/array/Array<u8>`
10
22
  * @param hasMetadata `bool`
23
+ * @param useBlockGas `bool`
11
24
  */
12
- export function resetJAM(program: Array<number>, pc: number, initialGas: bigint, args: Array<number>, hasMetadata?: boolean): void;
25
+ export function resetJAM(program: Array<number>, pc: number, initialGas: bigint, args: Array<number>, hasMetadata?: boolean, useBlockGas?: boolean): void;
13
26
  /**
14
27
  * assembly/api-debugger/resetGeneric
15
28
  * @param program `~lib/array/Array<u8>`
16
29
  * @param flatRegisters `~lib/array/Array<u8>`
17
- * @param initialGas `i64`
30
+ * @param initialGas `u64`
18
31
  * @param hasMetadata `bool`
32
+ * @param useBlockGas `bool`
19
33
  */
20
- export function resetGeneric(program: Array<number>, flatRegisters: Array<number>, initialGas: bigint, hasMetadata?: boolean): void;
34
+ export function resetGeneric(program: Array<number>, flatRegisters: Array<number>, initialGas: bigint, hasMetadata?: boolean, useBlockGas?: boolean): void;
21
35
  /**
22
36
  * assembly/api-debugger/resetGenericWithMemory
23
37
  * @param program `~lib/array/Array<u8>`
24
38
  * @param flatRegisters `~lib/array/Array<u8>`
25
39
  * @param pageMap `~lib/typedarray/Uint8Array`
26
40
  * @param chunks `~lib/typedarray/Uint8Array`
27
- * @param initialGas `i64`
41
+ * @param initialGas `u64`
28
42
  * @param hasMetadata `bool`
43
+ * @param useBlockGas `bool`
29
44
  */
30
- export function resetGenericWithMemory(program: Array<number>, flatRegisters: Array<number>, pageMap: Uint8Array, chunks: Uint8Array, initialGas: bigint, hasMetadata?: boolean): void;
45
+ export function resetGenericWithMemory(program: Array<number>, flatRegisters: Array<number>, pageMap: Uint8Array, chunks: Uint8Array, initialGas: bigint, hasMetadata?: boolean, useBlockGas?: boolean): void;
31
46
  /**
32
47
  * assembly/api-debugger/nextStep
33
48
  * @returns `bool`
@@ -66,7 +81,7 @@ declare namespace __AdaptedExports {
66
81
  export function getGasLeft(): bigint;
67
82
  /**
68
83
  * assembly/api-debugger/setGasLeft
69
- * @param gas `i64`
84
+ * @param gas `u64`
70
85
  */
71
86
  export function setGasLeft(gas: bigint): void;
72
87
  /**
@@ -105,47 +120,6 @@ declare namespace __AdaptedExports {
105
120
  * @returns `bool`
106
121
  */
107
122
  export function setMemory(address: number, data: Uint8Array): boolean;
108
- /**
109
- * assembly/api-internal/getAssembly
110
- * @param p `assembly/program/Program`
111
- * @returns `~lib/string/String`
112
- */
113
- export function getAssembly(p: __Internref26): string;
114
- /**
115
- * assembly/api-internal/buildMemory
116
- * @param builder `assembly/memory/MemoryBuilder`
117
- * @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
118
- * @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
119
- * @returns `assembly/memory/Memory`
120
- */
121
- export function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
122
- /**
123
- * assembly/api-internal/vmInit
124
- * @param input `assembly/api-types/VmInput`
125
- * @param useSbrkGas `bool`
126
- * @returns `assembly/interpreter/Interpreter`
127
- */
128
- export function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
129
- /**
130
- * assembly/api-internal/vmRunOnce
131
- * @param input `assembly/api-types/VmInput`
132
- * @param options `assembly/api-types/VmRunOptions`
133
- * @returns `assembly/api-types/VmOutput`
134
- */
135
- export function vmRunOnce(input: __Internref49, options: __Record50<undefined>): __Record51<never>;
136
- /**
137
- * assembly/api-internal/vmExecute
138
- * @param int `assembly/interpreter/Interpreter`
139
- * @param logs `bool`
140
- */
141
- export function vmExecute(int: __Internref25, logs?: boolean): void;
142
- /**
143
- * assembly/api-internal/vmDestroy
144
- * @param int `assembly/interpreter/Interpreter`
145
- * @param dumpMemory `bool`
146
- * @returns `assembly/api-types/VmOutput`
147
- */
148
- export function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record51<never>;
149
123
  /** assembly/api-utils/InputKind */
150
124
  export enum InputKind {
151
125
  /** @type `i32` */
@@ -161,13 +135,13 @@ declare namespace __AdaptedExports {
161
135
  No,
162
136
  }
163
137
  /**
164
- * assembly/api-utils/getGasCosts
138
+ * assembly/api-utils/getBlockGasCosts
165
139
  * @param input `~lib/array/Array<u8>`
166
140
  * @param kind `i32`
167
141
  * @param withMetadata `i32`
168
- * @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
142
+ * @returns `~lib/array/Array<assembly/api-utils/BlockGasCost>`
169
143
  */
170
- export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record56<never>>;
144
+ export function getBlockGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record58<never>>;
171
145
  /**
172
146
  * assembly/api-utils/disassemble
173
147
  * @param input `~lib/array/Array<u8>`
@@ -186,33 +160,32 @@ declare namespace __AdaptedExports {
186
160
  * @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
187
161
  * @param args `~lib/array/Array<u8>`
188
162
  * @param preallocateMemoryPages `u32`
163
+ * @param useBlockGas `bool`
189
164
  * @returns `assembly/spi/StandardProgram`
190
165
  */
191
- export 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;
166
+ export function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record54<undefined>>, initialMemory: Array<__Record56<undefined>>, args: Array<number>, preallocateMemoryPages: number, useBlockGas: boolean): __Internref51;
192
167
  /**
193
168
  * assembly/api-utils/runProgram
194
169
  * @param program `assembly/spi/StandardProgram`
195
170
  * @param initialGas `i64`
196
171
  * @param programCounter `u32`
197
172
  * @param logs `bool`
198
- * @param useSbrkGas `bool`
199
173
  * @param dumpMemory `bool`
200
174
  * @returns `assembly/api-types/VmOutput`
201
175
  */
202
- export function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record51<never>;
176
+ export function runProgram(program: __Internref51, initialGas?: bigint, programCounter?: number, logs?: boolean, dumpMemory?: boolean): __Record62<never>;
203
177
  /**
204
178
  * assembly/api-utils/pvmStart
205
179
  * @param program `assembly/spi/StandardProgram`
206
- * @param useSbrkGas `bool`
207
180
  * @returns `u32`
208
181
  */
209
- export function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
182
+ export function pvmStart(program: __Internref51): number;
210
183
  /**
211
184
  * assembly/api-utils/pvmDestroy
212
185
  * @param pvmId `u32`
213
186
  * @returns `assembly/api-types/VmOutput | null`
214
187
  */
215
- export function pvmDestroy(pvmId: number): __Record51<never> | null;
188
+ export function pvmDestroy(pvmId: number): __Record62<never> | null;
216
189
  /**
217
190
  * assembly/api-utils/pvmSetRegisters
218
191
  * @param pvmId `u32`
@@ -245,31 +218,27 @@ declare namespace __AdaptedExports {
245
218
  /**
246
219
  * assembly/api-utils/pvmResume
247
220
  * @param pvmId `u32`
248
- * @param gas `i64`
221
+ * @param gas `u64`
249
222
  * @param pc `u32`
250
223
  * @param logs `bool`
251
224
  * @returns `assembly/api-types/VmPause | null`
252
225
  */
253
- export function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record60<never> | null;
254
- /**
255
- * assembly/program-build/wrapAsProgram
256
- * @param bytecode `~lib/typedarray/Uint8Array`
257
- * @returns `~lib/typedarray/Uint8Array`
258
- */
259
- export function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
226
+ export function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record68<never> | null;
260
227
  }
261
228
  /** assembly/program/Program */
262
- declare class __Internref26 extends Number {
263
- private __nominal26: symbol;
229
+ declare class __Internref35 extends Number {
230
+ private __nominal35: symbol;
264
231
  private __nominal0: symbol;
265
232
  }
266
- /** assembly/memory/MemoryBuilder */
267
- declare class __Internref41 extends Number {
268
- private __nominal41: symbol;
269
- private __nominal0: symbol;
233
+ /** assembly/api-utils/BlockGasCost */
234
+ declare interface __Record58<TOmittable> {
235
+ /** @type `u32` */
236
+ pc: number | TOmittable;
237
+ /** @type `u64` */
238
+ gas: bigint | TOmittable;
270
239
  }
271
240
  /** assembly/api-types/InitialPage */
272
- declare interface __Record44<TOmittable> {
241
+ declare interface __Record54<TOmittable> {
273
242
  /** @type `u32` */
274
243
  address: number | TOmittable;
275
244
  /** @type `u32` */
@@ -278,67 +247,36 @@ declare interface __Record44<TOmittable> {
278
247
  access: number | TOmittable;
279
248
  }
280
249
  /** assembly/api-types/InitialChunk */
281
- declare interface __Record46<TOmittable> {
250
+ declare interface __Record56<TOmittable> {
282
251
  /** @type `u32` */
283
252
  address: number | TOmittable;
284
253
  /** @type `~lib/array/Array<u8>` */
285
254
  data: Array<number>;
286
255
  }
287
- /** assembly/memory/Memory */
288
- declare class __Internref15 extends Number {
289
- private __nominal15: symbol;
290
- private __nominal0: symbol;
291
- }
292
- /** assembly/api-types/VmInput */
293
- declare class __Internref49 extends Number {
294
- private __nominal49: symbol;
295
- private __nominal0: symbol;
296
- }
297
- /** assembly/interpreter/Interpreter */
298
- declare class __Internref25 extends Number {
299
- private __nominal25: symbol;
256
+ /** assembly/spi/StandardProgram */
257
+ declare class __Internref51 extends Number {
258
+ private __nominal51: symbol;
300
259
  private __nominal0: symbol;
301
260
  }
302
- /** assembly/api-types/VmRunOptions */
303
- declare interface __Record50<TOmittable> {
304
- /** @type `bool` */
305
- useSbrkGas: boolean | TOmittable;
306
- /** @type `bool` */
307
- logs: boolean | TOmittable;
308
- /** @type `bool` */
309
- dumpMemory: boolean | TOmittable;
310
- }
311
261
  /** assembly/api-types/VmOutput */
312
- declare interface __Record51<TOmittable> {
262
+ declare interface __Record62<TOmittable> {
313
263
  /** @type `i32` */
314
264
  status: number | TOmittable;
315
265
  /** @type `u32` */
316
266
  exitCode: number | TOmittable;
317
267
  /** @type `u32` */
318
268
  pc: number | TOmittable;
319
- /** @type `i64` */
269
+ /** @type `u64` */
320
270
  gas: bigint | TOmittable;
321
271
  /** @type `~lib/array/Array<u8>` */
322
272
  result: Array<number>;
323
273
  /** @type `~lib/array/Array<u64>` */
324
274
  registers: Array<bigint>;
325
275
  /** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
326
- memory: Array<__Record46<never>>;
327
- }
328
- /** assembly/gas-costs/BlockGasCost */
329
- declare interface __Record56<TOmittable> {
330
- /** @type `u32` */
331
- pc: number | TOmittable;
332
- /** @type `u64` */
333
- gas: bigint | TOmittable;
334
- }
335
- /** assembly/spi/StandardProgram */
336
- declare class __Internref40 extends Number {
337
- private __nominal40: symbol;
338
- private __nominal0: symbol;
276
+ memory: Array<__Record56<never>>;
339
277
  }
340
278
  /** assembly/api-types/VmPause */
341
- declare interface __Record60<TOmittable> {
279
+ declare interface __Record68<TOmittable> {
342
280
  /** @type `i32` */
343
281
  status: number | TOmittable;
344
282
  /** @type `u32` */
@@ -347,7 +285,7 @@ declare interface __Record60<TOmittable> {
347
285
  pc: number | TOmittable;
348
286
  /** @type `u32` */
349
287
  nextPc: number | TOmittable;
350
- /** @type `i64` */
288
+ /** @type `u64` */
351
289
  gas: bigint | TOmittable;
352
290
  /** @type `~lib/array/Array<u64>` */
353
291
  registers: Array<bigint>;
@@ -22,43 +22,56 @@ 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
- resetJAM(program, pc, initialGas, args, hasMetadata) {
26
- // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, i64, ~lib/array/Array<u8>, bool?) => void
27
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
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, 15, 0, bytecode) || __notnull();
33
+ return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
34
+ },
35
+ resetJAM(program, pc, initialGas, args, hasMetadata, useBlockGas) {
36
+ // assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, u64, ~lib/array/Array<u8>, bool?, bool?) => void
37
+ program = __retain(__lowerArray(__setU8, 32, 0, program) || __notnull());
28
38
  initialGas = initialGas || 0n;
29
- args = __lowerArray(__setU8, 6, 0, args) || __notnull();
39
+ args = __lowerArray(__setU8, 32, 0, args) || __notnull();
30
40
  hasMetadata = hasMetadata ? 1 : 0;
41
+ useBlockGas = useBlockGas ? 1 : 0;
31
42
  try {
32
43
  exports.__setArgumentsLength(arguments.length);
33
- exports.resetJAM(program, pc, initialGas, args, hasMetadata);
44
+ exports.resetJAM(program, pc, initialGas, args, hasMetadata, useBlockGas);
34
45
  } finally {
35
46
  __release(program);
36
47
  }
37
48
  },
38
- resetGeneric(program, flatRegisters, initialGas, hasMetadata) {
39
- // assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, i64, bool?) => void
40
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
41
- flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
49
+ resetGeneric(program, flatRegisters, initialGas, hasMetadata, useBlockGas) {
50
+ // assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, u64, bool?, bool?) => void
51
+ program = __retain(__lowerArray(__setU8, 32, 0, program) || __notnull());
52
+ flatRegisters = __lowerArray(__setU8, 32, 0, flatRegisters) || __notnull();
42
53
  initialGas = initialGas || 0n;
43
54
  hasMetadata = hasMetadata ? 1 : 0;
55
+ useBlockGas = useBlockGas ? 1 : 0;
44
56
  try {
45
57
  exports.__setArgumentsLength(arguments.length);
46
- exports.resetGeneric(program, flatRegisters, initialGas, hasMetadata);
58
+ exports.resetGeneric(program, flatRegisters, initialGas, hasMetadata, useBlockGas);
47
59
  } finally {
48
60
  __release(program);
49
61
  }
50
62
  },
51
- resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata) {
52
- // assembly/api-debugger/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, i64, bool?) => void
53
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
54
- flatRegisters = __retain(__lowerArray(__setU8, 6, 0, flatRegisters) || __notnull());
55
- pageMap = __retain(__lowerTypedArray(Uint8Array, 10, 0, pageMap) || __notnull());
56
- chunks = __lowerTypedArray(Uint8Array, 10, 0, chunks) || __notnull();
63
+ resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata, useBlockGas) {
64
+ // assembly/api-debugger/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, u64, bool?, bool?) => void
65
+ program = __retain(__lowerArray(__setU8, 32, 0, program) || __notnull());
66
+ flatRegisters = __retain(__lowerArray(__setU8, 32, 0, flatRegisters) || __notnull());
67
+ pageMap = __retain(__lowerTypedArray(Uint8Array, 15, 0, pageMap) || __notnull());
68
+ chunks = __lowerTypedArray(Uint8Array, 15, 0, chunks) || __notnull();
57
69
  initialGas = initialGas || 0n;
58
70
  hasMetadata = hasMetadata ? 1 : 0;
71
+ useBlockGas = useBlockGas ? 1 : 0;
59
72
  try {
60
73
  exports.__setArgumentsLength(arguments.length);
61
- exports.resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata);
74
+ exports.resetGenericWithMemory(program, flatRegisters, pageMap, chunks, initialGas, hasMetadata, useBlockGas);
62
75
  } finally {
63
76
  __release(program);
64
77
  __release(flatRegisters);
@@ -82,7 +95,7 @@ export async function instantiate(module, imports = {}) {
82
95
  return exports.getExitArg() >>> 0;
83
96
  },
84
97
  setGasLeft(gas) {
85
- // assembly/api-debugger/setGasLeft(i64) => void
98
+ // assembly/api-debugger/setGasLeft(u64) => void
86
99
  gas = gas || 0n;
87
100
  exports.setGasLeft(gas);
88
101
  },
@@ -92,7 +105,7 @@ export async function instantiate(module, imports = {}) {
92
105
  },
93
106
  setRegisters(flatRegisters) {
94
107
  // assembly/api-debugger/setRegisters(~lib/array/Array<u8>) => void
95
- flatRegisters = __lowerArray(__setU8, 6, 0, flatRegisters) || __notnull();
108
+ flatRegisters = __lowerArray(__setU8, 32, 0, flatRegisters) || __notnull();
96
109
  exports.setRegisters(flatRegisters);
97
110
  },
98
111
  getPageDump(index) {
@@ -109,57 +122,9 @@ export async function instantiate(module, imports = {}) {
109
122
  },
110
123
  setMemory(address, data) {
111
124
  // assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) => bool
112
- data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
125
+ data = __lowerTypedArray(Uint8Array, 15, 0, data) || __notnull();
113
126
  return exports.setMemory(address, data) != 0;
114
127
  },
115
- getAssembly(p) {
116
- // assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
117
- p = __lowerInternref(p) || __notnull();
118
- return __liftString(exports.getAssembly(p) >>> 0);
119
- },
120
- buildMemory(builder, pages, chunks) {
121
- // assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
122
- builder = __retain(__lowerInternref(builder) || __notnull());
123
- pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
124
- chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
125
- try {
126
- return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
127
- } finally {
128
- __release(builder);
129
- __release(pages);
130
- }
131
- },
132
- vmInit(input, useSbrkGas) {
133
- // assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
134
- input = __lowerInternref(input) || __notnull();
135
- useSbrkGas = useSbrkGas ? 1 : 0;
136
- exports.__setArgumentsLength(arguments.length);
137
- return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
138
- },
139
- vmRunOnce(input, options) {
140
- // assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, assembly/api-types/VmRunOptions) => assembly/api-types/VmOutput
141
- input = __retain(__lowerInternref(input) || __notnull());
142
- options = __lowerRecord50(options) || __notnull();
143
- try {
144
- return __liftRecord51(exports.vmRunOnce(input, options) >>> 0);
145
- } finally {
146
- __release(input);
147
- }
148
- },
149
- vmExecute(int, logs) {
150
- // assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
151
- int = __lowerInternref(int) || __notnull();
152
- logs = logs ? 1 : 0;
153
- exports.__setArgumentsLength(arguments.length);
154
- exports.vmExecute(int, logs);
155
- },
156
- vmDestroy(int, dumpMemory) {
157
- // assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
158
- int = __lowerInternref(int) || __notnull();
159
- dumpMemory = dumpMemory ? 1 : 0;
160
- exports.__setArgumentsLength(arguments.length);
161
- return __liftRecord51(exports.vmDestroy(int, dumpMemory) >>> 0);
162
- },
163
128
  InputKind: (values => (
164
129
  // assembly/api-utils/InputKind
165
130
  values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
@@ -172,25 +137,26 @@ export async function instantiate(module, imports = {}) {
172
137
  values[values.No = exports["HasMetadata.No"].valueOf()] = "No",
173
138
  values
174
139
  ))({}),
175
- getGasCosts(input, kind, withMetadata) {
176
- // assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
177
- input = __lowerArray(__setU8, 6, 0, input) || __notnull();
178
- return __liftArray(pointer => __liftRecord56(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
140
+ getBlockGasCosts(input, kind, withMetadata) {
141
+ // assembly/api-utils/getBlockGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/api-utils/BlockGasCost>
142
+ input = __lowerArray(__setU8, 32, 0, input) || __notnull();
143
+ return __liftArray(pointer => __liftRecord58(__getU32(pointer)), 2, exports.getBlockGasCosts(input, kind, withMetadata) >>> 0);
179
144
  },
180
145
  disassemble(input, kind, withMetadata) {
181
146
  // assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
182
- input = __lowerArray(__setU8, 6, 0, input) || __notnull();
147
+ input = __lowerArray(__setU8, 32, 0, input) || __notnull();
183
148
  return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
184
149
  },
185
- prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
186
- // 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
187
- program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
188
- initialRegisters = __retain(__lowerArray(__setU64, 52, 3, initialRegisters) || __notnull());
189
- initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
190
- initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
191
- args = __lowerArray(__setU8, 6, 0, args) || __notnull();
150
+ prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages, useBlockGas) {
151
+ // 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, bool) => assembly/spi/StandardProgram
152
+ program = __retain(__lowerArray(__setU8, 32, 0, program) || __notnull());
153
+ initialRegisters = __retain(__lowerArray(__setU64, 60, 3, initialRegisters) || __notnull());
154
+ initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord54(value) || __notnull()); }, 55, 2, initialPageMap) || __notnull());
155
+ initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord56(value) || __notnull()); }, 57, 2, initialMemory) || __notnull());
156
+ args = __lowerArray(__setU8, 32, 0, args) || __notnull();
157
+ useBlockGas = useBlockGas ? 1 : 0;
192
158
  try {
193
- return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
159
+ return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages, useBlockGas) >>> 0);
194
160
  } finally {
195
161
  __release(program);
196
162
  __release(initialRegisters);
@@ -198,30 +164,27 @@ export async function instantiate(module, imports = {}) {
198
164
  __release(initialMemory);
199
165
  }
200
166
  },
201
- runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) {
202
- // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?, bool?) => assembly/api-types/VmOutput
167
+ runProgram(program, initialGas, programCounter, logs, dumpMemory) {
168
+ // assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-types/VmOutput
203
169
  program = __lowerInternref(program) || __notnull();
204
170
  initialGas = initialGas || 0n;
205
171
  logs = logs ? 1 : 0;
206
- useSbrkGas = useSbrkGas ? 1 : 0;
207
172
  dumpMemory = dumpMemory ? 1 : 0;
208
173
  exports.__setArgumentsLength(arguments.length);
209
- return __liftRecord51(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
174
+ return __liftRecord62(exports.runProgram(program, initialGas, programCounter, logs, dumpMemory) >>> 0);
210
175
  },
211
- pvmStart(program, useSbrkGas) {
212
- // assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
176
+ pvmStart(program) {
177
+ // assembly/api-utils/pvmStart(assembly/spi/StandardProgram) => u32
213
178
  program = __lowerInternref(program) || __notnull();
214
- useSbrkGas = useSbrkGas ? 1 : 0;
215
- exports.__setArgumentsLength(arguments.length);
216
- return exports.pvmStart(program, useSbrkGas) >>> 0;
179
+ return exports.pvmStart(program) >>> 0;
217
180
  },
218
181
  pvmDestroy(pvmId) {
219
182
  // assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
220
- return __liftRecord51(exports.pvmDestroy(pvmId) >>> 0);
183
+ return __liftRecord62(exports.pvmDestroy(pvmId) >>> 0);
221
184
  },
222
185
  pvmSetRegisters(pvmId, registers) {
223
186
  // assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
224
- registers = __lowerArray(__setU64, 52, 3, registers) || __notnull();
187
+ registers = __lowerArray(__setU64, 60, 3, registers) || __notnull();
225
188
  exports.pvmSetRegisters(pvmId, registers);
226
189
  },
227
190
  pvmReadMemory(pvmId, address, length) {
@@ -234,55 +197,48 @@ export async function instantiate(module, imports = {}) {
234
197
  },
235
198
  pvmWriteMemory(pvmId, address, data) {
236
199
  // assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
237
- data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
200
+ data = __lowerTypedArray(Uint8Array, 15, 0, data) || __notnull();
238
201
  return exports.pvmWriteMemory(pvmId, address, data) != 0;
239
202
  },
240
203
  pvmResume(pvmId, gas, pc, logs) {
241
- // assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
204
+ // assembly/api-utils/pvmResume(u32, u64, u32, bool?) => assembly/api-types/VmPause | null
242
205
  gas = gas || 0n;
243
206
  logs = logs ? 1 : 0;
244
207
  exports.__setArgumentsLength(arguments.length);
245
- return __liftRecord60(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
246
- },
247
- wrapAsProgram(bytecode) {
248
- // assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
249
- bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
250
- return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
208
+ return __liftRecord68(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
251
209
  },
252
210
  }, exports);
253
- function __lowerRecord44(value) {
211
+ function __liftRecord58(pointer) {
212
+ // assembly/api-utils/BlockGasCost
213
+ // Hint: Opt-out from lifting as a record by providing an empty constructor
214
+ if (!pointer) return null;
215
+ return {
216
+ pc: __getU32(pointer + 0),
217
+ gas: __getU64(pointer + 8),
218
+ };
219
+ }
220
+ function __lowerRecord54(value) {
254
221
  // assembly/api-types/InitialPage
255
222
  // Hint: Opt-out from lowering as a record by providing an empty constructor
256
223
  if (value == null) return 0;
257
- const pointer = exports.__pin(exports.__new(12, 44));
224
+ const pointer = exports.__pin(exports.__new(12, 54));
258
225
  __setU32(pointer + 0, value.address);
259
226
  __setU32(pointer + 4, value.length);
260
227
  __setU32(pointer + 8, value.access);
261
228
  exports.__unpin(pointer);
262
229
  return pointer;
263
230
  }
264
- function __lowerRecord46(value) {
231
+ function __lowerRecord56(value) {
265
232
  // assembly/api-types/InitialChunk
266
233
  // Hint: Opt-out from lowering as a record by providing an empty constructor
267
234
  if (value == null) return 0;
268
- const pointer = exports.__pin(exports.__new(8, 46));
235
+ const pointer = exports.__pin(exports.__new(8, 56));
269
236
  __setU32(pointer + 0, value.address);
270
- __setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
271
- exports.__unpin(pointer);
272
- return pointer;
273
- }
274
- function __lowerRecord50(value) {
275
- // assembly/api-types/VmRunOptions
276
- // Hint: Opt-out from lowering as a record by providing an empty constructor
277
- if (value == null) return 0;
278
- const pointer = exports.__pin(exports.__new(3, 50));
279
- __setU8(pointer + 0, value.useSbrkGas ? 1 : 0);
280
- __setU8(pointer + 1, value.logs ? 1 : 0);
281
- __setU8(pointer + 2, value.dumpMemory ? 1 : 0);
237
+ __setU32(pointer + 4, __lowerArray(__setU8, 32, 0, value.data) || __notnull());
282
238
  exports.__unpin(pointer);
283
239
  return pointer;
284
240
  }
285
- function __liftRecord46(pointer) {
241
+ function __liftRecord56(pointer) {
286
242
  // assembly/api-types/InitialChunk
287
243
  // Hint: Opt-out from lifting as a record by providing an empty constructor
288
244
  if (!pointer) return null;
@@ -291,7 +247,7 @@ export async function instantiate(module, imports = {}) {
291
247
  data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
292
248
  };
293
249
  }
294
- function __liftRecord51(pointer) {
250
+ function __liftRecord62(pointer) {
295
251
  // assembly/api-types/VmOutput
296
252
  // Hint: Opt-out from lifting as a record by providing an empty constructor
297
253
  if (!pointer) return null;
@@ -299,22 +255,13 @@ export async function instantiate(module, imports = {}) {
299
255
  status: __getI32(pointer + 0),
300
256
  exitCode: __getU32(pointer + 4),
301
257
  pc: __getU32(pointer + 8),
302
- gas: __getI64(pointer + 16),
258
+ gas: __getU64(pointer + 16),
303
259
  result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
304
260
  registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
305
- memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
261
+ memory: __liftArray(pointer => __liftRecord56(__getU32(pointer)), 2, __getU32(pointer + 32)),
306
262
  };
307
263
  }
308
- function __liftRecord56(pointer) {
309
- // assembly/gas-costs/BlockGasCost
310
- // Hint: Opt-out from lifting as a record by providing an empty constructor
311
- if (!pointer) return null;
312
- return {
313
- pc: __getU32(pointer + 0),
314
- gas: __getU64(pointer + 8),
315
- };
316
- }
317
- function __liftRecord60(pointer) {
264
+ function __liftRecord68(pointer) {
318
265
  // assembly/api-types/VmPause
319
266
  // Hint: Opt-out from lifting as a record by providing an empty constructor
320
267
  if (!pointer) return null;
@@ -323,7 +270,7 @@ export async function instantiate(module, imports = {}) {
323
270
  exitCode: __getU32(pointer + 4),
324
271
  pc: __getU32(pointer + 8),
325
272
  nextPc: __getU32(pointer + 12),
326
- gas: __getI64(pointer + 16),
273
+ gas: __getU64(pointer + 16),
327
274
  registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
328
275
  };
329
276
  }
@@ -465,14 +412,6 @@ export async function instantiate(module, imports = {}) {
465
412
  return __dataview.getUint32(pointer, true);
466
413
  }
467
414
  }
468
- function __getI64(pointer) {
469
- try {
470
- return __dataview.getBigInt64(pointer, true);
471
- } catch {
472
- __dataview = new DataView(memory.buffer);
473
- return __dataview.getBigInt64(pointer, true);
474
- }
475
- }
476
415
  function __getU64(pointer) {
477
416
  try {
478
417
  return __dataview.getBigUint64(pointer, true);
Binary file