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