From 9252b2e53bcd4c9983e37170675b44fd206da863 Mon Sep 17 00:00:00 2001 From: Trubnikov Sergey Date: Fri, 05 Aug 2022 15:39:41 +0000 Subject: [PATCH] path: Add check for address length. --- --- 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(from: &T::CrossAccountId) -> uint256 +pub fn convert_cross_account_to_eth_uint256(from: &T::CrossAccountId) -> Result 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( - 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) } --- a/pallets/evm-contract-helpers/src/eth.rs +++ b/pallets/evm-contract-helpers/src/eth.rs @@ -110,7 +110,7 @@ fn get_sponsor(&self, contract_address: address) -> Result<(address, uint256)> { let sponsor = Pallet::::get_sponsor(contract_address).ok_or("Contract has no sponsor")?; - let sponsor_sub = pallet_common::eth::convert_cross_account_to_eth_uint256::(&sponsor); + let sponsor_sub = pallet_common::eth::convert_cross_account_to_eth_uint256::(&sponsor)?; Ok((*sponsor.as_eth(), sponsor_sub)) } -- gitstuff