MCPcopy Create free account
hub / github.com/SeismicSystems/summit / commit_hash

Method commit_hash

node/src/test_harness/mock_engine_client.rs:481–543  ·  view source on GitHub ↗
(&mut self, fork_choice_state: ForkchoiceState)

Source from the content-addressed store, hash-verified

479 return Ok(status);
480 }
481
482 // Block is valid - store both status and block data
483 let status = PayloadStatus::new(PayloadStatusEnum::Valid, Some(parent_hash));
484 state.known_blocks.insert(block_hash, status.clone());
485 state
486 .validated_blocks
487 .insert(block_hash, block.payload.clone());
488 Ok(status)
489 }
490
491 async fn commit_hash(
492 &mut self,
493 fork_choice_state: ForkchoiceState,
494 ) -> Result<ForkchoiceUpdated, summit_types::EngineClientError> {
495 let mut state = self.state.lock().unwrap();
496
497 if let Some(override_response) = state.commit_hash_overrides.pop_front() {
498 return Ok(override_response);
499 }
500
501 // Update current head
502 state.current_head = fork_choice_state.head_block_hash;
503
504 // First, try to find the block in our building payloads (blocks we built)
505 let matching_block = state
506 .building_payloads
507 .values()
508 .find(|envelope| {
509 envelope
510 .envelope_inner
511 .execution_payload
512 .payload_inner
513 .payload_inner
514 .block_hash
515 == fork_choice_state.head_block_hash
516 })
517 .map(|envelope| envelope.envelope_inner.execution_payload.clone());
518
519 if let Some(block) = matching_block {
520 let block_number = block.payload_inner.payload_inner.block_number;
521 let block_hash = block.payload_inner.payload_inner.block_hash;
522
523 // Add to canonical chain if it's the next expected block
524 if block_number == state.next_block_number {
525 state.canonical_blocks.insert(block_hash, block);
526 state.canonical_by_number.insert(block_number, block_hash);
527 state.next_block_number += 1;
528 }
529 } else {
530 // Block not in building_payloads - check if we validated it via check_payload
531 let validated_block = state
532 .validated_blocks
533 .get(&fork_choice_state.head_block_hash)
534 .cloned();
535
536 if let Some(block) = validated_block {
537 let block_number = block.payload_inner.payload_inner.block_number;
538 let block_hash = block.payload_inner.payload_inner.block_hash;

Callers 6

test_basic_engine_clientFunction · 0.45
mainFunction · 0.45

Calls 1

getMethod · 0.80