@fluffylabs/anan-as 1.2.0-47bd114 → 1.2.0-d7c7e69
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.
- package/dist/bin/src/trace-replay.js +2 -2
- package/dist/build/compiler-inline.js +1 -1
- package/dist/build/compiler.wasm +0 -0
- package/dist/build/debug-inline.js +1 -1
- package/dist/build/debug-raw-inline.js +1 -1
- package/dist/build/debug-raw.d.ts +41 -105
- package/dist/build/debug-raw.js +58 -120
- package/dist/build/debug-raw.wasm +0 -0
- package/dist/build/debug.d.ts +41 -105
- package/dist/build/debug.js +60 -127
- package/dist/build/debug.wasm +0 -0
- package/dist/build/js/assembly/api-debugger.d.ts +55 -0
- package/dist/build/js/assembly/api-debugger.js +245 -0
- package/dist/build/js/assembly/api-internal.d.ts +13 -0
- package/dist/build/js/assembly/api-internal.js +192 -0
- package/dist/build/js/assembly/api-types.d.ts +46 -0
- package/dist/build/js/assembly/api-types.js +53 -0
- package/dist/build/js/assembly/api-utils.d.ts +72 -0
- package/dist/build/js/assembly/api-utils.js +206 -0
- package/dist/build/js/assembly/arguments.d.ts +44 -0
- package/dist/build/js/assembly/arguments.js +164 -0
- package/dist/build/js/assembly/codec.d.ts +24 -0
- package/dist/build/js/assembly/codec.js +139 -0
- package/dist/build/js/assembly/gas-costs.d.ts +6 -0
- package/dist/build/js/assembly/gas-costs.js +39 -0
- package/dist/build/js/assembly/gas.d.ts +11 -0
- package/dist/build/js/assembly/gas.js +32 -0
- package/dist/build/js/assembly/index-shared.d.ts +4 -0
- package/dist/build/js/assembly/index-shared.js +4 -0
- package/dist/build/js/assembly/instructions/bit.d.ts +11 -0
- package/dist/build/js/assembly/instructions/bit.js +53 -0
- package/dist/build/js/assembly/instructions/branch.d.ts +17 -0
- package/dist/build/js/assembly/instructions/branch.js +120 -0
- package/dist/build/js/assembly/instructions/jump.d.ts +5 -0
- package/dist/build/js/assembly/instructions/jump.js +21 -0
- package/dist/build/js/assembly/instructions/load.d.ts +17 -0
- package/dist/build/js/assembly/instructions/load.js +134 -0
- package/dist/build/js/assembly/instructions/logic.d.ts +10 -0
- package/dist/build/js/assembly/instructions/logic.js +47 -0
- package/dist/build/js/assembly/instructions/math.d.ts +28 -0
- package/dist/build/js/assembly/instructions/math.js +225 -0
- package/dist/build/js/assembly/instructions/misc.d.ts +6 -0
- package/dist/build/js/assembly/instructions/misc.js +22 -0
- package/dist/build/js/assembly/instructions/mov.d.ts +6 -0
- package/dist/build/js/assembly/instructions/mov.js +35 -0
- package/dist/build/js/assembly/instructions/outcome.d.ts +30 -0
- package/dist/build/js/assembly/instructions/outcome.js +61 -0
- package/dist/build/js/assembly/instructions/rot.d.ts +15 -0
- package/dist/build/js/assembly/instructions/rot.js +66 -0
- package/dist/build/js/assembly/instructions/set.d.ts +7 -0
- package/dist/build/js/assembly/instructions/set.js +36 -0
- package/dist/build/js/assembly/instructions/shift.d.ts +19 -0
- package/dist/build/js/assembly/instructions/shift.js +121 -0
- package/dist/build/js/assembly/instructions/store.d.ts +17 -0
- package/dist/build/js/assembly/instructions/store.js +101 -0
- package/dist/build/js/assembly/instructions/utils.d.ts +23 -0
- package/dist/build/js/assembly/instructions/utils.js +75 -0
- package/dist/build/js/assembly/instructions-exe.d.ts +2 -0
- package/dist/build/js/assembly/instructions-exe.js +245 -0
- package/dist/build/js/assembly/instructions.d.ts +11 -0
- package/dist/build/js/assembly/instructions.js +252 -0
- package/dist/build/js/assembly/interpreter.d.ts +29 -0
- package/dist/build/js/assembly/interpreter.js +228 -0
- package/dist/build/js/assembly/math.d.ts +8 -0
- package/dist/build/js/assembly/math.js +14 -0
- package/dist/build/js/assembly/memory-page.d.ts +36 -0
- package/dist/build/js/assembly/memory-page.js +74 -0
- package/dist/build/js/assembly/memory.d.ts +83 -0
- package/dist/build/js/assembly/memory.js +480 -0
- package/dist/build/js/assembly/portable.d.ts +24 -0
- package/dist/build/js/assembly/portable.js +362 -0
- package/dist/build/js/assembly/program-build.d.ts +2 -0
- package/dist/build/js/assembly/program-build.js +104 -0
- package/dist/build/js/assembly/program.d.ts +78 -0
- package/dist/build/js/assembly/program.js +290 -0
- package/dist/build/js/assembly/registers.d.ts +6 -0
- package/dist/build/js/assembly/registers.js +9 -0
- package/dist/build/js/assembly/spi.d.ts +92 -0
- package/dist/build/js/assembly/spi.js +152 -0
- package/dist/build/js/portable/bootstrap.d.ts +1 -0
- package/dist/build/js/portable/bootstrap.js +5 -0
- package/dist/build/js/portable/index.d.ts +4 -0
- package/dist/build/js/portable/index.js +6 -0
- package/dist/build/js/portable-bundle.js +4409 -0
- package/dist/build/release-inline.js +1 -1
- package/dist/build/release-mini-inline.js +1 -1
- package/dist/build/release-mini.d.ts +41 -105
- package/dist/build/release-mini.js +60 -127
- package/dist/build/release-mini.wasm +0 -0
- package/dist/build/release-stub-inline.js +1 -1
- package/dist/build/release-stub.d.ts +41 -105
- package/dist/build/release-stub.js +60 -127
- package/dist/build/release-stub.wasm +0 -0
- package/dist/build/release.d.ts +41 -105
- package/dist/build/release.js +60 -127
- package/dist/build/release.wasm +0 -0
- package/dist/build/test-inline.js +1 -1
- package/dist/build/test.wasm +0 -0
- package/dist/test/test-w3f-common.js +126 -0
- package/dist/test/test-w3f-portable.js +5 -0
- package/dist/test/test-w3f.js +3 -120
- package/package.json +16 -5
package/dist/build/debug.d.ts
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
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: __Internref31): 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;
|
|
3
15
|
/**
|
|
4
16
|
* assembly/api-debugger/resetJAM
|
|
5
17
|
* @param program `~lib/array/Array<u8>`
|
|
6
18
|
* @param pc `u32`
|
|
7
|
-
* @param initialGas `
|
|
19
|
+
* @param initialGas `u64`
|
|
8
20
|
* @param args `~lib/array/Array<u8>`
|
|
9
21
|
* @param hasMetadata `bool`
|
|
10
22
|
*/
|
|
@@ -13,7 +25,7 @@ export declare function resetJAM(program: Array<number>, pc: number, initialGas:
|
|
|
13
25
|
* assembly/api-debugger/resetGeneric
|
|
14
26
|
* @param program `~lib/array/Array<u8>`
|
|
15
27
|
* @param flatRegisters `~lib/array/Array<u8>`
|
|
16
|
-
* @param initialGas `
|
|
28
|
+
* @param initialGas `u64`
|
|
17
29
|
* @param hasMetadata `bool`
|
|
18
30
|
*/
|
|
19
31
|
export declare function resetGeneric(program: Array<number>, flatRegisters: Array<number>, initialGas: bigint, hasMetadata?: boolean): void;
|
|
@@ -23,7 +35,7 @@ export declare function resetGeneric(program: Array<number>, flatRegisters: Arra
|
|
|
23
35
|
* @param flatRegisters `~lib/array/Array<u8>`
|
|
24
36
|
* @param pageMap `~lib/typedarray/Uint8Array`
|
|
25
37
|
* @param chunks `~lib/typedarray/Uint8Array`
|
|
26
|
-
* @param initialGas `
|
|
38
|
+
* @param initialGas `u64`
|
|
27
39
|
* @param hasMetadata `bool`
|
|
28
40
|
*/
|
|
29
41
|
export declare function resetGenericWithMemory(program: Array<number>, flatRegisters: Array<number>, pageMap: Uint8Array, chunks: Uint8Array, initialGas: bigint, hasMetadata?: boolean): void;
|
|
@@ -65,7 +77,7 @@ export declare function getExitArg(): number;
|
|
|
65
77
|
export declare function getGasLeft(): bigint;
|
|
66
78
|
/**
|
|
67
79
|
* assembly/api-debugger/setGasLeft
|
|
68
|
-
* @param gas `
|
|
80
|
+
* @param gas `u64`
|
|
69
81
|
*/
|
|
70
82
|
export declare function setGasLeft(gas: bigint): void;
|
|
71
83
|
/**
|
|
@@ -104,47 +116,6 @@ export declare function getMemory(address: number, length: number): Uint8Array |
|
|
|
104
116
|
* @returns `bool`
|
|
105
117
|
*/
|
|
106
118
|
export declare function setMemory(address: number, data: Uint8Array): boolean;
|
|
107
|
-
/**
|
|
108
|
-
* assembly/api-internal/getAssembly
|
|
109
|
-
* @param p `assembly/program/Program`
|
|
110
|
-
* @returns `~lib/string/String`
|
|
111
|
-
*/
|
|
112
|
-
export declare function getAssembly(p: __Internref26): string;
|
|
113
|
-
/**
|
|
114
|
-
* assembly/api-internal/buildMemory
|
|
115
|
-
* @param builder `assembly/memory/MemoryBuilder`
|
|
116
|
-
* @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
117
|
-
* @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
118
|
-
* @returns `assembly/memory/Memory`
|
|
119
|
-
*/
|
|
120
|
-
export declare function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
|
|
121
|
-
/**
|
|
122
|
-
* assembly/api-internal/vmInit
|
|
123
|
-
* @param input `assembly/api-types/VmInput`
|
|
124
|
-
* @param useSbrkGas `bool`
|
|
125
|
-
* @returns `assembly/interpreter/Interpreter`
|
|
126
|
-
*/
|
|
127
|
-
export declare function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
|
|
128
|
-
/**
|
|
129
|
-
* assembly/api-internal/vmRunOnce
|
|
130
|
-
* @param input `assembly/api-types/VmInput`
|
|
131
|
-
* @param options `assembly/api-types/VmRunOptions`
|
|
132
|
-
* @returns `assembly/api-types/VmOutput`
|
|
133
|
-
*/
|
|
134
|
-
export declare function vmRunOnce(input: __Internref49, options: __Record50<undefined>): __Record51<never>;
|
|
135
|
-
/**
|
|
136
|
-
* assembly/api-internal/vmExecute
|
|
137
|
-
* @param int `assembly/interpreter/Interpreter`
|
|
138
|
-
* @param logs `bool`
|
|
139
|
-
*/
|
|
140
|
-
export declare function vmExecute(int: __Internref25, logs?: boolean): void;
|
|
141
|
-
/**
|
|
142
|
-
* assembly/api-internal/vmDestroy
|
|
143
|
-
* @param int `assembly/interpreter/Interpreter`
|
|
144
|
-
* @param dumpMemory `bool`
|
|
145
|
-
* @returns `assembly/api-types/VmOutput`
|
|
146
|
-
*/
|
|
147
|
-
export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record51<never>;
|
|
148
119
|
/** assembly/api-utils/InputKind */
|
|
149
120
|
export declare enum InputKind {
|
|
150
121
|
/** @type `i32` */
|
|
@@ -166,7 +137,7 @@ export declare enum HasMetadata {
|
|
|
166
137
|
* @param withMetadata `i32`
|
|
167
138
|
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
168
139
|
*/
|
|
169
|
-
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<
|
|
140
|
+
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record54<never>>;
|
|
170
141
|
/**
|
|
171
142
|
* assembly/api-utils/disassemble
|
|
172
143
|
* @param input `~lib/array/Array<u8>`
|
|
@@ -187,7 +158,7 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
|
|
|
187
158
|
* @param preallocateMemoryPages `u32`
|
|
188
159
|
* @returns `assembly/spi/StandardProgram`
|
|
189
160
|
*/
|
|
190
|
-
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<
|
|
161
|
+
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record50<undefined>>, initialMemory: Array<__Record52<undefined>>, args: Array<number>, preallocateMemoryPages: number): __Internref47;
|
|
191
162
|
/**
|
|
192
163
|
* assembly/api-utils/runProgram
|
|
193
164
|
* @param program `assembly/spi/StandardProgram`
|
|
@@ -198,20 +169,20 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
|
|
|
198
169
|
* @param dumpMemory `bool`
|
|
199
170
|
* @returns `assembly/api-types/VmOutput`
|
|
200
171
|
*/
|
|
201
|
-
export declare function runProgram(program:
|
|
172
|
+
export declare function runProgram(program: __Internref47, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record59<never>;
|
|
202
173
|
/**
|
|
203
174
|
* assembly/api-utils/pvmStart
|
|
204
175
|
* @param program `assembly/spi/StandardProgram`
|
|
205
176
|
* @param useSbrkGas `bool`
|
|
206
177
|
* @returns `u32`
|
|
207
178
|
*/
|
|
208
|
-
export declare function pvmStart(program:
|
|
179
|
+
export declare function pvmStart(program: __Internref47, useSbrkGas?: boolean): number;
|
|
209
180
|
/**
|
|
210
181
|
* assembly/api-utils/pvmDestroy
|
|
211
182
|
* @param pvmId `u32`
|
|
212
183
|
* @returns `assembly/api-types/VmOutput | null`
|
|
213
184
|
*/
|
|
214
|
-
export declare function pvmDestroy(pvmId: number):
|
|
185
|
+
export declare function pvmDestroy(pvmId: number): __Record59<never> | null;
|
|
215
186
|
/**
|
|
216
187
|
* assembly/api-utils/pvmSetRegisters
|
|
217
188
|
* @param pvmId `u32`
|
|
@@ -244,30 +215,26 @@ export declare function pvmWriteMemory(pvmId: number, address: number, data: Uin
|
|
|
244
215
|
/**
|
|
245
216
|
* assembly/api-utils/pvmResume
|
|
246
217
|
* @param pvmId `u32`
|
|
247
|
-
* @param gas `
|
|
218
|
+
* @param gas `u64`
|
|
248
219
|
* @param pc `u32`
|
|
249
220
|
* @param logs `bool`
|
|
250
221
|
* @returns `assembly/api-types/VmPause | null`
|
|
251
222
|
*/
|
|
252
|
-
export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean):
|
|
253
|
-
/**
|
|
254
|
-
* assembly/program-build/wrapAsProgram
|
|
255
|
-
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
256
|
-
* @returns `~lib/typedarray/Uint8Array`
|
|
257
|
-
*/
|
|
258
|
-
export declare function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
|
|
223
|
+
export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record65<never> | null;
|
|
259
224
|
/** assembly/program/Program */
|
|
260
|
-
declare class
|
|
261
|
-
private
|
|
225
|
+
declare class __Internref31 extends Number {
|
|
226
|
+
private __nominal31: symbol;
|
|
262
227
|
private __nominal0: symbol;
|
|
263
228
|
}
|
|
264
|
-
/** assembly/
|
|
265
|
-
declare
|
|
266
|
-
|
|
267
|
-
|
|
229
|
+
/** assembly/gas-costs/BlockGasCost */
|
|
230
|
+
declare interface __Record54<TOmittable> {
|
|
231
|
+
/** @type `u32` */
|
|
232
|
+
pc: number | TOmittable;
|
|
233
|
+
/** @type `u64` */
|
|
234
|
+
gas: bigint | TOmittable;
|
|
268
235
|
}
|
|
269
236
|
/** assembly/api-types/InitialPage */
|
|
270
|
-
declare interface
|
|
237
|
+
declare interface __Record50<TOmittable> {
|
|
271
238
|
/** @type `u32` */
|
|
272
239
|
address: number | TOmittable;
|
|
273
240
|
/** @type `u32` */
|
|
@@ -276,67 +243,36 @@ declare interface __Record44<TOmittable> {
|
|
|
276
243
|
access: number | TOmittable;
|
|
277
244
|
}
|
|
278
245
|
/** assembly/api-types/InitialChunk */
|
|
279
|
-
declare interface
|
|
246
|
+
declare interface __Record52<TOmittable> {
|
|
280
247
|
/** @type `u32` */
|
|
281
248
|
address: number | TOmittable;
|
|
282
249
|
/** @type `~lib/array/Array<u8>` */
|
|
283
250
|
data: Array<number>;
|
|
284
251
|
}
|
|
285
|
-
/** assembly/
|
|
286
|
-
declare class
|
|
287
|
-
private
|
|
288
|
-
private __nominal0: symbol;
|
|
289
|
-
}
|
|
290
|
-
/** assembly/api-types/VmInput */
|
|
291
|
-
declare class __Internref49 extends Number {
|
|
292
|
-
private __nominal49: symbol;
|
|
293
|
-
private __nominal0: symbol;
|
|
294
|
-
}
|
|
295
|
-
/** assembly/interpreter/Interpreter */
|
|
296
|
-
declare class __Internref25 extends Number {
|
|
297
|
-
private __nominal25: symbol;
|
|
252
|
+
/** assembly/spi/StandardProgram */
|
|
253
|
+
declare class __Internref47 extends Number {
|
|
254
|
+
private __nominal47: symbol;
|
|
298
255
|
private __nominal0: symbol;
|
|
299
256
|
}
|
|
300
|
-
/** assembly/api-types/VmRunOptions */
|
|
301
|
-
declare interface __Record50<TOmittable> {
|
|
302
|
-
/** @type `bool` */
|
|
303
|
-
useSbrkGas: boolean | TOmittable;
|
|
304
|
-
/** @type `bool` */
|
|
305
|
-
logs: boolean | TOmittable;
|
|
306
|
-
/** @type `bool` */
|
|
307
|
-
dumpMemory: boolean | TOmittable;
|
|
308
|
-
}
|
|
309
257
|
/** assembly/api-types/VmOutput */
|
|
310
|
-
declare interface
|
|
258
|
+
declare interface __Record59<TOmittable> {
|
|
311
259
|
/** @type `i32` */
|
|
312
260
|
status: number | TOmittable;
|
|
313
261
|
/** @type `u32` */
|
|
314
262
|
exitCode: number | TOmittable;
|
|
315
263
|
/** @type `u32` */
|
|
316
264
|
pc: number | TOmittable;
|
|
317
|
-
/** @type `
|
|
265
|
+
/** @type `u64` */
|
|
318
266
|
gas: bigint | TOmittable;
|
|
319
267
|
/** @type `~lib/array/Array<u8>` */
|
|
320
268
|
result: Array<number>;
|
|
321
269
|
/** @type `~lib/array/Array<u64>` */
|
|
322
270
|
registers: Array<bigint>;
|
|
323
271
|
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
324
|
-
memory: Array<
|
|
325
|
-
}
|
|
326
|
-
/** assembly/gas-costs/BlockGasCost */
|
|
327
|
-
declare interface __Record56<TOmittable> {
|
|
328
|
-
/** @type `u32` */
|
|
329
|
-
pc: number | TOmittable;
|
|
330
|
-
/** @type `u64` */
|
|
331
|
-
gas: bigint | TOmittable;
|
|
332
|
-
}
|
|
333
|
-
/** assembly/spi/StandardProgram */
|
|
334
|
-
declare class __Internref40 extends Number {
|
|
335
|
-
private __nominal40: symbol;
|
|
336
|
-
private __nominal0: symbol;
|
|
272
|
+
memory: Array<__Record52<never>>;
|
|
337
273
|
}
|
|
338
274
|
/** assembly/api-types/VmPause */
|
|
339
|
-
declare interface
|
|
275
|
+
declare interface __Record65<TOmittable> {
|
|
340
276
|
/** @type `i32` */
|
|
341
277
|
status: number | TOmittable;
|
|
342
278
|
/** @type `u32` */
|
|
@@ -345,7 +281,7 @@ declare interface __Record60<TOmittable> {
|
|
|
345
281
|
pc: number | TOmittable;
|
|
346
282
|
/** @type `u32` */
|
|
347
283
|
nextPc: number | TOmittable;
|
|
348
|
-
/** @type `
|
|
284
|
+
/** @type `u64` */
|
|
349
285
|
gas: bigint | TOmittable;
|
|
350
286
|
/** @type `~lib/array/Array<u64>` */
|
|
351
287
|
registers: Array<bigint>;
|
package/dist/build/debug.js
CHANGED
|
@@ -22,11 +22,21 @@ 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, 12, 0, bytecode) || __notnull();
|
|
33
|
+
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
34
|
+
},
|
|
25
35
|
resetJAM(program, pc, initialGas, args, hasMetadata) {
|
|
26
|
-
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32,
|
|
27
|
-
program = __retain(__lowerArray(__setU8,
|
|
36
|
+
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>, u32, u64, ~lib/array/Array<u8>, bool?) => void
|
|
37
|
+
program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
|
|
28
38
|
initialGas = initialGas || 0n;
|
|
29
|
-
args = __lowerArray(__setU8,
|
|
39
|
+
args = __lowerArray(__setU8, 7, 0, args) || __notnull();
|
|
30
40
|
hasMetadata = hasMetadata ? 1 : 0;
|
|
31
41
|
try {
|
|
32
42
|
exports.__setArgumentsLength(arguments.length);
|
|
@@ -36,9 +46,9 @@ async function instantiate(module, imports = {}) {
|
|
|
36
46
|
}
|
|
37
47
|
},
|
|
38
48
|
resetGeneric(program, flatRegisters, initialGas, hasMetadata) {
|
|
39
|
-
// assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>,
|
|
40
|
-
program = __retain(__lowerArray(__setU8,
|
|
41
|
-
flatRegisters = __lowerArray(__setU8,
|
|
49
|
+
// assembly/api-debugger/resetGeneric(~lib/array/Array<u8>, ~lib/array/Array<u8>, u64, bool?) => void
|
|
50
|
+
program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
|
|
51
|
+
flatRegisters = __lowerArray(__setU8, 7, 0, flatRegisters) || __notnull();
|
|
42
52
|
initialGas = initialGas || 0n;
|
|
43
53
|
hasMetadata = hasMetadata ? 1 : 0;
|
|
44
54
|
try {
|
|
@@ -49,11 +59,11 @@ async function instantiate(module, imports = {}) {
|
|
|
49
59
|
}
|
|
50
60
|
},
|
|
51
61
|
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,
|
|
53
|
-
program = __retain(__lowerArray(__setU8,
|
|
54
|
-
flatRegisters = __retain(__lowerArray(__setU8,
|
|
55
|
-
pageMap = __retain(__lowerTypedArray(Uint8Array,
|
|
56
|
-
chunks = __lowerTypedArray(Uint8Array,
|
|
62
|
+
// assembly/api-debugger/resetGenericWithMemory(~lib/array/Array<u8>, ~lib/array/Array<u8>, ~lib/typedarray/Uint8Array, ~lib/typedarray/Uint8Array, u64, bool?) => void
|
|
63
|
+
program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
|
|
64
|
+
flatRegisters = __retain(__lowerArray(__setU8, 7, 0, flatRegisters) || __notnull());
|
|
65
|
+
pageMap = __retain(__lowerTypedArray(Uint8Array, 12, 0, pageMap) || __notnull());
|
|
66
|
+
chunks = __lowerTypedArray(Uint8Array, 12, 0, chunks) || __notnull();
|
|
57
67
|
initialGas = initialGas || 0n;
|
|
58
68
|
hasMetadata = hasMetadata ? 1 : 0;
|
|
59
69
|
try {
|
|
@@ -82,7 +92,7 @@ async function instantiate(module, imports = {}) {
|
|
|
82
92
|
return exports.getExitArg() >>> 0;
|
|
83
93
|
},
|
|
84
94
|
setGasLeft(gas) {
|
|
85
|
-
// assembly/api-debugger/setGasLeft(
|
|
95
|
+
// assembly/api-debugger/setGasLeft(u64) => void
|
|
86
96
|
gas = gas || 0n;
|
|
87
97
|
exports.setGasLeft(gas);
|
|
88
98
|
},
|
|
@@ -92,7 +102,7 @@ async function instantiate(module, imports = {}) {
|
|
|
92
102
|
},
|
|
93
103
|
setRegisters(flatRegisters) {
|
|
94
104
|
// assembly/api-debugger/setRegisters(~lib/array/Array<u8>) => void
|
|
95
|
-
flatRegisters = __lowerArray(__setU8,
|
|
105
|
+
flatRegisters = __lowerArray(__setU8, 7, 0, flatRegisters) || __notnull();
|
|
96
106
|
exports.setRegisters(flatRegisters);
|
|
97
107
|
},
|
|
98
108
|
getPageDump(index) {
|
|
@@ -109,57 +119,9 @@ async function instantiate(module, imports = {}) {
|
|
|
109
119
|
},
|
|
110
120
|
setMemory(address, data) {
|
|
111
121
|
// assembly/api-debugger/setMemory(u32, ~lib/typedarray/Uint8Array) => bool
|
|
112
|
-
data = __lowerTypedArray(Uint8Array,
|
|
122
|
+
data = __lowerTypedArray(Uint8Array, 12, 0, data) || __notnull();
|
|
113
123
|
return exports.setMemory(address, data) != 0;
|
|
114
124
|
},
|
|
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
125
|
InputKind: (values => (
|
|
164
126
|
// assembly/api-utils/InputKind
|
|
165
127
|
values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
|
|
@@ -174,21 +136,21 @@ async function instantiate(module, imports = {}) {
|
|
|
174
136
|
))({}),
|
|
175
137
|
getGasCosts(input, kind, withMetadata) {
|
|
176
138
|
// assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
|
|
177
|
-
input = __lowerArray(__setU8,
|
|
178
|
-
return __liftArray(pointer =>
|
|
139
|
+
input = __lowerArray(__setU8, 7, 0, input) || __notnull();
|
|
140
|
+
return __liftArray(pointer => __liftRecord54(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
|
|
179
141
|
},
|
|
180
142
|
disassemble(input, kind, withMetadata) {
|
|
181
143
|
// assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
|
|
182
|
-
input = __lowerArray(__setU8,
|
|
144
|
+
input = __lowerArray(__setU8, 7, 0, input) || __notnull();
|
|
183
145
|
return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
|
|
184
146
|
},
|
|
185
147
|
prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
|
|
186
148
|
// 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,
|
|
188
|
-
initialRegisters = __retain(__lowerArray(__setU64,
|
|
189
|
-
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
190
|
-
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
191
|
-
args = __lowerArray(__setU8,
|
|
149
|
+
program = __retain(__lowerArray(__setU8, 7, 0, program) || __notnull());
|
|
150
|
+
initialRegisters = __retain(__lowerArray(__setU64, 56, 3, initialRegisters) || __notnull());
|
|
151
|
+
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord50(value) || __notnull()); }, 51, 2, initialPageMap) || __notnull());
|
|
152
|
+
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord52(value) || __notnull()); }, 53, 2, initialMemory) || __notnull());
|
|
153
|
+
args = __lowerArray(__setU8, 7, 0, args) || __notnull();
|
|
192
154
|
try {
|
|
193
155
|
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
|
|
194
156
|
} finally {
|
|
@@ -206,7 +168,7 @@ async function instantiate(module, imports = {}) {
|
|
|
206
168
|
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
207
169
|
dumpMemory = dumpMemory ? 1 : 0;
|
|
208
170
|
exports.__setArgumentsLength(arguments.length);
|
|
209
|
-
return
|
|
171
|
+
return __liftRecord59(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas, dumpMemory) >>> 0);
|
|
210
172
|
},
|
|
211
173
|
pvmStart(program, useSbrkGas) {
|
|
212
174
|
// assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
|
|
@@ -217,11 +179,11 @@ async function instantiate(module, imports = {}) {
|
|
|
217
179
|
},
|
|
218
180
|
pvmDestroy(pvmId) {
|
|
219
181
|
// assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
|
|
220
|
-
return
|
|
182
|
+
return __liftRecord59(exports.pvmDestroy(pvmId) >>> 0);
|
|
221
183
|
},
|
|
222
184
|
pvmSetRegisters(pvmId, registers) {
|
|
223
185
|
// assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
|
|
224
|
-
registers = __lowerArray(__setU64,
|
|
186
|
+
registers = __lowerArray(__setU64, 56, 3, registers) || __notnull();
|
|
225
187
|
exports.pvmSetRegisters(pvmId, registers);
|
|
226
188
|
},
|
|
227
189
|
pvmReadMemory(pvmId, address, length) {
|
|
@@ -234,55 +196,48 @@ async function instantiate(module, imports = {}) {
|
|
|
234
196
|
},
|
|
235
197
|
pvmWriteMemory(pvmId, address, data) {
|
|
236
198
|
// assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
|
|
237
|
-
data = __lowerTypedArray(Uint8Array,
|
|
199
|
+
data = __lowerTypedArray(Uint8Array, 12, 0, data) || __notnull();
|
|
238
200
|
return exports.pvmWriteMemory(pvmId, address, data) != 0;
|
|
239
201
|
},
|
|
240
202
|
pvmResume(pvmId, gas, pc, logs) {
|
|
241
|
-
// assembly/api-utils/pvmResume(u32,
|
|
203
|
+
// assembly/api-utils/pvmResume(u32, u64, u32, bool?) => assembly/api-types/VmPause | null
|
|
242
204
|
gas = gas || 0n;
|
|
243
205
|
logs = logs ? 1 : 0;
|
|
244
206
|
exports.__setArgumentsLength(arguments.length);
|
|
245
|
-
return
|
|
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);
|
|
207
|
+
return __liftRecord65(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
|
|
251
208
|
},
|
|
252
209
|
}, exports);
|
|
253
|
-
function
|
|
210
|
+
function __liftRecord54(pointer) {
|
|
211
|
+
// assembly/gas-costs/BlockGasCost
|
|
212
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
213
|
+
if (!pointer) return null;
|
|
214
|
+
return {
|
|
215
|
+
pc: __getU32(pointer + 0),
|
|
216
|
+
gas: __getU64(pointer + 8),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function __lowerRecord50(value) {
|
|
254
220
|
// assembly/api-types/InitialPage
|
|
255
221
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
256
222
|
if (value == null) return 0;
|
|
257
|
-
const pointer = exports.__pin(exports.__new(12,
|
|
223
|
+
const pointer = exports.__pin(exports.__new(12, 50));
|
|
258
224
|
__setU32(pointer + 0, value.address);
|
|
259
225
|
__setU32(pointer + 4, value.length);
|
|
260
226
|
__setU32(pointer + 8, value.access);
|
|
261
227
|
exports.__unpin(pointer);
|
|
262
228
|
return pointer;
|
|
263
229
|
}
|
|
264
|
-
function
|
|
230
|
+
function __lowerRecord52(value) {
|
|
265
231
|
// assembly/api-types/InitialChunk
|
|
266
232
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
267
233
|
if (value == null) return 0;
|
|
268
|
-
const pointer = exports.__pin(exports.__new(8,
|
|
234
|
+
const pointer = exports.__pin(exports.__new(8, 52));
|
|
269
235
|
__setU32(pointer + 0, value.address);
|
|
270
|
-
__setU32(pointer + 4, __lowerArray(__setU8,
|
|
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);
|
|
236
|
+
__setU32(pointer + 4, __lowerArray(__setU8, 7, 0, value.data) || __notnull());
|
|
282
237
|
exports.__unpin(pointer);
|
|
283
238
|
return pointer;
|
|
284
239
|
}
|
|
285
|
-
function
|
|
240
|
+
function __liftRecord52(pointer) {
|
|
286
241
|
// assembly/api-types/InitialChunk
|
|
287
242
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
288
243
|
if (!pointer) return null;
|
|
@@ -291,7 +246,7 @@ async function instantiate(module, imports = {}) {
|
|
|
291
246
|
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
292
247
|
};
|
|
293
248
|
}
|
|
294
|
-
function
|
|
249
|
+
function __liftRecord59(pointer) {
|
|
295
250
|
// assembly/api-types/VmOutput
|
|
296
251
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
297
252
|
if (!pointer) return null;
|
|
@@ -299,22 +254,13 @@ async function instantiate(module, imports = {}) {
|
|
|
299
254
|
status: __getI32(pointer + 0),
|
|
300
255
|
exitCode: __getU32(pointer + 4),
|
|
301
256
|
pc: __getU32(pointer + 8),
|
|
302
|
-
gas:
|
|
257
|
+
gas: __getU64(pointer + 16),
|
|
303
258
|
result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
|
|
304
259
|
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
|
|
305
|
-
memory: __liftArray(pointer =>
|
|
260
|
+
memory: __liftArray(pointer => __liftRecord52(__getU32(pointer)), 2, __getU32(pointer + 32)),
|
|
306
261
|
};
|
|
307
262
|
}
|
|
308
|
-
function
|
|
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) {
|
|
263
|
+
function __liftRecord65(pointer) {
|
|
318
264
|
// assembly/api-types/VmPause
|
|
319
265
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
320
266
|
if (!pointer) return null;
|
|
@@ -323,7 +269,7 @@ async function instantiate(module, imports = {}) {
|
|
|
323
269
|
exitCode: __getU32(pointer + 4),
|
|
324
270
|
pc: __getU32(pointer + 8),
|
|
325
271
|
nextPc: __getU32(pointer + 12),
|
|
326
|
-
gas:
|
|
272
|
+
gas: __getU64(pointer + 16),
|
|
327
273
|
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
|
|
328
274
|
};
|
|
329
275
|
}
|
|
@@ -465,14 +411,6 @@ async function instantiate(module, imports = {}) {
|
|
|
465
411
|
return __dataview.getUint32(pointer, true);
|
|
466
412
|
}
|
|
467
413
|
}
|
|
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
414
|
function __getU64(pointer) {
|
|
477
415
|
try {
|
|
478
416
|
return __dataview.getBigUint64(pointer, true);
|
|
@@ -485,6 +423,8 @@ async function instantiate(module, imports = {}) {
|
|
|
485
423
|
}
|
|
486
424
|
export const {
|
|
487
425
|
memory,
|
|
426
|
+
getAssembly,
|
|
427
|
+
wrapAsProgram,
|
|
488
428
|
resetJAM,
|
|
489
429
|
resetGeneric,
|
|
490
430
|
resetGenericWithMemory,
|
|
@@ -502,12 +442,6 @@ export const {
|
|
|
502
442
|
getPagePointer,
|
|
503
443
|
getMemory,
|
|
504
444
|
setMemory,
|
|
505
|
-
getAssembly,
|
|
506
|
-
buildMemory,
|
|
507
|
-
vmInit,
|
|
508
|
-
vmRunOnce,
|
|
509
|
-
vmExecute,
|
|
510
|
-
vmDestroy,
|
|
511
445
|
InputKind,
|
|
512
446
|
HasMetadata,
|
|
513
447
|
getGasCosts,
|
|
@@ -521,7 +455,6 @@ export const {
|
|
|
521
455
|
pvmGetPagePointer,
|
|
522
456
|
pvmWriteMemory,
|
|
523
457
|
pvmResume,
|
|
524
|
-
wrapAsProgram,
|
|
525
458
|
} = await (async url => instantiate(
|
|
526
459
|
await (async () => {
|
|
527
460
|
const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
|
package/dist/build/debug.wasm
CHANGED
|
Binary file
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Gas } from "./gas";
|
|
2
|
+
export declare function resetJAM(program: u8[], pc: u32, initialGas: Gas, args: u8[], hasMetadata?: boolean): void;
|
|
3
|
+
export declare function resetGeneric(program: u8[], flatRegisters: u8[], initialGas: Gas, hasMetadata?: boolean): void;
|
|
4
|
+
export declare function resetGenericWithMemory(program: u8[], flatRegisters: u8[], pageMap: Uint8Array, chunks: Uint8Array, initialGas: Gas, hasMetadata?: boolean): void;
|
|
5
|
+
export declare function nextStep(): boolean;
|
|
6
|
+
export declare function nSteps(steps: u32): boolean;
|
|
7
|
+
export declare function getProgramCounter(): u32;
|
|
8
|
+
export declare function setNextProgramCounter(pc: u32): void;
|
|
9
|
+
export declare function getStatus(): u8;
|
|
10
|
+
export declare function getExitArg(): u32;
|
|
11
|
+
export declare function getGasLeft(): i64;
|
|
12
|
+
export declare function setGasLeft(gas: Gas): void;
|
|
13
|
+
export declare function getRegisters(): Uint8Array;
|
|
14
|
+
export declare function setRegisters(flatRegisters: u8[]): void;
|
|
15
|
+
export declare function getPageDump(index: u32): Uint8Array;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the WASM linear memory pointer (byte offset) for the backing buffer of the page at `page`.
|
|
18
|
+
*
|
|
19
|
+
* Returns `0` if the page does not exist or is not readable (page/access fault).
|
|
20
|
+
*
|
|
21
|
+
* Use this instead of `getMemory` to read memory efficiently from the JS side:
|
|
22
|
+
* ```ts
|
|
23
|
+
* let pagesRead = 0;
|
|
24
|
+
* for (let address = start; address < end; address += PAGE_SIZE) {
|
|
25
|
+
* const page = address >> PAGE_SIZE_SHIFT;
|
|
26
|
+
* const ptr = getPagePointer(page);
|
|
27
|
+
* if (ptr === 0) {
|
|
28
|
+
* throw new Error(`Page fault at ${page << PAGE_SIZE_SHIFT}`);
|
|
29
|
+
* }
|
|
30
|
+
* destination.set(
|
|
31
|
+
* new Uint8Array(wasm.instance.exports.memory.buffer, ptr, Math.min(end - address, PAGE_SIZE)),
|
|
32
|
+
* pagesRead << PAGE_SIZE_SHIFT,
|
|
33
|
+
* );
|
|
34
|
+
* pagesRead += 1;
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function getPagePointer(page: u32): usize;
|
|
39
|
+
/**
|
|
40
|
+
* Read a chunk of memory at `[address, address + length)`.
|
|
41
|
+
*
|
|
42
|
+
* Returns the requested memory chunk or `null` if reading triggered a page fault.
|
|
43
|
+
*
|
|
44
|
+
* @deprecated Getting memory like that is extremely inefficient (copying mulitple times)
|
|
45
|
+
* and error prone (we may not be able to allocate).
|
|
46
|
+
* Use `getPagePointer` instead to read memory directly from WASM linear memory on the JS side
|
|
47
|
+
* with no additional WASM-side allocations.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getMemory(address: u32, length: u32): Uint8Array | null;
|
|
50
|
+
/**
|
|
51
|
+
* Write given `data` under memory indices `[address, address + data.length)`.
|
|
52
|
+
*
|
|
53
|
+
* Returns `true` if the write was successful and `false` if page fault has been triggered.
|
|
54
|
+
*/
|
|
55
|
+
export declare function setMemory(address: u32, data: Uint8Array): boolean;
|