@fluffylabs/anan-as 1.1.3-e3864a9 → 1.1.3-eee81bd
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 +174 -102
- package/dist/bin/{fuzz.js → src/fuzz.js} +3 -20
- 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.d.ts +2 -2
- package/dist/build/compiler.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 +113 -57
- package/dist/build/debug-raw.js +97 -61
- package/dist/build/debug-raw.wasm +0 -0
- package/dist/build/debug.d.ts +113 -57
- package/dist/build/debug.js +107 -64
- 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 +113 -57
- package/dist/build/release-mini.js +107 -64
- package/dist/build/release-mini.wasm +0 -0
- package/dist/build/release-stub-inline.js +1 -1
- package/dist/build/release-stub.d.ts +113 -57
- package/dist/build/release-stub.js +107 -64
- package/dist/build/release-stub.wasm +0 -0
- package/dist/build/release.d.ts +113 -57
- package/dist/build/release.js +107 -64
- 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 +3 -1
- package/package.json +5 -5
- /package/dist/bin/{test-json.js → src/test-json.js} +0 -0
|
@@ -111,27 +111,41 @@ export declare function setMemory(address: number, data: Uint8Array): boolean;
|
|
|
111
111
|
*/
|
|
112
112
|
export declare function getAssembly(p: __Internref26): string;
|
|
113
113
|
/**
|
|
114
|
-
* assembly/api-internal/
|
|
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
|
|
115
130
|
* @param input `assembly/api-types/VmInput`
|
|
116
131
|
* @param logs `bool`
|
|
117
132
|
* @param useSbrkGas `bool`
|
|
118
133
|
* @returns `assembly/api-types/VmOutput`
|
|
119
134
|
*/
|
|
120
|
-
export declare function
|
|
135
|
+
export declare function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
|
|
121
136
|
/**
|
|
122
|
-
* assembly/api-internal/
|
|
123
|
-
* @param
|
|
124
|
-
* @
|
|
137
|
+
* assembly/api-internal/vmExecute
|
|
138
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
139
|
+
* @param logs `bool`
|
|
125
140
|
*/
|
|
126
|
-
export declare function
|
|
141
|
+
export declare function vmExecute(int: __Internref25, logs?: boolean): void;
|
|
127
142
|
/**
|
|
128
|
-
* assembly/api-internal/
|
|
129
|
-
* @param
|
|
130
|
-
* @param
|
|
131
|
-
* @
|
|
132
|
-
* @returns `assembly/memory/Memory`
|
|
143
|
+
* assembly/api-internal/vmDestroy
|
|
144
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
145
|
+
* @param dumpMemory `bool`
|
|
146
|
+
* @returns `assembly/api-types/VmOutput`
|
|
133
147
|
*/
|
|
134
|
-
export declare function
|
|
148
|
+
export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
|
|
135
149
|
/** assembly/api-utils/InputKind */
|
|
136
150
|
export declare enum InputKind {
|
|
137
151
|
/** @type `i32` */
|
|
@@ -153,7 +167,7 @@ export declare enum HasMetadata {
|
|
|
153
167
|
* @param withMetadata `i32`
|
|
154
168
|
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
155
169
|
*/
|
|
156
|
-
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<
|
|
170
|
+
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
|
|
157
171
|
/**
|
|
158
172
|
* assembly/api-utils/disassemble
|
|
159
173
|
* @param input `~lib/array/Array<u8>`
|
|
@@ -173,7 +187,7 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
|
|
|
173
187
|
* @param args `~lib/array/Array<u8>`
|
|
174
188
|
* @returns `assembly/spi/StandardProgram`
|
|
175
189
|
*/
|
|
176
|
-
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<
|
|
190
|
+
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<__Record44<undefined>>, initialMemory: Array<__Record46<undefined>>, args: Array<number>): __Internref40;
|
|
177
191
|
/**
|
|
178
192
|
* assembly/api-utils/runProgram
|
|
179
193
|
* @param program `assembly/spi/StandardProgram`
|
|
@@ -183,18 +197,51 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
|
|
|
183
197
|
* @param useSbrkGas `bool`
|
|
184
198
|
* @returns `assembly/api-types/VmOutput`
|
|
185
199
|
*/
|
|
186
|
-
export declare function runProgram(program:
|
|
200
|
+
export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
|
|
187
201
|
/**
|
|
188
|
-
* assembly/api-utils/
|
|
189
|
-
* @param
|
|
202
|
+
* assembly/api-utils/pvmStart
|
|
203
|
+
* @param program `assembly/spi/StandardProgram`
|
|
204
|
+
* @param useSbrkGas `bool`
|
|
205
|
+
* @returns `u32`
|
|
206
|
+
*/
|
|
207
|
+
export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
|
|
208
|
+
/**
|
|
209
|
+
* assembly/api-utils/pvmDestroy
|
|
210
|
+
* @param pvmId `u32`
|
|
211
|
+
* @returns `assembly/api-types/VmOutput | null`
|
|
212
|
+
*/
|
|
213
|
+
export declare function pvmDestroy(pvmId: number): __Record50<never> | null;
|
|
214
|
+
/**
|
|
215
|
+
* assembly/api-utils/pvmSetRegisters
|
|
216
|
+
* @param pvmId `u32`
|
|
217
|
+
* @param registers `~lib/array/Array<u64>`
|
|
218
|
+
*/
|
|
219
|
+
export declare function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
|
|
220
|
+
/**
|
|
221
|
+
* assembly/api-utils/pvmReadMemory
|
|
222
|
+
* @param pvmId `u32`
|
|
223
|
+
* @param address `u32`
|
|
224
|
+
* @param length `u32`
|
|
225
|
+
* @returns `~lib/typedarray/Uint8Array | null`
|
|
226
|
+
*/
|
|
227
|
+
export declare function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
|
|
228
|
+
/**
|
|
229
|
+
* assembly/api-utils/pvmWriteMemory
|
|
230
|
+
* @param pvmId `u32`
|
|
231
|
+
* @param address `u32`
|
|
232
|
+
* @param data `~lib/typedarray/Uint8Array`
|
|
233
|
+
* @returns `bool`
|
|
234
|
+
*/
|
|
235
|
+
export declare function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
|
|
236
|
+
/**
|
|
237
|
+
* assembly/api-utils/pvmResume
|
|
238
|
+
* @param pvmId `u32`
|
|
190
239
|
* @param gas `i64`
|
|
191
|
-
* @param
|
|
192
|
-
* @param args `~lib/array/Array<u8>`
|
|
240
|
+
* @param pc `u32`
|
|
193
241
|
* @param logs `bool`
|
|
194
|
-
* @
|
|
195
|
-
* @returns `assembly/api-types/ReturnValue`
|
|
242
|
+
* @returns `assembly/api-types/VmPause | null`
|
|
196
243
|
*/
|
|
197
|
-
export declare function
|
|
244
|
+
export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
|
|
198
245
|
/**
|
|
199
246
|
* assembly/program-build/wrapAsProgram
|
|
200
247
|
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
@@ -206,74 +253,83 @@ declare class __Internref26 extends Number {
|
|
|
206
253
|
private __nominal26: symbol;
|
|
207
254
|
private __nominal0: symbol;
|
|
208
255
|
}
|
|
209
|
-
/** assembly/
|
|
210
|
-
declare class
|
|
211
|
-
private
|
|
256
|
+
/** assembly/memory/MemoryBuilder */
|
|
257
|
+
declare class __Internref41 extends Number {
|
|
258
|
+
private __nominal41: symbol;
|
|
212
259
|
private __nominal0: symbol;
|
|
213
260
|
}
|
|
261
|
+
/** assembly/api-types/InitialPage */
|
|
262
|
+
declare interface __Record44<TOmittable> {
|
|
263
|
+
/** @type `u32` */
|
|
264
|
+
address: number | TOmittable;
|
|
265
|
+
/** @type `u32` */
|
|
266
|
+
length: number | TOmittable;
|
|
267
|
+
/** @type `i32` */
|
|
268
|
+
access: number | TOmittable;
|
|
269
|
+
}
|
|
214
270
|
/** assembly/api-types/InitialChunk */
|
|
215
|
-
declare interface
|
|
271
|
+
declare interface __Record46<TOmittable> {
|
|
216
272
|
/** @type `u32` */
|
|
217
273
|
address: number | TOmittable;
|
|
218
274
|
/** @type `~lib/array/Array<u8>` */
|
|
219
275
|
data: Array<number>;
|
|
220
276
|
}
|
|
221
|
-
/** assembly/api-types/VmOutput */
|
|
222
|
-
declare interface __Record49<TOmittable> {
|
|
223
|
-
/** @type `i32` */
|
|
224
|
-
status: number | TOmittable;
|
|
225
|
-
/** @type `~lib/array/Array<u64>` */
|
|
226
|
-
registers: Array<bigint>;
|
|
227
|
-
/** @type `u32` */
|
|
228
|
-
pc: number | TOmittable;
|
|
229
|
-
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
230
|
-
memory: Array<__Record45<never>>;
|
|
231
|
-
/** @type `i64` */
|
|
232
|
-
gas: bigint | TOmittable;
|
|
233
|
-
/** @type `u32` */
|
|
234
|
-
exitCode: number | TOmittable;
|
|
235
|
-
}
|
|
236
277
|
/** assembly/memory/Memory */
|
|
237
278
|
declare class __Internref15 extends Number {
|
|
238
279
|
private __nominal15: symbol;
|
|
239
280
|
private __nominal0: symbol;
|
|
240
281
|
}
|
|
241
|
-
/** assembly/
|
|
242
|
-
declare class
|
|
243
|
-
private
|
|
282
|
+
/** assembly/api-types/VmInput */
|
|
283
|
+
declare class __Internref49 extends Number {
|
|
284
|
+
private __nominal49: symbol;
|
|
244
285
|
private __nominal0: symbol;
|
|
245
286
|
}
|
|
246
|
-
/** assembly/
|
|
247
|
-
declare
|
|
287
|
+
/** assembly/interpreter/Interpreter */
|
|
288
|
+
declare class __Internref25 extends Number {
|
|
289
|
+
private __nominal25: symbol;
|
|
290
|
+
private __nominal0: symbol;
|
|
291
|
+
}
|
|
292
|
+
/** assembly/api-types/VmOutput */
|
|
293
|
+
declare interface __Record50<TOmittable> {
|
|
294
|
+
/** @type `i32` */
|
|
295
|
+
status: number | TOmittable;
|
|
248
296
|
/** @type `u32` */
|
|
249
|
-
|
|
297
|
+
exitCode: number | TOmittable;
|
|
250
298
|
/** @type `u32` */
|
|
251
|
-
|
|
252
|
-
/** @type `
|
|
253
|
-
|
|
299
|
+
pc: number | TOmittable;
|
|
300
|
+
/** @type `i64` */
|
|
301
|
+
gas: bigint | TOmittable;
|
|
302
|
+
/** @type `~lib/array/Array<u8>` */
|
|
303
|
+
result: Array<number>;
|
|
304
|
+
/** @type `~lib/array/Array<u64>` */
|
|
305
|
+
registers: Array<bigint>;
|
|
306
|
+
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
307
|
+
memory: Array<__Record46<never>>;
|
|
254
308
|
}
|
|
255
309
|
/** assembly/gas-costs/BlockGasCost */
|
|
256
|
-
declare interface
|
|
310
|
+
declare interface __Record55<TOmittable> {
|
|
257
311
|
/** @type `u32` */
|
|
258
312
|
pc: number | TOmittable;
|
|
259
313
|
/** @type `u64` */
|
|
260
314
|
gas: bigint | TOmittable;
|
|
261
315
|
}
|
|
262
316
|
/** assembly/spi/StandardProgram */
|
|
263
|
-
declare class
|
|
264
|
-
private
|
|
317
|
+
declare class __Internref40 extends Number {
|
|
318
|
+
private __nominal40: symbol;
|
|
265
319
|
private __nominal0: symbol;
|
|
266
320
|
}
|
|
267
|
-
/** assembly/api-types/
|
|
268
|
-
declare interface
|
|
321
|
+
/** assembly/api-types/VmPause */
|
|
322
|
+
declare interface __Record59<TOmittable> {
|
|
269
323
|
/** @type `i32` */
|
|
270
324
|
status: number | TOmittable;
|
|
271
325
|
/** @type `u32` */
|
|
272
326
|
exitCode: number | TOmittable;
|
|
273
327
|
/** @type `u32` */
|
|
274
328
|
pc: number | TOmittable;
|
|
329
|
+
/** @type `u32` */
|
|
330
|
+
nextPc: number | TOmittable;
|
|
275
331
|
/** @type `i64` */
|
|
276
332
|
gas: bigint | TOmittable;
|
|
277
|
-
/** @type `~lib/array/Array<
|
|
278
|
-
|
|
333
|
+
/** @type `~lib/array/Array<u64>` */
|
|
334
|
+
registers: Array<bigint>;
|
|
279
335
|
}
|
|
@@ -113,24 +113,11 @@ 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 @@ 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,7 +169,7 @@ 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
|
|
@@ -163,9 +179,9 @@ async function instantiate(module, imports = {}) {
|
|
|
163
179
|
prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) {
|
|
164
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>) => 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
187
|
return __liftInternref(exports.prepareProgram(kind, hasMetadata, program, initialRegisters, initialPageMap, initialMemory, args) >>> 0);
|
|
@@ -183,21 +199,39 @@ 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;
|
|
187
228
|
},
|
|
188
|
-
|
|
189
|
-
// assembly/api-utils/
|
|
229
|
+
pvmResume(pvmId, gas, pc, logs) {
|
|
230
|
+
// assembly/api-utils/pvmResume(u32, i64, u32, bool?) => assembly/api-types/VmPause | null
|
|
190
231
|
gas = gas || 0n;
|
|
191
|
-
program = __retain(__lowerArray(__setU8, 6, 0, program) || __notnull());
|
|
192
|
-
args = __lowerArray(__setU8, 6, 0, args) || __notnull();
|
|
193
232
|
logs = logs ? 1 : 0;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
exports.__setArgumentsLength(arguments.length);
|
|
197
|
-
return __liftRecord58(exports.runJAM(pc, gas, program, args, logs, useSbrkGas) >>> 0);
|
|
198
|
-
} finally {
|
|
199
|
-
__release(program);
|
|
200
|
-
}
|
|
233
|
+
exports.__setArgumentsLength(arguments.length);
|
|
234
|
+
return __liftRecord59(exports.pvmResume(pvmId, gas, pc, logs) >>> 0);
|
|
201
235
|
},
|
|
202
236
|
wrapAsProgram(bytecode) {
|
|
203
237
|
// assembly/program-build/wrapAsProgram(~lib/typedarray/Uint8Array) => ~lib/typedarray/Uint8Array
|
|
@@ -205,50 +239,51 @@ async function instantiate(module, imports = {}) {
|
|
|
205
239
|
return __liftTypedArray(Uint8Array, exports.wrapAsProgram(bytecode) >>> 0);
|
|
206
240
|
},
|
|
207
241
|
}, exports);
|
|
208
|
-
function
|
|
209
|
-
// assembly/api-types/InitialChunk
|
|
210
|
-
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
211
|
-
if (!pointer) return null;
|
|
212
|
-
return {
|
|
213
|
-
address: __getU32(pointer + 0),
|
|
214
|
-
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function __liftRecord49(pointer) {
|
|
218
|
-
// assembly/api-types/VmOutput
|
|
219
|
-
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
220
|
-
if (!pointer) return null;
|
|
221
|
-
return {
|
|
222
|
-
status: __getI32(pointer + 0),
|
|
223
|
-
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 4)),
|
|
224
|
-
pc: __getU32(pointer + 8),
|
|
225
|
-
memory: __liftArray(pointer => __liftRecord45(__getU32(pointer)), 2, __getU32(pointer + 12)),
|
|
226
|
-
gas: __getI64(pointer + 16),
|
|
227
|
-
exitCode: __getU32(pointer + 24),
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
function __lowerRecord43(value) {
|
|
242
|
+
function __lowerRecord44(value) {
|
|
231
243
|
// assembly/api-types/InitialPage
|
|
232
244
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
233
245
|
if (value == null) return 0;
|
|
234
|
-
const pointer = exports.__pin(exports.__new(12,
|
|
246
|
+
const pointer = exports.__pin(exports.__new(12, 44));
|
|
235
247
|
__setU32(pointer + 0, value.address);
|
|
236
248
|
__setU32(pointer + 4, value.length);
|
|
237
249
|
__setU32(pointer + 8, value.access);
|
|
238
250
|
exports.__unpin(pointer);
|
|
239
251
|
return pointer;
|
|
240
252
|
}
|
|
241
|
-
function
|
|
253
|
+
function __lowerRecord46(value) {
|
|
242
254
|
// assembly/api-types/InitialChunk
|
|
243
255
|
// Hint: Opt-out from lowering as a record by providing an empty constructor
|
|
244
256
|
if (value == null) return 0;
|
|
245
|
-
const pointer = exports.__pin(exports.__new(8,
|
|
257
|
+
const pointer = exports.__pin(exports.__new(8, 46));
|
|
246
258
|
__setU32(pointer + 0, value.address);
|
|
247
259
|
__setU32(pointer + 4, __lowerArray(__setU8, 6, 0, value.data) || __notnull());
|
|
248
260
|
exports.__unpin(pointer);
|
|
249
261
|
return pointer;
|
|
250
262
|
}
|
|
251
|
-
function
|
|
263
|
+
function __liftRecord46(pointer) {
|
|
264
|
+
// assembly/api-types/InitialChunk
|
|
265
|
+
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
266
|
+
if (!pointer) return null;
|
|
267
|
+
return {
|
|
268
|
+
address: __getU32(pointer + 0),
|
|
269
|
+
data: __liftArray(__getU8, 0, __getU32(pointer + 4)),
|
|
270
|
+
};
|
|
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
|
+
}
|
|
286
|
+
function __liftRecord55(pointer) {
|
|
252
287
|
// assembly/gas-costs/BlockGasCost
|
|
253
288
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
254
289
|
if (!pointer) return null;
|
|
@@ -257,16 +292,17 @@ async function instantiate(module, imports = {}) {
|
|
|
257
292
|
gas: __getU64(pointer + 8),
|
|
258
293
|
};
|
|
259
294
|
}
|
|
260
|
-
function
|
|
261
|
-
// assembly/api-types/
|
|
295
|
+
function __liftRecord59(pointer) {
|
|
296
|
+
// assembly/api-types/VmPause
|
|
262
297
|
// Hint: Opt-out from lifting as a record by providing an empty constructor
|
|
263
298
|
if (!pointer) return null;
|
|
264
299
|
return {
|
|
265
300
|
status: __getI32(pointer + 0),
|
|
266
301
|
exitCode: __getU32(pointer + 4),
|
|
267
302
|
pc: __getU32(pointer + 8),
|
|
303
|
+
nextPc: __getU32(pointer + 12),
|
|
268
304
|
gas: __getI64(pointer + 16),
|
|
269
|
-
|
|
305
|
+
registers: __liftArray(pointer => BigInt.asUintN(64, __getU64(pointer)), 3, __getU32(pointer + 24)),
|
|
270
306
|
};
|
|
271
307
|
}
|
|
272
308
|
function __liftString(pointer) {
|
|
@@ -449,16 +485,23 @@ export const {
|
|
|
449
485
|
getMemory,
|
|
450
486
|
setMemory,
|
|
451
487
|
getAssembly,
|
|
452
|
-
runVm,
|
|
453
|
-
getOutputChunks,
|
|
454
488
|
buildMemory,
|
|
489
|
+
vmInit,
|
|
490
|
+
vmRunOnce,
|
|
491
|
+
vmExecute,
|
|
492
|
+
vmDestroy,
|
|
455
493
|
InputKind,
|
|
456
494
|
HasMetadata,
|
|
457
495
|
getGasCosts,
|
|
458
496
|
disassemble,
|
|
459
497
|
prepareProgram,
|
|
460
498
|
runProgram,
|
|
461
|
-
|
|
499
|
+
pvmStart,
|
|
500
|
+
pvmDestroy,
|
|
501
|
+
pvmSetRegisters,
|
|
502
|
+
pvmReadMemory,
|
|
503
|
+
pvmWriteMemory,
|
|
504
|
+
pvmResume,
|
|
462
505
|
wrapAsProgram,
|
|
463
506
|
} = await (async url => instantiate(
|
|
464
507
|
await (async () => {
|
|
Binary file
|