git.delta.rocks / unique-network / refs/commits / a22e53f08409

difftreelog

refactor eth::Property

Trubnikov Sergey2022-12-22parent: #53625bb.patch.diff
in: master

4 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -30,7 +30,6 @@
 	AccessMode, CollectionMode, CollectionPermissions, OwnerRestrictedSet, Property,
 	SponsoringRateLimit, SponsorshipState,
 };
-use alloc::format;
 
 use crate::{
 	Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf, eth, weights::WeightInfo,
@@ -123,16 +122,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|property| {
-				let (key, value) = property.take_key_value();
-				let key = <Vec<u8>>::from(key)
-					.try_into()
-					.map_err(|_| "key too large")?;
-
-				let value = value.0.try_into().map_err(|_| "value too large")?;
-
-				Ok(Property { key, value })
-			})
+			.map(eth::Property::try_into)
 			.collect::<Result<Vec<_>>>()?;
 
 		<Pallet<T>>::set_collection_properties(self, &caller, properties)
@@ -210,12 +200,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|p| {
-				let key =
-					string::from_utf8(p.key.into()).map_err(|e| Error::Revert(format!("{}", e)))?;
-				let value = bytes(p.value.to_vec());
-				Ok(eth::Property::new(key, value))
-			})
+			.map(Property::try_into)
 			.collect::<Result<Vec<_>>>()?;
 		Ok(properties)
 	}
modifiedpallets/common/src/eth.rsdiffbeforeafterboth
175 value: evm_coder::types::bytes,175 value: evm_coder::types::bytes,
176}176}
177177
178impl Property {178impl TryFrom<up_data_structs::Property> for Property {
179 type Error = evm_coder::execution::Error;
180
179 pub fn new(key: evm_coder::types::string, value: evm_coder::types::bytes) -> Self {181 fn try_from(from: up_data_structs::Property) -> Result<Self, Self::Error> {
182 let key = evm_coder::types::string::from_utf8(from.key.into())
183 .map_err(|e| Self::Error::Revert(format!("utf8 conversion error: {}", e)))?;
184 let value = evm_coder::types::bytes(from.value.to_vec());
180 Self { key, value }185 Ok(Property { key, value })
181 }186 }
182
183 pub fn take_key_value(self) -> (evm_coder::types::string, evm_coder::types::bytes) {
184 (self.key, self.value)
185 }
186}187}
188
189impl TryInto<up_data_structs::Property> for Property {
190 type Error = evm_coder::execution::Error;
191
192 fn try_into(self) -> Result<up_data_structs::Property, Self::Error> {
193 let key = <Vec<u8>>::from(self.key)
194 .try_into()
195 .map_err(|_| "key too large")?;
196
197 let value = self.value.0.try_into().map_err(|_| "value too large")?;
198
199 Ok(up_data_structs::Property { key, value })
200 }
201}
187202
188/// [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.203/// [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
189#[derive(Debug, Default, Clone, Copy, AbiCoder)]204#[derive(Debug, Default, Clone, Copy, AbiCoder)]
modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -170,16 +170,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|property| {
-				let (key, value) = property.take_key_value();
-				let key = <Vec<u8>>::from(key)
-					.try_into()
-					.map_err(|_| "key too large")?;
-
-				let value = value.0.try_into().map_err(|_| "value too large")?;
-
-				Ok(Property { key, value })
-			})
+			.map(pallet_common::eth::Property::try_into)
 			.collect::<Result<Vec<_>>>()?;
 
 		<Pallet<T>>::set_token_properties(
@@ -793,12 +784,7 @@
 			if keys.is_empty() { None } else { Some(keys) },
 		)
 		.into_iter()
-		.map(|p| {
-			let key = string::from_utf8(p.key.to_vec())
-				.map_err(|e| Error::Revert(alloc::format!("{}", e)))?;
-			let value = bytes(p.value.to_vec());
-			Ok(pallet_common::eth::Property::new(key, value))
-		})
+		.map(pallet_common::eth::Property::try_from)
 		.collect::<Result<Vec<_>>>()
 	}
 
@@ -1055,16 +1041,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|property| {
-				let (key, value) = property.take_key_value();
-				let key = <Vec<u8>>::from(key)
-					.try_into()
-					.map_err(|_| "key too large")?;
-
-				let value = value.0.try_into().map_err(|_| "value too large")?;
-
-				Ok(Property { key, value })
-			})
+			.map(pallet_common::eth::Property::try_into)
 			.collect::<Result<Vec<_>>>()?
 			.try_into()
 			.map_err(|_| Error::Revert(alloc::format!("too many properties")))?;
modifiedpallets/refungible/src/erc.rsdiffbeforeafterboth
--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -173,16 +173,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|property| {
-				let (key, value) = property.take_key_value();
-				let key = <Vec<u8>>::from(key)
-					.try_into()
-					.map_err(|_| "key too large")?;
-
-				let value = value.0.try_into().map_err(|_| "value too large")?;
-
-				Ok(Property { key, value })
-			})
+			.map(pallet_common::eth::Property::try_into)
 			.collect::<Result<Vec<_>>>()?;
 
 		<Pallet<T>>::set_token_properties(
@@ -828,12 +819,7 @@
 			if keys.is_empty() { None } else { Some(keys) },
 		)
 		.into_iter()
-		.map(|p| {
-			let key = string::from_utf8(p.key.to_vec())
-				.map_err(|e| Error::Revert(alloc::format!("{}", e)))?;
-			let value = bytes(p.value.to_vec());
-			Ok(pallet_common::eth::Property::new(key, value))
-		})
+		.map(pallet_common::eth::Property::try_from)
 		.collect::<Result<Vec<_>>>()
 	}
 	/// @notice Transfer ownership of an RFT
@@ -1101,16 +1087,7 @@
 
 		let properties = properties
 			.into_iter()
-			.map(|property| {
-				let (key, value) = property.take_key_value();
-				let key = <Vec<u8>>::from(key)
-					.try_into()
-					.map_err(|_| "key too large")?;
-
-				let value = value.0.try_into().map_err(|_| "value too large")?;
-
-				Ok(Property { key, value })
-			})
+			.map(pallet_common::eth::Property::try_into)
 			.collect::<Result<Vec<_>>>()?
 			.try_into()
 			.map_err(|_| Error::Revert(alloc::format!("too many properties")))?;