import { CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types'; import { Fr } from '@aztec/foundation/curves/bn254'; import { BufferReader } from '@aztec/foundation/serialize'; import type { FieldsOf } from '@aztec/foundation/types'; import { z } from 'zod'; import { L2Block } from '../block/l2_block.js'; import { CheckpointHeader } from '../rollup/checkpoint_header.js'; import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js'; import type { CheckpointInfo } from './checkpoint_info.js'; type FieldsOfCheckpoint = Omit, 'slot'>; export declare class Checkpoint { /** Snapshot of archive tree after the checkpoint is added. */ archive: AppendOnlyTreeSnapshot; /** Header of the checkpoint. */ header: CheckpointHeader; /** L2 blocks in the checkpoint. */ blocks: L2Block[]; /** Number of the checkpoint. */ number: CheckpointNumber; /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */ feeAssetPriceModifier: bigint; constructor( /** Snapshot of archive tree after the checkpoint is added. */ archive: AppendOnlyTreeSnapshot, /** Header of the checkpoint. */ header: CheckpointHeader, /** L2 blocks in the checkpoint. */ blocks: L2Block[], /** Number of the checkpoint. */ number: CheckpointNumber, /** Fee asset price modifier in basis points (from oracle). Defaults to 0 (no change). */ feeAssetPriceModifier?: bigint); get slot(): SlotNumber; static get schema(): z.ZodEffects; nextAvailableLeafIndex: z.ZodPipeline, z.ZodNumber>; }, "strip", z.ZodTypeAny, { root: Fr; nextAvailableLeafIndex: number; }, { root: string; nextAvailableLeafIndex: string | number | bigint; }>, AppendOnlyTreeSnapshot, { root: string; nextAvailableLeafIndex: string | number | bigint; }>; header: import("../schemas/schemas.js").ZodFor; blocks: z.ZodArray; nextAvailableLeafIndex: z.ZodPipeline, z.ZodNumber>; }, "strip", z.ZodTypeAny, { root: Fr; nextAvailableLeafIndex: number; }, { root: string; nextAvailableLeafIndex: string | number | bigint; }>, AppendOnlyTreeSnapshot, { root: string; nextAvailableLeafIndex: string | number | bigint; }>; header: import("../schemas/schemas.js").ZodFor; body: import("../schemas/schemas.js").ZodFor; checkpointNumber: z.ZodEffects, z.ZodNumber>, CheckpointNumber, string | number | bigint>; indexWithinCheckpoint: z.ZodEffects, z.ZodNumber>, IndexWithinCheckpoint, string | number | bigint>; }, "strip", z.ZodTypeAny, { archive: AppendOnlyTreeSnapshot; header: import("../tx/block_header.js").BlockHeader; body: import("../block/body.js").Body; checkpointNumber: number & { _branding: "CheckpointNumber"; }; indexWithinCheckpoint: number & { _branding: "IndexWithinCheckpoint"; }; }, { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; body?: any; checkpointNumber: string | number | bigint; indexWithinCheckpoint: string | number | bigint; }>, L2Block, { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; body?: any; checkpointNumber: string | number | bigint; indexWithinCheckpoint: string | number | bigint; }>, "many">; number: z.ZodEffects, z.ZodNumber>, CheckpointNumber, string | number | bigint>; feeAssetPriceModifier: z.ZodPipeline, z.ZodBigInt>; }, "strip", z.ZodTypeAny, { archive: AppendOnlyTreeSnapshot; header: CheckpointHeader; blocks: L2Block[]; number: number & { _branding: "CheckpointNumber"; }; feeAssetPriceModifier: bigint; }, { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; blocks: { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; body?: any; checkpointNumber: string | number | bigint; indexWithinCheckpoint: string | number | bigint; }[]; number: string | number | bigint; feeAssetPriceModifier: string | number | bigint; }>, Checkpoint, { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; blocks: { archive: { root: string; nextAvailableLeafIndex: string | number | bigint; }; header?: any; body?: any; checkpointNumber: string | number | bigint; indexWithinCheckpoint: string | number | bigint; }[]; number: string | number | bigint; feeAssetPriceModifier: string | number | bigint; }>; static from(fields: FieldsOfCheckpoint): Checkpoint; static getFields(fields: FieldsOfCheckpoint): readonly [AppendOnlyTreeSnapshot, CheckpointHeader, L2Block[], CheckpointNumber, bigint]; static fromBuffer(buf: Buffer | BufferReader): Checkpoint; toBuffer(): Buffer; toBlobFields(): Fr[]; hash(): Fr; /** * Returns the out hash computed from all l2-to-l1 messages in this checkpoint. * Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all * checkpoints up to and including this one in the epoch. */ getCheckpointOutHash(): Fr; getState(): import("../tx/state_reference.js").StateReference; toCheckpointInfo(): CheckpointInfo; /** Returns stats used for logging */ getStats(): { privateLogCount: number; publicLogCount: number; contractClassLogCount: number; contractClassLogSize: number; txCount: number; blockCount: number; slotNumber: SlotNumber; checkpointNumber: CheckpointNumber; timestamp: bigint; }; static random(checkpointNumber?: CheckpointNumber, { numBlocks, startBlockNumber, previousArchive, feeAssetPriceModifier, ...options }?: { numBlocks?: number; startBlockNumber?: number; previousArchive?: AppendOnlyTreeSnapshot; feeAssetPriceModifier?: bigint; archive?: AppendOnlyTreeSnapshot; } & Partial[0]> & Partial[1]>): Promise; } export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NoZWNrcG9pbnQvY2hlY2twb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLHFCQUFxQixFQUNyQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0QscUJBQWEsVUFBVTtJQUVuQiw4REFBOEQ7SUFDdkQsT0FBTyxFQUFFLHNCQUFzQjtJQUN0QyxnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQixtQ0FBbUM7SUFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QixnQ0FBZ0M7SUFDekIsTUFBTSxFQUFFLGdCQUFnQjtJQUMvQix5RkFBeUY7SUFDbEYscUJBQXFCLEVBQUUsTUFBTTtJQVZ0QztJQUNFLDhEQUE4RDtJQUN2RCxPQUFPLEVBQUUsc0JBQXNCO0lBQ3RDLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLG1DQUFtQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hCLGdDQUFnQztJQUN6QixNQUFNLEVBQUUsZ0JBQWdCO0lBQy9CLHlGQUF5RjtJQUNsRixxQkFBcUIsR0FBRSxNQUFXLEVBQ3ZDO0lBRUosSUFBSSxJQUFJLElBQUksVUFBVSxDQUVyQjtJQUVELE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FhaEI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsY0FFckM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsNEZBRTFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksY0FRM0M7SUFFTSxRQUFRLDRCQVNkO0lBRU0sWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUcxQjtJQUVNLElBQUksSUFBSSxFQUFFLENBRWhCO0lBRUQ7Ozs7T0FJRztJQUNJLG9CQUFvQixJQUFJLEVBQUUsQ0FHaEM7SUFFTSxRQUFRLHNEQUVkO0lBRU0sZ0JBQWdCLElBQUksY0FBYyxDQVF4QztJQUVELHFDQUFxQztJQUM5QixRQUFROzs7Ozs7Ozs7O01Ba0JkO0lBRUQsT0FBYSxNQUFNLENBQ2pCLGdCQUFnQixtQkFBc0IsRUFDdEMsRUFDRSxTQUFhLEVBQ2IsZ0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixxQkFBMEIsRUFDMUIsR0FBRyxPQUFPLEVBQ1gsR0FBRTtRQUNELFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMxQixlQUFlLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztRQUN6QyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUMvQixPQUFPLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztLQUNsQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFNLHVCQTJCckQ7Q0FDRiJ9