difftreelog
path: Add check for address length.
in: master
2 files changed
pallets/common/src/eth.rsdiffbeforeafterboth--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -16,7 +16,7 @@
//! The module contains a number of functions for converting and checking ethereum identifiers.
-use evm_coder::{types::*};
+use evm_coder::{types::uint256, execution::Result};
pub use pallet_evm::account::CrossAccountId;
use sp_core::H160;
use up_data_structs::CollectionId;
@@ -53,24 +53,11 @@
}
/// Convert `CrossAccountId` to `uint256`.
-pub fn convert_cross_account_to_eth_uint256<T: Config>(from: &T::CrossAccountId) -> uint256
+pub fn convert_cross_account_to_eth_uint256<T: Config>(from: &T::CrossAccountId) -> Result<uint256>
where
T::AccountId: AsRef<[u8]>,
{
use pallet_evm::account::CrossAccountId;
let slice = from.as_sub().as_ref();
uint256::from_big_endian(slice)
-}
-
-/// Converts Substrate address to CrossAccountId
-pub fn convert_substrate_address_to_cross_account_id<T: Config>(
- address: uint256,
-) -> T::CrossAccountId
-where
- T::AccountId: From<[u8; 32]>,
-{
- let mut address_arr: [u8; 32] = Default::default();
- address.to_big_endian(&mut address_arr);
- let account_id = T::AccountId::from(address_arr);
- T::CrossAccountId::from_sub(account_id)
}
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth110 fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> {110 fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> {111 let sponsor =111 let sponsor =112 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;112 Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?;113 let sponsor_sub = pallet_common::eth::convert_cross_account_to_eth_uint256::<T>(&sponsor);113 let sponsor_sub = pallet_common::eth::convert_cross_account_to_eth_uint256::<T>(&sponsor)?;114 Ok((*sponsor.as_eth(), sponsor_sub))114 Ok((*sponsor.as_eth(), sponsor_sub))115 }115 }116116