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
before · 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 = []207208################################################################################209# Substrate Dependencies210211[dependencies.codec]212default-features = false213features = ['derive']214package = 'parity-scale-codec'215version = '3.1.2'216217[dependencies.frame-benchmarking]218default-features = false219git = "https://github.com/paritytech/substrate"220optional = true221branch = "polkadot-v0.9.36"222223[dependencies.frame-try-runtime]224default-features = false225git = "https://github.com/paritytech/substrate"226optional = true227branch = "polkadot-v0.9.36"228229[dependencies.frame-executive]230default-features = false231git = "https://github.com/paritytech/substrate"232branch = "polkadot-v0.9.36"233234[dependencies.frame-support]235default-features = false236git = "https://github.com/paritytech/substrate"237branch = "polkadot-v0.9.36"238239[dependencies.frame-system]240default-features = false241git = "https://github.com/paritytech/substrate"242branch = "polkadot-v0.9.36"243244[dependencies.frame-system-benchmarking]245default-features = false246git = "https://github.com/paritytech/substrate"247optional = true248branch = "polkadot-v0.9.36"249250[dependencies.frame-system-rpc-runtime-api]251default-features = false252git = "https://github.com/paritytech/substrate"253branch = "polkadot-v0.9.36"254255[dependencies.hex-literal]256optional = true257version = '0.3.3'258259[dependencies.serde]260default-features = false261features = ['derive']262optional = true263version = '1.0.130'264265[dependencies.pallet-aura]266default-features = false267git = "https://github.com/paritytech/substrate"268branch = "polkadot-v0.9.36"269270[dependencies.pallet-authorship]271default-features = false272git = 'https://github.com/paritytech/substrate'273branch = 'polkadot-v0.9.36'274275[dependencies.pallet-session]276default-features = false277git = 'https://github.com/paritytech/substrate'278branch = 'polkadot-v0.9.36'279280[dependencies.pallet-balances]281default-features = false282git = "https://github.com/paritytech/substrate"283branch = "polkadot-v0.9.36"284285# Contracts specific packages286# [dependencies.pallet-contracts]287# git = 'https://github.com/paritytech/substrate'288# default-features = false289# branch = 'master'290# version = '4.0.0-dev'291292# [dependencies.pallet-contracts-primitives]293# git = 'https://github.com/paritytech/substrate'294# default-features = false295# branch = 'master'296# version = '4.0.0-dev'297298# [dependencies.pallet-contracts-rpc-runtime-api]299# git = 'https://github.com/paritytech/substrate'300# default-features = false301# branch = 'master'302# version = '4.0.0-dev'303304[dependencies.pallet-randomness-collective-flip]305default-features = false306git = "https://github.com/paritytech/substrate"307branch = "polkadot-v0.9.36"308309[dependencies.pallet-sudo]310default-features = false311git = "https://github.com/paritytech/substrate"312branch = "polkadot-v0.9.36"313314[dependencies.pallet-timestamp]315default-features = false316git = "https://github.com/paritytech/substrate"317branch = "polkadot-v0.9.36"318319[dependencies.pallet-transaction-payment]320default-features = false321git = "https://github.com/paritytech/substrate"322branch = "polkadot-v0.9.36"323324[dependencies.pallet-transaction-payment-rpc-runtime-api]325default-features = false326git = "https://github.com/paritytech/substrate"327branch = "polkadot-v0.9.36"328329[dependencies.pallet-treasury]330default-features = false331git = "https://github.com/paritytech/substrate"332branch = "polkadot-v0.9.36"333334[dependencies.sp-arithmetic]335default-features = false336git = "https://github.com/paritytech/substrate"337branch = "polkadot-v0.9.36"338339[dependencies.sp-api]340default-features = false341git = "https://github.com/paritytech/substrate"342branch = "polkadot-v0.9.36"343344[dependencies.sp-block-builder]345default-features = false346git = "https://github.com/paritytech/substrate"347branch = "polkadot-v0.9.36"348349[dependencies.sp-core]350default-features = false351git = "https://github.com/paritytech/substrate"352branch = "polkadot-v0.9.36"353354[dependencies.sp-consensus-aura]355default-features = false356git = "https://github.com/paritytech/substrate"357branch = "polkadot-v0.9.36"358359[dependencies.sp-inherents]360default-features = false361git = "https://github.com/paritytech/substrate"362branch = "polkadot-v0.9.36"363364[dependencies.sp-io]365default-features = false366git = "https://github.com/paritytech/substrate"367branch = "polkadot-v0.9.36"368369[dependencies.sp-offchain]370default-features = false371git = "https://github.com/paritytech/substrate"372branch = "polkadot-v0.9.36"373374[dependencies.sp-runtime]375default-features = false376git = "https://github.com/paritytech/substrate"377branch = "polkadot-v0.9.36"378379[dependencies.sp-session]380default-features = false381git = "https://github.com/paritytech/substrate"382branch = "polkadot-v0.9.36"383384[dependencies.sp-std]385default-features = false386git = "https://github.com/paritytech/substrate"387branch = "polkadot-v0.9.36"388389[dependencies.sp-transaction-pool]390default-features = false391git = "https://github.com/paritytech/substrate"392branch = "polkadot-v0.9.36"393394[dependencies.sp-version]395default-features = false396git = "https://github.com/paritytech/substrate"397branch = "polkadot-v0.9.36"398399[dependencies.smallvec]400version = '1.6.1'401402################################################################################403# Cumulus dependencies404405[dependencies.parachain-info]406default-features = false407git = "https://github.com/paritytech/cumulus"408branch = "polkadot-v0.9.36"409410[dependencies.cumulus-pallet-aura-ext]411git = "https://github.com/paritytech/cumulus"412branch = "polkadot-v0.9.36"413default-features = false414415[dependencies.cumulus-pallet-parachain-system]416git = "https://github.com/paritytech/cumulus"417branch = "polkadot-v0.9.36"418default-features = false419420[dependencies.cumulus-primitives-core]421git = "https://github.com/paritytech/cumulus"422branch = "polkadot-v0.9.36"423default-features = false424425[dependencies.cumulus-pallet-xcm]426git = "https://github.com/paritytech/cumulus"427branch = "polkadot-v0.9.36"428default-features = false429430[dependencies.cumulus-pallet-dmp-queue]431git = "https://github.com/paritytech/cumulus"432branch = "polkadot-v0.9.36"433default-features = false434435[dependencies.cumulus-pallet-xcmp-queue]436git = "https://github.com/paritytech/cumulus"437branch = "polkadot-v0.9.36"438default-features = false439440[dependencies.cumulus-primitives-utility]441git = "https://github.com/paritytech/cumulus"442branch = "polkadot-v0.9.36"443default-features = false444445[dependencies.cumulus-primitives-timestamp]446git = "https://github.com/paritytech/cumulus"447branch = "polkadot-v0.9.36"448default-features = false449450################################################################################451# Polkadot dependencies452453[dependencies.polkadot-parachain]454git = "https://github.com/paritytech/polkadot"455branch = "release-v0.9.36"456default-features = false457458[dependencies.xcm]459git = "https://github.com/paritytech/polkadot"460branch = "release-v0.9.36"461default-features = false462463[dependencies.xcm-builder]464git = "https://github.com/paritytech/polkadot"465branch = "release-v0.9.36"466default-features = false467468[dependencies.xcm-executor]469git = "https://github.com/paritytech/polkadot"470branch = "release-v0.9.36"471default-features = false472473[dependencies.pallet-xcm]474git = "https://github.com/paritytech/polkadot"475branch = "release-v0.9.36"476default-features = false477478################################################################################479# local dependencies480481[dependencies]482orml-vesting.workspace = true483orml-xtokens.workspace = true484orml-tokens.workspace = true485orml-traits.workspace = true486487log = { version = "0.4.16", default-features = false }488up-common = { path = "../../primitives/common", default-features = false }489scale-info = { version = "2.0.1", default-features = false, features = [490    "derive",491] }492derivative = "2.2.0"493pallet-unique = { path = '../../pallets/unique', default-features = false }494up-rpc = { path = "../../primitives/rpc", default-features = false }495up-pov-estimate-rpc = { path = "../../primitives/pov-estimate-rpc", default-features = false }496app-promotion-rpc = { path = "../../primitives/app_promotion_rpc", default-features = false }497rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }498fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }499fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }500pallet-inflation = { path = '../../pallets/inflation', default-features = false }501pallet-app-promotion = { path = '../../pallets/app-promotion', default-features = false }502up-data-structs = { path = '../../primitives/data-structs', default-features = false }503pallet-collator-selection = { default-features = false, path = "../../pallets/collator-selection" }504pallet-identity = { default-features = false, path = "../../pallets/identity" }505pallet-configuration = { default-features = false, path = "../../pallets/configuration" }506pallet-common = { default-features = false, path = "../../pallets/common" }507pallet-structure = { default-features = false, path = "../../pallets/structure" }508pallet-fungible = { default-features = false, path = "../../pallets/fungible" }509pallet-refungible = { default-features = false, path = "../../pallets/refungible" }510pallet-nonfungible = { default-features = false, path = "../../pallets/nonfungible" }511pallet-proxy-rmrk-core = { default-features = false, path = "../../pallets/proxy-rmrk-core", package = "pallet-rmrk-core" }512pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }513pallet-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" }514pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }515pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }516pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }517pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }518pallet-evm-coder-substrate = { default-features = false, path = "../../pallets/evm-coder-substrate" }519pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }520pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }521pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }522fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }523fp-self-contained = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }524pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.36" }525evm-coder = { default-features = false, path = '../../crates/evm-coder' }526up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.36' }527pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }528pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }529precompile-utils-macro = { path = "../common/ethereum/precompiles/utils/macro" }530num_enum = { version = "0.5.3", default-features = false }531532################################################################################533# Test dependencies534535pallet-test-utils = { optional = true, default-features = false, path = "../../test-pallets/utils" }536537################################################################################538# Other Dependencies539540impl-trait-for-tuples = "0.2.2"541542################################################################################543# Dev Dependencies544545[dev-dependencies.logtest]546version = "2.0.0"547548################################################################################549# Build Dependencies550551[build-dependencies.substrate-wasm-builder]552git = "https://github.com/paritytech/substrate"553branch = "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!();