diff --git a/zebra-chain/src/value_balance.rs b/zebra-chain/src/value_balance.rs index eb82a37df57..63438cd062a 100644 --- a/zebra-chain/src/value_balance.rs +++ b/zebra-chain/src/value_balance.rs @@ -348,7 +348,7 @@ impl ValueBalance { /// From byte array #[allow(clippy::unwrap_in_result)] - pub fn from_bytes(bytes: [u8; 32]) -> Result, ValueBalanceError> { + pub fn from_bytes(bytes: &[u8]) -> Result, ValueBalanceError> { let transparent = Amount::from_bytes( bytes[0..8] .try_into() diff --git a/zebra-chain/src/value_balance/tests/prop.rs b/zebra-chain/src/value_balance/tests/prop.rs index 248824157d0..eb05bcb766a 100644 --- a/zebra-chain/src/value_balance/tests/prop.rs +++ b/zebra-chain/src/value_balance/tests/prop.rs @@ -109,8 +109,7 @@ proptest! { fn value_balance_serialization(value_balance in any::>()) { let _init_guard = zebra_test::init(); - let bytes = value_balance.to_bytes(); - let serialized_value_balance = ValueBalance::from_bytes(bytes)?; + let serialized_value_balance = ValueBalance::from_bytes(&value_balance.to_bytes())?; prop_assert_eq!(value_balance, serialized_value_balance); } @@ -119,9 +118,8 @@ proptest! { fn value_balance_deserialization(bytes in any::<[u8; 32]>()) { let _init_guard = zebra_test::init(); - if let Ok(deserialized) = ValueBalance::::from_bytes(bytes) { - let bytes2 = deserialized.to_bytes(); - prop_assert_eq!(bytes, bytes2); + if let Ok(deserialized) = ValueBalance::::from_bytes(&bytes) { + prop_assert_eq!(bytes, deserialized.to_bytes()); } } } diff --git a/zebra-state/src/service/finalized_state/disk_format/chain.rs b/zebra-state/src/service/finalized_state/disk_format/chain.rs index 2f04b536970..c7909bbb11b 100644 --- a/zebra-state/src/service/finalized_state/disk_format/chain.rs +++ b/zebra-state/src/service/finalized_state/disk_format/chain.rs @@ -30,8 +30,7 @@ impl IntoDisk for ValueBalance { impl FromDisk for ValueBalance { fn from_bytes(bytes: impl AsRef<[u8]>) -> Self { - let array = bytes.as_ref().try_into().unwrap(); - ValueBalance::from_bytes(array).unwrap() + ValueBalance::from_bytes(bytes.as_ref()).expect("ValueBalance should be parsable") } }