import type { 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 { AvmCircuitInputs } from '../avm/avm.js'; import type { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js'; import type { ParityPublicInputs } from '../parity/parity_public_inputs.js'; import type { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js'; import type { RecursiveProof } from '../proofs/recursive_proof.js'; import type { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js'; import type { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js'; import type { BlockRootEmptyTxFirstRollupPrivateInputs, BlockRootFirstRollupPrivateInputs, BlockRootRollupPrivateInputs, BlockRootSingleTxFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js'; import type { CheckpointMergeRollupPrivateInputs } from '../rollup/checkpoint_merge_rollup_private_inputs.js'; import type { CheckpointRollupPublicInputs } from '../rollup/checkpoint_rollup_public_inputs.js'; import type { CheckpointPaddingRollupPrivateInputs, CheckpointRootRollupPrivateInputs, CheckpointRootSingleBlockRollupPrivateInputs } from '../rollup/checkpoint_root_rollup_private_inputs.js'; import type { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js'; import type { PublicChonkVerifierPrivateInputs } from '../rollup/public_chonk_verifier_private_inputs.js'; import type { PublicChonkVerifierPublicInputs } from '../rollup/public_chonk_verifier_public_inputs.js'; import type { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js'; import type { RootRollupPrivateInputs } from '../rollup/root_rollup_private_inputs.js'; import type { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js'; import type { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js'; import type { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js'; import type { Tx } from '../tx/tx.js'; import type { PublicInputsAndRecursiveProof } from './proving-job.js'; /** * Generates proofs for parity and rollup circuits. */ export interface ServerCircuitProver { /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getBaseParityProof(inputs: ParityBasePrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getRootParityProof(inputs: ParityRootPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getPublicChonkVerifierProof(inputs: PublicChonkVerifierPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getPrivateTxBaseRollupProof(baseRollupInput: PrivateTxBaseRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getPublicTxBaseRollupProof(inputs: PublicTxBaseRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getTxMergeRollupProof(input: TxMergeRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getBlockRootFirstRollupProof(input: BlockRootFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getBlockRootSingleTxFirstRollupProof(input: BlockRootSingleTxFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getBlockRootEmptyTxFirstRollupProof(input: BlockRootEmptyTxFirstRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getBlockRootRollupProof(input: BlockRootRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getBlockRootSingleTxRollupProof(input: BlockRootSingleTxRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getBlockMergeRollupProof(input: BlockMergeRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getCheckpointRootRollupProof(input: CheckpointRootRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getCheckpointRootSingleBlockRollupProof(input: CheckpointRootSingleBlockRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getCheckpointPaddingRollupProof(input: CheckpointPaddingRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; getCheckpointMergeRollupProof(input: CheckpointMergeRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Creates a proof for the given input. * @param input - Input to the circuit. */ getRootRollupProof(input: RootRollupPrivateInputs, signal?: AbortSignal, epochNumber?: number): Promise>; /** * Create a proof for the AVM circuit. * @param inputs - Inputs to the AVM circuit. */ getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise>; } export type IVCProofVerificationResult = { valid: boolean; durationMs: number; totalDurationMs: number; }; /** * A verifier used by nodes to check tx proofs are valid. */ export interface ClientProtocolCircuitVerifier { /** * Verifies the private protocol circuit's proof. * @param tx - The tx to verify the proof of * @returns True if the proof is valid, false otherwise */ verifyProof(tx: Tx): Promise; /** * Stop the verifier. */ stop(): Promise; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX2NpcmN1aXRfcHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9zZXJ2ZXJfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1Ysb0NBQW9DLEVBQ3BDLDZCQUE2QixFQUM3Qix5Q0FBeUMsRUFDekMsc0JBQXNCLEVBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRyxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUNWLHdDQUF3QyxFQUN4QyxpQ0FBaUMsRUFDakMsNEJBQTRCLEVBQzVCLHlDQUF5QyxFQUN6QyxvQ0FBb0MsRUFDckMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzlHLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakcsT0FBTyxLQUFLLEVBQ1Ysb0NBQW9DLEVBQ3BDLGlDQUFpQyxFQUNqQyw0Q0FBNEMsRUFDN0MsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRSxNQUFN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