import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH } from '@aztec/constants'; import { type ServerProtocolArtifact } from '@aztec/noir-protocol-circuits-types/server'; import type { AvmCircuitInputs, AvmCircuitPublicInputs } from '@aztec/stdlib/avm'; import { type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server'; import type { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity'; import { Proof, RecursiveProof } from '@aztec/stdlib/proofs'; 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'; import { type TelemetryClient } from '@aztec/telemetry-client'; import type { ACVMConfig, BBConfig } from '../../config.js'; export interface BBProverConfig extends BBConfig, ACVMConfig { circuitFilter?: ServerProtocolArtifact[]; } /** * Prover implementation that uses barretenberg native proving */ export declare class BBNativeRollupProver implements ServerCircuitProver { private config; private instrumentation; constructor(config: BBProverConfig, telemetry: TelemetryClient); get tracer(): import("@aztec/telemetry-client").Tracer; static new(config: BBProverConfig, telemetry?: TelemetryClient): Promise; /** * Simulates the base parity circuit from its inputs. * @param inputs - Inputs to the circuit. * @returns The public inputs of the parity circuit. */ getBaseParityProof(inputs: ParityBasePrivateInputs): Promise>; /** * Simulates the root parity circuit from its inputs. * @param inputs - Inputs to the circuit. * @returns The public inputs of the parity circuit. */ getRootParityProof(inputs: ParityRootPrivateInputs): Promise>; /** * Creates an AVM proof and verifies it. * @param inputs - The inputs to the AVM circuit. * @returns The proof. */ getAvmProof(inputs: AvmCircuitInputs): Promise>; getPublicChonkVerifierProof(inputs: PublicChonkVerifierPrivateInputs): Promise>; /** * Simulates the base rollup circuit from its inputs. * @param inputs - Inputs to the circuit. * @returns The public inputs as outputs of the simulation. */ getPrivateTxBaseRollupProof(inputs: PrivateTxBaseRollupPrivateInputs): Promise>; /** * Requests that the public kernel tail circuit be executed and the proof generated * @param kernelRequest - The object encapsulating the request for a proof * @returns The requested circuit's public inputs and proof */ getPublicTxBaseRollupProof(inputs: PublicTxBaseRollupPrivateInputs): Promise>; /** * Simulates the merge rollup circuit from its inputs. * @param input - Inputs to the circuit. * @returns The public inputs as outputs of the simulation. */ getTxMergeRollupProof(input: TxMergeRollupPrivateInputs): Promise>; getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs): Promise>; getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs): Promise>; getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs): Promise>; getBlockRootRollupProof(input: BlockRootRollupPrivateInputs): Promise>; getBlockRootSingleTxRollupProof(input: BlockRootSingleTxRollupPrivateInputs): Promise>; getBlockMergeRollupProof(input: BlockMergeRollupPrivateInputs): Promise>; getCheckpointRootRollupProof(input: CheckpointRootRollupPrivateInputs): Promise>; getCheckpointRootSingleBlockRollupProof(input: CheckpointRootSingleBlockRollupPrivateInputs): Promise>; getCheckpointPaddingRollupProof(input: CheckpointPaddingRollupPrivateInputs): Promise>; getCheckpointMergeRollupProof(input: CheckpointMergeRollupPrivateInputs): Promise>; /** * Simulates the root rollup circuit from its inputs. * @param input - Inputs to the circuit. * @returns The public inputs as outputs of the simulation. */ getRootRollupProof(input: RootRollupPrivateInputs): Promise>; private createRecursiveProofAndVerify; private generateProofWithBB; private generateAvmProofWithBB; private createAvmProof; private createRecursiveProof; /** * Verifies a proof, will generate the verification key if one is not cached internally * @param circuitType - The type of circuit whose proof is to be verified * @param proof - The proof to be verified */ verifyProof(circuitType: ServerProtocolArtifact, proof: Proof): Promise; verifyAvmProof(proof: Proof, publicInputs: AvmCircuitPublicInputs): Promise; private verifyInternal; /** * Returns the verification key data for a circuit. * @param circuitType - The type of circuit for which the verification key is required * @returns The verification key data */ private getVerificationKeyDataForCircuit; private readAvmProofAsFields; private runInTempDirectory; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmVyL3NlcnZlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyw2QkFBNkIsRUFDN0IseUNBQXlDLEVBRXpDLHNCQUFzQixFQUV2QixNQUFNLGtCQUFrQixDQUFDO0FBSzFCLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQW9DNUIsTUFBTSw0Q0FBNEMsQ0FBQztBQUtwRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxGLE9BQU8sRUFDTCxLQUFLLDZCQUE2QixFQUNsQyxLQUFLLG1CQUFtQixFQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakgsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQWdDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0YsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxrQ0FBa0MsRUFDbEMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1QixpQ0FBaUMsRUFDakMsNENBQTRDLEVBQzVDLEtBQUssZ0NBQWdDLEVBQ3JDLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssc0JBQXNCLEVBQzNCLEtBQUssMEJBQTBCLEVBQy9CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUFjLEtBQUssZUFBZSxFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBaUIxRyxP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