@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.
- package/README.md +107 -12
- package/dist/bin/build-inline.js +70 -0
- package/dist/bin/index.js +293 -0
- package/dist/bin/src/fuzz.js +155 -0
- package/dist/bin/src/log-host-call.js +41 -0
- package/dist/bin/src/test-json.js +135 -0
- package/dist/bin/src/trace-parse.js +315 -0
- package/dist/bin/src/trace-replay.js +130 -0
- package/dist/bin/src/tracer.js +64 -0
- package/dist/bin/src/utils.js +25 -0
- package/dist/bin/test.js +1 -0
- package/dist/build/compiler-inline.d.ts +11 -0
- package/dist/build/compiler-inline.js +22 -0
- package/dist/build/compiler.d.ts +26 -0
- package/dist/build/compiler.js +76 -0
- package/dist/build/compiler.wasm +0 -0
- package/{build → dist/build}/debug-inline.d.ts +1 -1
- package/dist/build/debug-inline.js +22 -0
- package/{build → dist/build}/debug-raw-inline.d.ts +1 -1
- package/dist/build/debug-raw-inline.js +22 -0
- package/{build → dist/build}/debug-raw.d.ts +164 -37
- package/{build → dist/build}/debug-raw.js +143 -42
- package/dist/build/debug-raw.wasm +0 -0
- package/{build → dist/build}/debug.d.ts +164 -37
- package/{build → dist/build}/debug.js +156 -44
- package/dist/build/debug.wasm +0 -0
- package/{build → dist/build}/release-inline.d.ts +1 -1
- package/dist/build/release-inline.js +22 -0
- package/{build → dist/build}/release-mini-inline.d.ts +1 -1
- package/dist/build/release-mini-inline.js +22 -0
- package/{build → dist/build}/release-mini.d.ts +164 -37
- package/{build → dist/build}/release-mini.js +156 -44
- package/dist/build/release-mini.wasm +0 -0
- package/{build → dist/build}/release-stub-inline.d.ts +1 -1
- package/dist/build/release-stub-inline.js +22 -0
- package/{build → dist/build}/release-stub.d.ts +164 -37
- package/{build → dist/build}/release-stub.js +156 -44
- package/dist/build/release-stub.wasm +0 -0
- package/{build → dist/build}/release.d.ts +164 -37
- package/{build → dist/build}/release.js +156 -44
- package/dist/build/release.wasm +0 -0
- package/{build → dist/build}/test-inline.d.ts +1 -1
- package/dist/build/test-inline.js +22 -0
- package/dist/build/test.wasm +0 -0
- package/dist/test/test-as.js +3 -0
- package/dist/test/test-gas-cost.js +57 -0
- package/dist/test/test-trace-replay.js +19 -0
- package/dist/test/test-w3f.js +121 -0
- package/dist/web/bump-version.js +7 -0
- package/package.json +47 -36
- package/build/debug-inline.js +0 -22
- package/build/debug-raw-inline.js +0 -22
- package/build/debug-raw.wasm +0 -0
- package/build/debug.wasm +0 -0
- package/build/release-inline.js +0 -22
- package/build/release-mini-inline.js +0 -22
- package/build/release-mini.wasm +0 -0
- package/build/release-stub-inline.js +0 -22
- package/build/release-stub.wasm +0 -0
- package/build/release.wasm +0 -0
- package/build/test-inline.js +0 -22
- package/build/test.wasm +0 -0
- /package/{build → dist/build}/test.d.ts +0 -0
- /package/{build → dist/build}/test.js +0 -0
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
declare namespace __AdaptedExports {
|
|
2
2
|
/** Exported memory */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
|
-
/**
|
|
5
|
-
* assembly/api-internal/getAssembly
|
|
6
|
-
* @param p `assembly/program/Program`
|
|
7
|
-
* @returns `~lib/string/String`
|
|
8
|
-
*/
|
|
9
|
-
export function getAssembly(p: __Internref26): string;
|
|
10
|
-
/**
|
|
11
|
-
* assembly/program-build/wrapAsProgram
|
|
12
|
-
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
13
|
-
* @returns `~lib/typedarray/Uint8Array`
|
|
14
|
-
*/
|
|
15
|
-
export function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
|
|
16
4
|
/**
|
|
17
5
|
* assembly/api-debugger/resetJAM
|
|
18
6
|
* @param program `~lib/array/Array<u8>`
|
|
19
|
-
* @param pc `
|
|
7
|
+
* @param pc `u32`
|
|
20
8
|
* @param initialGas `i64`
|
|
21
9
|
* @param args `~lib/array/Array<u8>`
|
|
22
10
|
* @param hasMetadata `bool`
|
|
@@ -111,6 +99,47 @@ declare namespace __AdaptedExports {
|
|
|
111
99
|
* @returns `bool`
|
|
112
100
|
*/
|
|
113
101
|
export function setMemory(address: number, data: Uint8Array): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* assembly/api-internal/getAssembly
|
|
104
|
+
* @param p `assembly/program/Program`
|
|
105
|
+
* @returns `~lib/string/String`
|
|
106
|
+
*/
|
|
107
|
+
export function getAssembly(p: __Internref26): string;
|
|
108
|
+
/**
|
|
109
|
+
* assembly/api-internal/buildMemory
|
|
110
|
+
* @param builder `assembly/memory/MemoryBuilder`
|
|
111
|
+
* @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
112
|
+
* @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
113
|
+
* @returns `assembly/memory/Memory`
|
|
114
|
+
*/
|
|
115
|
+
export function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
|
|
116
|
+
/**
|
|
117
|
+
* assembly/api-internal/vmInit
|
|
118
|
+
* @param input `assembly/api-types/VmInput`
|
|
119
|
+
* @param useSbrkGas `bool`
|
|
120
|
+
* @returns `assembly/interpreter/Interpreter`
|
|
121
|
+
*/
|
|
122
|
+
export function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
|
|
123
|
+
/**
|
|
124
|
+
* assembly/api-internal/vmRunOnce
|
|
125
|
+
* @param input `assembly/api-types/VmInput`
|
|
126
|
+
* @param options `assembly/api-types/VmRunOptions`
|
|
127
|
+
* @returns `assembly/api-types/VmOutput`
|
|
128
|
+
*/
|
|
129
|
+
export function vmRunOnce(input: __Internref49, options: __Record50<undefined>): __Record51<never>;
|
|
130
|
+
/**
|
|
131
|
+
* assembly/api-internal/vmExecute
|
|
132
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
133
|
+
* @param logs `bool`
|
|
134
|
+
*/
|
|
135
|
+
export function vmExecute(int: __Internref25, logs?: boolean): void;
|
|
136
|
+
/**
|
|
137
|
+
* assembly/api-internal/vmDestroy
|
|
138
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
139
|
+
* @param dumpMemory `bool`
|
|
140
|
+
* @returns `assembly/api-types/VmOutput`
|
|
141
|
+
*/
|
|
142
|
+
export function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record51<never>;
|
|
114
143
|
/** assembly/api-utils/InputKind */
|
|
115
144
|
export enum InputKind {
|
|
116
145
|
/** @type `i32` */
|
|
@@ -132,7 +161,7 @@ declare namespace __AdaptedExports {
|
|
|
132
161
|
* @param withMetadata `i32`
|
|
133
162
|
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
134
163
|
*/
|
|
135
|
-
export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<
|
|
164
|
+
export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record56<never>>;
|
|
136
165
|
/**
|
|
137
166
|
* assembly/api-utils/disassemble
|
|
138
167
|
* @param input `~lib/array/Array<u8>`
|
|
@@ -147,12 +176,13 @@ declare namespace __AdaptedExports {
|
|
|
147
176
|
* @param hasMetadata `i32`
|
|
148
177
|
* @param program `~lib/array/Array<u8>`
|
|
149
178
|
* @param initialRegisters `~lib/array/Array<u64>`
|
|
150
|
-
* @param initialPageMap `~lib/array/Array<assembly/api-
|
|
151
|
-
* @param initialMemory `~lib/array/Array<assembly/api-
|
|
179
|
+
* @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
180
|
+
* @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
152
181
|
* @param args `~lib/array/Array<u8>`
|
|
182
|
+
* @param preallocateMemoryPages `u32`
|
|
153
183
|
* @returns `assembly/spi/StandardProgram`
|
|
154
184
|
*/
|
|
155
|
-
export function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<
|
|
185
|
+
export function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record44<undefined>>, initialMemory: Array<__Record46<undefined>>, args: Array<number>, preallocateMemoryPages: number): __Internref40;
|
|
156
186
|
/**
|
|
157
187
|
* assembly/api-utils/runProgram
|
|
158
188
|
* @param program `assembly/spi/StandardProgram`
|
|
@@ -160,24 +190,73 @@ declare namespace __AdaptedExports {
|
|
|
160
190
|
* @param programCounter `u32`
|
|
161
191
|
* @param logs `bool`
|
|
162
192
|
* @param useSbrkGas `bool`
|
|
163
|
-
* @
|
|
193
|
+
* @param dumpMemory `bool`
|
|
194
|
+
* @returns `assembly/api-types/VmOutput`
|
|
164
195
|
*/
|
|
165
|
-
export function runProgram(program:
|
|
196
|
+
export function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean, dumpMemory?: boolean): __Record51<never>;
|
|
197
|
+
/**
|
|
198
|
+
* assembly/api-utils/pvmStart
|
|
199
|
+
* @param program `assembly/spi/StandardProgram`
|
|
200
|
+
* @param useSbrkGas `bool`
|
|
201
|
+
* @returns `u32`
|
|
202
|
+
*/
|
|
203
|
+
export function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
|
|
204
|
+
/**
|
|
205
|
+
* assembly/api-utils/pvmDestroy
|
|
206
|
+
* @param pvmId `u32`
|
|
207
|
+
* @returns `assembly/api-types/VmOutput | null`
|
|
208
|
+
*/
|
|
209
|
+
export function pvmDestroy(pvmId: number): __Record51<never> | null;
|
|
210
|
+
/**
|
|
211
|
+
* assembly/api-utils/pvmSetRegisters
|
|
212
|
+
* @param pvmId `u32`
|
|
213
|
+
* @param registers `~lib/array/Array<u64>`
|
|
214
|
+
*/
|
|
215
|
+
export function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
|
|
216
|
+
/**
|
|
217
|
+
* assembly/api-utils/pvmReadMemory
|
|
218
|
+
* @param pvmId `u32`
|
|
219
|
+
* @param address `u32`
|
|
220
|
+
* @param length `u32`
|
|
221
|
+
* @returns `~lib/typedarray/Uint8Array | null`
|
|
222
|
+
*/
|
|
223
|
+
export function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
|
|
224
|
+
/**
|
|
225
|
+
* assembly/api-utils/pvmWriteMemory
|
|
226
|
+
* @param pvmId `u32`
|
|
227
|
+
* @param address `u32`
|
|
228
|
+
* @param data `~lib/typedarray/Uint8Array`
|
|
229
|
+
* @returns `bool`
|
|
230
|
+
*/
|
|
231
|
+
export function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
|
|
232
|
+
/**
|
|
233
|
+
* assembly/api-utils/pvmResume
|
|
234
|
+
* @param pvmId `u32`
|
|
235
|
+
* @param gas `i64`
|
|
236
|
+
* @param pc `u32`
|
|
237
|
+
* @param logs `bool`
|
|
238
|
+
* @returns `assembly/api-types/VmPause | null`
|
|
239
|
+
*/
|
|
240
|
+
export function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record60<never> | null;
|
|
241
|
+
/**
|
|
242
|
+
* assembly/program-build/wrapAsProgram
|
|
243
|
+
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
244
|
+
* @returns `~lib/typedarray/Uint8Array`
|
|
245
|
+
*/
|
|
246
|
+
export function wrapAsProgram(bytecode: Uint8Array): Uint8Array;
|
|
166
247
|
}
|
|
167
248
|
/** assembly/program/Program */
|
|
168
249
|
declare class __Internref26 extends Number {
|
|
169
250
|
private __nominal26: symbol;
|
|
170
251
|
private __nominal0: symbol;
|
|
171
252
|
}
|
|
172
|
-
/** assembly/
|
|
173
|
-
declare
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
/** @type `u64` */
|
|
177
|
-
gas: bigint | TOmittable;
|
|
253
|
+
/** assembly/memory/MemoryBuilder */
|
|
254
|
+
declare class __Internref41 extends Number {
|
|
255
|
+
private __nominal41: symbol;
|
|
256
|
+
private __nominal0: symbol;
|
|
178
257
|
}
|
|
179
|
-
/** assembly/api-
|
|
180
|
-
declare interface
|
|
258
|
+
/** assembly/api-types/InitialPage */
|
|
259
|
+
declare interface __Record44<TOmittable> {
|
|
181
260
|
/** @type `u32` */
|
|
182
261
|
address: number | TOmittable;
|
|
183
262
|
/** @type `u32` */
|
|
@@ -185,32 +264,80 @@ declare interface __Record46<TOmittable> {
|
|
|
185
264
|
/** @type `i32` */
|
|
186
265
|
access: number | TOmittable;
|
|
187
266
|
}
|
|
188
|
-
/** assembly/api-
|
|
189
|
-
declare interface
|
|
267
|
+
/** assembly/api-types/InitialChunk */
|
|
268
|
+
declare interface __Record46<TOmittable> {
|
|
190
269
|
/** @type `u32` */
|
|
191
270
|
address: number | TOmittable;
|
|
192
271
|
/** @type `~lib/array/Array<u8>` */
|
|
193
272
|
data: Array<number>;
|
|
194
273
|
}
|
|
195
|
-
/** assembly/
|
|
196
|
-
declare class
|
|
197
|
-
private
|
|
274
|
+
/** assembly/memory/Memory */
|
|
275
|
+
declare class __Internref15 extends Number {
|
|
276
|
+
private __nominal15: symbol;
|
|
277
|
+
private __nominal0: symbol;
|
|
278
|
+
}
|
|
279
|
+
/** assembly/api-types/VmInput */
|
|
280
|
+
declare class __Internref49 extends Number {
|
|
281
|
+
private __nominal49: symbol;
|
|
198
282
|
private __nominal0: symbol;
|
|
199
283
|
}
|
|
200
|
-
/** assembly/
|
|
201
|
-
declare
|
|
284
|
+
/** assembly/interpreter/Interpreter */
|
|
285
|
+
declare class __Internref25 extends Number {
|
|
286
|
+
private __nominal25: symbol;
|
|
287
|
+
private __nominal0: symbol;
|
|
288
|
+
}
|
|
289
|
+
/** assembly/api-types/VmRunOptions */
|
|
290
|
+
declare interface __Record50<TOmittable> {
|
|
291
|
+
/** @type `bool` */
|
|
292
|
+
useSbrkGas: boolean | TOmittable;
|
|
293
|
+
/** @type `bool` */
|
|
294
|
+
logs: boolean | TOmittable;
|
|
295
|
+
/** @type `bool` */
|
|
296
|
+
dumpMemory: boolean | TOmittable;
|
|
297
|
+
}
|
|
298
|
+
/** assembly/api-types/VmOutput */
|
|
299
|
+
declare interface __Record51<TOmittable> {
|
|
202
300
|
/** @type `i32` */
|
|
203
301
|
status: number | TOmittable;
|
|
302
|
+
/** @type `u32` */
|
|
303
|
+
exitCode: number | TOmittable;
|
|
304
|
+
/** @type `u32` */
|
|
305
|
+
pc: number | TOmittable;
|
|
306
|
+
/** @type `i64` */
|
|
307
|
+
gas: bigint | TOmittable;
|
|
308
|
+
/** @type `~lib/array/Array<u8>` */
|
|
309
|
+
result: Array<number>;
|
|
204
310
|
/** @type `~lib/array/Array<u64>` */
|
|
205
311
|
registers: Array<bigint>;
|
|
312
|
+
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
313
|
+
memory: Array<__Record46<never>>;
|
|
314
|
+
}
|
|
315
|
+
/** assembly/gas-costs/BlockGasCost */
|
|
316
|
+
declare interface __Record56<TOmittable> {
|
|
206
317
|
/** @type `u32` */
|
|
207
318
|
pc: number | TOmittable;
|
|
208
|
-
/** @type
|
|
209
|
-
memory: Array<__Record48<never>>;
|
|
210
|
-
/** @type `i64` */
|
|
319
|
+
/** @type `u64` */
|
|
211
320
|
gas: bigint | TOmittable;
|
|
321
|
+
}
|
|
322
|
+
/** assembly/spi/StandardProgram */
|
|
323
|
+
declare class __Internref40 extends Number {
|
|
324
|
+
private __nominal40: symbol;
|
|
325
|
+
private __nominal0: symbol;
|
|
326
|
+
}
|
|
327
|
+
/** assembly/api-types/VmPause */
|
|
328
|
+
declare interface __Record60<TOmittable> {
|
|
329
|
+
/** @type `i32` */
|
|
330
|
+
status: number | TOmittable;
|
|
212
331
|
/** @type `u32` */
|
|
213
332
|
exitCode: number | TOmittable;
|
|
333
|
+
/** @type `u32` */
|
|
334
|
+
pc: number | TOmittable;
|
|
335
|
+
/** @type `u32` */
|
|
336
|
+
nextPc: number | TOmittable;
|
|
337
|
+
/** @type `i64` */
|
|
338
|
+
gas: bigint | TOmittable;
|
|
339
|
+
/** @type `~lib/array/Array<u64>` */
|
|
340
|
+
registers: Array<bigint>;
|
|
214
341
|
}
|
|
215
342
|
/** Instantiates the compiled WebAssembly module with the given imports. */
|
|
216
343
|
export declare function instantiate(module: WebAssembly.Module, imports: {
|
|
@@ -22,18 +22,8 @@ export async function instantiate(module, imports = {}) {
|
|
|
22
22
|
const { exports } = await WebAssembly.instantiate(module, adaptedImports);
|
|
23
23
|
const memory = exports.memory || imports.env.memory;
|
|
24
24
|
const adaptedExports = Object.setPrototypeOf({
|
|
25
|
-
getAssembly(p) {
|
|
26
|
-
// assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
|
|
27
|
-
p = __lowerInternref(p) || __notnull();
|
|
28
|
-
return __liftString(exports.getAssembly(p) >>> 0);
|
|
29
|
-
},
|
|
30
|
-
wrapAsProgram(bytecode) {
|
|
31
|
-
// assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
|
|
32
|
-
bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
|
|
33
|
-
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
34
|
-
},
|
|
35
25
|
resetJAM(program, pc, initialGas, args, hasMetadata) {
|
|
36
|
-
// assembly/api-debugger/resetJAM(~lib/array/Array<u8>,
|
|
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 @@ export async function instantiate(module, imports = {}) {
|
|
|
118
108
|
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
119
109
|
return exports.setMemory(address, data) != 0;
|
|
120
110
|
},
|
|
111
|
+
getAssembly(p) {
|
|
112
|
+
// assembly/api-internal/getAssembly(assembly/program/Program) => ~lib/string/String
|
|
113
|
+
p = __lowerInternref(p) || __notnull();
|
|
114
|
+
return __liftString(exports.getAssembly(p) >>> 0);
|
|
115
|
+
},
|
|
116
|
+
buildMemory(builder, pages, chunks) {
|
|
117
|
+
// assembly/api-internal/buildMemory(assembly/memory/MemoryBuilder, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>) => assembly/memory/Memory
|
|
118
|
+
builder = __retain(__lowerInternref(builder) || __notnull());
|
|
119
|
+
pages = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, pages) || __notnull());
|
|
120
|
+
chunks = __lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, chunks) || __notnull();
|
|
121
|
+
try {
|
|
122
|
+
return __liftInternref(exports.buildMemory(builder, pages, chunks) >>> 0);
|
|
123
|
+
} finally {
|
|
124
|
+
__release(builder);
|
|
125
|
+
__release(pages);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
vmInit(input, useSbrkGas) {
|
|
129
|
+
// assembly/api-internal/vmInit(assembly/api-types/VmInput, bool?) => assembly/interpreter/Interpreter
|
|
130
|
+
input = __lowerInternref(input) || __notnull();
|
|
131
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
132
|
+
exports.__setArgumentsLength(arguments.length);
|
|
133
|
+
return __liftInternref(exports.vmInit(input, useSbrkGas) >>> 0);
|
|
134
|
+
},
|
|
135
|
+
vmRunOnce(input, 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 @@ export 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 =>
|
|
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-
|
|
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,
|
|
148
|
-
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
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 @@ export 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-
|
|
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
|
|
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
|
|
170
|
-
// assembly/
|
|
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,
|
|
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
|
|
190
|
-
// assembly/api-
|
|
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,
|
|
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
|
|
200
|
-
// assembly/api-
|
|
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 @@ export async function instantiate(module, imports = {}) {
|
|
|
205
283
|
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
206
284
|
};
|
|
207
285
|
}
|
|
208
|
-
function
|
|
209
|
-
// assembly/api-
|
|
286
|
+
function __liftRecord51(pointer) {
|
|
287
|
+
// assembly/api-types/VmOutput
|
|
288
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
289
|
+
if (!pointer) return null;
|
|
290
|
+
return {
|
|
291
|
+
status: __getI32(pointer + 0),
|
|
292
|
+
exitCode: __getU32(pointer + 4),
|
|
293
|
+
pc: __getU32(pointer + 8),
|
|
294
|
+
gas: __getI64(pointer + 16),
|
|
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
|
|
210
311
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
211
312
|
if (!pointer) return null;
|
|
212
313
|
return {
|
|
213
314
|
status: __getI32(pointer + 0),
|
|
214
|
-
|
|
315
|
+
exitCode: __getU32(pointer + 4),
|
|
215
316
|
pc: __getU32(pointer + 8),
|
|
216
|
-
|
|
317
|
+
nextPc: __getU32(pointer + 12),
|
|
217
318
|
gas: __getI64(pointer + 16),
|
|
218
|
-
|
|
319
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
|
|
219
320
|
};
|
|
220
321
|
}
|
|
221
322
|
function __liftString(pointer) {
|
|
Binary file
|