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.rsdiffbeforeafterboth175 value: evm_coder::types::bytes,175 value: evm_coder::types::bytes,176}176}177177178impl Property {178impl TryFrom<up_data_structs::Property> for Property {179 type Error = evm_coder::execution::Error;180179 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 }182183 pub fn take_key_value(self) -> (evm_coder::types::string, evm_coder::types::bytes) {184 (self.key, self.value)185 }186}187}188189impl TryInto<up_data_structs::Property> for Property {190 type Error = evm_coder::execution::Error;191192 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")?;196197 let value = self.value.0.try_into().map_err(|_| "value too large")?;198199 Ok(up_data_structs::Property { key, value })200 }201}187202188/// [`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)]pallets/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")))?;
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")))?;