--- a/Cargo.lock +++ b/Cargo.lock @@ -2554,7 +2554,7 @@ "fc-db", "fc-rpc-core", "fp-consensus", - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "fp-rpc", "fp-storage", "futures 0.3.21", @@ -2565,7 +2565,7 @@ "log", "lru 0.6.6", "pallet-ethereum", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", @@ -2757,7 +2757,7 @@ dependencies = [ "ethereum", "ethereum-types", - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "scale-info", "sp-api", @@ -2853,6 +2853,21 @@ ] [[package]] +name = "frame-common" +version = "0.1.0" +source = "git+https://github.com/uniquenetwork/frontier.git?branch=feature/300#0a1dc4086cbe971ddf57edf82a61cfce52c8c20b" +dependencies = [ + "frame-system", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=feature/300)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-std", + "up-evm-mapping", +] + +[[package]] name = "frame-election-provider-support" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" @@ -5835,7 +5850,7 @@ dependencies = [ "frame-support", "frame-system", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "scale-info", "serde", @@ -5984,9 +5999,10 @@ version = "0.1.0" dependencies = [ "evm-coder", + "frame-common", "frame-support", "frame-system", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "pallet-evm-coder-substrate", "parity-scale-codec", "scale-info", @@ -6064,7 +6080,7 @@ "ethereum-types", "evm", "fp-consensus", - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "fp-rpc", "fp-self-contained", "fp-storage", @@ -6072,7 +6088,7 @@ "frame-system", "log", "pallet-balances", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "pallet-timestamp", "parity-scale-codec", "rlp", @@ -6093,7 +6109,7 @@ "evm", "evm-gasometer", "evm-runtime", - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "frame-benchmarking", "frame-support", "frame-system", @@ -6124,7 +6140,7 @@ "frame-support", "frame-system", "pallet-ethereum", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "scale-info", "sp-core", @@ -6139,7 +6155,7 @@ "frame-support", "frame-system", "log", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "pallet-evm-coder-substrate", "parity-scale-codec", "scale-info", @@ -6154,11 +6170,11 @@ name = "pallet-evm-migration" version = "0.1.0" dependencies = [ - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "frame-benchmarking", "frame-support", "frame-system", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "scale-info", "sp-core", @@ -6171,11 +6187,11 @@ name = "pallet-evm-transaction-payment" version = "0.1.0" dependencies = [ - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "frame-support", "frame-system", "pallet-ethereum", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "parity-scale-codec", "scale-info", "sp-core", @@ -6193,6 +6209,7 @@ "ethereum", "evm-coder", "frame-benchmarking", + "frame-common", "frame-support", "frame-system", "pallet-common", @@ -6419,6 +6436,7 @@ "ethereum", "evm-coder", "frame-benchmarking", + "frame-common", "frame-support", "frame-system", "pallet-common", @@ -6535,6 +6553,7 @@ version = "0.1.0" dependencies = [ "frame-benchmarking", + "frame-common", "frame-support", "frame-system", "pallet-common", @@ -6795,15 +6814,16 @@ dependencies = [ "ethereum", "evm-coder", - "fp-evm", + "fp-evm 3.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "frame-benchmarking", + "frame-common", "frame-support", "frame-system", "hex-literal", "pallet-balances", "pallet-common", "pallet-ethereum", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "pallet-evm-coder-substrate", "pallet-fungible", "pallet-nonfungible", @@ -12186,7 +12206,7 @@ "chrono", "lazy_static", "matchers", - "parking_lot 0.11.2", + "parking_lot 0.10.2", "regex", "serde", "serde_json", @@ -12333,6 +12353,7 @@ name = "uc-rpc" version = "0.1.0" dependencies = [ + "frame-common", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -12549,6 +12570,7 @@ "fp-rpc", "fp-self-contained", "frame-benchmarking", + "frame-common", "frame-executive", "frame-support", "frame-system", @@ -12561,7 +12583,7 @@ "pallet-base-fee", "pallet-common", "pallet-ethereum", - "pallet-evm", + "pallet-evm 6.0.0-dev (git+https://github.com/uniquenetwork/frontier.git?branch=unique-polkadot-v0.9.17)", "pallet-evm-coder-substrate", "pallet-evm-contract-helpers", "pallet-evm-migration", @@ -12688,6 +12710,7 @@ [[package]] name = "up-evm-mapping" version = "0.1.0" +source = "git+https://github.com/uniquenetwork/frontier.git?branch=feature/300#0a1dc4086cbe971ddf57edf82a61cfce52c8c20b" dependencies = [ "frame-support", "sp-core", @@ -12697,6 +12720,7 @@ name = "up-rpc" version = "0.1.0" dependencies = [ + "frame-common", "pallet-common", "parity-scale-codec", "sp-api", --- a/client/rpc/Cargo.toml +++ b/client/rpc/Cargo.toml @@ -18,3 +18,4 @@ sp-core = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.18" } sp-rpc = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.18" } sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.18" } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -201,7 +201,7 @@ AccountId: Decode, C: 'static + ProvideRuntimeApi + HeaderBackend, C::Api: UniqueRuntimeApi, - CrossAccountId: pallet_common::account::CrossAccountId, + CrossAccountId: frame_common::account::CrossAccountId, { pass_method!(account_tokens(collection: CollectionId, account: CrossAccountId) -> Vec); pass_method!(token_exists(collection: CollectionId, token: TokenId) -> bool); --- a/pallets/common/Cargo.toml +++ b/pallets/common/Cargo.toml @@ -16,11 +16,12 @@ sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } -up-evm-mapping = { default-features = false, path = '../../primitives/evm-mapping' } up-data-structs = { default-features = false, path = '../../primitives/data-structs' } pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' } evm-coder = { default-features = false, path = '../../crates/evm-coder' } pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } +up-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } serde = { version = "1.0.130", default-features = false } scale-info = { version = "2.0.1", default-features = false, features = [ "derive", --- a/pallets/common/src/account.rs +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2019-2022 Unique Network (Gibraltar) Ltd. -// This file is part of Unique Network. - -// Unique Network is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Unique Network is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Unique Network. If not, see . - -use crate::Config; -use codec::{Encode, EncodeLike, Decode, MaxEncodedLen}; -use sp_core::H160; -use scale_info::{Type, TypeInfo}; -use core::cmp::Ordering; -use serde::{Serialize, Deserialize}; -use pallet_evm::AddressMapping; -use sp_std::vec::Vec; -use sp_std::clone::Clone; - -pub use up_evm_mapping::EvmBackwardsAddressMapping; - -pub trait CrossAccountId: - Encode + EncodeLike + Decode + TypeInfo + MaxEncodedLen + Clone + PartialEq + Ord + core::fmt::Debug -// + -// Serialize + Deserialize<'static> -{ - fn as_sub(&self) -> &AccountId; - fn as_eth(&self) -> &H160; - - fn from_sub(account: AccountId) -> Self; - fn from_eth(account: H160) -> Self; - - fn conv_eq(&self, other: &Self) -> bool; -} - -#[derive(Encode, Decode, Serialize, Deserialize, TypeInfo, MaxEncodedLen)] -#[serde(rename_all = "camelCase")] -enum BasicCrossAccountIdRepr { - Substrate(AccountId), - Ethereum(H160), -} - -#[derive(PartialEq, Eq)] -pub struct BasicCrossAccountId { - /// If true - then ethereum is canonical encoding - from_ethereum: bool, - substrate: T::AccountId, - ethereum: H160, -} - -impl MaxEncodedLen for BasicCrossAccountId { - fn max_encoded_len() -> usize { - >::max_encoded_len() - } -} - -impl TypeInfo for BasicCrossAccountId { - type Identity = Self; - - fn type_info() -> Type { - >::type_info() - } -} - -impl core::fmt::Debug for BasicCrossAccountId { - fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::fmt::Result { - if self.from_ethereum { - fmt.debug_tuple("CrossAccountId::Ethereum") - .field(&self.ethereum) - .finish() - } else { - fmt.debug_tuple("CrossAccountId::Substrate") - .field(&self.substrate) - .finish() - } - } -} - -impl PartialOrd for BasicCrossAccountId { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.substrate.cmp(&other.substrate)) - } -} - -impl Ord for BasicCrossAccountId { - fn cmp(&self, other: &Self) -> Ordering { - self.partial_cmp(other) - .expect("substrate account is total ordered") - } -} - -impl Clone for BasicCrossAccountId { - fn clone(&self) -> Self { - Self { - from_ethereum: self.from_ethereum, - substrate: self.substrate.clone(), - ethereum: self.ethereum, - } - } -} -impl Encode for BasicCrossAccountId { - fn encode(&self) -> Vec { - BasicCrossAccountIdRepr::from(self.clone()).encode() - } -} -impl EncodeLike for BasicCrossAccountId {} -impl Decode for BasicCrossAccountId { - fn decode(input: &mut I) -> Result - where - I: codec::Input, - { - Ok(BasicCrossAccountIdRepr::decode(input)?.into()) - } -} -impl Serialize for BasicCrossAccountId -where - T: Config, - T::AccountId: Serialize, -{ - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - let repr = BasicCrossAccountIdRepr::from(self.clone()); - (&repr).serialize(serializer) - } -} -impl<'de, T> Deserialize<'de> for BasicCrossAccountId -where - T: Config, - T::AccountId: Deserialize<'de>, -{ - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - Ok(BasicCrossAccountIdRepr::deserialize(deserializer)?.into()) - } -} -impl CrossAccountId for BasicCrossAccountId { - fn as_sub(&self) -> &T::AccountId { - &self.substrate - } - fn as_eth(&self) -> &H160 { - &self.ethereum - } - fn from_sub(substrate: T::AccountId) -> Self { - Self { - ethereum: T::EvmBackwardsAddressMapping::from_account_id(substrate.clone()), - substrate, - from_ethereum: false, - } - } - fn from_eth(ethereum: H160) -> Self { - Self { - ethereum, - substrate: T::EvmAddressMapping::into_account_id(ethereum), - from_ethereum: true, - } - } - fn conv_eq(&self, other: &Self) -> bool { - if self.from_ethereum == other.from_ethereum { - self.substrate == other.substrate && self.ethereum == other.ethereum - } else if self.from_ethereum { - // ethereum is canonical encoding, but we need to compare derived address - self.substrate == other.substrate - } else { - self.ethereum == other.ethereum - } - } -} -impl From> for BasicCrossAccountId { - fn from(repr: BasicCrossAccountIdRepr) -> Self { - match repr { - BasicCrossAccountIdRepr::Substrate(s) => Self::from_sub(s), - BasicCrossAccountIdRepr::Ethereum(e) => Self::from_eth(e), - } - } -} -impl From> for BasicCrossAccountIdRepr { - fn from(v: BasicCrossAccountId) -> Self { - if v.from_ethereum { - BasicCrossAccountIdRepr::Ethereum(*v.as_eth()) - } else { - BasicCrossAccountIdRepr::Substrate(v.as_sub().clone()) - } - } -} --- a/pallets/common/src/lib.rs +++ b/pallets/common/src/lib.rs @@ -19,7 +19,7 @@ use core::ops::{Deref, DerefMut}; use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder}; use sp_std::vec::Vec; -use account::CrossAccountId; +use frame_common::account::CrossAccountId; use frame_support::{ dispatch::{DispatchErrorWithPostInfo, DispatchResultWithPostInfo}, ensure, fail, @@ -38,7 +38,6 @@ pub use pallet::*; use sp_core::H160; use sp_runtime::{ArithmeticError, DispatchError, DispatchResult}; -pub mod account; #[cfg(feature = "runtime-benchmarks")] pub mod benchmarking; pub mod erc; @@ -163,7 +162,7 @@ pub mod pallet { use super::*; use frame_support::{Blake2_128Concat, pallet_prelude::*, storage::Key}; - use account::CrossAccountId; + use frame_common::account::CrossAccountId; use frame_support::traits::Currency; use up_data_structs::TokenId; use scale_info::TypeInfo; --- a/pallets/evm-contract-helpers/Cargo.toml +++ b/pallets/evm-contract-helpers/Cargo.toml @@ -17,7 +17,7 @@ pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' } pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.18' } -up-evm-mapping = { default-features = false, path = "../../primitives/evm-mapping" } +up-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } log = "0.4.14" [dependencies.codec] --- a/pallets/evm-transaction-payment/Cargo.toml +++ b/pallets/evm-transaction-payment/Cargo.toml @@ -18,7 +18,7 @@ fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.18' } -up-evm-mapping = { default-features = false, path = "../../primitives/evm-mapping" } +up-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } [dependencies.codec] default-features = false --- a/pallets/fungible/Cargo.toml +++ b/pallets/fungible/Cargo.toml @@ -25,6 +25,7 @@ scale-info = { version = "2.0.1", default-features = false, features = [ "derive", ] } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } [features] default = ["std"] --- a/pallets/fungible/src/erc.rs +++ b/pallets/fungible/src/erc.rs @@ -21,7 +21,7 @@ use pallet_common::erc::{CommonEvmHandler, PrecompileResult}; use sp_core::{H160, U256}; use sp_std::vec::Vec; -use pallet_common::account::CrossAccountId; +use frame_common::account::CrossAccountId; use pallet_evm_coder_substrate::{call, dispatch_to_evm}; use crate::{ --- a/pallets/fungible/src/lib.rs +++ b/pallets/fungible/src/lib.rs @@ -20,8 +20,9 @@ use frame_support::{ensure}; use up_data_structs::{AccessMode, CollectionId, TokenId, CreateCollectionData}; use pallet_common::{ - Error as CommonError, Event as CommonEvent, Pallet as PalletCommon, account::CrossAccountId, + Error as CommonError, Event as CommonEvent, Pallet as PalletCommon, }; +use frame_common::account::CrossAccountId; use pallet_evm_coder_substrate::WithRecorder; use sp_core::H160; use sp_runtime::{ArithmeticError, DispatchError, DispatchResult}; --- a/pallets/nonfungible/Cargo.toml +++ b/pallets/nonfungible/Cargo.toml @@ -25,6 +25,7 @@ scale-info = { version = "2.0.1", default-features = false, features = [ "derive", ] } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } [features] default = ["std"] --- a/pallets/nonfungible/src/erc.rs +++ b/pallets/nonfungible/src/erc.rs @@ -25,9 +25,9 @@ use sp_core::{H160, U256}; use sp_std::{vec::Vec, vec}; use pallet_common::{ - account::CrossAccountId, erc::{CommonEvmHandler, PrecompileResult}, }; +use frame_common::account::CrossAccountId; use pallet_evm_coder_substrate::call; use crate::{ --- a/pallets/nonfungible/src/lib.rs +++ b/pallets/nonfungible/src/lib.rs @@ -22,8 +22,9 @@ AccessMode, CollectionId, CustomDataLimit, TokenId, CreateCollectionData, CreateNftExData, }; use pallet_common::{ - Error as CommonError, Pallet as PalletCommon, Event as CommonEvent, account::CrossAccountId, + Error as CommonError, Pallet as PalletCommon, Event as CommonEvent, }; +use frame_common::account::CrossAccountId; use pallet_evm_coder_substrate::{SubstrateRecorder, WithRecorder}; use sp_core::H160; use sp_runtime::{ArithmeticError, DispatchError, DispatchResult}; --- a/pallets/refungible/Cargo.toml +++ b/pallets/refungible/Cargo.toml @@ -22,6 +22,7 @@ scale-info = { version = "2.0.1", default-features = false, features = [ "derive", ] } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } [features] default = ["std"] --- a/pallets/refungible/src/lib.rs +++ b/pallets/refungible/src/lib.rs @@ -22,8 +22,9 @@ CreateCollectionData, CreateRefungibleExData, }; use pallet_common::{ - Error as CommonError, Event as CommonEvent, Pallet as PalletCommon, account::CrossAccountId, + Error as CommonError, Event as CommonEvent, Pallet as PalletCommon, }; +use frame_common::account::CrossAccountId; use sp_runtime::{ArithmeticError, DispatchError, DispatchResult}; use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap}; use core::ops::Deref; --- a/pallets/unique/Cargo.toml +++ b/pallets/unique/Cargo.toml @@ -132,7 +132,8 @@ sp-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.18" } up-sponsorship = { version = "0.1.0", default-features = false, git = "https://github.com/UniqueNetwork/pallet-sponsoring", branch = 'polkadot-v0.9.18' } -up-evm-mapping = { default-features = false, path = "../../primitives/evm-mapping" } +up-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } evm-coder = { default-features = false, path = "../../crates/evm-coder" } pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" } primitive-types = { version = "0.11.1", default-features = false, features = [ --- a/pallets/unique/src/eth/sponsoring.rs +++ b/pallets/unique/src/eth/sponsoring.rs @@ -25,8 +25,7 @@ use core::marker::PhantomData; use core::convert::TryInto; use up_data_structs::TokenId; -use up_evm_mapping::EvmBackwardsAddressMapping; -use pallet_common::account::CrossAccountId; +use frame_common::account::CrossAccountId; use pallet_nonfungible::erc::{UniqueNFTCall, ERC721UniqueExtensionsCall, ERC721Call}; use pallet_fungible::erc::{UniqueFungibleCall, ERC20Call}; --- a/pallets/unique/src/lib.rs +++ b/pallets/unique/src/lib.rs @@ -54,9 +54,10 @@ CreateCollectionData, CustomDataLimit, CreateItemExData, }; use pallet_common::{ - account::CrossAccountId, CollectionHandle, Pallet as PalletCommon, Error as CommonError, + CollectionHandle, Pallet as PalletCommon, Error as CommonError, CommonWeightInfo, }; +use frame_common::account::CrossAccountId; use pallet_refungible::{Pallet as PalletRefungible, RefungibleHandle}; use pallet_fungible::{Pallet as PalletFungible, FungibleHandle}; use pallet_nonfungible::{Pallet as PalletNonfungible, NonfungibleHandle}; --- a/pallets/unique/src/mock.rs +++ b/pallets/unique/src/mock.rs @@ -26,7 +26,8 @@ use pallet_transaction_payment::{CurrencyAdapter}; use frame_system as system; use pallet_evm::{AddressMapping, runner::stack::MaybeMirroredLog}; -use pallet_common::account::{EvmBackwardsAddressMapping, CrossAccountId}; +use up_evm_mapping::EvmBackwardsAddressMapping; +use frame_common::account::CrossAccountId; use codec::{Encode, Decode, MaxEncodedLen}; use scale_info::TypeInfo; use up_data_structs::ConstU32; --- a/pallets/unique/src/sponsorship.rs +++ b/pallets/unique/src/sponsorship.rs @@ -30,7 +30,7 @@ NFT_SPONSOR_TRANSFER_TIMEOUT, REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT, TokenId, }; use pallet_common::{CollectionHandle}; -use pallet_common::account::CrossAccountId; +use frame_common::account::CrossAccountId; pub fn withdraw_transfer( collection: &CollectionHandle, --- a/primitives/evm-mapping/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "up-evm-mapping" -version = "0.1.0" -license = "GPLv3" -edition = "2021" - -[dependencies] -sp-core = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } -frame-support = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } - -[features] -default = ["std"] -std = ["sp-core/std", "frame-support/std"] --- a/primitives/evm-mapping/src/lib.rs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2019-2022 Unique Network (Gibraltar) Ltd. -// This file is part of Unique Network. - -// Unique Network is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Unique Network is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Unique Network. If not, see . - -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_support::sp_runtime::AccountId32; -use sp_core::H160; - -/// Transforms substrate addresses to ethereum (Reverse of `EvmAddressMapping`) -/// pallet_evm doesn't have this, as it only checks if eth address -/// is owned by substrate via `EnsureAddressOrigin` trait -/// -/// This trait implementations shouldn't conflict with used `EnsureAddressOrigin` -pub trait EvmBackwardsAddressMapping { - fn from_account_id(account_id: AccountId) -> H160; -} - -/// Should have same mapping as EnsureAddressTruncated -pub struct MapBackwardsAddressTruncated; -impl EvmBackwardsAddressMapping for MapBackwardsAddressTruncated { - fn from_account_id(account_id: AccountId32) -> H160 { - let mut out = [0; 20]; - out.copy_from_slice(&(account_id.as_ref() as &[u8])[0..20]); - H160(out) - } -} --- a/primitives/rpc/Cargo.toml +++ b/primitives/rpc/Cargo.toml @@ -14,6 +14,7 @@ sp-std = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } sp-api = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } sp-runtime = { default-features = false, git = 'https://github.com/paritytech/substrate.git', branch = 'polkadot-v0.9.18' } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } [features] default = ["std"] --- a/primitives/rpc/src/lib.rs +++ b/primitives/rpc/src/lib.rs @@ -28,7 +28,7 @@ #[api_version(2)] pub trait UniqueApi where AccountId: Decode, - CrossAccountId: pallet_common::account::CrossAccountId, + CrossAccountId: frame_common::account::CrossAccountId, { #[changed_in(2)] fn token_owner(collection: CollectionId, token: TokenId) -> Result; --- a/runtime/opal/src/lib.rs +++ b/runtime/opal/src/lib.rs @@ -116,11 +116,10 @@ pub const RUNTIME_NAME: &str = "Opal"; -type CrossAccountId = pallet_common::account::BasicCrossAccountId; +type CrossAccountId = frame_common::account::BasicCrossAccountId; impl RuntimeInstance for Runtime { type CrossAccountId = self::CrossAccountId; - type TransactionConverter = self::TransactionConverter; fn get_transaction_converter() -> TransactionConverter { @@ -286,6 +285,11 @@ type WeightInfo = pallet_evm_migration::weights::SubstrateWeight; } +impl frame_common::account::Config for Runtime { + type EvmAddressMapping = pallet_evm::HashedAddressMapping; + type EvmBackwardsAddressMapping = up_evm_mapping::MapBackwardsAddressTruncated; +} + pub struct EthereumFindAuthor(core::marker::PhantomData); impl> FindAuthor for EthereumFindAuthor { fn find_author<'a, I>(digests: I) -> Option @@ -846,7 +850,7 @@ type Event = Event; type EvmBackwardsAddressMapping = up_evm_mapping::MapBackwardsAddressTruncated; type EvmAddressMapping = HashedAddressMapping; - type CrossAccountId = pallet_common::account::BasicCrossAccountId; + type CrossAccountId = frame_common::account::BasicCrossAccountId; type Currency = Balances; type CollectionCreationPrice = CollectionCreationPrice; --- a/runtime/unique/Cargo.toml +++ b/runtime/unique/Cargo.toml @@ -382,7 +382,6 @@ derivative = "2.2.0" pallet-unique = { path = '../../pallets/unique', default-features = false } up-rpc = { path = "../../primitives/rpc", default-features = false } -up-evm-mapping = { path = "../../primitives/evm-mapping", default-features = false } pallet-inflation = { path = '../../pallets/inflation', default-features = false } up-data-structs = { path = '../../primitives/data-structs', default-features = false } pallet-common = { default-features = false, path = "../../pallets/common" } @@ -401,6 +400,8 @@ pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "unique-polkadot-v0.9.18" } +up-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } +frame-common = { default-features = false, git = "https://github.com/uniquenetwork/frontier.git", branch = "feature/300" } ################################################################################ # Build Dependencies