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

difftreelog

source

primitives/evm-mapping/src/lib.rs840 Bsourcehistory
1#![cfg_attr(not(feature = "std"), no_std)]23use frame_support::sp_runtime::AccountId32;4use sp_core::H160;56/// Transforms substrate addresses to ethereum (Reverse of `EvmAddressMapping`)7/// pallet_evm doesn't have this, as it only checks if eth address8/// is owned by substrate via `EnsureAddressOrigin` trait9///10/// This trait implementations shouldn't conflict with used `EnsureAddressOrigin`11pub trait EvmBackwardsAddressMapping<AccountId> {12	fn from_account_id(account_id: AccountId) -> H160;13}1415/// Should have same mapping as EnsureAddressTruncated16pub struct MapBackwardsAddressTruncated;17impl EvmBackwardsAddressMapping<AccountId32> for MapBackwardsAddressTruncated {18	fn from_account_id(account_id: AccountId32) -> H160 {19		let mut out = [0; 20];20		out.copy_from_slice(&(account_id.as_ref() as &[u8])[0..20]);21		H160(out)22	}23}