From 4a78eaad381f0bed5004bc88051eb5596569bd09 Mon Sep 17 00:00:00 2001 From: parizval Date: Fri, 26 Sep 2025 02:12:38 +0530 Subject: [PATCH 1/3] perf: skipping computing compression ratio for l1 messages --- crates/scroll/alloy/evm/src/tx/mod.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/scroll/alloy/evm/src/tx/mod.rs b/crates/scroll/alloy/evm/src/tx/mod.rs index b9eba7510d3..c70e93d7e3a 100644 --- a/crates/scroll/alloy/evm/src/tx/mod.rs +++ b/crates/scroll/alloy/evm/src/tx/mod.rs @@ -161,8 +161,9 @@ impl FromTxWithEncoded for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(encoded); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = compute_compression_ratio(base.input()); - Self::new(base, encoded, Some(compression_ratio)) + let compression_ratio = + (!tx.is_l1_message()).then_some(compute_compression_ratio(base.input())); + Self::new(base, encoded, compression_ratio) } } @@ -270,7 +271,9 @@ impl FromRecoveredTx for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(envelope.into()); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = compute_compression_ratio(base.input()); - Self::new(base, encoded, Some(compression_ratio)) + let compression_ratio = + (!tx.is_l1_message()).then_some(compute_compression_ratio(base.input())); + + Self::new(base, encoded, compression_ratio) } } From 44344b9cb4f0fde25ad8d0a8051931afd96feed9 Mon Sep 17 00:00:00 2001 From: parizval Date: Fri, 26 Sep 2025 16:30:48 +0530 Subject: [PATCH 2/3] refactor: updating compression_ratio expression to lazy evaluation --- crates/scroll/alloy/evm/src/tx/mod.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/crates/scroll/alloy/evm/src/tx/mod.rs b/crates/scroll/alloy/evm/src/tx/mod.rs index c70e93d7e3a..25e50ceaf91 100644 --- a/crates/scroll/alloy/evm/src/tx/mod.rs +++ b/crates/scroll/alloy/evm/src/tx/mod.rs @@ -161,8 +161,7 @@ impl FromTxWithEncoded for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(encoded); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = - (!tx.is_l1_message()).then_some(compute_compression_ratio(base.input())); + let compression_ratio = (!tx.is_l1_message()).then(compute_compression_ratio(base.input())); Self::new(base, encoded, compression_ratio) } } @@ -271,8 +270,7 @@ impl FromRecoveredTx for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(envelope.into()); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = - (!tx.is_l1_message()).then_some(compute_compression_ratio(base.input())); + let compression_ratio = (!tx.is_l1_message()).then(compute_compression_ratio(base.input())); Self::new(base, encoded, compression_ratio) } From 337c3923a9c57da6b707ce05d895704f9b6dfc9b Mon Sep 17 00:00:00 2001 From: parizval Date: Fri, 26 Sep 2025 17:21:26 +0530 Subject: [PATCH 3/3] fix: refactored closure function for compute_compression_ratio --- crates/scroll/alloy/evm/src/tx/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/scroll/alloy/evm/src/tx/mod.rs b/crates/scroll/alloy/evm/src/tx/mod.rs index 25e50ceaf91..7ce225368f6 100644 --- a/crates/scroll/alloy/evm/src/tx/mod.rs +++ b/crates/scroll/alloy/evm/src/tx/mod.rs @@ -161,7 +161,8 @@ impl FromTxWithEncoded for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(encoded); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = (!tx.is_l1_message()).then(compute_compression_ratio(base.input())); + let compression_ratio = + (!tx.is_l1_message()).then(|| compute_compression_ratio(base.input())); Self::new(base, encoded, compression_ratio) } } @@ -270,7 +271,8 @@ impl FromRecoveredTx for ScrollTransactionIntoTxEnv { let encoded = (!tx.is_l1_message()).then_some(envelope.into()); // Note: We compute the transaction ratio on tx.data, not on the full encoded transaction. - let compression_ratio = (!tx.is_l1_message()).then(compute_compression_ratio(base.input())); + let compression_ratio = + (!tx.is_l1_message()).then(|| compute_compression_ratio(base.input())); Self::new(base, encoded, compression_ratio) }