Skip to content

Implement Indexer #27

@frisitano

Description

@frisitano

Overview

We must implement an indexer component responsible for indexing data relevant to the rollup node. In the first instance, this will initially be indexing of BatchInputs and L1Messages. Proposed interface defined below:

/// The indexer is responsible for indexing data relevant to the L1.
#[derive(Debug)]
pub struct Indexer;
impl Indexer {
/// Handles an event from the L1.
pub async fn handle_l1_event(&mut self, event: L1Event) {
match event {
L1Event::CommitBatch(batch_input) => self.handle_batch_input(batch_input).await,
L1Event::Reorg(block_number) => self.handle_reorg(block_number).await,
L1Event::Finalized(block_number) => self.handle_finalized(block_number).await,
L1Event::L1Message(l1_message) => self.handle_l1_message(l1_message).await,
}
}
async fn handle_reorg(&mut self, _block_number: u64) {
todo!()
}
async fn handle_finalized(&mut self, _block_number: u64) {
todo!()
}
async fn handle_l1_message(&mut self, _l1_message: Arc<L1Message>) {
todo!()
}
async fn handle_batch_input(&mut self, _batch_input: Arc<BatchInput>) {
todo!()
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions