import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types'; import type { Checkpoint } from './checkpoint.js'; export declare class CheckpointValidationError extends Error { readonly checkpointNumber: CheckpointNumber; readonly slot: SlotNumber; constructor(message: string, checkpointNumber: CheckpointNumber, slot: SlotNumber); } /** * Validates a checkpoint. Throws a CheckpointValidationError if any validation fails. * - Validates structural integrity (non-empty, block count, sequential numbers, archive chaining, slot consistency) * - Validates checkpoint blob field count against maxBlobFields limit * - Validates total L2 gas used by checkpoint blocks against the Rollup contract mana limit * - Validates total DA gas used by checkpoint blocks against MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT * - Validates individual block L2 gas and DA gas against maxL2BlockGas and maxDABlockGas limits */ export declare function validateCheckpoint(checkpoint: Checkpoint, opts: { rollupManaLimit?: number; maxL2BlockGas?: number; maxDABlockGas?: number; maxTxsPerCheckpoint?: number; maxTxsPerBlock?: number; }): void; /** * Validates structural integrity of a checkpoint. * - Non-empty block list * - Block count within MAX_BLOCKS_PER_CHECKPOINT * - Checkpoint slot matches the first block's slot * - Checkpoint lastArchiveRoot matches the first block's lastArchive root * - Sequential block numbers without gaps * - Sequential indexWithinCheckpoint starting at 0 * - Archive root chaining between consecutive blocks * - Consistent slot number across all blocks * - Global variables (slot, timestamp, coinbase, feeRecipient, gasFees) match checkpoint header for each block */ export declare function validateCheckpointStructure(checkpoint: Checkpoint): void; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSXBGLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELHFCQUFhLHlCQUEwQixTQUFRLEtBQUs7YUFHaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2FBQ2xDLElBQUksRUFBRSxVQUFVO0lBSGxDLFlBQ0UsT0FBTyxFQUFFLE1BQU0sRUFDQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsSUFBSSxFQUFFLFVBQVUsRUFJakM7Q0FDRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQ2hDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLElBQUksRUFBRTtJQUNKLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QixHQUNBLElBQUksQ0FJTjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsSUFBSSxDQXVFeEUifQ==