From c6a97d73a952d0a6b8e273021b943e319133454b Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:58:34 +0100 Subject: [PATCH] chore: simplify uninit_array usage --- crates/sol-types/src/types/data_type.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/crates/sol-types/src/types/data_type.rs b/crates/sol-types/src/types/data_type.rs index 48fd682da..35cb6af9f 100644 --- a/crates/sol-types/src/types/data_type.rs +++ b/crates/sol-types/src/types/data_type.rs @@ -586,14 +586,8 @@ where #[inline] fn stv_eip712_data_word(&self) -> Word { - let mut encoded = crate::impl_core::uninit_array::<[u8; 32], N>(); - for (i, item) in self.iter().enumerate() { - encoded[i].write(T::stv_eip712_data_word(item).0); - } - // SAFETY: Flattening [[u8; 32]; N] to [u8; N * 32] is valid - let encoded: &[u8] = - unsafe { core::slice::from_raw_parts(encoded.as_ptr().cast(), N * 32) }; - keccak256(encoded) + let encoded = core::array::from_fn::<_, N, _>(|i| self[i].stv_eip712_data_word().0); + keccak256(encoded.as_flattened()) } #[inline] @@ -603,7 +597,7 @@ where if let Some(padding_needed) = 32usize.checked_sub(item.stv_abi_packed_encoded_size()) { out.extend(core::iter::repeat(0).take(padding_needed)); } - T::stv_abi_encode_packed_to(item, out); + item.stv_abi_encode_packed_to(out); } }