Skip to main content

Module block_handler

Module block_handler 

Source
Expand description

Enhanced block handler system — interval handlers, setup handlers, and execution ordering for block-level operations.

Block handlers fire for every block. Interval handlers fire every N blocks. Setup handlers fire once before indexing begins. All block-level handlers execute BEFORE event handlers for the same block.

§Example

use chainindex_core::block_handler::{IntervalHandler, SetupHandler, BlockHandlerScheduler};

// Snapshot handler fires every 1000 blocks
struct SnapshotHandler;

#[async_trait::async_trait]
impl IntervalHandler for SnapshotHandler {
    async fn handle(&self, block: &BlockSummary, ctx: &IndexContext) -> Result<(), IndexerError> {
        println!("Taking snapshot at block {}", block.number);
        Ok(())
    }
    fn interval(&self) -> u64 { 1000 }
    fn name(&self) -> &str { "snapshot" }
}

Structs§

BlockHandlerScheduler
Manages block-level handler scheduling and execution.

Traits§

IntervalHandler
Handler that fires every N blocks.
SetupHandler
Handler that fires once before indexing starts.