@aztec/native 3.0.0-nightly.20251222 → 3.0.0-nightly.20251224
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/dest/native_module.d.ts +21 -2
- package/dest/native_module.d.ts.map +1 -1
- package/dest/native_module.js +19 -2
- package/package.json +3 -3
- package/src/native_module.ts +38 -1
package/dest/native_module.d.ts
CHANGED
|
@@ -58,6 +58,24 @@ export interface ContractProvider {
|
|
|
58
58
|
*/
|
|
59
59
|
revertCheckpoint(): Promise<void>;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Cancellation token handle used to cancel C++ AVM simulation.
|
|
63
|
+
* The token is created via createCancellationToken() and can be cancelled via cancelSimulation().
|
|
64
|
+
* Pass it to avmSimulate to enable cancellation support.
|
|
65
|
+
*/
|
|
66
|
+
export type CancellationToken = any;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new cancellation token for C++ simulation.
|
|
69
|
+
* This token can be passed to avmSimulate and later cancelled via cancelSimulation().
|
|
70
|
+
* @returns A handle to a cancellation token
|
|
71
|
+
*/
|
|
72
|
+
export declare function createCancellationToken(): CancellationToken;
|
|
73
|
+
/**
|
|
74
|
+
* Signal cancellation to a C++ simulation.
|
|
75
|
+
* The simulation will stop at the next opcode or before the next WorldState write.
|
|
76
|
+
* @param token - The cancellation token previously passed to avmSimulate
|
|
77
|
+
*/
|
|
78
|
+
export declare function cancelSimulation(token: CancellationToken): void;
|
|
61
79
|
/**
|
|
62
80
|
* AVM simulation function that takes serialized inputs and a contract provider.
|
|
63
81
|
* The contract provider enables C++ to callback to TypeScript for contract data during simulation.
|
|
@@ -65,9 +83,10 @@ export interface ContractProvider {
|
|
|
65
83
|
* @param contractProvider - Object with callbacks for fetching contract instances and classes
|
|
66
84
|
* @param worldStateHandle - Native handle to WorldState instance
|
|
67
85
|
* @param logLevel - Log level to control C++ verbosity
|
|
86
|
+
* @param cancellationToken - Optional token to enable cancellation support
|
|
68
87
|
* @returns Promise resolving to msgpack-serialized AvmCircuitPublicInputs buffer
|
|
69
88
|
*/
|
|
70
|
-
export declare function avmSimulate(inputs: Buffer, contractProvider: ContractProvider, worldStateHandle: any, logLevel?: LogLevel): Promise<Buffer>;
|
|
89
|
+
export declare function avmSimulate(inputs: Buffer, contractProvider: ContractProvider, worldStateHandle: any, logLevel?: LogLevel, cancellationToken?: CancellationToken): Promise<Buffer>;
|
|
71
90
|
/**
|
|
72
91
|
* AVM simulation function that uses pre-collected hints from TypeScript simulation.
|
|
73
92
|
* All contract data and merkle tree hints are included in the AvmCircuitInputs, so no runtime
|
|
@@ -78,4 +97,4 @@ export declare function avmSimulate(inputs: Buffer, contractProvider: ContractPr
|
|
|
78
97
|
*/
|
|
79
98
|
export declare function avmSimulateWithHintedDbs(inputs: Buffer, logLevel?: LogLevel): Promise<Buffer>;
|
|
80
99
|
export {};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX21vZHVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25hdGl2ZV9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFhLE1BQU0sdUJBQXVCLENBQUM7QUFLakUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFNUQsVUFBVSxlQUFlO0lBQ3ZCLEtBQUssR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsZUFBZSxDQUFDO0NBQzNDO0FBYUQsZUFBTyxNQUFNLGdCQUFnQixFQUFFLGVBQTRELENBQUM7QUFDNUYsZUFBTyxNQUFNLGVBQWUsRUFBRSxlQUEyRCxDQUFDO0FBRTFGOzs7R0FHRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0I7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNsRTs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRS9EOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1RDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRXBFOzs7OztPQUtHO0lBQ0gsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFckY7Ozs7T0FJRztJQUNILGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsQzs7O09BR0c7SUFDSCxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbEM7OztPQUdHO0lBQ0gsZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ25DO0FBbUJEOzs7O0dBSUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBRXBDOzs7O0dBSUc7QUFDSCx3QkFBZ0IsdUJBQXVCLElBQUksaUJBQWlCLENBRTNEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQUUvRDtBQWlCRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBc0IsV0FBVyxDQUMvQixNQUFNLEVBQUUsTUFBTSxFQUNkLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQ3JCLFFBQVEsR0FBRSxRQUFpQixFQUMzQixpQkFBaUIsQ0FBQyxFQUFFLGlCQUFpQixHQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBYWpCO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsR0FBRSxRQUFpQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FPM0cifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_module.d.ts","sourceRoot":"","sources":["../src/native_module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AAKjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,UAAU,eAAe;IACvB,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;CAC3C;AAaD,eAAO,MAAM,gBAAgB,EAAE,eAA4D,CAAC;AAC5F,eAAO,MAAM,eAAe,EAAE,eAA2D,CAAC;AAE1F;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClE;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,YAAY,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAErF;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"native_module.d.ts","sourceRoot":"","sources":["../src/native_module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AAKjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,UAAU,eAAe;IACvB,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;CAC3C;AAaD,eAAO,MAAM,gBAAgB,EAAE,eAA4D,CAAC;AAC5F,eAAO,MAAM,eAAe,EAAE,eAA2D,CAAC;AAE1F;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClE;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE/D;;;;OAIG;IACH,YAAY,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpE;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAErF;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAmBD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE/D;AAiBD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,GAAG,EACrB,QAAQ,GAAE,QAAiB,EAC3B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAO3G"}
|
package/dest/native_module.js
CHANGED
|
@@ -16,6 +16,22 @@ export const NativeLMDBStore = nativeModule.LMDBStore;
|
|
|
16
16
|
// Internal native functions with numeric log level
|
|
17
17
|
const nativeAvmSimulate = nativeModule.avmSimulate;
|
|
18
18
|
const nativeAvmSimulateWithHintedDbs = nativeModule.avmSimulateWithHintedDbs;
|
|
19
|
+
const nativeCreateCancellationToken = nativeModule.createCancellationToken;
|
|
20
|
+
const nativeCancelSimulation = nativeModule.cancelSimulation;
|
|
21
|
+
/**
|
|
22
|
+
* Create a new cancellation token for C++ simulation.
|
|
23
|
+
* This token can be passed to avmSimulate and later cancelled via cancelSimulation().
|
|
24
|
+
* @returns A handle to a cancellation token
|
|
25
|
+
*/ export function createCancellationToken() {
|
|
26
|
+
return nativeCreateCancellationToken();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Signal cancellation to a C++ simulation.
|
|
30
|
+
* The simulation will stop at the next opcode or before the next WorldState write.
|
|
31
|
+
* @param token - The cancellation token previously passed to avmSimulate
|
|
32
|
+
*/ export function cancelSimulation(token) {
|
|
33
|
+
nativeCancelSimulation(token);
|
|
34
|
+
}
|
|
19
35
|
/**
|
|
20
36
|
* Concurrency limiting for C++ AVM simulation to prevent libuv thread pool exhaustion.
|
|
21
37
|
*
|
|
@@ -36,11 +52,12 @@ const avmSimulationSemaphore = new Semaphore(MAX_CONCURRENT_AVM_SIMULATIONS);
|
|
|
36
52
|
* @param contractProvider - Object with callbacks for fetching contract instances and classes
|
|
37
53
|
* @param worldStateHandle - Native handle to WorldState instance
|
|
38
54
|
* @param logLevel - Log level to control C++ verbosity
|
|
55
|
+
* @param cancellationToken - Optional token to enable cancellation support
|
|
39
56
|
* @returns Promise resolving to msgpack-serialized AvmCircuitPublicInputs buffer
|
|
40
|
-
*/ export async function avmSimulate(inputs, contractProvider, worldStateHandle, logLevel = 'info') {
|
|
57
|
+
*/ export async function avmSimulate(inputs, contractProvider, worldStateHandle, logLevel = 'info', cancellationToken) {
|
|
41
58
|
await avmSimulationSemaphore.acquire();
|
|
42
59
|
try {
|
|
43
|
-
return await nativeAvmSimulate(inputs, contractProvider, worldStateHandle, LogLevels.indexOf(logLevel));
|
|
60
|
+
return await nativeAvmSimulate(inputs, contractProvider, worldStateHandle, LogLevels.indexOf(logLevel), cancellationToken);
|
|
44
61
|
} finally{
|
|
45
62
|
avmSimulationSemaphore.release();
|
|
46
63
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/native",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251224",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js"
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"../package.common.json"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@aztec/bb.js": "3.0.0-nightly.
|
|
19
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
18
|
+
"@aztec/bb.js": "3.0.0-nightly.20251224",
|
|
19
|
+
"@aztec/foundation": "3.0.0-nightly.20251224",
|
|
20
20
|
"msgpackr": "^1.11.2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
package/src/native_module.ts
CHANGED
|
@@ -90,6 +90,7 @@ const nativeAvmSimulate = nativeModule.avmSimulate as (
|
|
|
90
90
|
contractProvider: ContractProvider,
|
|
91
91
|
worldStateHandle: any,
|
|
92
92
|
logLevel: number,
|
|
93
|
+
cancellationToken?: any,
|
|
93
94
|
) => Promise<Buffer>;
|
|
94
95
|
|
|
95
96
|
const nativeAvmSimulateWithHintedDbs = nativeModule.avmSimulateWithHintedDbs as (
|
|
@@ -97,6 +98,34 @@ const nativeAvmSimulateWithHintedDbs = nativeModule.avmSimulateWithHintedDbs as
|
|
|
97
98
|
logLevel: number,
|
|
98
99
|
) => Promise<Buffer>;
|
|
99
100
|
|
|
101
|
+
const nativeCreateCancellationToken = nativeModule.createCancellationToken as () => any;
|
|
102
|
+
const nativeCancelSimulation = nativeModule.cancelSimulation as (token: any) => void;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Cancellation token handle used to cancel C++ AVM simulation.
|
|
106
|
+
* The token is created via createCancellationToken() and can be cancelled via cancelSimulation().
|
|
107
|
+
* Pass it to avmSimulate to enable cancellation support.
|
|
108
|
+
*/
|
|
109
|
+
export type CancellationToken = any;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Create a new cancellation token for C++ simulation.
|
|
113
|
+
* This token can be passed to avmSimulate and later cancelled via cancelSimulation().
|
|
114
|
+
* @returns A handle to a cancellation token
|
|
115
|
+
*/
|
|
116
|
+
export function createCancellationToken(): CancellationToken {
|
|
117
|
+
return nativeCreateCancellationToken();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Signal cancellation to a C++ simulation.
|
|
122
|
+
* The simulation will stop at the next opcode or before the next WorldState write.
|
|
123
|
+
* @param token - The cancellation token previously passed to avmSimulate
|
|
124
|
+
*/
|
|
125
|
+
export function cancelSimulation(token: CancellationToken): void {
|
|
126
|
+
nativeCancelSimulation(token);
|
|
127
|
+
}
|
|
128
|
+
|
|
100
129
|
/**
|
|
101
130
|
* Concurrency limiting for C++ AVM simulation to prevent libuv thread pool exhaustion.
|
|
102
131
|
*
|
|
@@ -119,6 +148,7 @@ const avmSimulationSemaphore = new Semaphore(MAX_CONCURRENT_AVM_SIMULATIONS);
|
|
|
119
148
|
* @param contractProvider - Object with callbacks for fetching contract instances and classes
|
|
120
149
|
* @param worldStateHandle - Native handle to WorldState instance
|
|
121
150
|
* @param logLevel - Log level to control C++ verbosity
|
|
151
|
+
* @param cancellationToken - Optional token to enable cancellation support
|
|
122
152
|
* @returns Promise resolving to msgpack-serialized AvmCircuitPublicInputs buffer
|
|
123
153
|
*/
|
|
124
154
|
export async function avmSimulate(
|
|
@@ -126,10 +156,17 @@ export async function avmSimulate(
|
|
|
126
156
|
contractProvider: ContractProvider,
|
|
127
157
|
worldStateHandle: any,
|
|
128
158
|
logLevel: LogLevel = 'info',
|
|
159
|
+
cancellationToken?: CancellationToken,
|
|
129
160
|
): Promise<Buffer> {
|
|
130
161
|
await avmSimulationSemaphore.acquire();
|
|
131
162
|
try {
|
|
132
|
-
return await nativeAvmSimulate(
|
|
163
|
+
return await nativeAvmSimulate(
|
|
164
|
+
inputs,
|
|
165
|
+
contractProvider,
|
|
166
|
+
worldStateHandle,
|
|
167
|
+
LogLevels.indexOf(logLevel),
|
|
168
|
+
cancellationToken,
|
|
169
|
+
);
|
|
133
170
|
} finally {
|
|
134
171
|
avmSimulationSemaphore.release();
|
|
135
172
|
}
|