|
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; |
@@ -442,22 +441,19 @@ impl< |
442 | 441 | .engine |
443 | 442 | .get_payload(fcu.payload_id.expect("payload_id can not be None")) |
444 | 443 | .await?; |
445 | | - let block: ScrollBlock = try_into_block( |
446 | | - ExecutionData { payload: payload.into(), sidecar: Default::default() }, |
447 | | - self.config.chain_spec().clone(), |
448 | | - ) |
449 | | - .expect("block must be valid"); |
450 | 444 |
|
451 | | - let result = self.engine.new_payload(&block).await?; |
| 445 | + let block_info: L2BlockInfoWithL1Messages = (&payload) |
| 446 | + .try_into() |
| 447 | + .map_err(ChainOrchestratorError::RollupNodePrimitiveError)?; |
| 448 | + let result = self.engine.new_payload(payload).await?; |
452 | 449 | if result.is_invalid() { |
453 | 450 | return Err(ChainOrchestratorError::InvalidBatch( |
454 | | - (&block).into(), |
| 451 | + block_info.block_info, |
455 | 452 | batch_info, |
456 | 453 | )); |
457 | 454 | } |
458 | 455 |
|
459 | 456 | // Update the forkchoice state to the new head. |
460 | | - let block_info: L2BlockInfoWithL1Messages = (&block).into(); |
461 | 457 | self.engine |
462 | 458 | .update_fcs( |
463 | 459 | Some(block_info.block_info), |
@@ -1034,7 +1030,8 @@ impl< |
1034 | 1030 |
|
1035 | 1031 | // Validate the new blocks by sending them to the engine. |
1036 | 1032 | for block in &chain { |
1037 | | - let status = self.engine.new_payload(block).await?; |
| 1033 | + let payload = ExecutionPayloadV1::from_block_slow(block); |
| 1034 | + let status = self.engine.new_payload(payload).await?; |
1038 | 1035 | tracing::debug!(target: "scroll::chain_orchestrator", block_number = block.number, block_hash = ?block.hash_slow(), ?status, "New payload status from engine"); |
1039 | 1036 |
|
1040 | 1037 | if status.is_invalid() { |
|
0 commit comments