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

difftreelog

Merge pull request #821 from UniqueNetwork/refactor/simplify-construct-runtime-macro

Yaroslav Bolyukin2023-01-10parents: #fe83568 #96fe90f.patch.diff
in: master
Simplify construct runtime macro

11 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8942,6 +8942,7 @@
  "pallet-structure",
  "pallet-sudo",
  "pallet-template-transaction-payment",
+ "pallet-test-utils",
  "pallet-timestamp",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
@@ -13174,6 +13175,7 @@
  "pallet-structure",
  "pallet-sudo",
  "pallet-template-transaction-payment",
+ "pallet-test-utils",
  "pallet-timestamp",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
addedruntime/common/construct_runtime.rsdiffbeforeafterboth
--- /dev/null
+++ b/runtime/common/construct_runtime.rs
@@ -0,0 +1,113 @@
+// 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 <http://www.gnu.org/licenses/>.
+
+#[macro_export]
+macro_rules! construct_runtime {
+    () => {
+            frame_support::construct_runtime! {
+
+            pub enum Runtime where
+                Block = Block,
+                NodeBlock = opaque::Block,
+                UncheckedExtrinsic = UncheckedExtrinsic
+            {
+                System: frame_system = 0,
+
+                ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
+                ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
+
+                #[cfg(feature = "collator-selection")]
+                Authorship: pallet_authorship::{Pallet, Call, Storage} = 22,
+
+                #[cfg(feature = "collator-selection")]
+                CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event<T>, Config<T>} = 23,
+
+                #[cfg(feature = "collator-selection")]
+                Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>} = 24,
+
+                Aura: pallet_aura::{Pallet, Config<T>} = 25,
+                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 26,
+
+                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, Event<T>} = 33,
+                Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
+                Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
+                Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
+
+                XTokens: orml_xtokens = 38,
+                Tokens: orml_tokens = 39,
+                // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
+
+                #[cfg(feature = "collator-selection")]
+                Identity: pallet_identity::{Pallet, Call, Storage, Event<T>} = 40,
+
+                // 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} = 61,
+
+                // #[cfg(feature = "scheduler")]
+                // Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event<T>} = 62,
+
+                Configuration: pallet_configuration::{Pallet, Call, Storage, Event<T>} = 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,
+
+                #[cfg(feature = "refungible")]
+                Refungible: pallet_refungible::{Pallet, Storage} = 68,
+
+                Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
+                Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
+
+                #[cfg(feature = "rmrk")]
+                RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,
+
+                #[cfg(feature = "rmrk")]
+                RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,
+
+                #[cfg(feature = "app-promotion")]
+                AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,
+
+                #[cfg(feature = "foreign-assets")]
+                ForeignAssets: pallet_foreign_assets::{Pallet, Call, Storage, Event<T>} = 80,
+
+                // 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, Event<T>} = 151,
+                EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
+                EvmMigration: pallet_evm_migration::{Pallet, Call, Storage, Event<T>} = 153,
+
+                Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event<T>} = 154,
+
+                #[cfg(feature = "pallet-test-utils")]
+                TestUtils: pallet_test_utils = 255,
+            }
+        }
+    }
+}
deletedruntime/common/construct_runtime/mod.rsdiffbeforeafterboth
--- a/runtime/common/construct_runtime/mod.rs
+++ /dev/null
@@ -1,116 +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 <http://www.gnu.org/licenses/>.
-
-mod util;
-
-#[macro_export]
-macro_rules! construct_runtime {
-    ($select_runtime:ident) => {
-        $crate::construct_runtime_impl! {
-            select_runtime($select_runtime);
-
-            pub enum Runtime where
-                Block = Block,
-                NodeBlock = opaque::Block,
-                UncheckedExtrinsic = UncheckedExtrinsic
-            {
-                System: frame_system = 0,
-
-                ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event<T>, ValidateUnsigned} = 20,
-                ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21,
-
-                #[runtimes(quartz)]
-                Authorship: pallet_authorship::{Pallet, Call, Storage} = 22,
-
-                #[runtimes(quartz)]
-                CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event<T>, Config<T>} = 23,
-
-                #[runtimes(quartz)]
-                Session: pallet_session::{Pallet, Call, Storage, Event, Config<T>} = 24,
-
-                Aura: pallet_aura::{Pallet, Config<T>} = 25,
-                AuraExt: cumulus_pallet_aura_ext::{Pallet, Config} = 26,
-
-                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, Event<T>} = 33,
-                Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 34,
-                Sudo: pallet_sudo::{Pallet, Call, Storage, Config<T>, Event<T>} = 35,
-                Vesting: orml_vesting::{Pallet, Storage, Call, Event<T>, Config<T>} = 37,
-
-                XTokens: orml_xtokens = 38,
-                Tokens: orml_tokens = 39,
-                // Contracts: pallet_contracts::{Pallet, Call, Storage, Event<T>} = 38,
-
-                #[runtimes(quartz)]
-                Identity: pallet_identity::{Pallet, Call, Storage, Event<T>} = 40,
-
-                // 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} = 61,
-
-                // #[runtimes(opal)]
-                // Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event<T>} = 62,
-
-                Configuration: pallet_configuration::{Pallet, Call, Storage, Event<T>} = 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,
-
-                #[runtimes(opal, quartz)]
-                Refungible: pallet_refungible::{Pallet, Storage} = 68,
-
-                Nonfungible: pallet_nonfungible::{Pallet, Storage} = 69,
-                Structure: pallet_structure::{Pallet, Call, Storage, Event<T>} = 70,
-
-                #[runtimes(opal)]
-                RmrkCore: pallet_proxy_rmrk_core::{Pallet, Call, Storage, Event<T>} = 71,
-
-                #[runtimes(opal)]
-                RmrkEquip: pallet_proxy_rmrk_equip::{Pallet, Call, Storage, Event<T>} = 72,
-
-                #[runtimes(opal, quartz)]
-                AppPromotion: pallet_app_promotion::{Pallet, Call, Storage, Event<T>} = 73,
-
-                #[runtimes(opal, quartz, unique)]
-                ForeignAssets: pallet_foreign_assets::{Pallet, Call, Storage, Event<T>} = 80,
-
-                // 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, Event<T>} = 151,
-                EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
-                EvmMigration: pallet_evm_migration::{Pallet, Call, Storage, Event<T>} = 153,
-
-                Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event<T>} = 154,
-
-                #[runtimes(opal)]
-                TestUtils: pallet_test_utils = 255,
-            }
-        }
-    }
-}
deletedruntime/common/construct_runtime/util.rsdiffbeforeafterboth
--- a/runtime/common/construct_runtime/util.rs
+++ /dev/null
@@ -1,222 +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 <http://www.gnu.org/licenses/>.
-
-#[macro_export]
-macro_rules! construct_runtime_impl {
-    (
-        select_runtime($select_runtime:ident);
-
-        pub enum Runtime where
-            $($where_ident:ident = $where_ty:ty),* $(,)?
-        {
-            $(
-                $(#[runtimes($($pallet_runtimes:ident),+ $(,)?)])?
-                $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal
-            ),*
-            $(,)?
-        }
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime($select_runtime),
-            selected_pallets(),
-
-            where_clause($($where_ident = $where_ty),*),
-            pallets(
-                $(
-                    $(#[runtimes($($pallet_runtimes),+)])?
-                    $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index
-                ),*,
-            )
-        }
-    }
-}
-
-#[macro_export]
-macro_rules! construct_runtime_helper {
-    (
-        select_runtime($select_runtime:ident),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            #[runtimes($($pallet_runtimes:ident),+)]
-            $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal,
-
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::add_runtime_specific_pallets! {
-            select_runtime($select_runtime),
-            runtimes($($pallet_runtimes),+,),
-            selected_pallets($($selected_pallets)*),
-
-            where_clause($($where_clause)*),
-            pallets(
-                $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index,
-                $($pallets_tl)*
-            )
-        }
-    };
-
-    (
-        select_runtime($select_runtime:ident),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal,
-
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime($select_runtime),
-            selected_pallets(
-                $($selected_pallets)*
-                $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index,
-            ),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets_tl)*)
-        }
-    };
-
-    (
-        select_runtime($select_runtime:ident),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets()
-    ) => {
-        frame_support::construct_runtime! {
-            pub enum Runtime where
-                $($where_clause)*
-            {
-                $($selected_pallets)*
-            }
-        }
-    };
-}
-
-#[macro_export]
-macro_rules! add_runtime_specific_pallets {
-    (
-        select_runtime(opal),
-        runtimes(opal, $($_runtime_tl:tt)*),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal,
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime(opal),
-            selected_pallets(
-                $($selected_pallets)*
-                $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index,
-            ),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets_tl)*)
-        }
-    };
-
-    (
-        select_runtime(quartz),
-        runtimes(quartz, $($_runtime_tl:tt)*),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal,
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime(quartz),
-            selected_pallets(
-                $($selected_pallets)*
-                $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index,
-            ),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets_tl)*)
-        }
-    };
-
-    (
-        select_runtime(unique),
-        runtimes(unique, $($_runtime_tl:tt)*),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            $pallet_name:ident: $pallet_mod:ident$(::{$($pallet_parts:ty),*})? = $index:literal,
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime(unique),
-            selected_pallets(
-                $($selected_pallets)*
-                $pallet_name: $pallet_mod$(::{$($pallet_parts),*})? = $index,
-            ),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets_tl)*)
-        }
-    };
-
-    (
-        select_runtime($select_runtime:ident),
-        runtimes($_current_runtime:ident, $($runtime_tl:tt)*),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets($($pallets:tt)*)
-    ) => {
-        $crate::add_runtime_specific_pallets! {
-            select_runtime($select_runtime),
-            runtimes($($runtime_tl)*),
-            selected_pallets($($selected_pallets)*),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets)*)
-        }
-    };
-
-    (
-        select_runtime($select_runtime:ident),
-        runtimes(),
-        selected_pallets($($selected_pallets:tt)*),
-
-        where_clause($($where_clause:tt)*),
-        pallets(
-            $_pallet_name:ident: $_pallet_mod:ident$(::{$($_pallet_parts:ty),*})? = $_index:literal,
-            $($pallets_tl:tt)*
-        )
-    ) => {
-        $crate::construct_runtime_helper! {
-            select_runtime($select_runtime),
-            selected_pallets($($selected_pallets)*),
-
-            where_clause($($where_clause)*),
-            pallets($($pallets_tl)*)
-        }
-    };
-}
modifiedruntime/common/identity.rsdiffbeforeafterboth
--- a/runtime/common/identity.rs
+++ b/runtime/common/identity.rs
@@ -21,11 +21,12 @@
 
 use sp_runtime::{
 	traits::{DispatchInfoOf, SignedExtension},
-	transaction_validity::{
-		TransactionValidity, ValidTransaction, InvalidTransaction, TransactionValidityError,
-	},
+	transaction_validity::{TransactionValidity, ValidTransaction, TransactionValidityError},
 };
 
