@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
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,7 +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>;
|
|
196
|
+
/**
|
|
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`
|
|
234
|
+
* @param gas `i64`
|
|
235
|
+
* @param pc `u32`
|
|
236
|
+
* @param logs `bool`
|
|
237
|
+
* @returns `assembly/api-types/VmPause | null`
|
|
238
|
+
*/
|
|
239
|
+
export declare function pvmResume(pvmId: number, gas: bigint, pc: number, logs?: boolean): __Record59<never> | null;
|
|
181
240
|
/**
|
|
182
241
|
* assembly/program-build/wrapAsProgram
|
|
183
242
|
* @param bytecode `~lib/typedarray/Uint8Array`
|
|
@@ -189,20 +248,44 @@ declare class __Internref26 extends Number {
|
|
|
189
248
|
private __nominal26: symbol;
|
|
190
249
|
private __nominal0: symbol;
|
|
191
250
|
}
|
|
192
|
-
/** assembly/
|
|
193
|
-
declare class
|
|
194
|
-
private
|
|
251
|
+
/** assembly/memory/MemoryBuilder */
|
|
252
|
+
declare class __Internref41 extends Number {
|
|
253
|
+
private __nominal41: symbol;
|
|
195
254
|
private __nominal0: symbol;
|
|
196
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
|
+
}
|
|
197
265
|
/** assembly/api-types/InitialChunk */
|
|
198
|
-
declare interface
|
|
266
|
+
declare interface __Record46<TOmittable> {
|
|
199
267
|
/** @type `u32` */
|
|
200
268
|
address: number | TOmittable;
|
|
201
269
|
/** @type `~lib/array/Array<u8>` */
|
|
202
270
|
data: Array<number>;
|
|
203
271
|
}
|
|
272
|
+
/** assembly/memory/Memory */
|
|
273
|
+
declare class __Internref15 extends Number {
|
|
274
|
+
private __nominal15: symbol;
|
|
275
|
+
private __nominal0: symbol;
|
|
276
|
+
}
|
|
277
|
+
/** assembly/api-types/VmInput */
|
|
278
|
+
declare class __Internref49 extends Number {
|
|
279
|
+
private __nominal49: symbol;
|
|
280
|
+
private __nominal0: symbol;
|
|
281
|
+
}
|
|
282
|
+
/** assembly/interpreter/Interpreter */
|
|
283
|
+
declare class __Internref25 extends Number {
|
|
284
|
+
private __nominal25: symbol;
|
|
285
|
+
private __nominal0: symbol;
|
|
286
|
+
}
|
|
204
287
|
/** assembly/api-types/VmOutput */
|
|
205
|
-
declare interface
|
|
288
|
+
declare interface __Record50<TOmittable> {
|
|
206
289
|
/** @type `i32` */
|
|
207
290
|
status: number | TOmittable;
|
|
208
291
|
/** @type `u32` */
|
|
@@ -216,36 +299,32 @@ declare interface __Record49<TOmittable> {
|
|
|
216
299
|
/** @type `~lib/array/Array<u64>` */
|
|
217
300
|
registers: Array<bigint>;
|
|
218
301
|
/** @type `~lib/array/Array<assembly/api-types/InitialChunk>` */
|
|
219
|
-
memory: Array<
|
|
302
|
+
memory: Array<__Record46<never>>;
|
|
220
303
|
}
|
|
221
|
-
/** assembly/
|
|
222
|
-
declare
|
|
223
|
-
|
|
224
|
-
|
|
304
|
+
/** assembly/gas-costs/BlockGasCost */
|
|
305
|
+
declare interface __Record55<TOmittable> {
|
|
306
|
+
/** @type `u32` */
|
|
307
|
+
pc: number | TOmittable;
|
|
308
|
+
/** @type `u64` */
|
|
309
|
+
gas: bigint | TOmittable;
|
|
225
310
|
}
|
|
226
|
-
/** assembly/
|
|
311
|
+
/** assembly/spi/StandardProgram */
|
|
227
312
|
declare class __Internref40 extends Number {
|
|
228
313
|
private __nominal40: symbol;
|
|
229
314
|
private __nominal0: symbol;
|
|
230
315
|
}
|
|
231
|
-
/** assembly/api-types/
|
|
232
|
-
declare interface
|
|
233
|
-
/** @type `u32` */
|
|
234
|
-
address: number | TOmittable;
|
|
235
|
-
/** @type `u32` */
|
|
236
|
-
length: number | TOmittable;
|
|
316
|
+
/** assembly/api-types/VmPause */
|
|
317
|
+
declare interface __Record59<TOmittable> {
|
|
237
318
|
/** @type `i32` */
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
declare interface __Record54<TOmittable> {
|
|
319
|
+
status: number | TOmittable;
|
|
320
|
+
/** @type `u32` */
|
|
321
|
+
exitCode: number | TOmittable;
|
|
242
322
|
/** @type `u32` */
|
|
243
323
|
pc: number | TOmittable;
|
|
244
|
-
/** @type `
|
|
324
|
+
/** @type `u32` */
|
|
325
|
+
nextPc: number | TOmittable;
|
|
326
|
+
/** @type `i64` */
|
|
245
327
|
gas: bigint | TOmittable;
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
declare class __Internref39 extends Number {
|
|
249
|
-
private __nominal39: symbol;
|
|
250
|
-
private __nominal0: symbol;
|
|
328
|
+
/** @type `~lib/array/Array<u64>` */
|
|
329
|
+
registers: Array<bigint>;
|
|
251
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,7 +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;
|
|
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 @@ 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 @@ 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 @@ 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 @@ 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
|
|
@@ -419,15 +480,23 @@ export const {
|
|
|
419
480
|
getMemory,
|
|
420
481
|
setMemory,
|
|
421
482
|
getAssembly,
|
|
422
|
-
runVm,
|
|
423
|
-
getOutputChunks,
|
|
424
483
|
buildMemory,
|
|
484
|
+
vmInit,
|
|
485
|
+
vmRunOnce,
|
|
486
|
+
vmExecute,
|
|
487
|
+
vmDestroy,
|
|
425
488
|
InputKind,
|
|
426
489
|
HasMetadata,
|
|
427
490
|
getGasCosts,
|
|
428
491
|
disassemble,
|
|
429
492
|
prepareProgram,
|
|
430
493
|
runProgram,
|
|
494
|
+
pvmStart,
|
|
495
|
+
pvmDestroy,
|
|
496
|
+
pvmSetRegisters,
|
|
497
|
+
pvmReadMemory,
|
|
498
|
+
pvmWriteMemory,
|
|
499
|
+
pvmResume,
|
|
431
500
|
wrapAsProgram,
|
|
432
501
|
} = await (async url => instantiate(
|
|
433
502
|
await (async () => {
|
package/dist/build/debug.wasm
CHANGED
|
Binary file
|