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

difftreelog

feat common construct_runtime, rmrk feature

Daniel Shiposha2022-08-01parent: #061bbd8.patch.diff
in: master

9 files changed

modifiedruntime/common/Cargo.tomldiffbeforeafterboth
--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -32,8 +32,10 @@
     'frame-support/runtime-benchmarks',
     'frame-system/runtime-benchmarks',
 ]
+
+opal-runtime = []
+quartz-runtime = []
 unique-runtime = []
-quartz-runtime = []
 
 refungible = []
 
modifiedruntime/common/src/lib.rsdiffbeforeafterboth
--- a/runtime/common/src/lib.rs
+++ b/runtime/common/src/lib.rs
@@ -23,3 +23,4 @@
 pub mod sponsoring;
 pub mod types;
 pub mod weights;
+pub mod construct_runtime;
modifiedruntime/common/src/runtime_apis.rsdiffbeforeafterboth
--- a/runtime/common/src/runtime_apis.rs
+++ b/runtime/common/src/runtime_apis.rs
@@ -154,6 +154,191 @@
                 }
             }
 
+            impl rmrk_rpc::RmrkApi<
+                Block,
+                AccountId,
+                RmrkCollectionInfo<AccountId>,
+                RmrkInstanceInfo<AccountId>,
+                RmrkResourceInfo,
+                RmrkPropertyInfo,
+                RmrkBaseInfo<AccountId>,
+                RmrkPartType,
+                RmrkTheme
+            > for Runtime {
+                fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>();
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default());
+                }
+
+                fn collection_by_id(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId
+                ) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn nft_by_id(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    nft_by_id: RmrkNftId
+                ) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn account_tokens(
+                    #[allow(unused_variables)]
+                    account_id: AccountId,
+
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId
+                ) -> Result<Vec<RmrkNftId>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn nft_children(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    nft_id: RmrkNftId
+                ) -> Result<Vec<RmrkNftChild>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn collection_properties(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    filter_keys: Option<Vec<RmrkPropertyKey>>
+                ) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn nft_properties(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    nft_id: RmrkNftId,
+
+                    #[allow(unused_variables)]
+                    filter_keys: Option<Vec<RmrkPropertyKey>>
+                ) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn nft_resources(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    nft_id: RmrkNftId
+                ) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn nft_resource_priority(
+                    #[allow(unused_variables)]
+                    collection_id: RmrkCollectionId,
+
+                    #[allow(unused_variables)]
+                    nft_id: RmrkNftId,
+
+                    #[allow(unused_variables)]
+                    resource_id: RmrkResourceId
+                ) -> Result<Option<u32>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn base(
+                    #[allow(unused_variables)]
+                    base_id: RmrkBaseId
+                ) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn base_parts(
+                    #[allow(unused_variables)]
+                    base_id: RmrkBaseId
+                ) -> Result<Vec<RmrkPartType>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+
+                fn theme_names(
+                    #[allow(unused_variables)]
+                    base_id: RmrkBaseId
+                ) -> Result<Vec<RmrkThemeName>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    Ok(Default::default())
+                }
+
+                fn theme(
+                    #[allow(unused_variables)]
+                    base_id: RmrkBaseId,
+
+                    #[allow(unused_variables)]
+                    theme_name: RmrkThemeName,
+
+                    #[allow(unused_variables)]
+                    filter_keys: Option<Vec<RmrkPropertyKey>>
+                ) -> Result<Option<RmrkTheme>, DispatchError> {
+                    #[cfg(feature = "rmrk")]
+                    return pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys);
+
+                    #[cfg(not(feature = "rmrk"))]
+                    return Ok(Default::default())
+                }
+            }
+
             impl sp_api::Core<Block> for Runtime {
                 fn version() -> RuntimeVersion {
                     VERSION
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -16,7 +16,7 @@
 targets = ['x86_64-unknown-linux-gnu']
 
 [features]
-default = ['std', 'new-functionality']
+default = ['std', 'opal-runtime']
 runtime-benchmarks = [
     'hex-literal',
     'frame-benchmarking',
@@ -119,9 +119,9 @@
     "orml-vesting/std",
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
-new-functionality = [
-    'unique-runtime-common/refungible',
-]
+opal-runtime = ['rmrk']
+
+rmrk = []
 
 ################################################################################
 # Substrate Dependencies
@@ -399,7 +399,7 @@
 
 [dependencies]
 log = { version = "0.4.16", default-features = false }
-unique-runtime-common = { path = "../common", default-features = false }
+unique-runtime-common = { path = "../common", default-features = false, features = ['refungible'] }
 scale-info = { version = "2.0.1", default-features = false, features = [
     "derive",
 ] }
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -54,7 +54,7 @@
 	OnMethodCall, Account as EVMAccount, FeeCalculator, GasWeightMapping,
 };
 pub use frame_support::{
-	construct_runtime, match_types,
+	match_types,
 	dispatch::DispatchResult,
 	PalletId, parameter_types, StorageValue, ConsensusEngineId,
 	traits::{
@@ -130,6 +130,7 @@
 //use xcm_executor::traits::MatchesFungible;
 
 use unique_runtime_common::{
+	construct_runtime,
 	impl_common_runtime_apis,
 	types::*,
 	constants::*,
@@ -910,11 +911,13 @@
 	type WeightInfo = pallet_nonfungible::weights::SubstrateWeight<Self>;
 }
 
+#[cfg(feature = "rmrk")]
 impl pallet_proxy_rmrk_core::Config for Runtime {
 	type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight<Self>;
 	type Event = Event;
 }
 
+#[cfg(feature = "rmrk")]
 impl pallet_proxy_rmrk_equip::Config for Runtime {
 	type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
 	type Event = Event;
@@ -1120,60 +1123,7 @@
 	type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
 }
 
-construct_runtime!(
-	pub enum Runtime where
-		Block = Block,
-		NodeBlock = opaque::Block,
-		UncheckedExtrinsic = UncheckedExtrinsic
-	{
-		ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
-		ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
-
-		Aura: pallet_aura::{Pallet, Config<T>} = 22,
-		AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,
-
-		Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,
-		RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,
-		Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 32,
-		TransactionPayment: pallet_transaction_payment::{Pallet, Storage} = 33,
-		Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
-		Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
-		System: frame_system::{Pallet, Call, Storage, Config, Event<T>} = 36,
-		Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
-		// Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,
-		// Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
-
-		// XCM helpers.
-		XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,
-		PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,
-		CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,
-		DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,
-
-		// Unique Pallets
-		Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
-		Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,
-		Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
-		// free = 63
-		Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,
-		// ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
-		Common: pallet_common::{Pallet, Storage, Event<T>} = 66,
-		Fungible: pallet_fungible::{Pallet, Storage} = 67,
-		Refungible: pallet_refungible::{Pallet, Storage} = 68,
-		Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
-		Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
-		RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,
-		RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,
-
-		// Frontier
-		EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,
-		Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,
-
-		EvmCoderSubstrate: pallet_evm_coder_substrate::{Pallet, Storage} = 150,
-		EvmContractHelpers: pallet_evm_contract_helpers::{Pallet, Storage} = 151,
-		EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
-		EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,
-	}
-);
+construct_runtime!();
 
 pub struct TransactionConverter;
 
@@ -1309,73 +1259,7 @@
 	}};
 }
 
-impl_common_runtime_apis! {
-	#![custom_apis]
-
-	impl rmrk_rpc::RmrkApi<
-		Block,
-		AccountId,
-		RmrkCollectionInfo<AccountId>,
-		RmrkInstanceInfo<AccountId>,
-		RmrkResourceInfo,
-		RmrkPropertyInfo,
-		RmrkBaseInfo<AccountId>,
-		RmrkPartType,
-		RmrkTheme
-	> for Runtime {
-		fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>()
-		}
-
-		fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id)
-		}
-
-		fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id)
-		}
-
-		fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id)
-		}
-
-		fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id)
-		}
-
-		fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys)
-		}
-
-		fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys)
-		}
-
-		fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id)
-		}
-
-		fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
-			pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id)
-		}
-
-		fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
-			pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id)
-		}
-
-		fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
-			pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id)
-		}
-
-		fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
-			pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id)
-		}
-
-		fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
-			pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys)
-		}
-	}
-}
+impl_common_runtime_apis!();
 
 struct CheckInherents;
 
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
before · runtime/quartz/Cargo.toml
1################################################################################2# Package34[package]5authors = ['Unique Network <support@uniquenetwork.io>']6build = 'build.rs'7description = 'Quartz Runtime'8edition = '2021'9homepage = 'https://unique.network'10license = 'GPLv3'11name = 'quartz-runtime'12repository = 'https://github.com/UniqueNetwork/unique-chain'13version = '0.9.24'1415[package.metadata.docs.rs]16targets = ['x86_64-unknown-linux-gnu']1718[features]19default = ['std', 'new-functionality']20runtime-benchmarks = [21    'hex-literal',22    'frame-benchmarking',23    'frame-support/runtime-benchmarks',24    'frame-system-benchmarking',25    'frame-system/runtime-benchmarks',26    'pallet-ethereum/runtime-benchmarks',27    'pallet-evm-migration/runtime-benchmarks',28    'pallet-evm-coder-substrate/runtime-benchmarks',29    'pallet-balances/runtime-benchmarks',30    'pallet-timestamp/runtime-benchmarks',31    'pallet-common/runtime-benchmarks',32    'pallet-structure/runtime-benchmarks',33    'pallet-fungible/runtime-benchmarks',34    'pallet-refungible/runtime-benchmarks',35    'pallet-nonfungible/runtime-benchmarks',36    'pallet-proxy-rmrk-core/runtime-benchmarks',37    'pallet-proxy-rmrk-equip/runtime-benchmarks',38    'pallet-unique/runtime-benchmarks',39    'pallet-inflation/runtime-benchmarks',40    'pallet-unique-scheduler/runtime-benchmarks',41    'pallet-xcm/runtime-benchmarks',42    'sp-runtime/runtime-benchmarks',43    'xcm-builder/runtime-benchmarks',44]45try-runtime = [46    'frame-try-runtime',47    'frame-executive/try-runtime',48    'frame-system/try-runtime',49]50std = [51    'codec/std',52    'cumulus-pallet-aura-ext/std',53    'cumulus-pallet-parachain-system/std',54    'cumulus-pallet-xcm/std',55    'cumulus-pallet-xcmp-queue/std',56    'cumulus-primitives-core/std',57    'cumulus-primitives-utility/std',58    'frame-try-runtime/std',59    'frame-executive/std',60    'frame-support/std',61    'frame-system/std',62    'frame-system-rpc-runtime-api/std',63    'pallet-aura/std',64    'pallet-balances/std',65    # 'pallet-contracts/std',66    # 'pallet-contracts-primitives/std',67    # 'pallet-contracts-rpc-runtime-api/std',68    # 'pallet-contract-helpers/std',69    'pallet-randomness-collective-flip/std',70    'pallet-sudo/std',71    'pallet-timestamp/std',72    'pallet-transaction-payment/std',73    'pallet-transaction-payment-rpc-runtime-api/std',74    'pallet-treasury/std',75    # 'pallet-vesting/std',76    'pallet-evm/std',77    'pallet-evm-migration/std',78    'pallet-evm-contract-helpers/std',79    'pallet-evm-transaction-payment/std',80    'pallet-evm-coder-substrate/std',81    'pallet-ethereum/std',82    'pallet-base-fee/std',83    'fp-rpc/std',84    'up-rpc/std',85    'fp-evm-mapping/std',86    'fp-self-contained/std',87    'parachain-info/std',88    'serde',89    'pallet-inflation/std',90    'pallet-common/std',91    'pallet-structure/std',92    'pallet-fungible/std',93    'pallet-refungible/std',94    'pallet-nonfungible/std',95    'pallet-proxy-rmrk-core/std',96    'pallet-proxy-rmrk-equip/std',97    'pallet-unique/std',98    'pallet-unique-scheduler/std',99    'pallet-charge-transaction/std',100    'up-data-structs/std',101    'sp-api/std',102    'sp-block-builder/std',103    "sp-consensus-aura/std",104    'sp-core/std',105    'sp-inherents/std',106    'sp-io/std',107    'sp-offchain/std',108    'sp-runtime/std',109    'sp-session/std',110    'sp-std/std',111    'sp-transaction-pool/std',112    'sp-version/std',113    'xcm/std',114    'xcm-builder/std',115    'xcm-executor/std',116    'unique-runtime-common/std',117118    "orml-vesting/std",119]120limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']121new-functionality = []122123################################################################################124# Substrate Dependencies125126[dependencies.codec]127default-features = false128features = ['derive']129package = 'parity-scale-codec'130version = '3.1.2'131132[dependencies.frame-benchmarking]133default-features = false134git = "https://github.com/paritytech/substrate"135optional = true136branch = "polkadot-v0.9.24"137138[dependencies.frame-try-runtime]139default-features = false140git = 'https://github.com/paritytech/substrate'141optional = true142branch = 'polkadot-v0.9.24'143144[dependencies.frame-executive]145default-features = false146git = "https://github.com/paritytech/substrate"147branch = "polkadot-v0.9.24"148149[dependencies.frame-support]150default-features = false151git = "https://github.com/paritytech/substrate"152branch = "polkadot-v0.9.24"153154[dependencies.frame-system]155default-features = false156git = "https://github.com/paritytech/substrate"157branch = "polkadot-v0.9.24"158159[dependencies.frame-system-benchmarking]160default-features = false161git = "https://github.com/paritytech/substrate"162optional = true163branch = "polkadot-v0.9.24"164165[dependencies.frame-system-rpc-runtime-api]166default-features = false167git = "https://github.com/paritytech/substrate"168branch = "polkadot-v0.9.24"169170[dependencies.hex-literal]171optional = true172version = '0.3.3'173174[dependencies.serde]175default-features = false176features = ['derive']177optional = true178version = '1.0.130'179180[dependencies.pallet-aura]181default-features = false182git = "https://github.com/paritytech/substrate"183branch = "polkadot-v0.9.24"184185[dependencies.pallet-balances]186default-features = false187git = "https://github.com/paritytech/substrate"188branch = "polkadot-v0.9.24"189190# Contracts specific packages191# [dependencies.pallet-contracts]192# git = 'https://github.com/paritytech/substrate'193# default-features = false194# branch = 'master'195# version = '4.0.0-dev'196197# [dependencies.pallet-contracts-primitives]198# git = 'https://github.com/paritytech/substrate'199# default-features = false200# branch = 'master'201# version = '4.0.0-dev'202203# [dependencies.pallet-contracts-rpc-runtime-api]204# git = 'https://github.com/paritytech/substrate'205# default-features = false206# branch = 'master'207# version = '4.0.0-dev'208209[dependencies.pallet-randomness-collective-flip]210default-features = false211git = "https://github.com/paritytech/substrate"212branch = "polkadot-v0.9.24"213214[dependencies.pallet-sudo]215default-features = false216git = "https://github.com/paritytech/substrate"217branch = "polkadot-v0.9.24"218219[dependencies.pallet-timestamp]220default-features = false221git = "https://github.com/paritytech/substrate"222branch = "polkadot-v0.9.24"223224[dependencies.pallet-transaction-payment]225default-features = false226git = "https://github.com/paritytech/substrate"227branch = "polkadot-v0.9.24"228229[dependencies.pallet-transaction-payment-rpc-runtime-api]230default-features = false231git = "https://github.com/paritytech/substrate"232branch = "polkadot-v0.9.24"233234[dependencies.pallet-treasury]235default-features = false236git = "https://github.com/paritytech/substrate"237branch = "polkadot-v0.9.24"238239# [dependencies.pallet-vesting]240# default-features = false241# git = 'https://github.com/paritytech/substrate'242# branch = 'master'243244[dependencies.sp-arithmetic]245default-features = false246git = "https://github.com/paritytech/substrate"247branch = "polkadot-v0.9.24"248249[dependencies.sp-api]250default-features = false251git = "https://github.com/paritytech/substrate"252branch = "polkadot-v0.9.24"253254[dependencies.sp-block-builder]255default-features = false256git = "https://github.com/paritytech/substrate"257branch = "polkadot-v0.9.24"258259[dependencies.sp-core]260default-features = false261git = "https://github.com/paritytech/substrate"262branch = "polkadot-v0.9.24"263264[dependencies.sp-consensus-aura]265default-features = false266git = "https://github.com/paritytech/substrate"267branch = "polkadot-v0.9.24"268269[dependencies.sp-inherents]270default-features = false271git = "https://github.com/paritytech/substrate"272branch = "polkadot-v0.9.24"273274[dependencies.sp-io]275default-features = false276git = "https://github.com/paritytech/substrate"277branch = "polkadot-v0.9.24"278279[dependencies.sp-offchain]280default-features = false281git = "https://github.com/paritytech/substrate"282branch = "polkadot-v0.9.24"283284[dependencies.sp-runtime]285default-features = false286git = "https://github.com/paritytech/substrate"287branch = "polkadot-v0.9.24"288289[dependencies.sp-session]290default-features = false291git = "https://github.com/paritytech/substrate"292branch = "polkadot-v0.9.24"293294[dependencies.sp-std]295default-features = false296git = "https://github.com/paritytech/substrate"297branch = "polkadot-v0.9.24"298299[dependencies.sp-transaction-pool]300default-features = false301git = "https://github.com/paritytech/substrate"302branch = "polkadot-v0.9.24"303304[dependencies.sp-version]305default-features = false306git = "https://github.com/paritytech/substrate"307branch = "polkadot-v0.9.24"308309[dependencies.smallvec]310version = '1.6.1'311312################################################################################313# Cumulus dependencies314315[dependencies.parachain-info]316default-features = false317git = "https://github.com/paritytech/cumulus"318branch = "polkadot-v0.9.24"319320[dependencies.cumulus-pallet-aura-ext]321git = "https://github.com/paritytech/cumulus"322branch = "polkadot-v0.9.24"323default-features = false324325[dependencies.cumulus-pallet-parachain-system]326git = "https://github.com/paritytech/cumulus"327branch = "polkadot-v0.9.24"328default-features = false329330[dependencies.cumulus-primitives-core]331git = "https://github.com/paritytech/cumulus"332branch = "polkadot-v0.9.24"333default-features = false334335[dependencies.cumulus-pallet-xcm]336git = "https://github.com/paritytech/cumulus"337branch = "polkadot-v0.9.24"338default-features = false339340[dependencies.cumulus-pallet-dmp-queue]341git = "https://github.com/paritytech/cumulus"342branch = "polkadot-v0.9.24"343default-features = false344345[dependencies.cumulus-pallet-xcmp-queue]346git = "https://github.com/paritytech/cumulus"347branch = "polkadot-v0.9.24"348default-features = false349350[dependencies.cumulus-primitives-utility]351git = "https://github.com/paritytech/cumulus"352branch = "polkadot-v0.9.24"353default-features = false354355[dependencies.cumulus-primitives-timestamp]356git = "https://github.com/paritytech/cumulus"357branch = "polkadot-v0.9.24"358default-features = false359360################################################################################361# Polkadot dependencies362363[dependencies.polkadot-parachain]364git = "https://github.com/paritytech/polkadot"365branch = "release-v0.9.24"366default-features = false367368[dependencies.xcm]369git = "https://github.com/paritytech/polkadot"370branch = "release-v0.9.24"371default-features = false372373[dependencies.xcm-builder]374git = "https://github.com/paritytech/polkadot"375branch = "release-v0.9.24"376default-features = false377378[dependencies.xcm-executor]379git = "https://github.com/paritytech/polkadot"380branch = "release-v0.9.24"381default-features = false382383[dependencies.pallet-xcm]384git = "https://github.com/paritytech/polkadot"385branch = "release-v0.9.24"386default-features = false387388[dependencies.orml-vesting]389git = "https://github.com/uniquenetwork/open-runtime-module-library"390branch = "unique-polkadot-v0.9.24"391version = "0.4.1-dev"392default-features = false393394################################################################################395# RMRK dependencies396397# todo git398[dependencies.rmrk-rpc]399default-features = false400path = "../../primitives/rmrk-rpc"401402################################################################################403# local dependencies404405[dependencies]406log = { version = "0.4.16", default-features = false }407unique-runtime-common = { path = "../common", default-features = false }408scale-info = { version = "2.0.1", default-features = false, features = [409    "derive",410] }411derivative = "2.2.0"412pallet-unique = { path = '../../pallets/unique', default-features = false }413up-rpc = { path = "../../primitives/rpc", default-features = false }414fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }415pallet-inflation = { path = '../../pallets/inflation', default-features = false }416up-data-structs = { path = '../../primitives/data-structs', default-features = false }417pallet-common = { default-features = false, path = "../../pallets/common" }418pallet-structure = { default-features = false, path = "../../pallets/structure" }419pallet-fungible = { default-features = false, path = "../../pallets/fungible" }420pallet-refungible = { default-features = false, path = "../../pallets/refungible" }421pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }422pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }423pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }424pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }425# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }426pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.24", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }427pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }428pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }429pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }430pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }431pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }432pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }433pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }434fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }435fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }436437################################################################################438# Build Dependencies439440[build-dependencies.substrate-wasm-builder]441git = "https://github.com/paritytech/substrate"442branch = "polkadot-v0.9.24"
after · runtime/quartz/Cargo.toml
1################################################################################2# Package34[package]5authors = ['Unique Network <support@uniquenetwork.io>']6build = 'build.rs'7description = 'Quartz Runtime'8edition = '2021'9homepage = 'https://unique.network'10license = 'GPLv3'11name = 'quartz-runtime'12repository = 'https://github.com/UniqueNetwork/unique-chain'13version = '0.9.24'1415[package.metadata.docs.rs]16targets = ['x86_64-unknown-linux-gnu']1718[features]19default = ['std', 'quartz-runtime']20runtime-benchmarks = [21    'hex-literal',22    'frame-benchmarking',23    'frame-support/runtime-benchmarks',24    'frame-system-benchmarking',25    'frame-system/runtime-benchmarks',26    'pallet-ethereum/runtime-benchmarks',27    'pallet-evm-migration/runtime-benchmarks',28    'pallet-evm-coder-substrate/runtime-benchmarks',29    'pallet-balances/runtime-benchmarks',30    'pallet-timestamp/runtime-benchmarks',31    'pallet-common/runtime-benchmarks',32    'pallet-structure/runtime-benchmarks',33    'pallet-fungible/runtime-benchmarks',34    'pallet-refungible/runtime-benchmarks',35    'pallet-nonfungible/runtime-benchmarks',36    'pallet-proxy-rmrk-core/runtime-benchmarks',37    'pallet-proxy-rmrk-equip/runtime-benchmarks',38    'pallet-unique/runtime-benchmarks',39    'pallet-inflation/runtime-benchmarks',40    'pallet-unique-scheduler/runtime-benchmarks',41    'pallet-xcm/runtime-benchmarks',42    'sp-runtime/runtime-benchmarks',43    'xcm-builder/runtime-benchmarks',44]45try-runtime = [46    'frame-try-runtime',47    'frame-executive/try-runtime',48    'frame-system/try-runtime',49]50std = [51    'codec/std',52    'cumulus-pallet-aura-ext/std',53    'cumulus-pallet-parachain-system/std',54    'cumulus-pallet-xcm/std',55    'cumulus-pallet-xcmp-queue/std',56    'cumulus-primitives-core/std',57    'cumulus-primitives-utility/std',58    'frame-try-runtime/std',59    'frame-executive/std',60    'frame-support/std',61    'frame-system/std',62    'frame-system-rpc-runtime-api/std',63    'pallet-aura/std',64    'pallet-balances/std',65    # 'pallet-contracts/std',66    # 'pallet-contracts-primitives/std',67    # 'pallet-contracts-rpc-runtime-api/std',68    # 'pallet-contract-helpers/std',69    'pallet-randomness-collective-flip/std',70    'pallet-sudo/std',71    'pallet-timestamp/std',72    'pallet-transaction-payment/std',73    'pallet-transaction-payment-rpc-runtime-api/std',74    'pallet-treasury/std',75    # 'pallet-vesting/std',76    'pallet-evm/std',77    'pallet-evm-migration/std',78    'pallet-evm-contract-helpers/std',79    'pallet-evm-transaction-payment/std',80    'pallet-evm-coder-substrate/std',81    'pallet-ethereum/std',82    'pallet-base-fee/std',83    'fp-rpc/std',84    'up-rpc/std',85    'fp-evm-mapping/std',86    'fp-self-contained/std',87    'parachain-info/std',88    'serde',89    'pallet-inflation/std',90    'pallet-common/std',91    'pallet-structure/std',92    'pallet-fungible/std',93    'pallet-refungible/std',94    'pallet-nonfungible/std',95    'pallet-proxy-rmrk-core/std',96    'pallet-proxy-rmrk-equip/std',97    'pallet-unique/std',98    'pallet-unique-scheduler/std',99    'pallet-charge-transaction/std',100    'up-data-structs/std',101    'sp-api/std',102    'sp-block-builder/std',103    "sp-consensus-aura/std",104    'sp-core/std',105    'sp-inherents/std',106    'sp-io/std',107    'sp-offchain/std',108    'sp-runtime/std',109    'sp-session/std',110    'sp-std/std',111    'sp-transaction-pool/std',112    'sp-version/std',113    'xcm/std',114    'xcm-builder/std',115    'xcm-executor/std',116    'unique-runtime-common/std',117118    "orml-vesting/std",119]120limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']121quartz-runtime = []122123rmrk = []124125################################################################################126# Substrate Dependencies127128[dependencies.codec]129default-features = false130features = ['derive']131package = 'parity-scale-codec'132version = '3.1.2'133134[dependencies.frame-benchmarking]135default-features = false136git = "https://github.com/paritytech/substrate"137optional = true138branch = "polkadot-v0.9.24"139140[dependencies.frame-try-runtime]141default-features = false142git = 'https://github.com/paritytech/substrate'143optional = true144branch = 'polkadot-v0.9.24'145146[dependencies.frame-executive]147default-features = false148git = "https://github.com/paritytech/substrate"149branch = "polkadot-v0.9.24"150151[dependencies.frame-support]152default-features = false153git = "https://github.com/paritytech/substrate"154branch = "polkadot-v0.9.24"155156[dependencies.frame-system]157default-features = false158git = "https://github.com/paritytech/substrate"159branch = "polkadot-v0.9.24"160161[dependencies.frame-system-benchmarking]162default-features = false163git = "https://github.com/paritytech/substrate"164optional = true165branch = "polkadot-v0.9.24"166167[dependencies.frame-system-rpc-runtime-api]168default-features = false169git = "https://github.com/paritytech/substrate"170branch = "polkadot-v0.9.24"171172[dependencies.hex-literal]173optional = true174version = '0.3.3'175176[dependencies.serde]177default-features = false178features = ['derive']179optional = true180version = '1.0.130'181182[dependencies.pallet-aura]183default-features = false184git = "https://github.com/paritytech/substrate"185branch = "polkadot-v0.9.24"186187[dependencies.pallet-balances]188default-features = false189git = "https://github.com/paritytech/substrate"190branch = "polkadot-v0.9.24"191192# Contracts specific packages193# [dependencies.pallet-contracts]194# git = 'https://github.com/paritytech/substrate'195# default-features = false196# branch = 'master'197# version = '4.0.0-dev'198199# [dependencies.pallet-contracts-primitives]200# git = 'https://github.com/paritytech/substrate'201# default-features = false202# branch = 'master'203# version = '4.0.0-dev'204205# [dependencies.pallet-contracts-rpc-runtime-api]206# git = 'https://github.com/paritytech/substrate'207# default-features = false208# branch = 'master'209# version = '4.0.0-dev'210211[dependencies.pallet-randomness-collective-flip]212default-features = false213git = "https://github.com/paritytech/substrate"214branch = "polkadot-v0.9.24"215216[dependencies.pallet-sudo]217default-features = false218git = "https://github.com/paritytech/substrate"219branch = "polkadot-v0.9.24"220221[dependencies.pallet-timestamp]222default-features = false223git = "https://github.com/paritytech/substrate"224branch = "polkadot-v0.9.24"225226[dependencies.pallet-transaction-payment]227default-features = false228git = "https://github.com/paritytech/substrate"229branch = "polkadot-v0.9.24"230231[dependencies.pallet-transaction-payment-rpc-runtime-api]232default-features = false233git = "https://github.com/paritytech/substrate"234branch = "polkadot-v0.9.24"235236[dependencies.pallet-treasury]237default-features = false238git = "https://github.com/paritytech/substrate"239branch = "polkadot-v0.9.24"240241# [dependencies.pallet-vesting]242# default-features = false243# git = 'https://github.com/paritytech/substrate'244# branch = 'master'245246[dependencies.sp-arithmetic]247default-features = false248git = "https://github.com/paritytech/substrate"249branch = "polkadot-v0.9.24"250251[dependencies.sp-api]252default-features = false253git = "https://github.com/paritytech/substrate"254branch = "polkadot-v0.9.24"255256[dependencies.sp-block-builder]257default-features = false258git = "https://github.com/paritytech/substrate"259branch = "polkadot-v0.9.24"260261[dependencies.sp-core]262default-features = false263git = "https://github.com/paritytech/substrate"264branch = "polkadot-v0.9.24"265266[dependencies.sp-consensus-aura]267default-features = false268git = "https://github.com/paritytech/substrate"269branch = "polkadot-v0.9.24"270271[dependencies.sp-inherents]272default-features = false273git = "https://github.com/paritytech/substrate"274branch = "polkadot-v0.9.24"275276[dependencies.sp-io]277default-features = false278git = "https://github.com/paritytech/substrate"279branch = "polkadot-v0.9.24"280281[dependencies.sp-offchain]282default-features = false283git = "https://github.com/paritytech/substrate"284branch = "polkadot-v0.9.24"285286[dependencies.sp-runtime]287default-features = false288git = "https://github.com/paritytech/substrate"289branch = "polkadot-v0.9.24"290291[dependencies.sp-session]292default-features = false293git = "https://github.com/paritytech/substrate"294branch = "polkadot-v0.9.24"295296[dependencies.sp-std]297default-features = false298git = "https://github.com/paritytech/substrate"299branch = "polkadot-v0.9.24"300301[dependencies.sp-transaction-pool]302default-features = false303git = "https://github.com/paritytech/substrate"304branch = "polkadot-v0.9.24"305306[dependencies.sp-version]307default-features = false308git = "https://github.com/paritytech/substrate"309branch = "polkadot-v0.9.24"310311[dependencies.smallvec]312version = '1.6.1'313314################################################################################315# Cumulus dependencies316317[dependencies.parachain-info]318default-features = false319git = "https://github.com/paritytech/cumulus"320branch = "polkadot-v0.9.24"321322[dependencies.cumulus-pallet-aura-ext]323git = "https://github.com/paritytech/cumulus"324branch = "polkadot-v0.9.24"325default-features = false326327[dependencies.cumulus-pallet-parachain-system]328git = "https://github.com/paritytech/cumulus"329branch = "polkadot-v0.9.24"330default-features = false331332[dependencies.cumulus-primitives-core]333git = "https://github.com/paritytech/cumulus"334branch = "polkadot-v0.9.24"335default-features = false336337[dependencies.cumulus-pallet-xcm]338git = "https://github.com/paritytech/cumulus"339branch = "polkadot-v0.9.24"340default-features = false341342[dependencies.cumulus-pallet-dmp-queue]343git = "https://github.com/paritytech/cumulus"344branch = "polkadot-v0.9.24"345default-features = false346347[dependencies.cumulus-pallet-xcmp-queue]348git = "https://github.com/paritytech/cumulus"349branch = "polkadot-v0.9.24"350default-features = false351352[dependencies.cumulus-primitives-utility]353git = "https://github.com/paritytech/cumulus"354branch = "polkadot-v0.9.24"355default-features = false356357[dependencies.cumulus-primitives-timestamp]358git = "https://github.com/paritytech/cumulus"359branch = "polkadot-v0.9.24"360default-features = false361362################################################################################363# Polkadot dependencies364365[dependencies.polkadot-parachain]366git = "https://github.com/paritytech/polkadot"367branch = "release-v0.9.24"368default-features = false369370[dependencies.xcm]371git = "https://github.com/paritytech/polkadot"372branch = "release-v0.9.24"373default-features = false374375[dependencies.xcm-builder]376git = "https://github.com/paritytech/polkadot"377branch = "release-v0.9.24"378default-features = false379380[dependencies.xcm-executor]381git = "https://github.com/paritytech/polkadot"382branch = "release-v0.9.24"383default-features = false384385[dependencies.pallet-xcm]386git = "https://github.com/paritytech/polkadot"387branch = "release-v0.9.24"388default-features = false389390[dependencies.orml-vesting]391git = "https://github.com/uniquenetwork/open-runtime-module-library"392branch = "unique-polkadot-v0.9.24"393version = "0.4.1-dev"394default-features = false395396################################################################################397# RMRK dependencies398399# todo git400[dependencies.rmrk-rpc]401default-features = false402path = "../../primitives/rmrk-rpc"403404################################################################################405# local dependencies406407[dependencies]408log = { version = "0.4.16", default-features = false }409unique-runtime-common = { path = "../common", default-features = false }410scale-info = { version = "2.0.1", default-features = false, features = [411    "derive",412] }413derivative = "2.2.0"414pallet-unique = { path = '../../pallets/unique', default-features = false }415up-rpc = { path = "../../primitives/rpc", default-features = false }416fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }417pallet-inflation = { path = '../../pallets/inflation', default-features = false }418up-data-structs = { path = '../../primitives/data-structs', default-features = false }419pallet-common = { default-features = false, path = "../../pallets/common" }420pallet-structure = { default-features = false, path = "../../pallets/structure" }421pallet-fungible = { default-features = false, path = "../../pallets/fungible" }422pallet-refungible = { default-features = false, path = "../../pallets/refungible" }423pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }424pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }425pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }426pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }427# pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }428pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.24", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }429pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }430pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }431pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }432pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }433pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }434pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }435pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }436fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }437fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }438439################################################################################440# Build Dependencies441442[build-dependencies.substrate-wasm-builder]443git = "https://github.com/paritytech/substrate"444branch = "polkadot-v0.9.24"
modifiedruntime/quartz/src/lib.rsdiffbeforeafterboth
--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -54,7 +54,7 @@
 	OnMethodCall, Account as EVMAccount, FeeCalculator, GasWeightMapping,
 };
 pub use frame_support::{
-	construct_runtime, match_types,
+	match_types,
 	dispatch::DispatchResult,
 	PalletId, parameter_types, StorageValue, ConsensusEngineId,
 	traits::{
@@ -128,6 +128,7 @@
 use xcm_executor::traits::{MatchesFungible, WeightTrader};
 
 use unique_runtime_common::{
+	construct_runtime,
 	impl_common_runtime_apis,
 	types::*,
 	constants::*,
@@ -909,15 +910,17 @@
 	type WeightInfo = pallet_nonfungible::weights::SubstrateWeight<Self>;
 }
 
-// impl pallet_proxy_rmrk_core::Config for Runtime {
-// 	type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight<Self>;
-// 	type Event = Event;
-// }
+#[cfg(feature = "rmrk")]
+impl pallet_proxy_rmrk_core::Config for Runtime {
+	type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight<Self>;
+	type Event = Event;
+}
 
-// impl pallet_proxy_rmrk_equip::Config for Runtime {
-// 	type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
-// 	type Event = Event;
-// }
+#[cfg(feature = "rmrk")]
+impl pallet_proxy_rmrk_equip::Config for Runtime {
+	type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
+	type Event = Event;
+}
 
 impl pallet_unique::Config for Runtime {
 	type Event = Event;
@@ -1118,61 +1121,8 @@
 	type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
 }
 
-construct_runtime!(
-	pub enum Runtime where
-		Block = Block,
-		NodeBlock = opaque::Block,
-		UncheckedExtrinsic = UncheckedExtrinsic
-	{
-		ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
-		ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
-
-		Aura: pallet_aura::{Pallet, Config<T>} = 22,
-		AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,
-
-		Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,
-		RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,
-		Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 32,
-		TransactionPayment: pallet_transaction_payment::{Pallet, Storage} = 33,
-		Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
-		Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
-		System: frame_system::{Pallet, Call, Storage, Config, Event<T>} = 36,
-		Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
-		// Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,
-		// Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
-
-		// XCM helpers.
-		XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,
-		PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,
-		CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,
-		DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,
+construct_runtime!();
 
-		// Unique Pallets
-		Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
-		Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,
-		// Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
-		// free = 63
-		Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,
-		// ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
-		Common: pallet_common::{Pallet, Storage, Event<T>} = 66,
-		Fungible: pallet_fungible::{Pallet, Storage} = 67,
-		// Refungible: pallet_refungible::{Pallet, Storage} = 68,
-		Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
-		Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
-		// RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,
-		// RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,
-
-		// Frontier
-		EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,
-		Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,
-
-		EvmCoderSubstrate: pallet_evm_coder_substrate::{Pallet, Storage} = 150,
-		EvmContractHelpers: pallet_evm_contract_helpers::{Pallet, Storage} = 151,
-		EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
-		EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,
-	}
-);
-
 pub struct TransactionConverter;
 
 impl fp_rpc::ConvertTransaction<UncheckedExtrinsic> for TransactionConverter {
@@ -1308,129 +1258,8 @@
 		Ok::<_, DispatchError>(dispatch.$method($($name),*))
 	}};
 }
