diff --git a/crates/rpc/rpc/src/eth/api/transactions.rs b/crates/rpc/rpc/src/eth/api/transactions.rs index cbff163e52..e8f4c158ee 100644 --- a/crates/rpc/rpc/src/eth/api/transactions.rs +++ b/crates/rpc/rpc/src/eth/api/transactions.rs @@ -950,45 +950,32 @@ where l1_block_info: Option, block_timestamp: u64, ) -> EthResult { - if let Some(l1_block_info) = l1_block_info { - let envelope_buf: Bytes = { - let mut envelope_buf = bytes::BytesMut::default(); - tx.encode_enveloped(&mut envelope_buf); - envelope_buf.freeze().into() - }; + let Some(l1_block_info) = l1_block_info else { return Ok(OptimismTxMeta::default()) }; - let (l1_fee, l1_data_gas) = match (!tx.is_deposit()) - .then(|| { - let inner_l1_fee = match l1_block_info.l1_tx_data_fee( - &self.inner.provider.chain_spec(), - block_timestamp, - &envelope_buf, - tx.is_deposit(), - ) { - Ok(inner_l1_fee) => inner_l1_fee, - Err(e) => return Err(e), - }; - let inner_l1_data_gas = match l1_block_info.l1_data_gas( - &self.inner.provider.chain_spec(), - block_timestamp, - &envelope_buf, - ) { - Ok(inner_l1_data_gas) => inner_l1_data_gas, - Err(e) => return Err(e), - }; - Ok((inner_l1_fee, inner_l1_data_gas)) - }) - .transpose() - .map_err(|_| EthApiError::InternalEthError)? - { - Some((l1_fee, l1_data_gas)) => (Some(l1_fee), Some(l1_data_gas)), - None => (None, None), - }; + let envelope_buf: Bytes = { + let mut envelope_buf = bytes::BytesMut::new(); + tx.encode_enveloped(&mut envelope_buf); + envelope_buf.freeze().into() + }; - Ok(OptimismTxMeta::new(Some(l1_block_info), l1_fee, l1_data_gas)) + let (l1_fee, l1_data_gas) = if tx.is_deposit() { + let inner_l1_fee = l1_block_info + .l1_tx_data_fee( + &self.inner.provider.chain_spec(), + block_timestamp, + &envelope_buf, + tx.is_deposit(), + ) + .map_err(|_| EthApiError::InternalEthError)?; + let inner_l1_data_gas = l1_block_info + .l1_data_gas(&self.inner.provider.chain_spec(), block_timestamp, &envelope_buf) + .map_err(|_| EthApiError::InternalEthError)?; + (Some(inner_l1_fee), Some(inner_l1_data_gas)) } else { - Ok(OptimismTxMeta::default()) - } + (None, None) + }; + + Ok(OptimismTxMeta::new(Some(l1_block_info), l1_fee, l1_data_gas)) } /// Helper function for `eth_sendRawTransaction` for Optimism.