From b20daeb09a2f6006de50145252a65eef3ca90795 Mon Sep 17 00:00:00 2001 From: Turner Date: Wed, 2 Aug 2023 09:51:10 -0700 Subject: [PATCH] Simplify helper functions with existing `read_bytes` function --- fuel-vm/src/interpreter/contract.rs | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/fuel-vm/src/interpreter/contract.rs b/fuel-vm/src/interpreter/contract.rs index 23f3156259..dde4846580 100644 --- a/fuel-vm/src/interpreter/contract.rs +++ b/fuel-vm/src/interpreter/contract.rs @@ -51,6 +51,7 @@ use fuel_types::{ ContractId, }; +use crate::interpreter::memory::read_bytes; use std::borrow::Cow; #[cfg(test)] @@ -349,34 +350,24 @@ fn get_contract_id_from_memory( offset: Word, memory: &[u8; MEM_SIZE], ) -> Result { - get_from_memory::<{ ContractId::LEN }, ContractId>(offset, memory) + let contract_id = ContractId::from(read_bytes(memory, offset)?); + Ok(contract_id) } fn get_asset_id_from_memory( offset: Word, memory: &[u8; MEM_SIZE], ) -> Result { - get_from_memory::<{ AssetId::LEN }, AssetId>(offset, memory) + let asset_id = AssetId::from(read_bytes(memory, offset)?); + Ok(asset_id) } fn get_address_from_memory( offset: Word, memory: &[u8; MEM_SIZE], ) -> Result { - get_from_memory::<{ Address::LEN }, Address>(offset, memory) -} - -fn get_from_memory( - offset: Word, - memory: &[u8; MEM_SIZE], -) -> Result -where - T: From<[u8; SIZE]>, -{ - let range = CheckedMemConstLen::::new(offset)?; - let bytes = range.read(memory); - let value = T::from(*bytes); - Ok(value) + let address = Address::from(read_bytes(memory, offset)?); + Ok(address) } pub(crate) fn contract_size(