+#[cfg(feature = "collator-selection")]
+use sp_runtime::transaction_validity::InvalidTransaction;
+
 #[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]
 pub struct DisableIdentityCalls;
 
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
after · runtime/opal/Cargo.toml
1################################################################################2# Package34[package]5authors = ['Unique Network <support@uniquenetwork.io>']6build = 'build.rs'7description = 'Opal Runtime'8edition = '2021'9homepage = 'https://unique.network'10license = 'GPLv3'11name = 'opal-runtime'12repository = 'https://github.com/UniqueNetwork/unique-chain'13version.workspace = true1415[package.metadata.docs.rs]16targets = ['x86_64-unknown-linux-gnu']1718[features]19default = ['std', 'opal-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-configuration/runtime-benchmarks',32    'pallet-common/runtime-benchmarks',33    'pallet-structure/runtime-benchmarks',34    'pallet-fungible/runtime-benchmarks',35    'pallet-refungible/runtime-benchmarks',36    'pallet-nonfungible/runtime-benchmarks',37    'pallet-proxy-rmrk-core/runtime-benchmarks',38    'pallet-proxy-rmrk-equip/runtime-benchmarks',39    'pallet-foreign-assets/runtime-benchmarks',40    'pallet-unique/runtime-benchmarks',41    'pallet-inflation/runtime-benchmarks',42    'pallet-app-promotion/runtime-benchmarks',43    'pallet-collator-selection/runtime-benchmarks',44    'pallet-identity/runtime-benchmarks',45    'pallet-unique-scheduler-v2/runtime-benchmarks',46    'pallet-xcm/runtime-benchmarks',47    'sp-runtime/runtime-benchmarks',48    'xcm-builder/runtime-benchmarks',49    'pallet-maintenance/runtime-benchmarks',50    'cumulus-pallet-parachain-system/runtime-benchmarks',51]52try-runtime = [53    'frame-try-runtime',54    'frame-try-runtime?/try-runtime',55    'frame-executive/try-runtime',56    'frame-support/try-runtime',57    'frame-system/try-runtime',58    'cumulus-pallet-parachain-system/try-runtime',59    'parachain-info/try-runtime',60    'pallet-aura/try-runtime',61    'cumulus-pallet-aura-ext/try-runtime',62    'pallet-balances/try-runtime',63    'pallet-randomness-collective-flip/try-runtime',64    'pallet-timestamp/try-runtime',65    'pallet-transaction-payment/try-runtime',66    'pallet-treasury/try-runtime',67    'pallet-sudo/try-runtime',68    'orml-vesting/try-runtime',69    'orml-xtokens/try-runtime',70    'orml-tokens/try-runtime',71    'cumulus-pallet-xcmp-queue/try-runtime',72    'pallet-xcm/try-runtime',73    'cumulus-pallet-xcm/try-runtime',74    'cumulus-pallet-dmp-queue/try-runtime',75	"pallet-authorship/try-runtime",76	"pallet-collator-selection/try-runtime",77	"pallet-session/try-runtime",78	"pallet-identity/try-runtime",79    'pallet-inflation/try-runtime',80    'pallet-unique/try-runtime',81    'pallet-configuration/try-runtime',82    'pallet-charge-transaction/try-runtime',83    'pallet-common/try-runtime',84    'pallet-fungible/try-runtime',85    'pallet-refungible/try-runtime',86    'pallet-nonfungible/try-runtime',87    'pallet-structure/try-runtime',88    'pallet-proxy-rmrk-core/try-runtime',89    'pallet-proxy-rmrk-equip/try-runtime',90    'pallet-app-promotion/try-runtime',91    'pallet-foreign-assets/try-runtime',92    'pallet-ethereum/try-runtime',93    'pallet-evm/try-runtime',94    'pallet-evm-coder-substrate/try-runtime',95    'pallet-evm-contract-helpers/try-runtime',96    'pallet-evm-transaction-payment/try-runtime',97    'pallet-evm-migration/try-runtime',98    'pallet-base-fee/try-runtime',99    'pallet-unique-scheduler-v2/try-runtime',100    'pallet-maintenance/try-runtime',101    'pallet-test-utils/try-runtime',102    'fp-self-contained/try-runtime',103]104std = [105    'codec/std',106    'cumulus-pallet-aura-ext/std',107    'cumulus-pallet-parachain-system/std',108    'cumulus-pallet-xcm/std',109    'cumulus-pallet-xcmp-queue/std',110    'cumulus-primitives-core/std',111    'cumulus-primitives-utility/std',112    'frame-try-runtime/std',113    'frame-executive/std',114    'frame-support/std',115    'frame-system/std',116    'frame-system-rpc-runtime-api/std',117    'pallet-aura/std',118    'pallet-balances/std',119    # 'pallet-contracts/std',120    # 'pallet-contracts-primitives/std',121    # 'pallet-contracts-rpc-runtime-api/std',122    # 'pallet-contract-helpers/std',123	"pallet-authorship/std",124	'pallet-collator-selection/std',125	"pallet-session/std",126	'pallet-identity/std',127    'pallet-randomness-collective-flip/std',128    'pallet-sudo/std',129    'pallet-timestamp/std',130    'pallet-transaction-payment/std',131    'pallet-transaction-payment-rpc-runtime-api/std',132    'pallet-treasury/std',133    'pallet-evm/std',134    'pallet-evm-migration/std',135    'pallet-evm-contract-helpers/std',136    'pallet-evm-transaction-payment/std',137    'pallet-evm-coder-substrate/std',138    'pallet-ethereum/std',139    'pallet-base-fee/std',140    'fp-rpc/std',141    'up-rpc/std',142    'up-pov-estimate-rpc/std',143    'app-promotion-rpc/std',144    'fp-evm-mapping/std',145    'fp-self-contained/std',146    'parachain-info/std',147    'serde',148    'pallet-inflation/std',149    'pallet-configuration/std',150    'pallet-app-promotion/std',151    'pallet-common/std',152    'pallet-structure/std',153    'pallet-fungible/std',154    'pallet-refungible/std',155    'pallet-nonfungible/std',156    'pallet-proxy-rmrk-core/std',157    'pallet-proxy-rmrk-equip/std',158    'pallet-unique/std',159    'pallet-unique-scheduler-v2/std',160    'pallet-charge-transaction/std',161    'up-data-structs/std',162    'sp-api/std',163    'sp-block-builder/std',164    "sp-consensus-aura/std",165    'sp-core/std',166    'sp-inherents/std',167    'sp-io/std',168    'sp-offchain/std',169    'sp-runtime/std',170    'sp-session/std',171    'sp-std/std',172    'sp-transaction-pool/std',173    'sp-version/std',174    'xcm/std',175    'xcm-builder/std',176    'xcm-executor/std',177    'up-common/std',178    'rmrk-rpc/std',179    'evm-coder/std',180    'up-sponsorship/std',181182    "orml-vesting/std",183    "orml-tokens/std",184    "orml-xtokens/std",185    "orml-traits/std",186    "pallet-foreign-assets/std",187188    'pallet-maintenance/std',189    'pallet-test-utils/std',190]191limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']192opal-runtime = [193    'refungible',194    'rmrk',195    'app-promotion',196    'foreign-assets',197    'pallet-test-utils',198]199pov-estimate = []200201refungible = []202scheduler = []203rmrk = []204foreign-assets = []205app-promotion = []206collator-selection = []207pallet-test-utils = []208209################################################################################210# Substrate Dependencies211212[dependencies.codec]213default-features = false214features = ['derive']215package = 'parity-scale-codec'216version = '3.1.2'217218[dependencies.frame-benchmarking]219default-features = false220git = "https://github.com/paritytech/substrate"221optional = true222branch = "polkadot-v0.9.36"223224[dependencies.frame-try-runtime]225default-features = false226git = "https://github.com/paritytech/substrate"227optional = true228branch = "polkadot-v0.9.36"229230[dependencies.frame-executive]231default-features = false232git = "https://github.com/paritytech/substrate"233branch = "polkadot-v0.9.36"234235[dependencies.frame-support]236default-features = false237git = "https://github.com/paritytech/substrate"238branch = "polkadot-v0.9.36"239240[dependencies.frame-system]241default-features = false242git = "https://github.com/paritytech/substrate"243branch = "polkadot-v0.9.36"244245[dependencies.frame-system-benchmarking]246default-features = false247git = "https://github.com/paritytech/substrate"248optional = true249branch = "polkadot-v0.9.36"250251[dependencies.frame-system-rpc-runtime-api]252default-features = false253git = "https://github.com/paritytech/substrate"254branch = "polkadot-v0.9.36"255256[dependencies.hex-literal]257optional = true258version = '0.3.3'259260[dependencies.serde]261default-features = false262features = ['derive']263optional = true264version = '1.0.130'265266[dependencies.pallet-aura]267default-features = false268git = "https://github.com/paritytech/substrate"269branch = "polkadot-v0.9.36"270271[dependencies.pallet-authorship]272default-features = false273git = 'https://github.com/paritytech/substrate'274branch = 'polkadot-v0.9.36'275276[dependencies.pallet-session]277default-features = false278git = 'https://github.com/paritytech/substrate'279branch = 'polkadot-v0.9.36'280281[dependencies.pallet-balances]282default-features = false283git = "https://github.com/paritytech/substrate"284branch = "polkadot-v0.9.36"285286# Contracts specific packages287# [dependencies.pallet-contracts]288# git = 'https://github.com/paritytech/substrate'289# default-features = false290# branch = 'master'291# version = '4.0.0-dev'292293# [dependencies.pallet-contracts-primitives]294# git = 'https://github.com/paritytech/substrate'295# default-features = false296# branch = 'master'297# version = '4.0.0-dev'298299# [dependencies.pallet-contracts-rpc-runtime-api]300# git = 'https://github.com/paritytech/substrate'301# default-features = false302# branch = 'master'303# version = '4.0.0-dev'304305[dependencies.pallet-randomness-collective-flip]306default-features = false307git = "https://github.com/paritytech/substrate"308branch = "polkadot-v0.9.36"309310[dependencies.pallet-sudo]311default-features = false312git = "https://github.com/paritytech/substrate"313branch = "polkadot-v0.9.36"314315[dependencies.pallet-timestamp]316default-features = false317git = "https://github.com/paritytech/substrate"318branch = "polkadot-v0.9.36"319320[dependencies.pallet-transaction-payment]321default-features = false322git = "https://github.com/paritytech/substrate"323branch = "polkadot-v0.9.36"324325[dependencies.pallet-transaction-payment-rpc-runtime-api]326default-features = false327git = "https://github.com/paritytech/substrate"328branch = "polkadot-v0.9.36"329330[dependencies.pallet-treasury]331default-features = false332git = "https://github.com/paritytech/substrate"333branch = "polkadot-v0.9.36"334335[dependencies.sp-arithmetic]336default-features = false337git = "https://github.com/paritytech/substrate"338branch = "polkadot-v0.9.36"339340[dependencies.sp-api]341default-features = false342git = "https://github.com/paritytech/substrate"343branch = "polkadot-v0.9.36"344345[dependencies.sp-block-builder]346default-features = false347git = "https://github.com/paritytech/substrate"348branch = "polkadot-v0.9.36"349350[dependencies.sp-core]351default-features = false352git = "https://github.com/paritytech/substrate"353branch = "polkadot-v0.9.36"354355[dependencies.sp-consensus-aura]356default-features = false357git = "https://github.com/paritytech/substrate"358branch = "polkadot-v0.9.36"359360[dependencies.sp-inherents]361default-features = false362git = "https://github.com/paritytech/substrate"363branch = "polkadot-v0.9.36"364365[dependencies.sp-io]366default-features = false367git = "https://github.com/paritytech/substrate"368branch = "polkadot-v0.9.36"369370[dependencies.sp-offchain]371default-features = false372git = "https://github.com/paritytech/substrate"373branch = "polkadot-v0.9.36"374375[dependencies.sp-runtime]376default-features = false377git = "https://github.com/paritytech/substrate"378branch = "polkadot-v0.9.36"379380[dependencies.sp-session]381default-features = false382git = "https://github.com/paritytech/substrate"383branch = "polkadot-v0.9.36"384385[dependencies.sp-std]386default-features = false387git = "https://github.com/paritytech/substrate"388branch = "polkadot-v0.9.36"389390[dependencies.sp-transaction-pool]391default-features = false392git = "https://github.com/paritytech/substrate"393branch = "polkadot-v0.9.36"394395[dependencies.sp-version]396default-features = false397git = "https://github.com/paritytech/substrate"398branch = "polkadot-v0.9.36"399400[dependencies.smallvec]401version = '1.6.1'402403################################################################################404# Cumulus dependencies405406[dependencies.parachain-info]407default-features = false408git = "https://github.com/paritytech/cumulus"409branch = "polkadot-v0.9.36"410411[dependencies.cumulus-pallet-aura-ext]412git = "https://github.com/paritytech/cumulus"413branch = "polkadot-v0.9.36"414default-features = false415416[dependencies.cumulus-pallet-parachain-system]417git = "https://github.com/paritytech/cumulus"418branch = "polkadot-v0.9.36"419default-features = false420421[dependencies.cumulus-primitives-core]422git = "https://github.com/paritytech/cumulus"423branch = "polkadot-v0.9.36"424default-features = false425426[dependencies.cumulus-pallet-xcm]427git = "https://github.com/paritytech/cumulus"428branch = "polkadot-v0.9.36"429default-features = false430431[dependencies.cumulus-pallet-dmp-queue]432git = "https://github.com/paritytech/cumulus"433branch = "polkadot-v0.9.36"434default-features = false435436[dependencies.cumulus-pallet-xcmp-queue]437git = "https://github.com/paritytech/cumulus"438branch = "polkadot-v0.9.36"439default-features = false440441[dependencies.cumulus-primitives-utility]442git = "https://github.com/paritytech/cumulus"443branch = "polkadot-v0.9.36"444default-features = false445446[dependencies.cumulus-primitives-timestamp]447git = "https://github.com/paritytech/cumulus"448branch = "polkadot-v0.9.36"449default-features = false450451################################################################################452# Polkadot dependencies453454[dependencies.polkadot-parachain]455git = "https://github.com/paritytech/polkadot"456branch = "release-v0.9.36"457default-features = false458459[dependencies.xcm]460git = "https://github.com/paritytech/polkadot"461branch = "release-v0.9.36"462default-features = false463464[dependencies.xcm-builder]465git = "https://github.com/paritytech/polkadot"466branch = "release-v0.9.36"467default-features = false468469[dependencies.xcm-executor]470git = "https://github.com/paritytech/polkadot"471branch = "release-v0.9.36"472default-features = false473474[dependencies.pallet-xcm]475git = "https://github.com/paritytech/polkadot"476branch = "release-v0.9.36"477default-features = false478479################################################################################480# local dependencies481482[dependencies]483orml-vesting.workspace = true484orml-xtokens.workspace = true485orml-tokens.workspace = true486orml-traits.workspace = true487488log = { version = "0.4.16", default-features = false }489up-common = { path = "../../primitives/common", default-features = false }490scale-info = { version = "2.0.1", default-features = false, features = [491    "derive",492] }493derivative = "2.2.0"494pallet-unique = { path = '../../pallets/unique', default-features = false }495up-rpc = { path = "../../primitives/rpc", default-features = false }496up-pov-estimate-rpc = { path = "../../primitives/pov-estimate-rpc", default-features = false }497app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }498rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }499fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }500fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }501pallet-inflation = { path = '../../pallets/inflation', default-features = false }502pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }503up-data-structs = { path = '../../primitives/data-structs', default-features = false }504pallet-collator-selection = { default-features = false, path = "../../pallets/collator-selection" }505pallet-identity = { default-features = false, path = "../../pallets/identity" }506pallet-configuration = { default-features = false, path = "../../pallets/configuration" }507pallet-common = { default-features = false, path = "../../pallets/common" }508pallet-structure = { default-features = false, path = "../../pallets/structure" }509pallet-fungible = { default-features = false, path = "../../pallets/fungible" }510pallet-refungible = { default-features = false, path = "../../pallets/refungible" }511pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }512pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }513pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }514pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.36", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }515pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }516pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }517pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }518pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }519pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }520pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }521pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }522pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }523fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }524fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }525pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }526evm-coder = { default-features = false, path = '../../crates/evm-coder' }527up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.36' }528pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }529pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }530precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }531num_enum = { version = "0.5.3", default-features = false }532533################################################################################534# Test dependencies535536pallet-test-utils = { default-features = false, path = "../../test-pallets/utils" }537538################################################################################539# Other Dependencies540541impl-trait-for-tuples = "0.2.2"542543################################################################################544# Dev Dependencies545546[dev-dependencies.logtest]547version = "2.0.0"548549################################################################################550# Build Dependencies551552[build-dependencies.substrate-wasm-builder]553git = "https://github.com/paritytech/substrate"554branch = "polkadot-v0.9.36"
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -65,7 +65,7 @@
 	pub const ChainId: u64 = 8882;
 }
 
