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§
- Block
Handler Scheduler - Manages block-level handler scheduling and execution.
Traits§
- Interval
Handler - Handler that fires every N blocks.
- Setup
Handler - Handler that fires once before indexing starts.