@aztec/bb-prover 0.0.0-test.1 → 0.0.1-commit.017a351
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 +21 -20
- package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
- package/dest/avm_proving_tests/avm_proving_tester.js +196 -87
- package/dest/bb/bb_js_backend.d.ts +196 -0
- package/dest/bb/bb_js_backend.d.ts.map +1 -0
- package/dest/bb/bb_js_backend.js +379 -0
- package/dest/bb/bb_js_debug.d.ts +52 -0
- package/dest/bb/bb_js_debug.d.ts.map +1 -0
- package/dest/bb/bb_js_debug.js +176 -0
- package/dest/bb/cli.d.ts +1 -1
- package/dest/bb/file_names.d.ts +4 -0
- package/dest/bb/file_names.d.ts.map +1 -0
- package/dest/bb/file_names.js +5 -0
- package/dest/bb/index.d.ts +1 -1
- package/dest/config.d.ts +19 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/honk.d.ts +3 -3
- package/dest/honk.d.ts.map +1 -1
- package/dest/honk.js +3 -2
- package/dest/index.d.ts +4 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -1
- package/dest/instrumentation.d.ts +3 -3
- package/dest/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation.js +22 -46
- package/dest/prover/client/bb_private_kernel_prover.d.ts +46 -0
- package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -0
- package/dest/prover/client/bb_private_kernel_prover.js +177 -0
- package/dest/prover/client/bundle.d.ts +6 -0
- package/dest/prover/client/bundle.d.ts.map +1 -0
- package/dest/prover/client/bundle.js +7 -0
- package/dest/prover/client/lazy.d.ts +6 -0
- package/dest/prover/client/lazy.d.ts.map +1 -0
- package/dest/prover/client/lazy.js +7 -0
- package/dest/prover/index.d.ts +3 -4
- package/dest/prover/index.d.ts.map +1 -1
- package/dest/prover/index.js +2 -3
- package/dest/prover/proof_utils.d.ts +29 -0
- package/dest/prover/proof_utils.d.ts.map +1 -0
- package/dest/prover/proof_utils.js +95 -0
- package/dest/prover/server/bb_prover.d.ts +96 -0
- package/dest/prover/server/bb_prover.d.ts.map +1 -0
- package/dest/prover/server/bb_prover.js +841 -0
- package/dest/test/delay_values.d.ts +1 -1
- package/dest/test/delay_values.d.ts.map +1 -1
- package/dest/test/delay_values.js +37 -23
- package/dest/test/index.d.ts +2 -1
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +1 -0
- package/dest/test/test_circuit_prover.d.ts +27 -36
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +517 -88
- package/dest/test/test_verifier.d.ts +6 -3
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +23 -1
- package/dest/verification_key/verification_key_data.d.ts +1 -2
- package/dest/verification_key/verification_key_data.d.ts.map +1 -1
- package/dest/verification_key/verification_key_data.js +9 -34
- package/dest/verifier/batch_chonk_verifier.d.ts +56 -0
- package/dest/verifier/batch_chonk_verifier.d.ts.map +1 -0
- package/dest/verifier/batch_chonk_verifier.js +384 -0
- package/dest/verifier/bb_verifier.d.ts +9 -5
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +156 -49
- package/dest/verifier/index.d.ts +3 -1
- package/dest/verifier/index.d.ts.map +1 -1
- package/dest/verifier/index.js +2 -0
- package/dest/verifier/queued_chonk_verifier.d.ts +14 -0
- package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -0
- package/dest/verifier/queued_chonk_verifier.js +102 -0
- package/package.json +38 -34
- package/src/avm_proving_tests/avm_proving_tester.ts +163 -126
- package/src/bb/bb_js_backend.ts +435 -0
- package/src/bb/bb_js_debug.ts +227 -0
- package/src/bb/file_names.ts +6 -0
- package/src/config.ts +18 -0
- package/src/honk.ts +3 -2
- package/src/index.ts +3 -1
- package/src/instrumentation.ts +22 -47
- package/src/prover/client/bb_private_kernel_prover.ts +423 -0
- package/src/prover/client/bundle.ts +10 -0
- package/src/prover/client/lazy.ts +10 -0
- package/src/prover/index.ts +2 -3
- package/src/prover/proof_utils.ts +155 -0
- package/src/prover/server/bb_prover.ts +713 -0
- package/src/test/delay_values.ts +38 -22
- package/src/test/index.ts +1 -0
- package/src/test/test_circuit_prover.ts +264 -154
- package/src/test/test_verifier.ts +15 -3
- package/src/verification_key/verification_key_data.ts +11 -31
- package/src/verifier/batch_chonk_verifier.ts +415 -0
- package/src/verifier/bb_verifier.ts +93 -76
- package/src/verifier/index.ts +2 -0
- package/src/verifier/queued_chonk_verifier.ts +108 -0
- package/dest/bb/execute.d.ts +0 -140
- package/dest/bb/execute.d.ts.map +0 -1
- package/dest/bb/execute.js +0 -780
- package/dest/prover/bb_native_private_kernel_prover.d.ts +0 -25
- package/dest/prover/bb_native_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_native_private_kernel_prover.js +0 -69
- package/dest/prover/bb_private_kernel_prover.d.ts +0 -32
- package/dest/prover/bb_private_kernel_prover.d.ts.map +0 -1
- package/dest/prover/bb_private_kernel_prover.js +0 -109
- package/dest/prover/bb_prover.d.ts +0 -120
- package/dest/prover/bb_prover.d.ts.map +0 -1
- package/dest/prover/bb_prover.js +0 -423
- package/dest/prover/client_ivc_proof_utils.d.ts +0 -25
- package/dest/prover/client_ivc_proof_utils.d.ts.map +0 -1
- package/dest/prover/client_ivc_proof_utils.js +0 -43
- package/dest/stats.d.ts +0 -5
- package/dest/stats.d.ts.map +0 -1
- package/dest/stats.js +0 -62
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts +0 -17
- package/dest/wasm/bb_wasm_private_kernel_prover.d.ts.map +0 -1
- package/dest/wasm/bb_wasm_private_kernel_prover.js +0 -46
- package/dest/wasm/bundle.d.ts +0 -6
- package/dest/wasm/bundle.d.ts.map +0 -1
- package/dest/wasm/bundle.js +0 -8
- package/dest/wasm/lazy.d.ts +0 -6
- package/dest/wasm/lazy.d.ts.map +0 -1
- package/dest/wasm/lazy.js +0 -8
- package/src/bb/execute.ts +0 -853
- package/src/prover/bb_native_private_kernel_prover.ts +0 -119
- package/src/prover/bb_private_kernel_prover.ts +0 -249
- package/src/prover/bb_prover.ts +0 -781
- package/src/prover/client_ivc_proof_utils.ts +0 -42
- package/src/stats.ts +0 -64
- package/src/wasm/bb_wasm_private_kernel_prover.ts +0 -55
- package/src/wasm/bundle.ts +0 -11
- package/src/wasm/lazy.ts +0 -11
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { CHONK_PROOF_LENGTH, HIDING_KERNEL_IO_PUBLIC_INPUTS_SIZE, IPA_CLAIM_SIZE, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, PAIRING_POINTS_SIZE, ULTRA_KECCAK_PROOF_LENGTH } from '@aztec/constants';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { ChonkProofWithPublicInputs, Proof, RecursiveProof } from '@aztec/stdlib/proofs';
|
|
4
|
+
import assert from 'assert';
|
|
5
|
+
import { promises as fs } from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { PROOF_FILENAME, PUBLIC_INPUTS_FILENAME } from '../bb/file_names.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create a ChonkProof proof file.
|
|
10
|
+
*
|
|
11
|
+
* @param directory the directory to read the proof from.
|
|
12
|
+
* @returns the encapsulated chonk proof
|
|
13
|
+
*/ export async function readChonkProofFromOutputDirectory(directory) {
|
|
14
|
+
const proofFilename = path.join(directory, PROOF_FILENAME);
|
|
15
|
+
const binaryProof = await fs.readFile(proofFilename);
|
|
16
|
+
const proofFields = splitBufferIntoFields(binaryProof);
|
|
17
|
+
return new ChonkProofWithPublicInputs(proofFields);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Serialize a ChonkProof to a proof file.
|
|
21
|
+
*
|
|
22
|
+
* @param proof the ChonkProof from object
|
|
23
|
+
* @param directory the directory to write in
|
|
24
|
+
*/ export async function writeChonkProofToPath(chonkProof, outputPath) {
|
|
25
|
+
// NB: Don't use chonkProof.toBuffer here because it will include the proof length.
|
|
26
|
+
const fieldsBuf = Buffer.concat(chonkProof.fieldsWithPublicInputs.map((field)=>field.toBuffer()));
|
|
27
|
+
await fs.writeFile(outputPath, fieldsBuf);
|
|
28
|
+
}
|
|
29
|
+
function getNumCustomPublicInputs(proofLength, vkData) {
|
|
30
|
+
let numPublicInputs = vkData.numPublicInputs;
|
|
31
|
+
if (proofLength == CHONK_PROOF_LENGTH) {
|
|
32
|
+
numPublicInputs -= HIDING_KERNEL_IO_PUBLIC_INPUTS_SIZE;
|
|
33
|
+
} else {
|
|
34
|
+
numPublicInputs -= PAIRING_POINTS_SIZE;
|
|
35
|
+
if (proofLength == NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH) {
|
|
36
|
+
numPublicInputs -= IPA_CLAIM_SIZE;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return numPublicInputs;
|
|
40
|
+
}
|
|
41
|
+
function splitBufferIntoFields(buffer) {
|
|
42
|
+
const fields = [];
|
|
43
|
+
for(let i = 0; i < buffer.length / Fr.SIZE_IN_BYTES; i++){
|
|
44
|
+
fields.push(Fr.fromBuffer(buffer.subarray(i * Fr.SIZE_IN_BYTES, (i + 1) * Fr.SIZE_IN_BYTES)));
|
|
45
|
+
}
|
|
46
|
+
return fields;
|
|
47
|
+
}
|
|
48
|
+
export async function readProofsFromOutputDirectory(directory, vkData, proofLength, logger) {
|
|
49
|
+
assert(proofLength == CHONK_PROOF_LENGTH || proofLength == NESTED_RECURSIVE_PROOF_LENGTH || proofLength == NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH || proofLength == ULTRA_KECCAK_PROOF_LENGTH, `Proof length must be one of the expected proof lengths, received ${proofLength}`);
|
|
50
|
+
const publicInputsFilename = path.join(directory, PUBLIC_INPUTS_FILENAME);
|
|
51
|
+
const proofFilename = path.join(directory, PROOF_FILENAME);
|
|
52
|
+
// Handle CHONK separately because bb outputs the proof fields with public inputs for CHONK.
|
|
53
|
+
const isChonk = proofLength == CHONK_PROOF_LENGTH;
|
|
54
|
+
const [binaryPublicInputs, binaryProof] = await Promise.all([
|
|
55
|
+
isChonk ? Buffer.alloc(0) : fs.readFile(publicInputsFilename),
|
|
56
|
+
fs.readFile(proofFilename)
|
|
57
|
+
]);
|
|
58
|
+
const numPublicInputs = getNumCustomPublicInputs(proofLength, vkData);
|
|
59
|
+
let fieldsWithoutPublicInputs = splitBufferIntoFields(binaryProof);
|
|
60
|
+
if (isChonk) {
|
|
61
|
+
fieldsWithoutPublicInputs = fieldsWithoutPublicInputs.slice(numPublicInputs);
|
|
62
|
+
}
|
|
63
|
+
assert(fieldsWithoutPublicInputs.length == proofLength, `Proof fields length mismatch: ${fieldsWithoutPublicInputs.length} != ${proofLength}`);
|
|
64
|
+
// Concat binary public inputs and binary proof
|
|
65
|
+
// This buffer will have the form: [binary public inputs, binary proof]
|
|
66
|
+
const binaryProofWithPublicInputs = Buffer.concat([
|
|
67
|
+
binaryPublicInputs,
|
|
68
|
+
binaryProof
|
|
69
|
+
]);
|
|
70
|
+
logger.debug(`Circuit path: ${directory}, proof fields length: ${fieldsWithoutPublicInputs.length}, num public inputs: ${numPublicInputs}, circuit size: ${vkData.circuitSize}`);
|
|
71
|
+
return new RecursiveProof(fieldsWithoutPublicInputs, new Proof(binaryProofWithPublicInputs, numPublicInputs), true, proofLength);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Construct a RecursiveProof from in-memory proof and public input field arrays
|
|
75
|
+
* returned by the bb.js circuitProve API, without reading from files.
|
|
76
|
+
*
|
|
77
|
+
* @param proofFields - Proof fields as 32-byte Uint8Arrays from circuitProve.
|
|
78
|
+
* @param publicInputFields - Public input fields as 32-byte Uint8Arrays from circuitProve.
|
|
79
|
+
* @param vkData - Verification key data for the circuit.
|
|
80
|
+
* @param proofLength - Expected proof field count.
|
|
81
|
+
*/ export function constructRecursiveProofFromBuffers(proofFields, publicInputFields, vkData, proofLength) {
|
|
82
|
+
assert(proofLength == NESTED_RECURSIVE_PROOF_LENGTH || proofLength == NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH || proofLength == ULTRA_KECCAK_PROOF_LENGTH, `Proof length must be one of the expected proof lengths, received ${proofLength}`);
|
|
83
|
+
// Convert Uint8Array fields to Fr instances
|
|
84
|
+
const proofFieldsFr = proofFields.map((f)=>Fr.fromBuffer(Buffer.from(f)));
|
|
85
|
+
assert(proofFieldsFr.length == proofLength, `Proof fields length mismatch: ${proofFieldsFr.length} != ${proofLength}`);
|
|
86
|
+
// Reconstruct the binary proof with public inputs prepended (same format as file-based path)
|
|
87
|
+
const binaryPublicInputs = Buffer.concat(publicInputFields.map((f)=>Buffer.from(f)));
|
|
88
|
+
const binaryProof = Buffer.concat(proofFields.map((f)=>Buffer.from(f)));
|
|
89
|
+
const binaryProofWithPublicInputs = Buffer.concat([
|
|
90
|
+
binaryPublicInputs,
|
|
91
|
+
binaryProof
|
|
92
|
+
]);
|
|
93
|
+
const numPublicInputs = getNumCustomPublicInputs(proofLength, vkData);
|
|
94
|
+
return new RecursiveProof(proofFieldsFr, new Proof(binaryProofWithPublicInputs, numPublicInputs), true, proofLength);
|
|
95
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
|
|
2
|
+
import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server';
|
|
3
|
+
import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm';
|
|
4
|
+
import { type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity';
|
|
6
|
+
import { Proof, RecursiveProof } from '@aztec/stdlib/proofs';
|
|
7
|
+
import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs, CheckpointMergeRollupPrivateInputs, CheckpointPaddingRollupPrivateInputs, CheckpointRollupPublicInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs, type PrivateTxBaseRollupPrivateInputs, PublicChonkVerifierPrivateInputs, PublicChonkVerifierPublicInputs, PublicTxBaseRollupPrivateInputs, type RootRollupPrivateInputs, type RootRollupPublicInputs, type TxMergeRollupPrivateInputs, type TxRollupPublicInputs } from '@aztec/stdlib/rollup';
|
|
8
|
+
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
9
|
+
import type { ACVMConfig, BBConfig } from '../../config.js';
|
|
10
|
+
export interface BBProverConfig extends BBConfig, ACVMConfig {
|
|
11
|
+
circuitFilter?: ServerProtocolArtifact[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Prover implementation that uses barretenberg native proving
|
|
15
|
+
*/
|
|
16
|
+
export declare class BBNativeRollupProver implements ServerCircuitProver {
|
|
17
|
+
private config;
|
|
18
|
+
private instrumentation;
|
|
19
|
+
private bbJsFactory;
|
|
20
|
+
constructor(config: BBProverConfig, telemetry: TelemetryClient);
|
|
21
|
+
get tracer(): import("@aztec/telemetry-client").Tracer;
|
|
22
|
+
static new(config: BBProverConfig, telemetry?: TelemetryClient): Promise<BBNativeRollupProver>;
|
|
23
|
+
/**
|
|
24
|
+
* Simulates the base parity circuit from its inputs.
|
|
25
|
+
* @param inputs - Inputs to the circuit.
|
|
26
|
+
* @returns The public inputs of the parity circuit.
|
|
27
|
+
*/
|
|
28
|
+
getBaseParityProof(inputs: ParityBasePrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
|
|
29
|
+
/**
|
|
30
|
+
* Simulates the root parity circuit from its inputs.
|
|
31
|
+
* @param inputs - Inputs to the circuit.
|
|
32
|
+
* @returns The public inputs of the parity circuit.
|
|
33
|
+
*/
|
|
34
|
+
getRootParityProof(inputs: ParityRootPrivateInputs): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
35
|
+
/**
|
|
36
|
+
* Creates an AVM proof and verifies it.
|
|
37
|
+
* @param inputs - The inputs to the AVM circuit.
|
|
38
|
+
* @returns The proof.
|
|
39
|
+
*/
|
|
40
|
+
getAvmProof(inputs: AvmCircuitInputs): Promise<RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
|
|
41
|
+
getPublicChonkVerifierProof(inputs: PublicChonkVerifierPrivateInputs): Promise<PublicInputsAndRecursiveProof<PublicChonkVerifierPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
42
|
+
/**
|
|
43
|
+
* Simulates the base rollup circuit from its inputs.
|
|
44
|
+
* @param inputs - Inputs to the circuit.
|
|
45
|
+
* @returns The public inputs as outputs of the simulation.
|
|
46
|
+
*/
|
|
47
|
+
getPrivateTxBaseRollupProof(inputs: PrivateTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
48
|
+
/**
|
|
49
|
+
* Requests that the public kernel tail circuit be executed and the proof generated
|
|
50
|
+
* @param kernelRequest - The object encapsulating the request for a proof
|
|
51
|
+
* @returns The requested circuit's public inputs and proof
|
|
52
|
+
*/
|
|
53
|
+
getPublicTxBaseRollupProof(inputs: PublicTxBaseRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
54
|
+
/**
|
|
55
|
+
* Simulates the merge rollup circuit from its inputs.
|
|
56
|
+
* @param input - Inputs to the circuit.
|
|
57
|
+
* @returns The public inputs as outputs of the simulation.
|
|
58
|
+
*/
|
|
59
|
+
getTxMergeRollupProof(input: TxMergeRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<TxRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
60
|
+
getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
61
|
+
getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
62
|
+
getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
63
|
+
getBlockRootRollupProof(input: BlockRootRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
64
|
+
getBlockRootSingleTxRollupProof(input: BlockRootSingleTxRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
65
|
+
getBlockMergeRollupProof(input: BlockMergeRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<BlockRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
66
|
+
getCheckpointRootRollupProof(input: CheckpointRootRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
67
|
+
getCheckpointRootSingleBlockRollupProof(input: CheckpointRootSingleBlockRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
68
|
+
getCheckpointPaddingRollupProof(input: CheckpointPaddingRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
69
|
+
getCheckpointMergeRollupProof(input: CheckpointMergeRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<CheckpointRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
|
|
70
|
+
/**
|
|
71
|
+
* Simulates the root rollup circuit from its inputs.
|
|
72
|
+
* @param input - Inputs to the circuit.
|
|
73
|
+
* @returns The public inputs as outputs of the simulation.
|
|
74
|
+
*/
|
|
75
|
+
getRootRollupProof(input: RootRollupPrivateInputs): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
|
|
76
|
+
private createRecursiveProofAndVerify;
|
|
77
|
+
private generateProofWithBB;
|
|
78
|
+
private createAvmProof;
|
|
79
|
+
private createRecursiveProof;
|
|
80
|
+
/**
|
|
81
|
+
* Verifies a proof via bb.js API (no temp files needed).
|
|
82
|
+
* @param circuitType - The type of circuit whose proof is to be verified
|
|
83
|
+
* @param proof - The proof to be verified
|
|
84
|
+
*/
|
|
85
|
+
verifyProof(circuitType: ServerProtocolArtifact, proof: Proof): Promise<void>;
|
|
86
|
+
/** Verify an AVM proof via bb.js API. */
|
|
87
|
+
verifyAvmProof(proof: Proof, publicInputs: AvmCircuitPublicInputs): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Returns the verification key data for a circuit.
|
|
90
|
+
* @param circuitType - The type of circuit for which the verification key is required
|
|
91
|
+
* @returns The verification key data
|
|
92
|
+
*/
|
|
93
|
+
private getVerificationKeyDataForCircuit;
|
|
94
|
+
private runInDirectory;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmVyL3NlcnZlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyw2QkFBNkIsRUFDN0IseUNBQXlDLEVBRXpDLHNCQUFzQixFQUV2QixNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQW9DNUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUtwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxGLE9BQU8sRUFDTCxLQUFLLDZCQUE2QixFQUNsQyxLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakgsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQWdDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLEtBQUssZ0NBQWdDLEVBQ3JDLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssc0JBQXNCLEVBQzNCLEtBQUssMEJBQTBCLEVBQy9CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFjLEtBQUssZUFBZSxFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBTzFHLE9B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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../../src/prover/server/bb_prover.ts"],"names":[],"mappings":"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"}
|