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

Method check_payload

node/src/test_harness/mock_engine_client.rs:441–479  ·  view source on GitHub ↗
(&mut self, block: &Block)

Source from the content-addressed store, hash-verified

439 let state = self.state.lock().unwrap();
440
441 Ok(state
442 .building_payloads
443 .get(&payload_id)
444 .cloned()
445 .expect("Payload ID not found"))
446 }
447
448 async fn check_payload(
449 &mut self,
450 block: &Block,
451 ) -> Result<PayloadStatus, summit_types::EngineClientError> {
452 let mut state = self.state.lock().unwrap();
453
454 if let Some(override_status) = state.check_payload_overrides.pop_front() {
455 return Ok(override_status);
456 }
457
458 if state.force_invalid {
459 return Ok(PayloadStatus::new(
460 PayloadStatusEnum::Invalid {
461 validation_error: "Mock: Forced invalid".to_string(),
462 },
463 None,
464 ));
465 }
466
467 let block_hash = block.payload.payload_inner.payload_inner.block_hash;
468 let parent_hash = block.payload.payload_inner.payload_inner.parent_hash;
469
470 // Check if parent exists in our canonical chain
471 if !state.canonical_blocks.contains_key(&parent_hash) {
472 let status = PayloadStatus::new(
473 PayloadStatusEnum::Invalid {
474 validation_error: "Parent block not found".to_string(),
475 },
476 None,
477 );
478 state.known_blocks.insert(block_hash, status.clone());
479 return Ok(status);
480 }
481
482 // Block is valid - store both status and block data

Callers 4

mainFunction · 0.45

Calls

no outgoing calls