diff --git a/indexer/src/lib.rs b/indexer/src/lib.rs index b7d70dab..a713e98b 100644 --- a/indexer/src/lib.rs +++ b/indexer/src/lib.rs @@ -1,4 +1,4 @@ -use std::sync::Arc; +use std::{collections::HashMap, sync::Arc}; use anyhow::Result; use bedrock_client::{BasicAuthCredentials, BedrockClient}; @@ -45,6 +45,7 @@ impl IndexerCore { // No state setup for now, future task. state: IndexerState { latest_seen_block: Arc::new(RwLock::new(0)), + finality_map: Arc::new(RwLock::new(HashMap::new())), }, }) } @@ -93,7 +94,7 @@ impl IndexerCore { } // Sending data into sequencer, may need to be expanded. - let message = IndexerToSequencerMessage::BlockObserved { + let message = IndexerToSequencerMessage::FinalizedBlockObserved { l1_block_id: block_info.height, l2_block_height: l2_block.block_id, }; diff --git a/indexer/src/message.rs b/indexer/src/message.rs index 195696ad..646cdfa9 100644 --- a/indexer/src/message.rs +++ b/indexer/src/message.rs @@ -1,7 +1,13 @@ #[derive(Debug, Clone)] pub enum IndexerToSequencerMessage { - BlockObserved { + FinalizedBlockObserved { l1_block_id: u64, l2_block_height: u64, }, + BlockEnteredChain { + l2_block_height: u64, + }, + ChainRestructurization { + new_l1_last_block_height: u64, + }, } diff --git a/indexer/src/state.rs b/indexer/src/state.rs index bd05971f..de89a018 100644 --- a/indexer/src/state.rs +++ b/indexer/src/state.rs @@ -1,9 +1,9 @@ -use std::sync::Arc; +use std::{collections::HashMap, sync::Arc}; use tokio::sync::RwLock; #[derive(Debug, Clone)] pub struct IndexerState { - // Only one field for now, for testing. pub latest_seen_block: Arc>, + pub finality_map: Arc>>, }