@fluffylabs/anan-as 1.1.5 → 1.1.6-38dddc8
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 +155 -37
- package/{build → dist/build}/debug-raw.js +128 -41
- package/dist/build/debug-raw.wasm +0 -0
- package/{build → dist/build}/debug.d.ts +155 -37
- package/{build → dist/build}/debug.js +141 -43
- 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 +155 -37
- package/{build → dist/build}/release-mini.js +141 -43
- 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 +155 -37
- package/{build → dist/build}/release-stub.js +141 -43
- package/dist/build/release-stub.wasm +0 -0
- package/{build → dist/build}/release.d.ts +155 -37
- package/{build → dist/build}/release.js +141 -43
- 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,48 @@ 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 logs `bool`
|
|
127
|
+
* @param useSbrkGas `bool`
|
|
128
|
+
* @returns `assembly/api-types/VmOutput`
|
|
129
|
+
*/
|
|
130
|
+
export function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
|
|
131
|
+
/**
|
|
132
|
+
* assembly/api-internal/vmExecute
|
|
133
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
134
|
+
* @param logs `bool`
|
|
135
|
+
*/
|
|
136
|
+
export function vmExecute(int: __Internref25, logs?: boolean): void;
|
|
137
|
+
/**
|
|
138
|
+
* assembly/api-internal/vmDestroy
|
|
139
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
140
|
+
* @param dumpMemory `bool`
|
|
141
|
+
* @returns `assembly/api-types/VmOutput`
|
|
142
|
+
*/
|
|
143
|
+
export function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
|
|
114
144
|
/** assembly/api-utils/InputKind */
|
|
115
145
|
export enum InputKind {
|
|
116
146
|
/** @type `i32` */
|
|
@@ -132,7 +162,7 @@ declare namespace __AdaptedExports {
|
|
|
132
162
|
* @param withMetadata `i32`
|
|
133
163
|
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
134
164
|
*/
|
|
135
|
-
export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<
|
|
165
|
+
export function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
|
|
136
166
|
/**
|
|
137
167
|
* assembly/api-utils/disassemble
|
|
138
168
|
* @param input `~lib/array/Array<u8>`
|
|
@@ -147,12 +177,13 @@ declare namespace __AdaptedExports {
|
|
|
147
177
|
* @param hasMetadata `i32`
|
|
148
178
|
* @param program `~lib/array/Array<u8>`
|
|
149
179
|
* @param initialRegisters `~lib/array/Array<u64>`
|
|
150
|
-
* @param initialPageMap `~lib/array/Array<assembly/api-
|
|
151
|
-
* @param initialMemory `~lib/array/Array<assembly/api-
|
|
180
|
+
* @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
181
|
+
* @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
152
182
|
* @param args `~lib/array/Array<u8>`
|
|
183
|
+
* @param preallocateMemoryPages `u32`
|
|
153
184
|
* @returns `assembly/spi/StandardProgram`
|
|
154
185
|
*/
|
|
155
|
-
export function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<
|
|
186
|
+
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
187
|
/**
|
|
157
188
|
* assembly/api-utils/runProgram
|
|
158
189
|
* @param program `assembly/spi/StandardProgram`
|
|
@@ -160,24 +191,72 @@ declare namespace __AdaptedExports {
|
|
|
160
191
|
* @param programCounter `u32`
|
|
161
192
|
* @param logs `bool`
|
|
162
193
|
* @param useSbrkGas `bool`
|
|
163
|
-
* @returns `assembly/api-
|
|
194
|
+
* @returns `assembly/api-types/VmOutput`
|
|
195
|
+
*/
|
|
196
|
+
export function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<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): __Record50<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`
|
|
164
230
|
*/
|
|
165
|
-
export function
|
|
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): __Record59<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,71 @@ 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;
|
|
198
277
|
private __nominal0: symbol;
|
|
199
278
|
}
|
|
200
|
-
/** assembly/api-
|
|
201
|
-
declare
|
|
279
|
+
/** assembly/api-types/VmInput */
|
|
280
|
+
declare class __Internref49 extends Number {
|
|
281
|
+
private __nominal49: symbol;
|
|
282
|
+
private __nominal0: symbol;
|
|
283
|
+
}
|
|
284
|
+
/** assembly/interpreter/Interpreter */
|
|
285
|
+
declare class __Internref25 extends Number {
|
|
286
|
+
private __nominal25: symbol;
|
|
287
|
+
private __nominal0: symbol;
|
|
288
|
+
}
|
|
289
|
+
/** assembly/api-types/VmOutput */
|
|
290
|
+
declare interface __Record50<TOmittable> {
|
|
202
291
|
/** @type `i32` */
|
|
203
292
|
status: number | TOmittable;
|
|
293
|
+
/** @type `u32` */
|
|
294
|
+
exitCode: number | TOmittable;
|
|
295
|
+
/** @type `u32` */
|
|
296
|
+
pc: number | TOmittable;
|
|
297
|
+
/** @type `i64` */
|
|
298
|
+
gas: bigint | TOmittable;
|
|
299
|
+
/** @type `~lib/array/Array<u8>` */
|
|
300
|
+
result: Array<number>;
|
|
204
301
|
/** @type `~lib/array/Array<u64>` */
|
|
205
302
|
registers: Array<bigint>;
|
|
303
|
+
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
304
|
+
memory: Array<__Record46<never>>;
|
|
305
|
+
}
|
|
306
|
+
/** assembly/gas-costs/BlockGasCost */
|
|
307
|
+
declare interface __Record55<TOmittable> {
|
|
206
308
|
/** @type `u32` */
|
|
207
309
|
pc: number | TOmittable;
|
|
208
|
-
/** @type
|
|
209
|
-
memory: Array<__Record48<never>>;
|
|
210
|
-
/** @type `i64` */
|
|
310
|
+
/** @type `u64` */
|
|
211
311
|
gas: bigint | TOmittable;
|
|
312
|
+
}
|
|
313
|
+
/** assembly/spi/StandardProgram */
|
|
314
|
+
declare class __Internref40 extends Number {
|
|
315
|
+
private __nominal40: symbol;
|
|
316
|
+
private __nominal0: symbol;
|
|
317
|
+
}
|
|
318
|
+
/** assembly/api-types/VmPause */
|
|
319
|
+
declare interface __Record59<TOmittable> {
|
|
320
|
+
/** @type `i32` */
|
|
321
|
+
status: number | TOmittable;
|
|
212
322
|
/** @type `u32` */
|
|
213
323
|
exitCode: number | TOmittable;
|
|
324
|
+
/** @type `u32` */
|
|
325
|
+
pc: number | TOmittable;
|
|
326
|
+
/** @type `u32` */
|
|
327
|
+
nextPc: number | TOmittable;
|
|
328
|
+
/** @type `i64` */
|
|
329
|
+
gas: bigint | TOmittable;
|
|
330
|
+
/** @type `~lib/array/Array<u64>` */
|
|
331
|
+
registers: Array<bigint>;
|
|
214
332
|
}
|
|
215
333
|
/** Instantiates the compiled WebAssembly module with the given imports. */
|
|
216
334
|
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,52 @@ 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, logs, useSbrkGas) {
|
|
136
|
+
// assembly/api-internal/vmRunOnce(assembly/api-types/VmInput, bool?, bool?) => assembly/api-types/VmOutput
|
|
137
|
+
input = __lowerInternref(input) || __notnull();
|
|
138
|
+
logs = logs ? 1 : 0;
|
|
139
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
140
|
+
exports.__setArgumentsLength(arguments.length);
|
|
141
|
+
return __liftRecord50(exports.vmRunOnce(input, logs, useSbrkGas) >>> 0);
|
|
142
|
+
},
|
|
143
|
+
vmExecute(int, logs) {
|
|
144
|
+
// assembly/api-internal/vmExecute(assembly/interpreter/Interpreter, bool?) => void
|
|
145
|
+
int = __lowerInternref(int) || __notnull();
|
|
146
|
+
logs = logs ? 1 : 0;
|
|
147
|
+
exports.__setArgumentsLength(arguments.length);
|
|
148
|
+
exports.vmExecute(int, logs);
|
|
149
|
+
},
|
|
150
|
+
vmDestroy(int, dumpMemory) {
|
|
151
|
+
// assembly/api-internal/vmDestroy(assembly/interpreter/Interpreter, bool?) => assembly/api-types/VmOutput
|
|
152
|
+
int = __lowerInternref(int) || __notnull();
|
|
153
|
+
dumpMemory = dumpMemory ? 1 : 0;
|
|
154
|
+
exports.__setArgumentsLength(arguments.length);
|
|
155
|
+
return __liftRecord50(exports.vmDestroy(int, dumpMemory) >>> 0);
|
|
156
|
+
},
|
|
121
157
|
InputKind: (values => (
|
|
122
158
|
// assembly/api-utils/InputKind
|
|
123
159
|
values[values.Generic = exports["InputKind.Generic"].valueOf()] = "Generic",
|
|
@@ -133,22 +169,22 @@ export async function instantiate(module, imports = {}) {
|
|
|
133
169
|
getGasCosts(input, kind, withMetadata) {
|
|
134
170
|
// assembly/api-utils/getGasCosts(~lib/array/Array<u8>, i32, i32) => ~lib/array/Array<assembly/gas-costs/BlockGasCost>
|
|
135
171
|
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
136
|
-
return __liftArray(pointer =>
|
|
172
|
+
return __liftArray(pointer => __liftRecord55(__getU32(pointer)), 2, exports.getGasCosts(input, kind, withMetadata) >>> 0);
|
|
137
173
|
},
|
|
138
174
|
disassemble(input, kind, withMetadata) {
|
|
139
175
|
// assembly/api-utils/disassemble(~lib/array/Array<u8>, i32, i32) => ~lib/string/String
|
|
140
176
|
input = __lowerArray(__setU8, 6, 0, input) || __notnull();
|
|
141
177
|
return __liftString(exports.disassemble(input, kind, withMetadata) >>> 0);
|
|
142
178
|
},
|
|
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-
|
|
179
|
+
prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) {
|
|
180
|
+
// assembly/api-utils/prepareProgram(i32, i32, ~lib/array/Array<u8>, ~lib/array/Array<u64>, ~lib/array/Array<assembly/api-types/InitialPage>, ~lib/array/Array<assembly/api-types/InitialChunk>, ~lib/array/Array<u8>, u32) => assembly/spi/StandardProgram
|
|
145
181
|
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
146
|
-
initialRegisters = __retain(__lowerArray(__setU64,
|
|
147
|
-
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
148
|
-
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer,
|
|
182
|
+
initialRegisters = __retain(__lowerArray(__setU64, 51, 3, initialRegisters) || __notnull());
|
|
183
|
+
initialPageMap = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord44(value) || __notnull()); }, 45, 2, initialPageMap) || __notnull());
|
|
184
|
+
initialMemory = __retain(__lowerArray((pointer, value) => { __setU32(pointer, __lowerRecord46(value) || __notnull()); }, 47, 2, initialMemory) || __notnull());
|
|
149
185
|
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
150
186
|
try {
|
|
151
|
-
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
|
|
187
|
+
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args, preallocateMemoryPages) >>> 0);
|
|
152
188
|
} finally {
|
|
153
189
|
__release(program);
|
|
154
190
|
__release(initialRegisters);
|
|
@@ -157,47 +193,75 @@ export async function instantiate(module, imports = {}) {
|
|
|
157
193
|
}
|
|
158
194
|
},
|
|
159
195
|
runProgram(program, initialGas, programCounter, logs, useSbrkGas) {
|
|
160
|
-
// assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-
|
|
196
|
+
// assembly/api-utils/runProgram(assembly/spi/StandardProgram, i64?, u32?, bool?, bool?) => assembly/api-types/VmOutput
|
|
161
197
|
program = __lowerInternref(program) || __notnull();
|
|
162
198
|
initialGas = initialGas || 0n;
|
|
163
199
|
logs = logs ? 1 : 0;
|
|
164
200
|
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
165
201
|
exports.__setArgumentsLength(arguments.length);
|
|
166
|
-
return
|
|
202
|
+
return __liftRecord50(exports.runProgram(program, initialGas, programCounter, logs, useSbrkGas) >>> 0);
|
|
203
|
+
},
|
|
204
|
+
pvmStart(program, useSbrkGas) {
|
|
205
|
+
// assembly/api-utils/pvmStart(assembly/spi/StandardProgram, bool?) => u32
|
|
206
|
+
program = __lowerInternref(program) || __notnull();
|
|
207
|
+
useSbrkGas = useSbrkGas ? 1 : 0;
|
|
208
|
+
exports.__setArgumentsLength(arguments.length);
|
|
209
|
+
return exports.pvmStart(program, useSbrkGas) >>> 0;
|
|
210
|
+
},
|
|
211
|
+
pvmDestroy(pvmId) {
|
|
212
|
+
// assembly/api-utils/pvmDestroy(u32) => assembly/api-types/VmOutput | null
|
|
213
|
+
return __liftRecord50(exports.pvmDestroy(pvmId) >>> 0);
|
|
214
|
+
},
|
|
215
|
+
pvmSetRegisters(pvmId, registers) {
|
|
216
|
+
// assembly/api-utils/pvmSetRegisters(u32, ~lib/array/Array<u64>) => void
|
|
217
|
+
registers = __lowerArray(__setU64, 51, 3, registers) || __notnull();
|
|
218
|
+
exports.pvmSetRegisters(pvmId, registers);
|
|
219
|
+
},
|
|
220
|
+
pvmReadMemory(pvmId, address, length) {
|
|
221
|
+
// assembly/api-utils/pvmReadMemory(u32, u32, u32) => ~lib/typedarray/Uint8Array | null
|
|
222
|
+
return __liftTypedArray(Uint8Array, exports.pvmReadMemory(pvmId, address, length) >>> 0);
|
|
223
|
+
},
|
|
224
|
+
pvmWriteMemory(pvmId, address, data) {
|
|
225
|
+
// assembly/api-utils/pvmWriteMemory(u32, u32, ~lib/typedarray/Uint8Array) => bool
|
|
226
|
+
data = __lowerTypedArray(Uint8Array, 10, 0, data) || __notnull();
|
|
227
|
+
return exports.pvmWriteMemory(pvmId, address, data) != 0;
|
|
228
|
+
},
|
|
229
|
+
pvmResume(pvmId, gas, pc, logs) {
|
|
230
|
+
// assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
|
|
231
|
+
gas = gas || 0n;
|
|
232
|
+
logs = logs ? 1 : 0;
|
|
233
|
+
exports.__setArgumentsLength(arguments.length);
|
|
234
|
+
return __liftRecord59(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
|
|
235
|
+
},
|
|
236
|
+
wrapAsProgram(bytecode) {
|
|
237
|
+
// assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
|
|
238
|
+
bytecode = __lowerTypedArray(Uint8Array, 10, 0, bytecode) || __notnull();
|
|
239
|
+
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
167
240
|
},
|
|
168
241
|
}, exports);
|
|
169
|
-
function
|
|
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
|
|
242
|
+
function __lowerRecord44(value) {
|
|
243
|
+
// assembly/api-types/InitialPage
|
|
180
244
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
181
245
|
if (value == null) return 0;
|
|
182
|
-
const pointer = exports.__pin(exports.__new(12,
|
|
246
|
+
const pointer = exports.__pin(exports.__new(12, 44));
|
|
183
247
|
__setU32(pointer + 0, value.address);
|
|
184
248
|
__setU32(pointer + 4, value.length);
|
|
185
249
|
__setU32(pointer + 8, value.access);
|
|
186
250
|
exports.__unpin(pointer);
|
|
187
251
|
return pointer;
|
|
188
252
|
}
|
|
189
|
-
function
|
|
190
|
-
// assembly/api-
|
|
253
|
+
function __lowerRecord46(value) {
|
|
254
|
+
// assembly/api-types/InitialChunk
|
|
191
255
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
192
256
|
if (value == null) return 0;
|
|
193
|
-
const pointer = exports.__pin(exports.__new(8,
|
|
257
|
+
const pointer = exports.__pin(exports.__new(8, 46));
|
|
194
258
|
__setU32(pointer + 0, value.address);
|
|
195
259
|
__setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
|
|
196
260
|
exports.__unpin(pointer);
|
|
197
261
|
return pointer;
|
|
198
262
|
}
|
|
199
|
-
function
|
|
200
|
-
// assembly/api-
|
|
263
|
+
function __liftRecord46(pointer) {
|
|
264
|
+
// assembly/api-types/InitialChunk
|
|
201
265
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
202
266
|
if (!pointer) return null;
|
|
203
267
|
return {
|
|
@@ -205,17 +269,40 @@ export async function instantiate(module, imports = {}) {
|
|
|
205
269
|
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
206
270
|
};
|
|
207
271
|
}
|
|
272
|
+
function __liftRecord50(pointer) {
|
|
273
|
+
// assembly/api-types/VmOutput
|
|
274
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
275
|
+
if (!pointer) return null;
|
|
276
|
+
return {
|
|
277
|
+
status: __getI32(pointer + 0),
|
|
278
|
+
exitCode: __getU32(pointer + 4),
|
|
279
|
+
pc: __getU32(pointer + 8),
|
|
280
|
+
gas: __getI64(pointer + 16),
|
|
281
|
+
result: __liftArray(__getU8, 0, __getU32(pointer + 24)),
|
|
282
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 28)),
|
|
283
|
+
memory: __liftArray(pointer => __liftRecord46(__getU32(pointer)), 2, __getU32(pointer + 32)),
|
|
284
|
+
};
|
|
285
|
+
}
|
|
208
286
|
function __liftRecord55(pointer) {
|
|
209
|
-
// assembly/
|
|
287
|
+
// assembly/gas-costs/BlockGasCost
|
|
288
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
289
|
+
if (!pointer) return null;
|
|
290
|
+
return {
|
|
291
|
+
pc: __getU32(pointer + 0),
|
|
292
|
+
gas: __getU64(pointer + 8),
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
function __liftRecord59(pointer) {
|
|
296
|
+
// assembly/api-types/VmPause
|
|
210
297
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
211
298
|
if (!pointer) return null;
|
|
212
299
|
return {
|
|
213
300
|
status: __getI32(pointer + 0),
|
|
214
|
-
|
|
301
|
+
exitCode: __getU32(pointer + 4),
|
|
215
302
|
pc: __getU32(pointer + 8),
|
|
216
|
-
|
|
303
|
+
nextPc: __getU32(pointer + 12),
|
|
217
304
|
gas: __getI64(pointer + 16),
|
|
218
|
-
|
|
305
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
|
|
219
306
|
};
|
|
220
307
|
}
|
|
221
308
|
function __liftString(pointer) {
|
|
Binary file
|