@aztec/bb-prover 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.0
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/avm_proving_tests/avm_proving_tester.d.ts +25 -0
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -0
- package/dest/avm_proving_tests/avm_proving_tester.js +16 -14
- package/dest/bb/cli.d.ts +12 -0
- package/dest/bb/cli.d.ts.map +1 -0
- package/dest/bb/cli.js +9 -4
- package/dest/bb/execute.d.ts +170 -0
- package/dest/bb/execute.d.ts.map +1 -0
- package/dest/bb/execute.js +267 -395
- package/dest/bb/index.d.ts +3 -0
- package/dest/bb/index.d.ts.map +1 -0
- package/dest/bb/index.js +6 -4
- package/dest/config.d.ts +13 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +2 -1
- package/dest/honk.d.ts +13 -0
- package/dest/honk.d.ts.map +1 -0
- package/dest/honk.js +5 -8
- package/dest/index.d.ts +8 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +1 -0
- package/dest/instrumentation.d.ts +47 -0
- package/dest/instrumentation.d.ts.map +1 -0
- package/dest/instrumentation.js +41 -44
- package/dest/prover/bb_native_private_kernel_prover.d.ts +25 -0
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/bb_native_private_kernel_prover.js +19 -19
- package/dest/prover/bb_private_kernel_prover.d.ts +31 -0
- package/dest/prover/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/bb_private_kernel_prover.js +11 -11
- package/dest/prover/bb_prover.d.ts +123 -0
- package/dest/prover/bb_prover.d.ts.map +1 -0
- package/dest/prover/bb_prover.js +445 -431
- package/dest/prover/client_ivc_proof_utils.d.ts +25 -0
- package/dest/prover/client_ivc_proof_utils.d.ts.map +1 -0
- package/dest/prover/client_ivc_proof_utils.js +9 -15
- package/dest/prover/index.d.ts +4 -0
- package/dest/prover/index.d.ts.map +1 -0
- package/dest/prover/index.js +1 -0
- package/dest/stats.d.ts +5 -0
- package/dest/stats.d.ts.map +1 -0
- package/dest/stats.js +14 -15
- package/dest/test/index.d.ts +3 -0
- package/dest/test/index.d.ts.map +1 -0
- package/dest/test/index.js +1 -0
- package/dest/test/test_circuit_prover.d.ts +72 -0
- package/dest/test/test_circuit_prover.d.ts.map +1 -0
- package/dest/test/test_circuit_prover.js +160 -156
- package/dest/test/test_verifier.d.ts +5 -0
- package/dest/test/test_verifier.d.ts.map +1 -0
- package/dest/test/test_verifier.js +1 -0
- package/dest/verification_key/verification_key_data.d.ts +9 -0
- package/dest/verification_key/verification_key_data.d.ts.map +1 -0
- package/dest/verification_key/verification_key_data.js +8 -10
- package/dest/verifier/bb_verifier.d.ts +15 -0
- package/dest/verifier/bb_verifier.d.ts.map +1 -0
- package/dest/verifier/bb_verifier.js +13 -13
- package/dest/verifier/index.d.ts +2 -0
- package/dest/verifier/index.d.ts.map +1 -0
- package/dest/verifier/index.js +1 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +16 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +1 -0
- package/dest/wasm/bb_wasm_private_kernel_prover.js +10 -11
- package/dest/wasm/bundle.d.ts +6 -0
- package/dest/wasm/bundle.d.ts.map +1 -0
- package/dest/wasm/bundle.js +2 -1
- package/dest/wasm/lazy.d.ts +6 -0
- package/dest/wasm/lazy.d.ts.map +1 -0
- package/dest/wasm/lazy.js +2 -1
- package/package.json +10 -10
- package/src/avm_proving_tests/avm_proving_tester.ts +15 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_verifier.d.ts","sourceRoot":"","sources":["../../src/test/test_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAEnF,qBAAa,mBAAoB,YAAW,6BAA6B;IACvE,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvC"}
|
|
@@ -3,3 +3,4 @@ export class TestCircuitVerifier {
|
|
|
3
3
|
return Promise.resolve(true);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF92ZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfdmVyaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixXQUFXLENBQUMsR0FBTztRQUNqQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VerificationKeyData } from '@aztec/circuits.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reads the verification key data stored at the specified location and parses into a VerificationKeyData
|
|
4
|
+
* @param vkDirectoryPath - The directory containing the verification key data files
|
|
5
|
+
* @returns The verification key data
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractVkData(vkDirectoryPath: string): Promise<VerificationKeyData>;
|
|
8
|
+
export declare function extractAvmVkData(vkDirectoryPath: string): Promise<VerificationKeyData>;
|
|
9
|
+
//# sourceMappingURL=verification_key_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification_key_data.d.ts","sourceRoot":"","sources":["../../src/verification_key/verification_key_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAS5B;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAWzF;AAGD,wBAAsB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAc5F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, Fr, VerificationKeyAsFields, VerificationKeyData } from '@aztec/circuits.js';
|
|
1
|
+
import { AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS, Fr, VerificationKeyAsFields, VerificationKeyData, } from '@aztec/circuits.js';
|
|
2
2
|
import { hashVK } from '@aztec/circuits.js/hash';
|
|
3
3
|
import { strict as assert } from 'assert';
|
|
4
4
|
import { promises as fs } from 'fs';
|
|
@@ -8,12 +8,11 @@ import { VK_FIELDS_FILENAME, VK_FILENAME } from '../bb/execute.js';
|
|
|
8
8
|
* Reads the verification key data stored at the specified location and parses into a VerificationKeyData
|
|
9
9
|
* @param vkDirectoryPath - The directory containing the verification key data files
|
|
10
10
|
* @returns The verification key data
|
|
11
|
-
*/
|
|
11
|
+
*/
|
|
12
|
+
export async function extractVkData(vkDirectoryPath) {
|
|
12
13
|
const [rawFields, rawBinary] = await Promise.all([
|
|
13
|
-
fs.readFile(path.join(vkDirectoryPath, VK_FIELDS_FILENAME), {
|
|
14
|
-
|
|
15
|
-
}),
|
|
16
|
-
fs.readFile(path.join(vkDirectoryPath, VK_FILENAME))
|
|
14
|
+
fs.readFile(path.join(vkDirectoryPath, VK_FIELDS_FILENAME), { encoding: 'utf-8' }),
|
|
15
|
+
fs.readFile(path.join(vkDirectoryPath, VK_FILENAME)),
|
|
17
16
|
]);
|
|
18
17
|
const fieldsJson = JSON.parse(rawFields);
|
|
19
18
|
const fields = fieldsJson.map(Fr.fromHexString);
|
|
@@ -25,10 +24,8 @@ import { VK_FIELDS_FILENAME, VK_FILENAME } from '../bb/execute.js';
|
|
|
25
24
|
// TODO: This was adapted from the above function. A refactor might be needed.
|
|
26
25
|
export async function extractAvmVkData(vkDirectoryPath) {
|
|
27
26
|
const [rawFields, rawBinary] = await Promise.all([
|
|
28
|
-
fs.readFile(path.join(vkDirectoryPath, VK_FIELDS_FILENAME), {
|
|
29
|
-
|
|
30
|
-
}),
|
|
31
|
-
fs.readFile(path.join(vkDirectoryPath, VK_FILENAME))
|
|
27
|
+
fs.readFile(path.join(vkDirectoryPath, VK_FIELDS_FILENAME), { encoding: 'utf-8' }),
|
|
28
|
+
fs.readFile(path.join(vkDirectoryPath, VK_FILENAME)),
|
|
32
29
|
]);
|
|
33
30
|
const fieldsJson = JSON.parse(rawFields);
|
|
34
31
|
const fields = fieldsJson.map(Fr.fromHexString);
|
|
@@ -40,3 +37,4 @@ export async function extractAvmVkData(vkDirectoryPath) {
|
|
|
40
37
|
const vk = new VerificationKeyData(vkAsFields, rawBinary);
|
|
41
38
|
return vk;
|
|
42
39
|
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleV9kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZlcmlmaWNhdGlvbl9rZXkvdmVyaWZpY2F0aW9uX2tleV9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQ0FBcUMsRUFDckMsRUFBRSxFQUNGLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5FOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxlQUF1QjtJQUN6RCxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEYsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztLQUNyRCxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELDhDQUE4QztJQUM5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxPQUFPLElBQUksbUJBQW1CLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxlQUF1QjtJQUM1RCxNQUFNLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEYsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztLQUNyRCxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELGdFQUFnRTtJQUNoRSx3Q0FBd0M7SUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLHFDQUFxQyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7SUFDdkcsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ClientProtocolCircuitVerifier, Tx } from '@aztec/circuit-types';
|
|
2
|
+
import { type Proof, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
4
|
+
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/types';
|
|
5
|
+
import { type BBConfig } from '../config.js';
|
|
6
|
+
export declare class BBCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
7
|
+
private config;
|
|
8
|
+
private logger;
|
|
9
|
+
private constructor();
|
|
10
|
+
static new(config: BBConfig, logger?: Logger): Promise<BBCircuitVerifier>;
|
|
11
|
+
getVerificationKeyData(circuitType: ServerProtocolArtifact): VerificationKeyData;
|
|
12
|
+
verifyProofForCircuit(circuit: ServerProtocolArtifact, proof: Proof): Promise<void>;
|
|
13
|
+
verifyProof(tx: Tx): Promise<boolean>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=bb_verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAA+B,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAOrH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7C,qBAAa,iBAAkB,YAAW,6BAA6B;IACjD,OAAO,CAAC,MAAM;IAAY,OAAO,CAAC,MAAM;IAA5D,OAAO;WAEa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAqC;IAK9E,sBAAsB,CAAC,WAAW,EAAE,sBAAsB,GAAG,mBAAmB;IAQ1E,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;IAkCnE,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAuCnD"}
|
|
@@ -9,16 +9,12 @@ import { getUltraHonkFlavorForCircuit } from '../honk.js';
|
|
|
9
9
|
import { writeToOutputDirectory } from '../prover/client_ivc_proof_utils.js';
|
|
10
10
|
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
11
11
|
export class BBCircuitVerifier {
|
|
12
|
-
config
|
|
13
|
-
logger;
|
|
14
|
-
constructor(config, logger){
|
|
12
|
+
constructor(config, logger) {
|
|
15
13
|
this.config = config;
|
|
16
14
|
this.logger = logger;
|
|
17
15
|
}
|
|
18
16
|
static async new(config, logger = createLogger('bb-prover:verifier')) {
|
|
19
|
-
await fs.mkdir(config.bbWorkingDirectory, {
|
|
20
|
-
recursive: true
|
|
21
|
-
});
|
|
17
|
+
await fs.mkdir(config.bbWorkingDirectory, { recursive: true });
|
|
22
18
|
return new BBCircuitVerifier(config, logger);
|
|
23
19
|
}
|
|
24
20
|
getVerificationKeyData(circuitType) {
|
|
@@ -29,7 +25,7 @@ export class BBCircuitVerifier {
|
|
|
29
25
|
return vk;
|
|
30
26
|
}
|
|
31
27
|
async verifyProofForCircuit(circuit, proof) {
|
|
32
|
-
const operation = async (bbWorkingDirectory)=>{
|
|
28
|
+
const operation = async (bbWorkingDirectory) => {
|
|
33
29
|
const proofFileName = path.join(bbWorkingDirectory, PROOF_FILENAME);
|
|
34
30
|
const verificationKeyPath = path.join(bbWorkingDirectory, VK_FILENAME);
|
|
35
31
|
const verificationKey = this.getVerificationKeyData(circuit);
|
|
@@ -45,7 +41,7 @@ export class BBCircuitVerifier {
|
|
|
45
41
|
circuitName: mapProtocolArtifactNameToCircuitName(circuit),
|
|
46
42
|
duration: result.durationMs,
|
|
47
43
|
eventName: 'circuit-verification',
|
|
48
|
-
proofType: 'ultra-honk'
|
|
44
|
+
proofType: 'ultra-honk',
|
|
49
45
|
});
|
|
50
46
|
};
|
|
51
47
|
await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup);
|
|
@@ -56,11 +52,13 @@ export class BBCircuitVerifier {
|
|
|
56
52
|
// rather than read from the tx object itself. We also need the vks for the translator and ecc, which
|
|
57
53
|
// are not being saved along the other vks yet. Reuse the 'verifyProofForCircuit' method above once
|
|
58
54
|
// we have all the verification keys available.
|
|
59
|
-
const expectedCircuit = tx.data.forPublic
|
|
55
|
+
const expectedCircuit = tx.data.forPublic
|
|
56
|
+
? 'PrivateKernelTailToPublicArtifact'
|
|
57
|
+
: 'PrivateKernelTailArtifact';
|
|
60
58
|
const circuit = 'ClientIVC';
|
|
61
59
|
// Block below is almost copy-pasted from verifyProofForCircuit
|
|
62
|
-
const operation = async (bbWorkingDirectory)=>{
|
|
63
|
-
const logFunction = (message)=>{
|
|
60
|
+
const operation = async (bbWorkingDirectory) => {
|
|
61
|
+
const logFunction = (message) => {
|
|
64
62
|
this.logger.debug(`${circuit} BB out - ${message}`);
|
|
65
63
|
};
|
|
66
64
|
await writeToOutputDirectory(tx.clientIvcProof, bbWorkingDirectory);
|
|
@@ -73,14 +71,16 @@ export class BBCircuitVerifier {
|
|
|
73
71
|
circuitName: mapProtocolArtifactNameToCircuitName(expectedCircuit),
|
|
74
72
|
duration: result.durationMs,
|
|
75
73
|
eventName: 'circuit-verification',
|
|
76
|
-
proofType: 'client-ivc'
|
|
74
|
+
proofType: 'client-ivc',
|
|
77
75
|
});
|
|
78
76
|
};
|
|
79
77
|
await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup);
|
|
80
78
|
return true;
|
|
81
|
-
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
82
81
|
this.logger.warn(`Failed to verify ClientIVC proof for tx ${Tx.getHash(tx)}: ${String(err)}`);
|
|
83
82
|
return false;
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
}
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfdmVyaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyaWZpZXIvYmJfdmVyaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxFQUFFLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFlLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBNEIsTUFBZ0IsRUFBVSxNQUFjO1FBQXhDLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUVqRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFnQixFQUFFLE1BQU0sR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQUM7UUFDbkYsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxpQkFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/verifier/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
package/dest/verifier/index.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { ClientIvcProof } from '@aztec/circuits.js';
|
|
4
|
+
import { type ArtifactProvider } from '@aztec/noir-protocol-circuits-types/types';
|
|
5
|
+
import { type SimulationProvider } from '@aztec/simulator/client';
|
|
6
|
+
import { type WitnessMap } from '@noir-lang/types';
|
|
7
|
+
import { BBPrivateKernelProver } from '../prover/bb_private_kernel_prover.js';
|
|
8
|
+
export declare abstract class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
|
|
9
|
+
protected artifactProvider: ArtifactProvider;
|
|
10
|
+
protected simulationProvider: SimulationProvider;
|
|
11
|
+
private threads;
|
|
12
|
+
protected log: import("@aztec/foundation/log").Logger;
|
|
13
|
+
constructor(artifactProvider: ArtifactProvider, simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
|
|
14
|
+
createClientIvcProof(acirs: Buffer[], witnessStack: WitnessMap[]): Promise<ClientIvcProof>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=bb_wasm_private_kernel_prover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_wasm_private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/wasm/bb_wasm_private_kernel_prover.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,8BAAsB,yBAA0B,SAAQ,qBAAqB;cAEtD,gBAAgB,EAAE,gBAAgB;cAClC,kBAAkB,EAAE,kBAAkB;IACzD,OAAO,CAAC,OAAO;cACI,GAAG;gBAHH,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACjD,OAAO,GAAE,MAAU,EACR,GAAG,yCAAiC;IAKnC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAkBjH"}
|
|
@@ -6,27 +6,26 @@ import { serializeWitness } from '@noir-lang/noirc_abi';
|
|
|
6
6
|
import { ungzip } from 'pako';
|
|
7
7
|
import { BBPrivateKernelProver } from '../prover/bb_private_kernel_prover.js';
|
|
8
8
|
export class BBWASMPrivateKernelProver extends BBPrivateKernelProver {
|
|
9
|
-
artifactProvider
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
constructor(artifactProvider, simulationProvider, threads = 1, log = createLogger('bb-prover:wasm')) {
|
|
10
|
+
super(artifactProvider, simulationProvider, log);
|
|
11
|
+
this.artifactProvider = artifactProvider;
|
|
12
|
+
this.simulationProvider = simulationProvider;
|
|
13
|
+
this.threads = threads;
|
|
14
|
+
this.log = log;
|
|
15
15
|
}
|
|
16
16
|
async createClientIvcProof(acirs, witnessStack) {
|
|
17
17
|
const timer = new Timer();
|
|
18
18
|
this.log.info(`Generating ClientIVC proof...`);
|
|
19
|
-
const backend = new AztecClientBackend(acirs.map(
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
const [proof, vk] = await backend.prove(witnessStack.map((witnessMap)=>ungzip(serializeWitness(witnessMap))));
|
|
19
|
+
const backend = new AztecClientBackend(acirs.map(acir => ungzip(acir)), { threads: this.threads });
|
|
20
|
+
const [proof, vk] = await backend.prove(witnessStack.map(witnessMap => ungzip(serializeWitness(witnessMap))));
|
|
23
21
|
await backend.destroy();
|
|
24
22
|
this.log.info(`Generated ClientIVC proof`, {
|
|
25
23
|
eventName: 'client-ivc-proof-generation',
|
|
26
24
|
duration: timer.ms(),
|
|
27
25
|
proofSize: proof.length,
|
|
28
|
-
vkSize: vk.length
|
|
26
|
+
vkSize: vk.length,
|
|
29
27
|
});
|
|
30
28
|
return new ClientIvcProof(Buffer.from(proof), Buffer.from(vk));
|
|
31
29
|
}
|
|
32
30
|
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfd2FzbV9wcml2YXRlX2tlcm5lbF9wcm92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9iYl93YXNtX3ByaXZhdGVfa2VybmVsX3Byb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RSxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLHFCQUFxQjtJQUMzRSxZQUNxQixnQkFBa0MsRUFDbEMsa0JBQXNDLEVBQ2pELFVBQWtCLENBQUMsRUFDUixNQUFNLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztRQUV2RCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFMOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2pELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDUixRQUFHLEdBQUgsR0FBRyxDQUFpQztJQUd6RCxDQUFDO0lBRWUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEtBQWUsRUFBRSxZQUEwQjtRQUNwRixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMvQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQzFCLENBQUM7UUFFRixNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ3pDLFNBQVMsRUFBRSw2QkFBNkI7WUFDeEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3ZCLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTTtTQUNsQixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SimulationProvider } from '@aztec/simulator/client';
|
|
2
|
+
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
3
|
+
export declare class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
4
|
+
constructor(simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/wasm/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,+BAAgC,SAAQ,yBAAyB;gBAChE,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,SAAI,EAAE,GAAG,yCAAwC;CAG7G"}
|
package/dest/wasm/bundle.js
CHANGED
|
@@ -2,7 +2,8 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
2
2
|
import { BundleArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/bundle';
|
|
3
3
|
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
4
4
|
export class BBWASMBundlePrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
5
|
-
constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:bundle')){
|
|
5
|
+
constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:bundle')) {
|
|
6
6
|
super(new BundleArtifactProvider(), simulationProvider, threads, log);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhc20vYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUczRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRSxNQUFNLE9BQU8sK0JBQWdDLFNBQVEseUJBQXlCO0lBQzVFLFlBQVksa0JBQXNDLEVBQUUsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixDQUFDO1FBQzFHLEtBQUssQ0FBQyxJQUFJLHNCQUFzQixFQUFFLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SimulationProvider } from '@aztec/simulator/client';
|
|
2
|
+
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
3
|
+
export declare class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
4
|
+
constructor(simulationProvider: SimulationProvider, threads?: number, log?: import("@aztec/foundation/log").Logger);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/wasm/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,qBAAa,6BAA8B,SAAQ,yBAAyB;gBAC9D,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,SAAI,EAAE,GAAG,yCAAsC;CAG3G"}
|
package/dest/wasm/lazy.js
CHANGED
|
@@ -2,7 +2,8 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
2
2
|
import { LazyArtifactProvider } from '@aztec/noir-protocol-circuits-types/client/lazy';
|
|
3
3
|
import { BBWASMPrivateKernelProver } from './bb_wasm_private_kernel_prover.js';
|
|
4
4
|
export class BBWASMLazyPrivateKernelProver extends BBWASMPrivateKernelProver {
|
|
5
|
-
constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:lazy')){
|
|
5
|
+
constructor(simulationProvider, threads = 1, log = createLogger('bb-prover:wasm:lazy')) {
|
|
6
6
|
super(new LazyArtifactProvider(), simulationProvider, threads, log);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YXNtL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBR3ZGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRS9FLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx5QkFBeUI7SUFDMUUsWUFBWSxrQkFBc0MsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUM7UUFDeEcsS0FBSyxDQUFDLElBQUksb0JBQW9CLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb-prover",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.76.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
32
32
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
33
33
|
"bb": "node --no-warnings ./dest/bb/index.js",
|
|
34
|
-
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
34
|
+
"test": "HARDWARE_CONCURRENCY=${HARDWARE_CONCURRENCY:-16} RAYON_NUM_THREADS=${RAYON_NUM_THREADS:-4} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
35
35
|
},
|
|
36
36
|
"jest": {
|
|
37
37
|
"moduleNameMapper": {
|
|
@@ -67,14 +67,14 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/bb.js": "0.
|
|
71
|
-
"@aztec/circuit-types": "0.
|
|
72
|
-
"@aztec/circuits.js": "0.
|
|
73
|
-
"@aztec/foundation": "0.
|
|
74
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
75
|
-
"@aztec/simulator": "0.
|
|
76
|
-
"@aztec/telemetry-client": "0.
|
|
77
|
-
"@aztec/world-state": "0.
|
|
70
|
+
"@aztec/bb.js": "0.76.0",
|
|
71
|
+
"@aztec/circuit-types": "0.76.0",
|
|
72
|
+
"@aztec/circuits.js": "0.76.0",
|
|
73
|
+
"@aztec/foundation": "0.76.0",
|
|
74
|
+
"@aztec/noir-protocol-circuits-types": "0.76.0",
|
|
75
|
+
"@aztec/simulator": "0.76.0",
|
|
76
|
+
"@aztec/telemetry-client": "0.76.0",
|
|
77
|
+
"@aztec/world-state": "0.76.0",
|
|
78
78
|
"@msgpack/msgpack": "^3.0.0-beta2",
|
|
79
79
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
80
80
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type MerkleTreeWriteOperations } from '@aztec/circuit-types';
|
|
2
2
|
import { type AvmCircuitInputs, AztecAddress, VerificationKeyData } from '@aztec/circuits.js';
|
|
3
3
|
import { PublicTxSimulationTester, type TestEnqueuedCall } from '@aztec/simulator/public/fixtures';
|
|
4
|
+
import { WorldStateDB } from '@aztec/simulator/server';
|
|
4
5
|
import { NativeWorldStateService } from '@aztec/world-state';
|
|
5
6
|
|
|
6
7
|
import fs from 'node:fs/promises';
|
|
@@ -25,11 +26,12 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
25
26
|
constructor(
|
|
26
27
|
private bbWorkingDirectory: string,
|
|
27
28
|
private checkCircuitOnly: boolean,
|
|
29
|
+
worldStateDB: WorldStateDB,
|
|
28
30
|
contractDataSource: SimpleContractDataSource,
|
|
29
31
|
merkleTrees: MerkleTreeWriteOperations,
|
|
30
32
|
skipContractDeployments: boolean,
|
|
31
33
|
) {
|
|
32
|
-
super(contractDataSource, merkleTrees, skipContractDeployments);
|
|
34
|
+
super(worldStateDB, contractDataSource, merkleTrees, skipContractDeployments);
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
static override async create(checkCircuitOnly: boolean = false, skipContractDeployments: boolean = false) {
|
|
@@ -37,9 +39,11 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
37
39
|
|
|
38
40
|
const contractDataSource = new SimpleContractDataSource();
|
|
39
41
|
const merkleTrees = await (await NativeWorldStateService.tmp()).fork();
|
|
42
|
+
const worldStateDB = new WorldStateDB(merkleTrees, contractDataSource);
|
|
40
43
|
return new AvmProvingTester(
|
|
41
44
|
bbWorkingDirectory,
|
|
42
45
|
checkCircuitOnly,
|
|
46
|
+
worldStateDB,
|
|
43
47
|
contractDataSource,
|
|
44
48
|
merkleTrees,
|
|
45
49
|
skipContractDeployments,
|
|
@@ -110,11 +114,12 @@ export class AvmProvingTester extends PublicTxSimulationTester {
|
|
|
110
114
|
export class AvmProvingTesterV2 extends PublicTxSimulationTester {
|
|
111
115
|
constructor(
|
|
112
116
|
private bbWorkingDirectory: string,
|
|
117
|
+
worldStateDB: WorldStateDB,
|
|
113
118
|
contractDataSource: SimpleContractDataSource,
|
|
114
119
|
merkleTrees: MerkleTreeWriteOperations,
|
|
115
120
|
skipContractDeployments: boolean,
|
|
116
121
|
) {
|
|
117
|
-
super(contractDataSource, merkleTrees, skipContractDeployments);
|
|
122
|
+
super(worldStateDB, contractDataSource, merkleTrees, skipContractDeployments);
|
|
118
123
|
}
|
|
119
124
|
|
|
120
125
|
static override async create(skipContractDeployments: boolean = false) {
|
|
@@ -122,7 +127,14 @@ export class AvmProvingTesterV2 extends PublicTxSimulationTester {
|
|
|
122
127
|
|
|
123
128
|
const contractDataSource = new SimpleContractDataSource();
|
|
124
129
|
const merkleTrees = await (await NativeWorldStateService.tmp()).fork();
|
|
125
|
-
|
|
130
|
+
const worldStateDB = new WorldStateDB(merkleTrees, contractDataSource);
|
|
131
|
+
return new AvmProvingTesterV2(
|
|
132
|
+
bbWorkingDirectory,
|
|
133
|
+
worldStateDB,
|
|
134
|
+
contractDataSource,
|
|
135
|
+
merkleTrees,
|
|
136
|
+
skipContractDeployments,
|
|
137
|
+
);
|
|
126
138
|
}
|
|
127
139
|
|
|
128
140
|
async proveV2(avmCircuitInputs: AvmCircuitInputs): Promise<BBResult> {
|