From 068bf57c06de0764b214e2f10c99e125825947c7 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Mon, 1 Jul 2024 04:26:44 -0700 Subject: [PATCH] fix: ambiguous deposit mint value in arbitrary (#9216) --- crates/primitives/src/transaction/mod.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/primitives/src/transaction/mod.rs b/crates/primitives/src/transaction/mod.rs index c23d454f86..1edafaaa2c 100644 --- a/crates/primitives/src/transaction/mod.rs +++ b/crates/primitives/src/transaction/mod.rs @@ -1478,6 +1478,16 @@ impl<'a> arbitrary::Arbitrary<'a> for TransactionSigned { if tx_eip_4844.to != Address::default() { Some(()) } else { None }; } + #[cfg(feature = "optimism")] + // Both `Some(0)` and `None` values are encoded as empty string byte. This introduces + // ambiguity in roundtrip tests. Patch the mint value of deposit transaction here, so that + // it's `None` if zero. + if let Transaction::Deposit(ref mut tx_deposit) = transaction { + if tx_deposit.mint == Some(0) { + tx_deposit.mint = None; + } + } + let signature = Signature::arbitrary(u)?; #[cfg(feature = "optimism")]