import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js'; import type { L2Block } from '../l2_block.js'; import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js'; /** Provides the current chain tips. Implemented by world-state, l2-tips-store, and AztecNode. */ export interface L2TipsProvider { getL2Tips(): Promise; } /** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */ export interface L2BlockStreamLocalDataProvider extends L2TipsProvider { getL2BlockHash(number: number): Promise; } /** Interface to a handler of events emitted. */ export interface L2BlockStreamEventHandler { handleBlockStreamEvent(event: L2BlockStreamEvent): Promise; } export type L2BlockStreamEvent = /** Emits blocks added to the chain. */ { type: 'blocks-added'; blocks: L2Block[]; } | /** Emits checkpoints published to L1. */ { type: 'chain-checkpointed'; checkpoint: PublishedCheckpoint; block: L2BlockId; } | /** * Reports last correct block (new tip of the proposed chain). Note that this is not necessarily the anchor block * that will be used in the transaction - if the chain has already moved past the reorg, we'll also see blocks-added * events that will push the anchor block forward. */ { type: 'chain-pruned'; block: L2BlockId; checkpoint: CheckpointId; } | /** Reports new proven block. */ { type: 'chain-proven'; block: L2BlockId; } | /** Reports new finalized block (proven and finalized on L1). */ { type: 'chain-finalized'; block: L2BlockId; }; export type L2TipsStore = L2BlockStreamEventHandler & L2BlockStreamLocalDataProvider; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Jsb2NrL2wyX2Jsb2NrX3N0cmVhbS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RSxpR0FBaUc7QUFDakcsTUFBTSxXQUFXLGNBQWM7SUFDN0IsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUM5QjtBQUVELDhGQUE4RjtBQUM5RixNQUFNLFdBQVcsOEJBQStCLFNBQVEsY0FBYztJQUNwRSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0NBQzdEO0FBRUQsZ0RBQWdEO0FBQ2hELE1BQU0sV0FBVyx5QkFBeUI7SUFDeEMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNsRTtBQUVELE1BQU0sTUFBTSxrQkFBa0IsR0FDMUIsdUNBQXVDLENBQUM7SUFDdEMsSUFBSSxFQUFFLGNBQWMsQ0FBQztJQUNyQixNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Q0FDbkIsR0FDRCx5Q0FBeUMsQ0FBQztJQUN4QyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDM0IsVUFBVSxFQUFFLG1CQUFtQixDQUFDO0lBQ2hDLEtBQUssRUFBRSxTQUFTLENBQUM7Q0FDbEIsR0FDRDs7OztHQUlDLENBQUM7SUFDQSxJQUFJLEVBQUUsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRSxTQUFTLENBQUM7SUFDakIsVUFBVSxFQUFFLFlBQVksQ0FBQztDQUMxQixHQUNELGdDQUFnQyxDQUFDO0lBQy9CLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsS0FBSyxFQUFFLFNBQVMsQ0FBQztDQUNsQixHQUNELGdFQUFnRSxDQUFDO0lBQy9ELElBQUksRUFBRSxpQkFBaUIsQ0FBQztJQUN4QixLQUFLLEVBQUUsU0FBUyxDQUFDO0NBQ2xCLENBQUM7QUFFTixNQUFNLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixHQUFHLDhCQUE4QixDQUFDIn0=