-construct_runtime!(opal);
+construct_runtime!();
 
 impl_common_runtime_apis!();
 
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -524,6 +524,11 @@
 num_enum = { version = "0.5.3", default-features = false }
 
 ################################################################################
+# Test dependencies
+
+pallet-test-utils = { default-features = false, path = "../../test-pallets/utils" }
+
+################################################################################
 # Other Dependencies
 
 impl-trait-for-tuples = "0.2.2"
modifiedruntime/quartz/src/lib.rsdiffbeforeafterboth
--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -77,7 +77,7 @@
 	pub const ChainId: u64 = 8881;
 }
 
-construct_runtime!(quartz);
+construct_runtime!();
 
 impl_common_runtime_apis!();
 
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -516,6 +516,11 @@
 num_enum = { version = "0.5.3", default-features = false }
 
 ################################################################################
+# Test dependencies
+
+pallet-test-utils = { default-features = false, path = "../../test-pallets/utils" }
+
+################################################################################
 # Other Dependencies
 
 impl-trait-for-tuples = "0.2.2"
modifiedruntime/unique/src/lib.rsdiffbeforeafterboth
--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -65,7 +65,7 @@
 	pub const ChainId: u64 = 8880;
 }
 
-construct_runtime!(unique);
+construct_runtime!();
 
 impl_common_runtime_apis!();