difftreelog
refactor eth::Property
in: master
4 files changed
pallets/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)
}
pallets/common/src/eth.rsdiffbeforeafterboth--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -175,13 +175,28 @@
value: evm_coder::types::bytes,
}
-impl Property {
- pub fn new(key: evm_coder::types::string, value: evm_coder::types::bytes) -> Self {
- Self { key, value }
+impl TryFrom<up_data_structs::Property> for Property {
+ type Error = evm_coder::execution::Error;
+
+ fn try_from(from: up_data_structs::Property) -> Result<Self, Self::Error> {
+ let key = evm_coder::types::string::from_utf8(from.key.into())
+ .map_err(|e| Self::Error::Revert(format!("utf8 conversion error: {}", e)))?;
+ let value = evm_coder::types::bytes(from.value.to_vec());
+ Ok(Property { key, value })
}
+}
- pub fn take_key_value(self) -> (evm_coder::types::string, evm_coder::types::bytes) {
- (self.key, self.value)
+impl TryInto<up_data_structs::Property> for Property {
+ type Error = evm_coder::execution::Error;
+
+ fn try_into(self) -> Result<up_data_structs::Property, Self::Error> {
+ let key = <Vec<u8>>::from(self.key)
+ .try_into()
+ .map_err(|_| "key too large")?;
+
+ let value = self.value.0.try_into().map_err(|_| "value too large")?;
+
+ Ok(up_data_structs::Property { key, value })
}
}
pallets/nonfungible/src/erc.rsdiffbeforeafterboth170170171 let properties = properties171 let properties = properties172 .into_iter()172 .into_iter()173 .map(|property| {173 .map(pallet_common::eth::Property::try_into)174 let (key, value) = property.take_key_value();175 let key = <Vec<u8>>::from(key)176 .try_into()177 .map_err(|_| "key too large")?;178179 let value = value.0.try_into().map_err(|_| "value too large")?;180181 Ok(Property { key, value })182 })183 .collect::<Result<Vec<_>>>()?;174 .collect::<Result<Vec<_>>>()?;184175185 <Pallet<T>>::set_token_properties(176 <Pallet<T>>::set_token_properties(793 if keys.is_empty() { None } else { Some(keys) },784 if keys.is_empty() { None } else { Some(keys) },794 )785 )795 .into_iter()786 .into_iter()796 .map(|p| {787 .map(pallet_common::eth::Property::try_from)797 let key = string::from_utf8(p.key.to_vec())798 .map_err(|e| Error::Revert(alloc::format!("{}", e)))?;799 let value = bytes(p.value.to_vec());800 Ok(pallet_common::eth::Property::new(key, value))801 })802 .collect::<Result<Vec<_>>>()788 .collect::<Result<Vec<_>>>()803 }789 }804790105510411056 let properties = properties1042 let properties = properties1057 .into_iter()1043 .into_iter()1058 .map(|property| {1044 .map(pallet_common::eth::Property::try_into)1059 let (key, value) = property.take_key_value();1060 let key = <Vec<u8>>::from(key)1061 .try_into()1062 .map_err(|_| "key too large")?;10631064 let value = value.0.try_into().map_err(|_| "value too large")?;10651066 Ok(Property { key, value })1067 })1068 .collect::<Result<Vec<_>>>()?1045 .collect::<Result<Vec<_>>>()?1069 .try_into()1046 .try_into()1070 .map_err(|_| Error::Revert(alloc::format!("too many properties")))?;1047 .map_err(|_| Error::Revert(alloc::format!("too many properties")))?;pallets/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")))?;