|
4 | 4 | use alloy_eips::Encodable2718; |
5 | 5 | use alloy_primitives::{b256, bytes::Bytes, keccak256, B256}; |
6 | 6 | use alloy_provider::Provider; |
7 | | -use alloy_rpc_types_engine::ExecutionData; |
| 7 | +use alloy_rpc_types_engine::ExecutionPayloadV1; |
8 | 8 | use futures::StreamExt; |
9 | 9 | use reth_chainspec::EthChainSpec; |
10 | 10 | use reth_network_api::{BlockDownloaderProvider, FullNetwork}; |
11 | 11 | use reth_network_p2p::FullBlockClient; |
12 | | -use reth_scroll_engine_primitives::try_into_block; |
13 | 12 | use reth_scroll_node::ScrollNetworkPrimitives; |
14 | 13 | use reth_scroll_primitives::ScrollBlock; |
15 | 14 | use reth_tasks::shutdown::Shutdown; |
@@ -449,22 +448,19 @@ impl< |
449 | 448 | .engine |
450 | 449 | .get_payload(fcu.payload_id.expect("payload_id can not be None")) |
451 | 450 | .await?; |
452 | | - let block: ScrollBlock = try_into_block( |
453 | | - ExecutionData { payload: payload.into(), sidecar: Default::default() }, |
454 | | - self.config.chain_spec().clone(), |
455 | | - ) |
456 | | - .expect("block must be valid"); |
457 | 451 |
|
458 | | - let result = self.engine.new_payload(&block).await?; |
| 452 | + let block_info: L2BlockInfoWithL1Messages = (&payload) |
| 453 | + .try_into() |
| 454 | + .map_err(ChainOrchestratorError::RollupNodePrimitiveError)?; |
| 455 | + let result = self.engine.new_payload(payload).await?; |
459 | 456 | if result.is_invalid() { |
460 | 457 | return Err(ChainOrchestratorError::InvalidBatch( |
461 | | - (&block).into(), |
| 458 | + block_info.block_info, |
462 | 459 | batch_info, |
463 | 460 | )); |
464 | 461 | } |
465 | 462 |
|
466 | 463 | // Update the forkchoice state to the new head. |
467 | | - let block_info: L2BlockInfoWithL1Messages = (&block).into(); |
468 | 464 | self.engine |
469 | 465 | .update_fcs( |
470 | 466 | Some(block_info.block_info), |
@@ -1017,7 +1013,8 @@ impl< |
1017 | 1013 |
|
1018 | 1014 | // Validate the new blocks by sending them to the engine. |
1019 | 1015 | for block in &chain { |
1020 | | - let status = self.engine.new_payload(block).await?; |
| 1016 | + let payload = ExecutionPayloadV1::from_block_slow(block); |
| 1017 | + let status = self.engine.new_payload(payload).await?; |
1021 | 1018 | tracing::debug!(target: "scroll::chain_orchestrator", block_number = block.number, block_hash = ?block.hash_slow(), ?status, "New payload status from engine"); |
1022 | 1019 |
|
1023 | 1020 | if status.is_invalid() { |
|
0 commit comments