@fluffylabs/anan-as 1.1.3-69fe64d → 1.1.3-742bc4e
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 +175 -102
- 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.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 +114 -57
- package/dist/build/debug-raw.js +100 -64
- package/dist/build/debug-raw.wasm +0 -0
- package/dist/build/debug.d.ts +114 -57
- package/dist/build/debug.js +110 -67
- 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 +114 -57
- package/dist/build/release-mini.js +110 -67
- package/dist/build/release-mini.wasm +0 -0
- package/dist/build/release-stub-inline.js +1 -1
- package/dist/build/release-stub.d.ts +114 -57
- package/dist/build/release-stub.js +110 -67
- package/dist/build/release-stub.wasm +0 -0
- package/dist/build/release.d.ts +114 -57
- package/dist/build/release.js +110 -67
- 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 +4 -2
- package/package.json +5 -5
- /package/dist/bin/{test-json.js → src/test-json.js} +0 -0
package/dist/build/debug.d.ts
CHANGED
|
@@ -105,27 +105,41 @@ export declare function setMemory(address: number, data: Uint8Array): boolean;
|
|
|
105
105
|
*/
|
|
106
106
|
export declare function getAssembly(p: __Internref26): string;
|
|
107
107
|
/**
|
|
108
|
-
* assembly/api-internal/
|
|
108
|
+
* assembly/api-internal/buildMemory
|
|
109
|
+
* @param builder `assembly/memory/MemoryBuilder`
|
|
110
|
+
* @param pages `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
111
|
+
* @param chunks `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
112
|
+
* @returns `assembly/memory/Memory`
|
|
113
|
+
*/
|
|
114
|
+
export declare function buildMemory(builder: __Internref41, pages: Array<__Record44<undefined>>, chunks: Array<__Record46<undefined>>): __Internref15;
|
|
115
|
+
/**
|
|
116
|
+
* assembly/api-internal/vmInit
|
|
117
|
+
* @param input `assembly/api-types/VmInput`
|
|
118
|
+
* @param useSbrkGas `bool`
|
|
119
|
+
* @returns `assembly/interpreter/Interpreter`
|
|
120
|
+
*/
|
|
121
|
+
export declare function vmInit(input: __Internref49, useSbrkGas?: boolean): __Internref25;
|
|
122
|
+
/**
|
|
123
|
+
* assembly/api-internal/vmRunOnce
|
|
109
124
|
* @param input `assembly/api-types/VmInput`
|
|
110
125
|
* @param logs `bool`
|
|
111
126
|
* @param useSbrkGas `bool`
|
|
112
127
|
* @returns `assembly/api-types/VmOutput`
|
|
113
128
|
*/
|
|
114
|
-
export declare function
|
|
129
|
+
export declare function vmRunOnce(input: __Internref49, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
|
|
115
130
|
/**
|
|
116
|
-
* assembly/api-internal/
|
|
117
|
-
* @param
|
|
118
|
-
* @
|
|
131
|
+
* assembly/api-internal/vmExecute
|
|
132
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
133
|
+
* @param logs `bool`
|
|
119
134
|
*/
|
|
120
|
-
export declare function
|
|
135
|
+
export declare function vmExecute(int: __Internref25, logs?: boolean): void;
|
|
121
136
|
/**
|
|
122
|
-
* assembly/api-internal/
|
|
123
|
-
* @param
|
|
124
|
-
* @param
|
|
125
|
-
* @
|
|
126
|
-
* @returns `assembly/memory/Memory`
|
|
137
|
+
* assembly/api-internal/vmDestroy
|
|
138
|
+
* @param int `assembly/interpreter/Interpreter`
|
|
139
|
+
* @param dumpMemory `bool`
|
|
140
|
+
* @returns `assembly/api-types/VmOutput`
|
|
127
141
|
*/
|
|
128
|
-
export declare function
|
|
142
|
+
export declare function vmDestroy(int: __Internref25, dumpMemory?: boolean): __Record50<never>;
|
|
129
143
|
/** assembly/api-utils/InputKind */
|
|
130
144
|
export declare enum InputKind {
|
|
131
145
|
/** @type `i32` */
|
|
@@ -147,7 +161,7 @@ export declare enum HasMetadata {
|
|
|
147
161
|
* @param withMetadata `i32`
|
|
148
162
|
* @returns `~lib/array/Array<assembly/gas-costs/BlockGasCost>`
|
|
149
163
|
*/
|
|
150
|
-
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<
|
|
164
|
+
export declare function getGasCosts(input: Array<number>, kind: number, withMetadata: number): Array<__Record55<never>>;
|
|
151
165
|
/**
|
|
152
166
|
* assembly/api-utils/disassemble
|
|
153
167
|
* @param input `~lib/array/Array<u8>`
|
|
@@ -165,9 +179,10 @@ export declare function disassemble(input: Array<number>, kind: number, withMeta
|
|
|
165
179
|
* @param initialPageMap `~lib/array/Array<assembly/api-types/InitialPage>`
|
|
166
180
|
* @param initialMemory `~lib/array/Array<assembly/api-types/InitialChunk>`
|
|
167
181
|
* @param args `~lib/array/Array<u8>`
|
|
182
|
+
* @param preallocateMemoryPages `u32`
|
|
168
183
|
* @returns `assembly/spi/StandardProgram`
|
|
169
184
|
*/
|
|
170
|
-
export declare function prepareProgram(kind: number, hasMetadata: number, program: Array<number>, initialRegisters: Array<bigint>, initialPageMap: Array<
|
|
185
|
+
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>, preallocateMemoryPages: number): __Internref40;
|
|
171
186
|
/**
|
|
172
187
|
* assembly/api-utils/runProgram
|
|
173
188
|
* @param program `assembly/spi/StandardProgram`
|
|
@@ -177,18 +192,51 @@ export declare function prepareProgram(kind: number, hasMetadata: number, progra
|
|
|
177
192
|
* @param useSbrkGas `bool`
|
|
178
193
|
* @returns `assembly/api-types/VmOutput`
|
|
179
194
|
*/
|
|
180
|
-
export declare function runProgram(program:
|
|
195
|
+
export declare function runProgram(program: __Internref40, initialGas?: bigint, programCounter?: number, logs?: boolean, useSbrkGas?: boolean): __Record50<never>;
|
|
181
196
|
/**
|
|
182
|
-
* assembly/api-utils/
|
|
183
|
-
* @param
|
|
197
|
+
* assembly/api-utils/pvmStart
|
|
198
|
+
* @param program `assembly/spi/StandardProgram`
|
|
199
|
+
* @param useSbrkGas `bool`
|
|
200
|
+
* @returns `u32`
|
|
201
|
+
*/
|
|
202
|
+
export declare function pvmStart(program: __Internref40, useSbrkGas?: boolean): number;
|
|
203
|
+
/**
|
|
204
|
+
* assembly/api-utils/pvmDestroy
|
|
205
|
+
* @param pvmId `u32`
|
|
206
|
+
* @returns `assembly/api-types/VmOutput | null`
|
|
207
|
+
*/
|
|
208
|
+
export declare function pvmDestroy(pvmId: number): __Record50<never> | null;
|
|
209
|
+
/**
|
|
210
|
+
* assembly/api-utils/pvmSetRegisters
|
|
211
|
+
* @param pvmId `u32`
|
|
212
|
+
* @param registers `~lib/array/Array<u64>`
|
|
213
|
+
*/
|
|
214
|
+
export declare function pvmSetRegisters(pvmId: number, registers: Array<bigint>): void;
|
|
215
|
+
/**
|
|
216
|
+
* assembly/api-utils/pvmReadMemory
|
|
217
|
+
* @param pvmId `u32`
|
|
218
|
+
* @param address `u32`
|
|
219
|
+
* @param length `u32`
|
|
220
|
+
* @returns `~lib/typedarray/Uint8Array | null`
|
|
221
|
+
*/
|
|
222
|
+
export declare function pvmReadMemory(pvmId: number, address: number, length: number): Uint8Array | null;
|
|
223
|
+
/**
|
|
224
|
+
* assembly/api-utils/pvmWriteMemory
|
|
225
|
+
* @param pvmId `u32`
|
|
226
|
+
* @param address `u32`
|
|
227
|
+
* @param data `~lib/typedarray/Uint8Array`
|
|
228
|
+
* @returns `bool`
|
|
229
|
+
*/
|
|
230
|
+
export declare function pvmWriteMemory(pvmId: number, address: number, data: Uint8Array): boolean;
|
|
231
|
+
/**
|
|
232
|
+
* assembly/api-utils/pvmResume
|
|
233
|
+
* @param pvmId `u32`
|
|
184
234
|
* @param gas `i64`
|
|
185
|
-
* @param
|
|
186
|
-
* @param args `~lib/array/Array<u8>`
|
|
235
|
+
* @param pc `u32`
|
|
187
236
|
* @param logs `bool`
|
|
188
|
-
* @
|
|
189
|
-
* @returns `assembly/api-types/ReturnValue`
|
|
237
|
+
* @returns `assembly/api-types/VmPause | null`
|
|
190
238
|
*/
|
|
191
|
-
export declare function
|
|
239
|
+
export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
|
|
192
240
|
/**
|
|
193
241
|
* assembly/program-build/wrapAsProgram
|
|
194
242
|
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
@@ -200,74 +248,83 @@ declare class __Internref26 extends Number {
|
|
|
200
248
|
private __nominal26: symbol;
|
|
201
249
|
private __nominal0: symbol;
|
|
202
250
|
}
|
|
203
|
-
/** assembly/
|
|
204
|
-
declare class
|
|
205
|
-
private
|
|
251
|
+
/** assembly/memory/MemoryBuilder */
|
|
252
|
+
declare class __Internref41 extends Number {
|
|
253
|
+
private __nominal41: symbol;
|
|
206
254
|
private __nominal0: symbol;
|
|
207
255
|
}
|
|
256
|
+
/** assembly/api-types/InitialPage */
|
|
257
|
+
declare interface __Record44<TOmittable> {
|
|
258
|
+
/** @type `u32` */
|
|
259
|
+
address: number | TOmittable;
|
|
260
|
+
/** @type `u32` */
|
|
261
|
+
length: number | TOmittable;
|
|
262
|
+
/** @type `i32` */
|
|
263
|
+
access: number | TOmittable;
|
|
264
|
+
}
|
|
208
265
|
/** assembly/api-types/InitialChunk */
|
|
209
|
-
declare interface
|
|
266
|
+
declare interface __Record46<TOmittable> {
|
|
210
267
|
/** @type `u32` */
|
|
211
268
|
address: number | TOmittable;
|
|
212
269
|
/** @type `~lib/array/Array<u8>` */
|
|
213
270
|
data: Array<number>;
|
|
214
271
|
}
|
|
215
|
-
/** assembly/api-types/VmOutput */
|
|
216
|
-
declare interface __Record49<TOmittable> {
|
|
217
|
-
/** @type `i32` */
|
|
218
|
-
status: number | TOmittable;
|
|
219
|
-
/** @type `~lib/array/Array<u64>` */
|
|
220
|
-
registers: Array<bigint>;
|
|
221
|
-
/** @type `u32` */
|
|
222
|
-
pc: number | TOmittable;
|
|
223
|
-
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
224
|
-
memory: Array<__Record45<never>>;
|
|
225
|
-
/** @type `i64` */
|
|
226
|
-
gas: bigint | TOmittable;
|
|
227
|
-
/** @type `u32` */
|
|
228
|
-
exitCode: number | TOmittable;
|
|
229
|
-
}
|
|
230
272
|
/** assembly/memory/Memory */
|
|
231
273
|
declare class __Internref15 extends Number {
|
|
232
274
|
private __nominal15: symbol;
|
|
233
275
|
private __nominal0: symbol;
|
|
234
276
|
}
|
|
235
|
-
/** assembly/
|
|
236
|
-
declare class
|
|
237
|
-
private
|
|
277
|
+
/** assembly/api-types/VmInput */
|
|
278
|
+
declare class __Internref49 extends Number {
|
|
279
|
+
private __nominal49: symbol;
|
|
238
280
|
private __nominal0: symbol;
|
|
239
281
|
}
|
|
240
|
-
/** assembly/
|
|
241
|
-
declare
|
|
282
|
+
/** assembly/interpreter/Interpreter */
|
|
283
|
+
declare class __Internref25 extends Number {
|
|
284
|
+
private __nominal25: symbol;
|
|
285
|
+
private __nominal0: symbol;
|
|
286
|
+
}
|
|
287
|
+
/** assembly/api-types/VmOutput */
|
|
288
|
+
declare interface __Record50<TOmittable> {
|
|
289
|
+
/** @type `i32` */
|
|
290
|
+
status: number | TOmittable;
|
|
242
291
|
/** @type `u32` */
|
|
243
|
-
|
|
292
|
+
exitCode: number | TOmittable;
|
|
244
293
|
/** @type `u32` */
|
|
245
|
-
|
|
246
|
-
/** @type `
|
|
247
|
-
|
|
294
|
+
pc: number | TOmittable;
|
|
295
|
+
/** @type `i64` */
|
|
296
|
+
gas: bigint | TOmittable;
|
|
297
|
+
/** @type `~lib/array/Array<u8>` */
|
|
298
|
+
result: Array<number>;
|
|
299
|
+
/** @type `~lib/array/Array<u64>` */
|
|
300
|
+
registers: Array<bigint>;
|
|
301
|
+
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
302
|
+
memory: Array<__Record46<never>>;
|
|
248
303
|
}
|
|
249
304
|
/** assembly/gas-costs/BlockGasCost */
|
|
250
|
-
declare interface
|
|
305
|
+
declare interface __Record55<TOmittable> {
|
|
251
306
|
/** @type `u32` */
|
|
252
307
|
pc: number | TOmittable;
|
|
253
308
|
/** @type `u64` */
|
|
254
309
|
gas: bigint | TOmittable;
|
|
255
310
|
}
|
|
256
311
|
/** assembly/spi/StandardProgram */
|
|
257
|
-
declare class
|
|
258
|
-
private
|
|
312
|
+
declare class __Internref40 extends Number {
|
|
313
|
+
private __nominal40: symbol;
|
|
259
314
|
private __nominal0: symbol;
|
|
260
315
|
}
|
|
261
|
-
/** assembly/api-types/
|
|
262
|
-
declare interface
|
|
316
|
+
/** assembly/api-types/VmPause */
|
|
317
|
+
declare interface __Record59<TOmittable> {
|
|
263
318
|
/** @type `i32` */
|
|
264
319
|
status: number | TOmittable;
|
|
265
320
|
/** @type `u32` */
|
|
266
321
|
exitCode: number | TOmittable;
|
|
267
322
|
/** @type `u32` */
|
|
268
323
|
pc: number | TOmittable;
|
|
324
|
+
/** @type `u32` */
|
|
325
|
+
nextPc: number | TOmittable;
|
|
269
326
|
/** @type `i64` */
|
|
270
327
|
gas: bigint | TOmittable;
|
|
271
|
-
/** @type `~lib/array/Array<
|
|
272
|
-
|
|
328
|
+
/** @type `~lib/array/Array<u64>` */
|
|
329
|
+
registers: Array<bigint>;
|
|
273
330
|
}
|
package/dist/build/debug.js
CHANGED
|
@@ -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,22 +169,22 @@ 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,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) {
|
|
@@ -444,16 +480,23 @@ export const {
|
|
|
444
480
|
getMemory,
|
|
445
481
|
setMemory,
|
|
446
482
|
getAssembly,
|
|
447
|
-
runVm,
|
|
448
|
-
getOutputChunks,
|
|
449
483
|
buildMemory,
|
|
484
|
+
vmInit,
|
|
485
|
+
vmRunOnce,
|
|
486
|
+
vmExecute,
|
|
487
|
+
vmDestroy,
|
|
450
488
|
InputKind,
|
|
451
489
|
HasMetadata,
|
|
452
490
|
getGasCosts,
|
|
453
491
|
disassemble,
|
|
454
492
|
prepareProgram,
|
|
455
493
|
runProgram,
|
|
456
|
-
|
|
494
|
+
pvmStart,
|
|
495
|
+
pvmDestroy,
|
|
496
|
+
pvmSetRegisters,
|
|
497
|
+
pvmReadMemory,
|
|
498
|
+
pvmWriteMemory,
|
|
499
|
+
pvmResume,
|
|
457
500
|
wrapAsProgram,
|
|
458
501
|
} = await (async url => instantiate(
|
|
459
502
|
await (async () => {
|
package/dist/build/debug.wasm
CHANGED
|
Binary file
|