MCPcopy Create free account
hub / github.com/base/base / add_block

Method add_block

crates/batcher/encoder/src/encoder.rs:444–463  ·  view source on GitHub ↗
(&mut self, block: BaseBlock)

Source from the content-addressed store, hash-verified

442
443impl BatchPipeline for BatchEncoder {
444 fn add_block(&mut self, block: BaseBlock) -> Result<(), (ReorgError, Box<BaseBlock>)> {
445 if let Some(expected) = self.tip
446 && block.header.parent_hash != expected
447 {
448 return Err((
449 ReorgError::ParentMismatch { expected, got: block.header.parent_hash },
450 Box::new(block),
451 ));
452 }
453
454 let number = block.header.number;
455 let hash = block.header.hash_slow();
456 self.tip = Some(hash);
457 self.blocks.push_back(block);
458 BatcherMetrics::pending_blocks().increment(1.0);
459
460 debug!(block = %number, pending_blocks = %self.blocks.len(), "block added to encoder queue");
461
462 Ok(())
463 }
464
465 fn step(&mut self) -> Result<StepResult, StepError> {
466 // One transition: deferred error, timeout close, or one queued block.

Calls 2

hash_slowMethod · 0.80
incrementMethod · 0.80