-
-impl_common_runtime_apis! {
-	#![custom_apis]
 
-	impl rmrk_rpc::RmrkApi<
-		Block,
-		AccountId,
-		RmrkCollectionInfo<AccountId>,
-		RmrkInstanceInfo<AccountId>,
-		RmrkResourceInfo,
-		RmrkPropertyInfo,
-		RmrkBaseInfo<AccountId>,
-		RmrkPartType,
-		RmrkTheme
-	> for Runtime {
-		
-		// fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::last_collection_idx::<Runtime>()
-		// }
-
-		// fn collection_by_id(collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::collection_by_id::<Runtime>(collection_id)
-		// }
-
-		// fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::nft_by_id::<Runtime>(collection_id, nft_by_id)
-		// }
-
-		// fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::account_tokens::<Runtime>(account_id, collection_id)
-		// }
-
-		// fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::nft_children::<Runtime>(collection_id, nft_id)
-		// }
-
-		// fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::collection_properties::<Runtime>(collection_id, filter_keys)
-		// }
-
-		// fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::nft_properties::<Runtime>(collection_id, nft_id, filter_keys)
-		// }
-
-		// fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::nft_resources::<Runtime>(collection_id, nft_id)
-		// }
-
-		// fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
-		// 	pallet_proxy_rmrk_core::rpc::nft_resource_priority::<Runtime>(collection_id, nft_id, resource_id)
-		// }
-
-		// fn base(base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
-		// 	pallet_proxy_rmrk_equip::rpc::base::<Runtime>(base_id)
-		// }
-
-		// fn base_parts(base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
-		// 	pallet_proxy_rmrk_equip::rpc::base_parts::<Runtime>(base_id)
-		// }
-
-		// fn theme_names(base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
-		// 	pallet_proxy_rmrk_equip::rpc::theme_names::<Runtime>(base_id)
-		// }
-
-		// fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
-		// 	pallet_proxy_rmrk_equip::rpc::theme::<Runtime>(base_id, theme_name, filter_keys)
-		// }
-		
-		fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn collection_by_id(_collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_by_id(_collection_id: RmrkCollectionId, _nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn account_tokens(_account_id: AccountId, _collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_children(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn collection_properties(_collection_id: RmrkCollectionId, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_properties(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_resources(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_resource_priority(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn base(_base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn base_parts(_base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn theme_names(_base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn theme(_base_id: RmrkBaseId, _theme_name: RmrkThemeName, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
-			Ok(Default::default())
-		}
-		
-		
-	}
-}
+impl_common_runtime_apis!();
 
 struct CheckInherents;
 
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -16,7 +16,7 @@
 targets = ['x86_64-unknown-linux-gnu']
 
 [features]
-default = ['std', 'new-functionality']
+default = ['std', 'unique-runtime']
 runtime-benchmarks = [
     'hex-literal',
     'frame-benchmarking',
@@ -119,7 +119,7 @@
     "orml-vesting/std",
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
-new-functionality = []
+unique-runtime = []
 
 ################################################################################
 # Substrate Dependencies
modifiedruntime/unique/src/lib.rsdiffbeforeafterboth
--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -54,7 +54,7 @@
 	OnMethodCall, Account as EVMAccount, FeeCalculator, GasWeightMapping,
 };
 pub use frame_support::{
-	construct_runtime, match_types,
+	match_types,
 	dispatch::DispatchResult,
 	PalletId, parameter_types, StorageValue, ConsensusEngineId,
 	traits::{
@@ -128,6 +128,7 @@
 use xcm_executor::traits::{MatchesFungible, WeightTrader};
 
 use unique_runtime_common::{
+	construct_runtime,
 	impl_common_runtime_apis,
 	types::*,
 	constants::*,
@@ -910,6 +911,18 @@
 	type WeightInfo = pallet_nonfungible::weights::SubstrateWeight<Self>;
 }
 
+#[cfg(feature = "rmrk")]
+impl pallet_proxy_rmrk_core::Config for Runtime {
+	type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight<Self>;
+	type Event = Event;
+}
+
+#[cfg(feature = "rmrk")]
+impl pallet_proxy_rmrk_equip::Config for Runtime {
+	type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight<Self>;
+	type Event = Event;
+}
+
 impl pallet_unique::Config for Runtime {
 	type Event = Event;
 	type WeightInfo = pallet_unique::weights::SubstrateWeight<Self>;
@@ -1109,58 +1122,7 @@
 	type DefaultSponsoringRateLimit = DefaultSponsoringRateLimit;
 }
 
-construct_runtime!(
-	pub enum Runtime where
-		Block = Block,
-		NodeBlock = opaque::Block,
-		UncheckedExtrinsic = UncheckedExtrinsic
-	{
-		ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
-		ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
-
-		Aura: pallet_aura::{Pallet, Config<T>} = 22,
-		AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23,
-
-		Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>} = 30,
-		RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 31,
-		Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 32,
-		TransactionPayment: pallet_transaction_payment::{Pallet, Storage} = 33,
-		Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
-		Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
-		System: frame_system::{Pallet, Call, Storage, Config, Event<T>} = 36,
-		Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
-		// Vesting: pallet_vesting::{Pallet, Call, Config<T>, Storage, Event<T>} = 37,
-		// Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
-
-		// XCM helpers.
-		XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event<T>} = 50,
-		PolkadotXcm: pallet_xcm::{Pallet, Call, Event<T>, Origin} = 51,
-		CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event<T>, Origin} = 52,
-		DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event<T>} = 53,
-
-		// Unique Pallets
-		Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
-		Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,
-		// Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
-		// free = 63
-		Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,
-		// ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
-		Common: pallet_common::{Pallet, Storage, Event<T>} = 66,
-		Fungible: pallet_fungible::{Pallet, Storage} = 67,
-		// Refungible: pallet_refungible::{Pallet, Storage} = 68,
-		Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
-		Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
-
-		// Frontier
-		EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>} = 100,
-		Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin} = 101,
-
-		EvmCoderSubstrate: pallet_evm_coder_substrate::{Pallet, Storage} = 150,
-		EvmContractHelpers: pallet_evm_contract_helpers::{Pallet, Storage} = 151,
-		EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
-		EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,
-	}
-);
+construct_runtime!();
 
 pub struct TransactionConverter;
 
@@ -1297,73 +1259,7 @@
 	}};
 }
 
-impl_common_runtime_apis! {
-	#![custom_apis]
-
-	impl rmrk_rpc::RmrkApi<
-		Block,
-		AccountId,
-		RmrkCollectionInfo<AccountId>,
-		RmrkInstanceInfo<AccountId>,
-		RmrkResourceInfo,
-		RmrkPropertyInfo,
-		RmrkBaseInfo<AccountId>,
-		RmrkPartType,
-		RmrkTheme
-	> for Runtime {
-		fn last_collection_idx() -> Result<RmrkCollectionId, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn collection_by_id(_collection_id: RmrkCollectionId) -> Result<Option<RmrkCollectionInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_by_id(_collection_id: RmrkCollectionId, _nft_by_id: RmrkNftId) -> Result<Option<RmrkInstanceInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn account_tokens(_account_id: AccountId, _collection_id: RmrkCollectionId) -> Result<Vec<RmrkNftId>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_children(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result<Vec<RmrkNftChild>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn collection_properties(_collection_id: RmrkCollectionId, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_properties(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Vec<RmrkPropertyInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_resources(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result<Vec<RmrkResourceInfo>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn nft_resource_priority(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _resource_id: RmrkResourceId) -> Result<Option<u32>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn base(_base_id: RmrkBaseId) -> Result<Option<RmrkBaseInfo<AccountId>>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn base_parts(_base_id: RmrkBaseId) -> Result<Vec<RmrkPartType>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn theme_names(_base_id: RmrkBaseId) -> Result<Vec<RmrkThemeName>, DispatchError> {
-			Ok(Default::default())
-		}
-
-		fn theme(_base_id: RmrkBaseId, _theme_name: RmrkThemeName, _filter_keys: Option<Vec<RmrkPropertyKey>>) -> Result<Option<RmrkTheme>, DispatchError> {
-			Ok(Default::default())
-		}
-	}
-}
+impl_common_runtime_apis!();
 
 struct CheckInherents;