--- 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 = [] --- 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; --- 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, + RmrkInstanceInfo, + RmrkResourceInfo, + RmrkPropertyInfo, + RmrkBaseInfo, + RmrkPartType, + RmrkTheme + > for Runtime { + fn last_collection_idx() -> Result { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::last_collection_idx::(); + + #[cfg(not(feature = "rmrk"))] + return Ok(Default::default()); + } + + fn collection_by_id( + #[allow(unused_variables)] + collection_id: RmrkCollectionId + ) -> Result>, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::collection_by_id::(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>, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::nft_by_id::(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, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::account_tokens::(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, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::nft_children::(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> + ) -> Result, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::collection_properties::(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> + ) -> Result, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::nft_properties::(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, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::nft_resources::(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, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_core::rpc::nft_resource_priority::(collection_id, nft_id, resource_id); + + #[cfg(not(feature = "rmrk"))] + return Ok(Default::default()) + } + + fn base( + #[allow(unused_variables)] + base_id: RmrkBaseId + ) -> Result>, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_equip::rpc::base::(base_id); + + #[cfg(not(feature = "rmrk"))] + return Ok(Default::default()) + } + + fn base_parts( + #[allow(unused_variables)] + base_id: RmrkBaseId + ) -> Result, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_equip::rpc::base_parts::(base_id); + + #[cfg(not(feature = "rmrk"))] + return Ok(Default::default()) + } + + fn theme_names( + #[allow(unused_variables)] + base_id: RmrkBaseId + ) -> Result, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_equip::rpc::theme_names::(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> + ) -> Result, DispatchError> { + #[cfg(feature = "rmrk")] + return pallet_proxy_rmrk_equip::rpc::theme::(base_id, theme_name, filter_keys); + + #[cfg(not(feature = "rmrk"))] + return Ok(Default::default()) + } + } + impl sp_api::Core for Runtime { fn version() -> RuntimeVersion { VERSION --- 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", ] } --- 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; } +#[cfg(feature = "rmrk")] impl pallet_proxy_rmrk_core::Config for Runtime { type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight; type Event = Event; } +#[cfg(feature = "rmrk")] impl pallet_proxy_rmrk_equip::Config for Runtime { type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight; 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, ValidateUnsigned} = 20, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, - - Aura: pallet_aura::{Pallet, Config} = 22, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23, - - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 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} = 34, - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 35, - System: frame_system::{Pallet, Call, Storage, Config, Event} = 36, - Vesting: orml_vesting::{Pallet, Storage, Call, Event, Config} = 37, - // Vesting: pallet_vesting::{Pallet, Call, Config, Storage, Event} = 37, - // Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 38, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, - - // Unique Pallets - Inflation: pallet_inflation::{Pallet, Call, Storage} = 60, - Unique: pallet_unique::{Pallet, Call, Storage, Event} = 61, - Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event} = 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} = 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} = 70, - RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event} = 71, - RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event} = 72, - - // Frontier - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 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, - RmrkInstanceInfo, - RmrkResourceInfo, - RmrkPropertyInfo, - RmrkBaseInfo, - RmrkPartType, - RmrkTheme - > for Runtime { - fn last_collection_idx() -> Result { - pallet_proxy_rmrk_core::rpc::last_collection_idx::() - } - - fn collection_by_id(collection_id: RmrkCollectionId) -> Result>, DispatchError> { - pallet_proxy_rmrk_core::rpc::collection_by_id::(collection_id) - } - - fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result>, DispatchError> { - pallet_proxy_rmrk_core::rpc::nft_by_id::(collection_id, nft_by_id) - } - - fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::account_tokens::(account_id, collection_id) - } - - fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::nft_children::(collection_id, nft_id) - } - - fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option>) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::collection_properties::(collection_id, filter_keys) - } - - fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option>) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::nft_properties::(collection_id, nft_id, filter_keys) - } - - fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::nft_resources::(collection_id, nft_id) - } - - fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result, DispatchError> { - pallet_proxy_rmrk_core::rpc::nft_resource_priority::(collection_id, nft_id, resource_id) - } - - fn base(base_id: RmrkBaseId) -> Result>, DispatchError> { - pallet_proxy_rmrk_equip::rpc::base::(base_id) - } - - fn base_parts(base_id: RmrkBaseId) -> Result, DispatchError> { - pallet_proxy_rmrk_equip::rpc::base_parts::(base_id) - } - - fn theme_names(base_id: RmrkBaseId) -> Result, DispatchError> { - pallet_proxy_rmrk_equip::rpc::theme_names::(base_id) - } - - fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option>) -> Result, DispatchError> { - pallet_proxy_rmrk_equip::rpc::theme::(base_id, theme_name, filter_keys) - } - } -} +impl_common_runtime_apis!(); struct CheckInherents; --- a/runtime/quartz/Cargo.toml +++ b/runtime/quartz/Cargo.toml @@ -16,7 +16,7 @@ targets = ['x86_64-unknown-linux-gnu'] [features] -default = ['std', 'new-functionality'] +default = ['std', 'quartz-runtime'] runtime-benchmarks = [ 'hex-literal', 'frame-benchmarking', @@ -118,7 +118,9 @@ "orml-vesting/std", ] limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing'] -new-functionality = [] +quartz-runtime = [] + +rmrk = [] ################################################################################ # Substrate Dependencies --- 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; } -// impl pallet_proxy_rmrk_core::Config for Runtime { -// type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight; -// type Event = Event; -// } +#[cfg(feature = "rmrk")] +impl pallet_proxy_rmrk_core::Config for Runtime { + type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight; + type Event = Event; +} -// impl pallet_proxy_rmrk_equip::Config for Runtime { -// type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight; -// type Event = Event; -// } +#[cfg(feature = "rmrk")] +impl pallet_proxy_rmrk_equip::Config for Runtime { + type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight; + 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, ValidateUnsigned} = 20, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, - - Aura: pallet_aura::{Pallet, Config} = 22, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23, - - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 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} = 34, - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 35, - System: frame_system::{Pallet, Call, Storage, Config, Event} = 36, - Vesting: orml_vesting::{Pallet, Storage, Call, Event, Config} = 37, - // Vesting: pallet_vesting::{Pallet, Call, Config, Storage, Event} = 37, - // Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 38, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, +construct_runtime!(); - // Unique Pallets - Inflation: pallet_inflation::{Pallet, Call, Storage} = 60, - Unique: pallet_unique::{Pallet, Call, Storage, Event} = 61, - // Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event} = 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} = 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} = 70, - // RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event} = 71, - // RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event} = 72, - - // Frontier - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 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 for TransactionConverter { @@ -1308,129 +1258,8 @@ Ok::<_, DispatchError>(dispatch.$method($($name),*)) }}; } - -impl_common_runtime_apis! { - #![custom_apis] - impl rmrk_rpc::RmrkApi< - Block, - AccountId, - RmrkCollectionInfo, - RmrkInstanceInfo, - RmrkResourceInfo, - RmrkPropertyInfo, - RmrkBaseInfo, - RmrkPartType, - RmrkTheme - > for Runtime { - - // fn last_collection_idx() -> Result { - // pallet_proxy_rmrk_core::rpc::last_collection_idx::() - // } - - // fn collection_by_id(collection_id: RmrkCollectionId) -> Result>, DispatchError> { - // pallet_proxy_rmrk_core::rpc::collection_by_id::(collection_id) - // } - - // fn nft_by_id(collection_id: RmrkCollectionId, nft_by_id: RmrkNftId) -> Result>, DispatchError> { - // pallet_proxy_rmrk_core::rpc::nft_by_id::(collection_id, nft_by_id) - // } - - // fn account_tokens(account_id: AccountId, collection_id: RmrkCollectionId) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::account_tokens::(account_id, collection_id) - // } - - // fn nft_children(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::nft_children::(collection_id, nft_id) - // } - - // fn collection_properties(collection_id: RmrkCollectionId, filter_keys: Option>) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::collection_properties::(collection_id, filter_keys) - // } - - // fn nft_properties(collection_id: RmrkCollectionId, nft_id: RmrkNftId, filter_keys: Option>) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::nft_properties::(collection_id, nft_id, filter_keys) - // } - - // fn nft_resources(collection_id: RmrkCollectionId, nft_id: RmrkNftId) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::nft_resources::(collection_id, nft_id) - // } - - // fn nft_resource_priority(collection_id: RmrkCollectionId, nft_id: RmrkNftId, resource_id: RmrkResourceId) -> Result, DispatchError> { - // pallet_proxy_rmrk_core::rpc::nft_resource_priority::(collection_id, nft_id, resource_id) - // } - - // fn base(base_id: RmrkBaseId) -> Result>, DispatchError> { - // pallet_proxy_rmrk_equip::rpc::base::(base_id) - // } - - // fn base_parts(base_id: RmrkBaseId) -> Result, DispatchError> { - // pallet_proxy_rmrk_equip::rpc::base_parts::(base_id) - // } - - // fn theme_names(base_id: RmrkBaseId) -> Result, DispatchError> { - // pallet_proxy_rmrk_equip::rpc::theme_names::(base_id) - // } - - // fn theme(base_id: RmrkBaseId, theme_name: RmrkThemeName, filter_keys: Option>) -> Result, DispatchError> { - // pallet_proxy_rmrk_equip::rpc::theme::(base_id, theme_name, filter_keys) - // } - - fn last_collection_idx() -> Result { - Ok(Default::default()) - } - - fn collection_by_id(_collection_id: RmrkCollectionId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn nft_by_id(_collection_id: RmrkCollectionId, _nft_by_id: RmrkNftId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn account_tokens(_account_id: AccountId, _collection_id: RmrkCollectionId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_children(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn collection_properties(_collection_id: RmrkCollectionId, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_properties(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_resources(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_resource_priority(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _resource_id: RmrkResourceId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn base(_base_id: RmrkBaseId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn base_parts(_base_id: RmrkBaseId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn theme_names(_base_id: RmrkBaseId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn theme(_base_id: RmrkBaseId, _theme_name: RmrkThemeName, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - - - } -} +impl_common_runtime_apis!(); struct CheckInherents; --- 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 --- 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; } +#[cfg(feature = "rmrk")] +impl pallet_proxy_rmrk_core::Config for Runtime { + type WeightInfo = pallet_proxy_rmrk_core::weights::SubstrateWeight; + type Event = Event; +} + +#[cfg(feature = "rmrk")] +impl pallet_proxy_rmrk_equip::Config for Runtime { + type WeightInfo = pallet_proxy_rmrk_equip::weights::SubstrateWeight; + type Event = Event; +} + impl pallet_unique::Config for Runtime { type Event = Event; type WeightInfo = pallet_unique::weights::SubstrateWeight; @@ -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, ValidateUnsigned} = 20, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, - - Aura: pallet_aura::{Pallet, Config} = 22, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 23, - - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 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} = 34, - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 35, - System: frame_system::{Pallet, Call, Storage, Config, Event} = 36, - Vesting: orml_vesting::{Pallet, Storage, Call, Event, Config} = 37, - // Vesting: pallet_vesting::{Pallet, Call, Config, Storage, Event} = 37, - // Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 38, - - // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, - - // Unique Pallets - Inflation: pallet_inflation::{Pallet, Call, Storage} = 60, - Unique: pallet_unique::{Pallet, Call, Storage, Event} = 61, - // Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event} = 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} = 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} = 70, - - // Frontier - EVM: pallet_evm::{Pallet, Config, Call, Storage, Event} = 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, - RmrkInstanceInfo, - RmrkResourceInfo, - RmrkPropertyInfo, - RmrkBaseInfo, - RmrkPartType, - RmrkTheme - > for Runtime { - fn last_collection_idx() -> Result { - Ok(Default::default()) - } - - fn collection_by_id(_collection_id: RmrkCollectionId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn nft_by_id(_collection_id: RmrkCollectionId, _nft_by_id: RmrkNftId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn account_tokens(_account_id: AccountId, _collection_id: RmrkCollectionId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_children(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn collection_properties(_collection_id: RmrkCollectionId, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_properties(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_resources(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn nft_resource_priority(_collection_id: RmrkCollectionId, _nft_id: RmrkNftId, _resource_id: RmrkResourceId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn base(_base_id: RmrkBaseId) -> Result>, DispatchError> { - Ok(Default::default()) - } - - fn base_parts(_base_id: RmrkBaseId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn theme_names(_base_id: RmrkBaseId) -> Result, DispatchError> { - Ok(Default::default()) - } - - fn theme(_base_id: RmrkBaseId, _theme_name: RmrkThemeName, _filter_keys: Option>) -> Result, DispatchError> { - Ok(Default::default()) - } - } -} +impl_common_runtime_apis!(); struct CheckInherents;