From 204b327210f1d5e62d6c1fcb09eae6145ea1827f Mon Sep 17 00:00:00 2001 From: Rafael Cardenas Date: Fri, 12 Sep 2025 04:21:40 -0600 Subject: [PATCH 1/3] fix: block 0 --- .../src/indexer/stacks/blocks_pool.rs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs index f7fd204f..b6788694 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,17 @@ 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 + ); + let mut fork = ChainSegment::new(); + fork.append_block_identifier(&block.block_identifier); + self.block_store + .insert(block.block_identifier.clone(), block.clone()); + self.add_fork(fork); } else { try_error!( ctx, @@ -252,7 +265,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); From b256056384026acd1e57473d52fcbbce7d1792d0 Mon Sep 17 00:00:00 2001 From: Rafael Cardenas Date: Fri, 12 Sep 2025 04:46:28 -0600 Subject: [PATCH 2/3] fix: early return --- components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs index b6788694..6642f4c9 100644 --- a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs +++ b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs @@ -199,11 +199,7 @@ impl StacksBlockPool { "Appending block 0 special case: Stacks {}", block.block_identifier ); - let mut fork = ChainSegment::new(); - fork.append_block_identifier(&block.block_identifier); - self.block_store - .insert(block.block_identifier.clone(), block.clone()); - self.add_fork(fork); + return Ok(None); } else { try_error!( ctx, From 32a51569beb8c6683f8d20e864a1fb4f02f2dc35 Mon Sep 17 00:00:00 2001 From: Rafael Cardenas Date: Fri, 12 Sep 2025 05:08:28 -0600 Subject: [PATCH 3/3] fix: bloc 0 --- components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs index 6642f4c9..3af25b78 100644 --- a/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs +++ b/components/chainhook-sdk/src/indexer/stacks/blocks_pool.rs @@ -196,7 +196,7 @@ impl StacksBlockPool { } else if block.block_identifier.index == 0 { try_info!( ctx, - "Appending block 0 special case: Stacks {}", + "Ignoring block 0 special case: Stacks {}", block.block_identifier ); return Ok(None);