diff --git a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs index f7fd204f..6642f4c9 100644 --- a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs +++ b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs @@ -2,7 +2,9 @@ use crate::{ indexer::{ database::BlocksDatabaseAccess, fork_scratch_pad::CONFIRMED_SEGMENT_MINIMUM_LENGTH, ChainSegment, ChainSegmentIncompatibility, - }, try_error, try_info, utils::Context + }, + try_error, try_info, + utils::Context, }; use chainhook_types::{ BlockIdentifier, StacksBlockData, StacksBlockUpdate, StacksChainEvent, @@ -191,6 +193,13 @@ impl StacksBlockPool { self.block_store .insert(block.block_identifier.clone(), block.clone()); self.add_fork(fork); + } else if block.block_identifier.index == 0 { + try_info!( + ctx, + "Appending block 0 special case: Stacks {}", + block.block_identifier + ); + return Ok(None); } else { try_error!( ctx, @@ -252,7 +261,10 @@ impl StacksBlockPool { // Generate chain event from the previous and current canonical forks self.canonical_fork_id = canonical_fork_id; let canonical_fork = self.forks.get(&canonical_fork_id).unwrap().clone(); - try_info!(ctx, "Canonical fork is: {canonical_fork_id} {canonical_fork}"); + try_info!( + ctx, + "Canonical fork is: {canonical_fork_id} {canonical_fork}" + ); if canonical_fork.eq(&previous_canonical_fork) { try_info!(ctx, "Canonical fork unchanged"); return Ok(None);