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

difftreelog

Merge pull request #705 from UniqueNetwork/feature/maintenance-mode

Yaroslav Bolyukin2022-11-08parents: #71a39d0 #6954756.patch.diff
in: master

28 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5374,6 +5374,7 @@
  "pallet-foreign-assets",
  "pallet-fungible",
  "pallet-inflation",
+ "pallet-maintenance",
  "pallet-nonfungible",
  "pallet-randomness-collective-flip",
  "pallet-refungible",
@@ -6250,6 +6251,18 @@
 ]
 
 [[package]]
+name = "pallet-maintenance"
+version = "0.1.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec 3.2.1",
+ "scale-info",
+ "sp-std",
+]
+
+[[package]]
 name = "pallet-membership"
 version = "4.0.0-dev"
 source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d"
@@ -8834,6 +8847,7 @@
  "pallet-foreign-assets",
  "pallet-fungible",
  "pallet-inflation",
+ "pallet-maintenance",
  "pallet-nonfungible",
  "pallet-randomness-collective-flip",
  "pallet-refungible",
@@ -12964,6 +12978,7 @@
  "pallet-foreign-assets",
  "pallet-fungible",
  "pallet-inflation",
+ "pallet-maintenance",
  "pallet-nonfungible",
  "pallet-randomness-collective-flip",
  "pallet-refungible",
addedpallets/maintenance/Cargo.tomldiffbeforeafterboth
--- /dev/null
+++ b/pallets/maintenance/Cargo.toml
@@ -0,0 +1,35 @@
+[package]
+name = "pallet-maintenance"
+version = "0.1.0"
+authors = ["Unique Network <support@uniquenetwork.io>"]
+edition = "2021"
+license = "GPLv3"
+homepage = "https://unique.network"
+repository = "https://github.com/UniqueNetwork/unique-chain"
+description = "Unique Maintenance pallet"
+readme = "README.md"
+
+[dependencies]
+codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] }
+scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }
+
+[features]
+default = ["std"]
+std = [
+	"codec/std",
+	"scale-info/std",
+	"frame-support/std",
+	"frame-system/std",
+	"frame-benchmarking/std",
+	"sp-std/std",
+]
+runtime-benchmarks = [
+	"frame-benchmarking",
+	"frame-support/runtime-benchmarks",
+	"frame-system/runtime-benchmarks",
+]
+try-runtime = ["frame-support/try-runtime"]
addedpallets/maintenance/src/benchmarking.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/maintenance/src/benchmarking.rs
@@ -0,0 +1,37 @@
+// 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/>.
+
+use super::*;
+use crate::{Pallet as Maintenance, Config};
+
+use frame_benchmarking::benchmarks;
+use frame_system::RawOrigin;
+use frame_support::ensure;
+
+benchmarks! {
+	enable {
+	}: _(RawOrigin::Root)
+	verify {
+		ensure!(<Enabled<T>>::get(), "didn't enable the MM");
+	}
+
+	disable {
+		Maintenance::<T>::enable(RawOrigin::Root.into())?;
+	}: _(RawOrigin::Root)
+	verify {
+		ensure!(!<Enabled<T>>::get(), "didn't disable the MM");
+	}
+}
addedpallets/maintenance/src/lib.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/maintenance/src/lib.rs
@@ -0,0 +1,80 @@
+// 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/>.
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+pub use pallet::*;
+
+#[cfg(feature = "runtime-benchmarks")]
+pub mod benchmarking;
+
+pub mod weights;
+
+#[frame_support::pallet]
+pub mod pallet {
+	use frame_support::pallet_prelude::*;
+	use frame_system::pallet_prelude::*;
+	use crate::weights::WeightInfo;
+
+	#[pallet::config]
+	pub trait Config: frame_system::Config {
+		type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;
+		type WeightInfo: WeightInfo;
+	}
+
+	#[pallet::event]
+	#[pallet::generate_deposit(pub(super) fn deposit_event)]
+	pub enum Event<T: Config> {
+		MaintenanceEnabled,
+		MaintenanceDisabled,
+	}
+
+	#[pallet::pallet]
+	#[pallet::generate_store(pub(super) trait Store)]
+	pub struct Pallet<T>(_);
+
+	#[pallet::storage]
+	#[pallet::getter(fn is_enabled)]
+	pub type Enabled<T> = StorageValue<_, bool, ValueQuery>;
+
+	#[pallet::error]
+	pub enum Error<T> {}
+
+	#[pallet::call]
+	impl<T: Config> Pallet<T> {
+		#[pallet::weight(<T as Config>::WeightInfo::enable())]
+		pub fn enable(origin: OriginFor<T>) -> DispatchResult {
+			ensure_root(origin)?;
+
+			<Enabled<T>>::set(true);
+
+			Self::deposit_event(Event::MaintenanceEnabled);
+
+			Ok(())
+		}
+
+		#[pallet::weight(<T as Config>::WeightInfo::disable())]
+		pub fn disable(origin: OriginFor<T>) -> DispatchResult {
+			ensure_root(origin)?;
+
+			<Enabled<T>>::set(false);
+
+			Self::deposit_event(Event::MaintenanceDisabled);
+
+			Ok(())
+		}
+	}
+}
addedpallets/maintenance/src/weights.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/maintenance/src/weights.rs
@@ -0,0 +1,67 @@
+// Template adopted from https://github.com/paritytech/substrate/blob/master/.maintain/frame-weight-template.hbs
+
+//! Autogenerated weights for pallet_maintenance
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-11-01, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
+
+// Executed Command:
+// target/release/unique-collator
+// benchmark
+// pallet
+// --pallet
+// pallet-maintenance
+// --wasm-execution
+// compiled
+// --extrinsic
+// *
+// --template
+// .maintain/frame-weight-template.hbs
+// --steps=50
+// --repeat=80
+// --heap-pages=4096
+// --output=./pallets/maintenance/src/weights.rs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(clippy::unnecessary_cast)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use sp_std::marker::PhantomData;
+
+/// Weight functions needed for pallet_maintenance.
+pub trait WeightInfo {
+	fn enable() -> Weight;
+	fn disable() -> Weight;
+}
+
+/// Weights for pallet_maintenance using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	// Storage: Maintenance Enabled (r:0 w:1)
+	fn enable() -> Weight {
+		Weight::from_ref_time(7_367_000)
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	// Storage: Maintenance Enabled (r:0 w:1)
+	fn disable() -> Weight {
+		Weight::from_ref_time(7_273_000)
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
+
+// For backwards compatibility and tests
+impl WeightInfo for () {
+	// Storage: Maintenance Enabled (r:0 w:1)
+	fn enable() -> Weight {
+		Weight::from_ref_time(7_367_000)
+			.saturating_add(RocksDbWeight::get().writes(1))
+	}
+	// Storage: Maintenance Enabled (r:0 w:1)
+	fn disable() -> Weight {
+		Weight::from_ref_time(7_273_000)
+			.saturating_add(RocksDbWeight::get().writes(1))
+	}
+}
modifiedruntime/common/config/pallets/mod.rsdiffbeforeafterboth
--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -103,3 +103,8 @@
 	type DefaultWeightToFeeCoefficient = ConstU32<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>;
 	type DefaultMinGasPrice = ConstU64<{ up_common::constants::MIN_GAS_PRICE }>;
 }
+
+impl pallet_maintenance::Config for Runtime {
+	type RuntimeEvent = RuntimeEvent;
+	type WeightInfo = pallet_maintenance::weights::SubstrateWeight<Self>;
+}
modifiedruntime/common/construct_runtime/mod.rsdiffbeforeafterboth
--- a/runtime/common/construct_runtime/mod.rs
+++ b/runtime/common/construct_runtime/mod.rs
@@ -94,6 +94,8 @@
                 EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,
                 EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,
 
+                Maintenance: pallet_maintenance::{Pallet, Call, Storage, Event<T>} = 154,
+
                 #[runtimes(opal)]
                 TestUtils: pallet_test_utils = 255,
             }
modifiedruntime/common/ethereum/self_contained_call.rsdiffbeforeafterboth
--- a/runtime/common/ethereum/self_contained_call.rs
+++ b/runtime/common/ethereum/self_contained_call.rs
@@ -17,9 +17,9 @@
 use sp_core::H160;
 use sp_runtime::{
 	traits::{Dispatchable, DispatchInfoOf, PostDispatchInfoOf},
-	transaction_validity::{TransactionValidityError, TransactionValidity},
+	transaction_validity::{TransactionValidityError, TransactionValidity, InvalidTransaction},
 };
-use crate::{RuntimeOrigin, RuntimeCall};
+use crate::{RuntimeOrigin, RuntimeCall, Maintenance};
 
 impl fp_self_contained::SelfContainedCall for RuntimeCall {
 	type SignedInfo = H160;
@@ -33,7 +33,15 @@
 
 	fn check_self_contained(&self) -> Option<Result<Self::SignedInfo, TransactionValidityError>> {
 		match self {
-			RuntimeCall::Ethereum(call) => call.check_self_contained(),
+			RuntimeCall::Ethereum(call) => {
+				if Maintenance::is_enabled() {
+					Some(Err(TransactionValidityError::Invalid(
+						InvalidTransaction::Call,
+					)))
+				} else {
+					call.check_self_contained()
+				}
+			}
 			_ => None,
 		}
 	}
@@ -45,7 +53,15 @@
 		len: usize,
 	) -> Option<TransactionValidity> {
 		match self {
-			RuntimeCall::Ethereum(call) => call.validate_self_contained(info, dispatch_info, len),
+			RuntimeCall::Ethereum(call) => {
+				if Maintenance::is_enabled() {
+					Some(Err(TransactionValidityError::Invalid(
+						InvalidTransaction::Call,
+					)))
+				} else {
+					call.validate_self_contained(info, dispatch_info, len)
+				}
+			}
 			_ => None,
 		}
 	}
addedruntime/common/maintenance.rsdiffbeforeafterboth
--- /dev/null
+++ b/runtime/common/maintenance.rs
@@ -0,0 +1,122 @@
+// 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/>.
+
+use scale_info::TypeInfo;
+use codec::{Encode, Decode};
+use up_common::types::AccountId;
+use crate::{RuntimeCall, Maintenance};
+
+use sp_runtime::{
+	traits::{DispatchInfoOf, SignedExtension},
+	transaction_validity::{
+		TransactionValidity, ValidTransaction, InvalidTransaction, TransactionValidityError,
+	},
+};
+
+#[derive(Debug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)]
+pub struct CheckMaintenance;
+
+impl SignedExtension for CheckMaintenance {
+	type AccountId = AccountId;
+	type Call = RuntimeCall;
+	type AdditionalSigned = ();
+	type Pre = ();
+
+	const IDENTIFIER: &'static str = "CheckMaintenance";
+
+	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+		Ok(())
+	}
+
+	fn pre_dispatch(
+		self,
+		who: &Self::AccountId,
+		call: &Self::Call,
+		info: &DispatchInfoOf<Self::Call>,
+		len: usize,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		self.validate(who, call, info, len).map(|_| ())
+	}
+
+	fn validate(
+		&self,
+		_who: &Self::AccountId,
+		call: &Self::Call,
+		_info: &DispatchInfoOf<Self::Call>,
+		_len: usize,
+	) -> TransactionValidity {
+		if Maintenance::is_enabled() {
+			match call {
+				RuntimeCall::EvmMigration(_)
+				| RuntimeCall::EVM(_)
+				| RuntimeCall::Ethereum(_)
+				| RuntimeCall::Inflation(_)
+				| RuntimeCall::Structure(_)
+				| RuntimeCall::Unique(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+
+				#[cfg(feature = "scheduler")]
+				RuntimeCall::Scheduler(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+
+				#[cfg(feature = "rmrk")]
+				RuntimeCall::RmrkCore(_) | RuntimeCall::RmrkEquip(_) => {
+					Err(TransactionValidityError::Invalid(InvalidTransaction::Call))
+				}
+
+				#[cfg(feature = "app-promotion")]
+				RuntimeCall::AppPromotion(_) => {
+					Err(TransactionValidityError::Invalid(InvalidTransaction::Call))
+				}
+
+				#[cfg(feature = "foreign-assets")]
+				RuntimeCall::ForeignAssets(_) => {
+					Err(TransactionValidityError::Invalid(InvalidTransaction::Call))
+				}
+
+				#[cfg(feature = "pallet-test-utils")]
+				RuntimeCall::TestUtils(_) => Err(TransactionValidityError::Invalid(InvalidTransaction::Call)),
+
+				_ => Ok(ValidTransaction::default()),
+			}
+		} else {
+			Ok(ValidTransaction::default())
+		}
+	}
+
+	fn pre_dispatch_unsigned(
+		call: &Self::Call,
+		info: &DispatchInfoOf<Self::Call>,
+		len: usize,
+	) -> Result<(), TransactionValidityError> {
+		Self::validate_unsigned(call, info, len).map(|_| ())
+	}
+
+	fn validate_unsigned(
+		call: &Self::Call,
+		_info: &DispatchInfoOf<Self::Call>,
+		_len: usize,
+	) -> TransactionValidity {
+		if Maintenance::is_enabled() {
+			match call {
+				RuntimeCall::EVM(_) | RuntimeCall::Ethereum(_) | RuntimeCall::EvmMigration(_) => {
+					Err(TransactionValidityError::Invalid(InvalidTransaction::Call))
+				}
+				_ => Ok(ValidTransaction::default()),
+			}
+		} else {
+			Ok(ValidTransaction::default())
+		}
+	}
+}
modifiedruntime/common/mod.rsdiffbeforeafterboth
--- a/runtime/common/mod.rs
+++ b/runtime/common/mod.rs
@@ -19,6 +19,7 @@
 pub mod dispatch;
 pub mod ethereum;
 pub mod instance;
+pub mod maintenance;
 pub mod runtime_apis;
 
 #[cfg(feature = "scheduler")]
@@ -90,6 +91,7 @@
 	frame_system::CheckEra<Runtime>,
 	frame_system::CheckNonce<Runtime>,
 	frame_system::CheckWeight<Runtime>,
+	maintenance::CheckMaintenance,
 	ChargeTransactionPayment,
 	//pallet_contract_helpers::ContractHelpersExtension<Runtime>,
 	pallet_ethereum::FakeTransactionFinalizer<Runtime>,
modifiedruntime/common/scheduler.rsdiffbeforeafterboth
--- a/runtime/common/scheduler.rs
+++ b/runtime/common/scheduler.rs
@@ -25,7 +25,7 @@
 	DispatchErrorWithPostInfo, DispatchError,
 };
 use codec::Encode;
-use crate::{Runtime, RuntimeCall, RuntimeOrigin, Balances};
+use crate::{Runtime, RuntimeCall, RuntimeOrigin, Balances, maintenance};
 use up_common::types::{AccountId, Balance};
 use fp_self_contained::SelfContainedCall;
 use pallet_unique_scheduler::DispatchCall;
@@ -41,6 +41,7 @@
 	frame_system::CheckEra<Runtime>,
 	frame_system::CheckNonce<Runtime>,
 	frame_system::CheckWeight<Runtime>,
+	maintenance::CheckMaintenance,
 	ChargeTransactionPayment<Runtime>,
 );
 
@@ -53,6 +54,7 @@
 			from,
 		)),
 		frame_system::CheckWeight::<Runtime>::new(),
+		maintenance::CheckMaintenance,
 		ChargeTransactionPayment::<Runtime>::from(0),
 	)
 }
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -45,6 +45,7 @@
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
     'xcm-builder/runtime-benchmarks',
+    'pallet-maintenance/runtime-benchmarks',
 ]
 try-runtime = [
     'frame-try-runtime',
@@ -88,6 +89,7 @@
     'pallet-evm-contract-helpers/try-runtime',
     'pallet-evm-transaction-payment/try-runtime',
     'pallet-evm-migration/try-runtime',
+    'pallet-maintenance/try-runtime',
     'pallet-test-utils?/try-runtime',
 ]
 std = [
@@ -169,6 +171,7 @@
     "orml-traits/std",
     "pallet-foreign-assets/std",
 
+    'pallet-maintenance/std',
     'pallet-test-utils?/std',
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
@@ -485,6 +488,7 @@
 evm-coder = { default-features = false, path = '../../crates/evm-coder' }
 up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }
 pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }
+pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }
 
 ################################################################################
 # Test dependencies
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -44,6 +44,7 @@
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
     'xcm-builder/runtime-benchmarks',
+    'pallet-maintenance/runtime-benchmarks',
 ]
 try-runtime = [
     'frame-try-runtime',
@@ -87,6 +88,7 @@
     'pallet-evm-contract-helpers/try-runtime',
     'pallet-evm-transaction-payment/try-runtime',
     'pallet-evm-migration/try-runtime',
+    'pallet-maintenance/try-runtime',
 ]
 std = [
     'codec/std',
@@ -165,6 +167,7 @@
     "orml-xtokens/std",
     "orml-traits/std",
     "pallet-foreign-assets/std",
+    "pallet-maintenance/std",
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
 quartz-runtime = ['refungible']
@@ -487,6 +490,7 @@
 evm-coder = { default-features = false, path = '../../crates/evm-coder' }
 up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }
 pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }
+pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }
 
 ################################################################################
 # Other Dependencies
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -45,6 +45,7 @@
     'sp-runtime/runtime-benchmarks',
     'xcm-builder/runtime-benchmarks',
     'up-data-structs/runtime-benchmarks',
+    'pallet-maintenance/runtime-benchmarks',
 ]
 try-runtime = [
     'frame-try-runtime',
@@ -88,6 +89,7 @@
     'pallet-evm-contract-helpers/try-runtime',
     'pallet-evm-transaction-payment/try-runtime',
     'pallet-evm-migration/try-runtime',
+    'pallet-maintenance/try-runtime',
 ]
 std = [
     'codec/std',
@@ -166,6 +168,7 @@
     "orml-xtokens/std",
     "orml-traits/std",
     "pallet-foreign-assets/std",
+    "pallet-maintenance/std",
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
 unique-runtime = []
@@ -482,6 +485,7 @@
 evm-coder = { default-features = false, path = '../../crates/evm-coder' }
 up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = 'polkadot-v0.9.30' }
 pallet-foreign-assets = { default-features = false, path = "../../pallets/foreign-assets" }
+pallet-maintenance = { default-features = false, path = "../../pallets/maintenance" }
 
 ################################################################################
 # Other Dependencies
modifiedtests/package.jsondiffbeforeafterboth
--- a/tests/package.json
+++ b/tests/package.json
@@ -70,7 +70,7 @@
     "testBurnItem": "mocha --timeout 9999999 -r ts-node/register ./**/burnItem.test.ts",
     "testAdminTransferAndBurn": "mocha --timeout 9999999 -r ts-node/register ./**/adminTransferAndBurn.test.ts",
     "testSetPermissions": "mocha --timeout 9999999 -r ts-node/register ./**/setPermissions.test.ts",
-    "testCreditFeesToTreasury": "mocha --timeout 9999999 -r ts-node/register ./**/creditFeesToTreasury.test.ts",
+    "testCreditFeesToTreasury": "mocha --timeout 9999999 -r ts-node/register ./**/creditFeesToTreasury.seqtest.ts",
     "testContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/eth/contractSponsoring.test.ts",
     "testEnableContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/enableContractSponsoring.test.ts",
     "testRemoveFromContractAllowList": "mocha --timeout 9999999 -r ts-node/register ./**/removeFromContractAllowList.test.ts",
@@ -78,8 +78,9 @@
     "testSetOffchainSchema": "mocha --timeout 9999999 -r ts-node/register ./**/setOffchainSchema.test.ts",
     "testNextSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/nextSponsoring.test.ts",
     "testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts",
-    "testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.test.ts",
-    "testScheduler": "mocha --timeout 9999999 -r ts-node/register ./**/scheduler.test.ts",
+    "testMaintenance": "mocha --timeout 9999999 -r ts-node/register ./**/maintenanceMode.seqtest.ts",
+    "testInflation": "mocha --timeout 9999999 -r ts-node/register ./**/inflation.seqtest.ts",
+    "testScheduler": "mocha --timeout 9999999 -r ts-node/register ./**/scheduler.seqtest.ts",
     "testSchedulingEVM": "mocha --timeout 9999999 -r ts-node/register ./**/eth/scheduling.test.ts",
     "testPalletPresence": "mocha --timeout 9999999 -r ts-node/register ./**/pallet-presence.test.ts",
     "testBlockProduction": "mocha --timeout 9999999 -r ts-node/register ./**/block-production.test.ts",
@@ -93,7 +94,7 @@
     "testFT": "mocha --timeout 9999999 -r ts-node/register ./**/fungible.test.ts",
     "testEthFT": "mocha --timeout 9999999 -r ts-node/register ./**/eth/fungible.test.ts",
     "testRPC": "mocha --timeout 9999999 -r ts-node/register ./**/rpc.test.ts",
-    "testPromotion": "yarn setup && mocha --timeout 9999999 -r ts-node/register ./**/app-promotion.test.ts",
+    "testPromotion": "yarn setup && mocha --timeout 9999999 -r ts-node/register ./**/app-promotion.*test.ts",
     "testXcmUnique": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmUnique.test.ts",
     "testXcmQuartz": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmQuartz.test.ts",
     "testXcmOpal": "RUN_XCM_TESTS=1 mocha --timeout 9999999 -r ts-node/register ./**/xcm/xcmOpal.test.ts",
modifiedtests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -8,7 +8,7 @@
 import type { ApiTypes, AugmentedConst } from '@polkadot/api-base/types';
 import type { Option, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { Codec } from '@polkadot/types-codec/types';
-import type { Perbill, Permill } from '@polkadot/types/interfaces/runtime';
+import type { Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';
 import type { FrameSupportPalletId, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, XcmV1MultiLocation } from '@polkadot/types/lookup';
 
 export type __AugmentedConst<ApiType extends ApiTypes> = AugmentedConst<ApiType>;
@@ -92,6 +92,22 @@
        **/
       [key: string]: Codec;
     };
+    scheduler: {
+      /**
+       * The maximum weight that may be scheduled per block for any dispatchables of less
+       * priority than `schedule::HARD_DEADLINE`.
+       **/
+      maximumWeight: Weight & AugmentedConst<ApiType>;
+      /**
+       * The maximum number of scheduled calls in the queue for a single block.
+       * Not strictly enforced, but used for weight estimation.
+       **/
+      maxScheduledPerBlock: u32 & AugmentedConst<ApiType>;
+      /**
+       * Generic const
+       **/
+      [key: string]: Codec;
+    };
     system: {
       /**
        * Maximum number of block number to block hash mappings to keep (oldest pruned first).
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -374,6 +374,12 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    maintenance: {
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     nonfungible: {
       /**
        * Unable to burn NFT with children
@@ -636,6 +642,28 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    scheduler: {
+      /**
+       * Failed to schedule a call
+       **/
+      FailedToSchedule: AugmentedError<ApiType>;
+      /**
+       * Cannot find the scheduled call.
+       **/
+      NotFound: AugmentedError<ApiType>;
+      /**
+       * Reschedule failed because it does not change scheduled time.
+       **/
+      RescheduleNoChange: AugmentedError<ApiType>;
+      /**
+       * Given target block number is in the past.
+       **/
+      TargetBlockNumberInPast: AugmentedError<ApiType>;
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     structure: {
       /**
        * While nesting, reached the breadth limit of nesting, exceeding the provided budget.
@@ -702,6 +730,14 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    testUtils: {
+      TestPalletDisabled: AugmentedError<ApiType>;
+      TriggerRollback: AugmentedError<ApiType>;
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     tokens: {
       /**
        * Cannot convert Amount into Balance type
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -7,8 +7,9 @@
 
 import type { ApiTypes, AugmentedEvent } from '@polkadot/api-base/types';
 import type { Bytes, Null, Option, Result, U256, U8aFixed, bool, u128, u32, u64, u8 } from '@polkadot/types-codec';
+import type { ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';
-import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
+import type { EthereumLog, EvmCoreErrorExitReason, FrameSupportDispatchDispatchInfo, FrameSupportScheduleLookupError, FrameSupportTokensMiscBalanceStatus, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, SpRuntimeDispatchError, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetMultiAssets, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation } from '@polkadot/types/lookup';
 
 export type __AugmentedEvent<ApiType extends ApiTypes> = AugmentedEvent<ApiType>;
 
@@ -285,6 +286,14 @@
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
+    maintenance: {
+      MaintenanceDisabled: AugmentedEvent<ApiType, []>;
+      MaintenanceEnabled: AugmentedEvent<ApiType, []>;
+      /**
+       * Generic event
+       **/
+      [key: string]: AugmentedEvent<ApiType>;
+    };
     parachainSystem: {
       /**
        * Downward messages were processed using the given weight.
@@ -466,6 +475,32 @@
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
+    scheduler: {
+      /**
+       * The call for the provided hash was not found so the task has been aborted.
+       **/
+      CallLookupFailed: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, error: FrameSupportScheduleLookupError }>;
+      /**
+       * Canceled some task.
+       **/
+      Canceled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;
+      /**
+       * Dispatched some task.
+       **/
+      Dispatched: AugmentedEvent<ApiType, [task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError>], { task: ITuple<[u32, u32]>, id: Option<U8aFixed>, result: Result<Null, SpRuntimeDispatchError> }>;
+      /**
+       * Scheduled task's priority has changed
+       **/
+      PriorityChanged: AugmentedEvent<ApiType, [when: u32, index: u32, priority: u8], { when: u32, index: u32, priority: u8 }>;
+      /**
+       * Scheduled some task.
+       **/
+      Scheduled: AugmentedEvent<ApiType, [when: u32, index: u32], { when: u32, index: u32 }>;
+      /**
+       * Generic event
+       **/
+      [key: string]: AugmentedEvent<ApiType>;
+    };
     structure: {
       /**
        * Executed call on behalf of the token.
@@ -524,6 +559,14 @@
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
+    testUtils: {
+      ShouldRollback: AugmentedEvent<ApiType, []>;
+      ValueIsSet: AugmentedEvent<ApiType, []>;
+      /**
+       * Generic event
+       **/
+      [key: string]: AugmentedEvent<ApiType>;
+    };
     tokens: {
       /**
        * A balance was set by root.
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -6,10 +6,10 @@
 import '@polkadot/api-base/types/storage';
 
 import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@polkadot/api-base/types';
-import type { BTreeMap, Bytes, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
+import type { BTreeMap, Bytes, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, H160, H256, Weight } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PalletUniqueSchedulerScheduledV3, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
 import type { Observable } from '@polkadot/types/types';
 
 export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;
@@ -389,6 +389,13 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    maintenance: {
+      enabled: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     nonfungible: {
       /**
        * Amount of tokens owned by an account in a collection.
@@ -670,6 +677,20 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    scheduler: {
+      /**
+       * Items to be executed, indexed by the block number that they should be executed on.
+       **/
+      agenda: AugmentedQuery<ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable<Vec<Option<PalletUniqueSchedulerScheduledV3>>>, [u32]> & QueryableStorageEntry<ApiType, [u32]>;
+      /**
+       * Lookup from identity to the block number and index of the task.
+       **/
+      lookup: AugmentedQuery<ApiType, (arg: U8aFixed | string | Uint8Array) => Observable<Option<ITuple<[u32, u32]>>>, [U8aFixed]> & QueryableStorageEntry<ApiType, [U8aFixed]>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     structure: {
       /**
        * Generic query
@@ -772,6 +793,14 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    testUtils: {
+      enabled: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+      testValue: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     timestamp: {
       /**
        * Did the timestamp get updated in this block?
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -6,10 +6,10 @@
 import '@polkadot/api-base/types/submittable';
 
 import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@polkadot/api-base/types';
-import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
+import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;
 export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;
@@ -332,6 +332,14 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    maintenance: {
+      disable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      enable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     parachainSystem: {
       authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;
       enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;
@@ -821,6 +829,29 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    scheduler: {
+      /**
+       * Cancel a named scheduled task.
+       **/
+      cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;
+      changeNamedPriority: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u8]>;
+      /**
+       * Schedule a named task.
+       **/
+      scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;
+      /**
+       * Schedule a named task after a delay.
+       * 
+       * # <weight>
+       * Same as [`schedule_named`](Self::schedule_named).
+       * # </weight>
+       **/
+      scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: Option<u8> | null | Uint8Array | u8 | AnyNumber, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, Option<u8>, FrameSupportScheduleMaybeHashed]>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     structure: {
       /**
        * Generic tx
@@ -954,6 +985,18 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    testUtils: {
+      enable: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      incTestValue: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      justTakeFee: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      selfCancelingInc: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, maxTestValue: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32]>;
+      setTestValue: AugmentedSubmittable<(value: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      setTestValueAndRollback: AugmentedSubmittable<(value: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     timestamp: {
       /**
        * Set the current time.
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -5,7 +5,7 @@
 // this is required to allow for ambient/previous definitions
 import '@polkadot/types/types/registry';
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -328,6 +328,7 @@
     CumulusPalletXcmCall: CumulusPalletXcmCall;
     CumulusPalletXcmError: CumulusPalletXcmError;
     CumulusPalletXcmEvent: CumulusPalletXcmEvent;
+    CumulusPalletXcmOrigin: CumulusPalletXcmOrigin;
     CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall;
     CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError;
     CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent;
@@ -523,7 +524,10 @@
     FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32;
     FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight;
     FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
+    FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;
     FrameSupportPalletId: FrameSupportPalletId;
+    FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;
+    FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;
     FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
     FrameSystemAccountInfo: FrameSystemAccountInfo;
     FrameSystemCall: FrameSystemCall;
@@ -769,7 +773,9 @@
     OffenceDetails: OffenceDetails;
     Offender: Offender;
     OldV1SessionInfo: OldV1SessionInfo;
+    OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;
     OpalRuntimeRuntime: OpalRuntimeRuntime;
+    OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance;
     OpaqueCall: OpaqueCall;
     OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof;
     OpaqueMetadata: OpaqueMetadata;
@@ -835,6 +841,7 @@
     PalletEthereumError: PalletEthereumError;
     PalletEthereumEvent: PalletEthereumEvent;
     PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer;
+    PalletEthereumRawOrigin: PalletEthereumRawOrigin;
     PalletEventMetadataLatest: PalletEventMetadataLatest;
     PalletEventMetadataV14: PalletEventMetadataV14;
     PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr;
@@ -856,6 +863,9 @@
     PalletFungibleError: PalletFungibleError;
     PalletId: PalletId;
     PalletInflationCall: PalletInflationCall;
+    PalletMaintenanceCall: PalletMaintenanceCall;
+    PalletMaintenanceError: PalletMaintenanceError;
+    PalletMaintenanceEvent: PalletMaintenanceEvent;
     PalletMetadataLatest: PalletMetadataLatest;
     PalletMetadataV14: PalletMetadataV14;
     PalletNonfungibleError: PalletNonfungibleError;
@@ -879,6 +889,9 @@
     PalletSudoEvent: PalletSudoEvent;
     PalletTemplateTransactionPaymentCall: PalletTemplateTransactionPaymentCall;
     PalletTemplateTransactionPaymentChargeTransactionPayment: PalletTemplateTransactionPaymentChargeTransactionPayment;
+    PalletTestUtilsCall: PalletTestUtilsCall;
+    PalletTestUtilsError: PalletTestUtilsError;
+    PalletTestUtilsEvent: PalletTestUtilsEvent;
     PalletTimestampCall: PalletTimestampCall;
     PalletTransactionPaymentEvent: PalletTransactionPaymentEvent;
     PalletTransactionPaymentReleases: PalletTransactionPaymentReleases;
@@ -889,10 +902,15 @@
     PalletUniqueCall: PalletUniqueCall;
     PalletUniqueError: PalletUniqueError;
     PalletUniqueRawEvent: PalletUniqueRawEvent;
+    PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
+    PalletUniqueSchedulerError: PalletUniqueSchedulerError;
+    PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
+    PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
     PalletVersion: PalletVersion;
     PalletXcmCall: PalletXcmCall;
     PalletXcmError: PalletXcmError;
     PalletXcmEvent: PalletXcmEvent;
+    PalletXcmOrigin: PalletXcmOrigin;
     ParachainDispatchOrigin: ParachainDispatchOrigin;
     ParachainInherentData: ParachainInherentData;
     ParachainProposal: ParachainProposal;
@@ -1166,6 +1184,7 @@
     SpCoreEcdsaSignature: SpCoreEcdsaSignature;
     SpCoreEd25519Signature: SpCoreEd25519Signature;
     SpCoreSr25519Signature: SpCoreSr25519Signature;
+    SpCoreVoid: SpCoreVoid;
     SpecVersion: SpecVersion;
     SpRuntimeArithmeticError: SpRuntimeArithmeticError;
     SpRuntimeDigest: SpRuntimeDigest;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -153,6 +153,14 @@
   readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
 }
 
+/** @name CumulusPalletXcmOrigin */
+export interface CumulusPalletXcmOrigin extends Enum {
+  readonly isRelay: boolean;
+  readonly isSiblingParachain: boolean;
+  readonly asSiblingParachain: u32;
+  readonly type: 'Relay' | 'SiblingParachain';
+}
+
 /** @name CumulusPalletXcmpQueueCall */
 export interface CumulusPalletXcmpQueueCall extends Enum {
   readonly isServiceOverweight: boolean;
@@ -536,9 +544,34 @@
   readonly mandatory: FrameSystemLimitsWeightsPerClass;
 }
 
+/** @name FrameSupportDispatchRawOrigin */
+export interface FrameSupportDispatchRawOrigin extends Enum {
+  readonly isRoot: boolean;
+  readonly isSigned: boolean;
+  readonly asSigned: AccountId32;
+  readonly isNone: boolean;
+  readonly type: 'Root' | 'Signed' | 'None';
+}
+
 /** @name FrameSupportPalletId */
 export interface FrameSupportPalletId extends U8aFixed {}
 
+/** @name FrameSupportScheduleLookupError */
+export interface FrameSupportScheduleLookupError extends Enum {
+  readonly isUnknown: boolean;
+  readonly isBadFormat: boolean;
+  readonly type: 'Unknown' | 'BadFormat';
+}
+
+/** @name FrameSupportScheduleMaybeHashed */
+export interface FrameSupportScheduleMaybeHashed extends Enum {
+  readonly isValue: boolean;
+  readonly asValue: Call;
+  readonly isHash: boolean;
+  readonly asHash: H256;
+  readonly type: 'Value' | 'Hash';
+}
+
 /** @name FrameSupportTokensMiscBalanceStatus */
 export interface FrameSupportTokensMiscBalanceStatus extends Enum {
   readonly isFree: boolean;
@@ -693,9 +726,27 @@
   readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
 }
 
+/** @name OpalRuntimeOriginCaller */
+export interface OpalRuntimeOriginCaller extends Enum {
+  readonly isSystem: boolean;
+  readonly asSystem: FrameSupportDispatchRawOrigin;
+  readonly isVoid: boolean;
+  readonly asVoid: SpCoreVoid;
+  readonly isPolkadotXcm: boolean;
+  readonly asPolkadotXcm: PalletXcmOrigin;
+  readonly isCumulusXcm: boolean;
+  readonly asCumulusXcm: CumulusPalletXcmOrigin;
+  readonly isEthereum: boolean;
+  readonly asEthereum: PalletEthereumRawOrigin;
+  readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
+}
+
 /** @name OpalRuntimeRuntime */
 export interface OpalRuntimeRuntime extends Null {}
 
+/** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance */
+export interface OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance extends Null {}
+
 /** @name OrmlTokensAccountData */
 export interface OrmlTokensAccountData extends Struct {
   readonly free: u128;
@@ -1303,6 +1354,13 @@
 /** @name PalletEthereumFakeTransactionFinalizer */
 export interface PalletEthereumFakeTransactionFinalizer extends Null {}
 
+/** @name PalletEthereumRawOrigin */
+export interface PalletEthereumRawOrigin extends Enum {
+  readonly isEthereumTransaction: boolean;
+  readonly asEthereumTransaction: H160;
+  readonly type: 'EthereumTransaction';
+}
+
 /** @name PalletEvmAccountBasicCrossAccountIdRepr */
 export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {
   readonly isSubstrate: boolean;
@@ -1543,6 +1601,23 @@
   readonly type: 'StartInflation';
 }
 
+/** @name PalletMaintenanceCall */
+export interface PalletMaintenanceCall extends Enum {
+  readonly isEnable: boolean;
+  readonly isDisable: boolean;
+  readonly type: 'Enable' | 'Disable';
+}
+
+/** @name PalletMaintenanceError */
+export interface PalletMaintenanceError extends Null {}
+
+/** @name PalletMaintenanceEvent */
+export interface PalletMaintenanceEvent extends Enum {
+  readonly isMaintenanceEnabled: boolean;
+  readonly isMaintenanceDisabled: boolean;
+  readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';
+}
+
 /** @name PalletNonfungibleError */
 export interface PalletNonfungibleError extends Enum {
   readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
@@ -1911,6 +1986,41 @@
 /** @name PalletTemplateTransactionPaymentChargeTransactionPayment */
 export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
+/** @name PalletTestUtilsCall */
+export interface PalletTestUtilsCall extends Enum {
+  readonly isEnable: boolean;
+  readonly isSetTestValue: boolean;
+  readonly asSetTestValue: {
+    readonly value: u32;
+  } & Struct;
+  readonly isSetTestValueAndRollback: boolean;
+  readonly asSetTestValueAndRollback: {
+    readonly value: u32;
+  } & Struct;
+  readonly isIncTestValue: boolean;
+  readonly isSelfCancelingInc: boolean;
+  readonly asSelfCancelingInc: {
+    readonly id: U8aFixed;
+    readonly maxTestValue: u32;
+  } & Struct;
+  readonly isJustTakeFee: boolean;
+  readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';
+}
+
+/** @name PalletTestUtilsError */
+export interface PalletTestUtilsError extends Enum {
+  readonly isTestPalletDisabled: boolean;
+  readonly isTriggerRollback: boolean;
+  readonly type: 'TestPalletDisabled' | 'TriggerRollback';
+}
+
+/** @name PalletTestUtilsEvent */
+export interface PalletTestUtilsEvent extends Enum {
+  readonly isValueIsSet: boolean;
+  readonly isShouldRollback: boolean;
+  readonly type: 'ValueIsSet' | 'ShouldRollback';
+}
+
 /** @name PalletTimestampCall */
 export interface PalletTimestampCall extends Enum {
   readonly isSet: boolean;
@@ -2217,6 +2327,87 @@
   readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
 }
 
+/** @name PalletUniqueSchedulerCall */
+export interface PalletUniqueSchedulerCall extends Enum {
+  readonly isScheduleNamed: boolean;
+  readonly asScheduleNamed: {
+    readonly id: U8aFixed;
+    readonly when: u32;
+    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+    readonly priority: Option<u8>;
+    readonly call: FrameSupportScheduleMaybeHashed;
+  } & Struct;
+  readonly isCancelNamed: boolean;
+  readonly asCancelNamed: {
+    readonly id: U8aFixed;
+  } & Struct;
+  readonly isScheduleNamedAfter: boolean;
+  readonly asScheduleNamedAfter: {
+    readonly id: U8aFixed;
+    readonly after: u32;
+    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+    readonly priority: Option<u8>;
+    readonly call: FrameSupportScheduleMaybeHashed;
+  } & Struct;
+  readonly isChangeNamedPriority: boolean;
+  readonly asChangeNamedPriority: {
+    readonly id: U8aFixed;
+    readonly priority: u8;
+  } & Struct;
+  readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
+}
+
+/** @name PalletUniqueSchedulerError */
+export interface PalletUniqueSchedulerError extends Enum {
+  readonly isFailedToSchedule: boolean;
+  readonly isNotFound: boolean;
+  readonly isTargetBlockNumberInPast: boolean;
+  readonly isRescheduleNoChange: boolean;
+  readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
+}
+
+/** @name PalletUniqueSchedulerEvent */
+export interface PalletUniqueSchedulerEvent extends Enum {
+  readonly isScheduled: boolean;
+  readonly asScheduled: {
+    readonly when: u32;
+    readonly index: u32;
+  } & Struct;
+  readonly isCanceled: boolean;
+  readonly asCanceled: {
+    readonly when: u32;
+    readonly index: u32;
+  } & Struct;
+  readonly isPriorityChanged: boolean;
+  readonly asPriorityChanged: {
+    readonly when: u32;
+    readonly index: u32;
+    readonly priority: u8;
+  } & Struct;
+  readonly isDispatched: boolean;
+  readonly asDispatched: {
+    readonly task: ITuple<[u32, u32]>;
+    readonly id: Option<U8aFixed>;
+    readonly result: Result<Null, SpRuntimeDispatchError>;
+  } & Struct;
+  readonly isCallLookupFailed: boolean;
+  readonly asCallLookupFailed: {
+    readonly task: ITuple<[u32, u32]>;
+    readonly id: Option<U8aFixed>;
+    readonly error: FrameSupportScheduleLookupError;
+  } & Struct;
+  readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';
+}
+
+/** @name PalletUniqueSchedulerScheduledV3 */
+export interface PalletUniqueSchedulerScheduledV3 extends Struct {
+  readonly maybeId: Option<U8aFixed>;
+  readonly priority: u8;
+  readonly call: FrameSupportScheduleMaybeHashed;
+  readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+  readonly origin: OpalRuntimeOriginCaller;
+}
+
 /** @name PalletXcmCall */
 export interface PalletXcmCall extends Enum {
   readonly isSend: boolean;
@@ -2334,6 +2525,15 @@
   readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
 }
 
+/** @name PalletXcmOrigin */
+export interface PalletXcmOrigin extends Enum {
+  readonly isXcm: boolean;
+  readonly asXcm: XcmV1MultiLocation;
+  readonly isResponse: boolean;
+  readonly asResponse: XcmV1MultiLocation;
+  readonly type: 'Xcm' | 'Response';
+}
+
 /** @name PhantomTypeUpDataStructs */
 export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
@@ -2554,6 +2754,9 @@
 /** @name SpCoreSr25519Signature */
 export interface SpCoreSr25519Signature extends U8aFixed {}
 
+/** @name SpCoreVoid */
+export interface SpCoreVoid extends Null {}
+
 /** @name SpRuntimeArithmeticError */
 export interface SpRuntimeArithmeticError extends Enum {
   readonly isUnderflow: boolean;
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
1003 Ethereum: 'H160'1003 Ethereum: 'H160'
1004 }1004 }
1005 },1005 },
1006 /**
1007 * Lookup93: pallet_unique_scheduler::pallet::Event<T>
1008 **/
1009 PalletUniqueSchedulerEvent: {
1010 _enum: {
1011 Scheduled: {
1012 when: 'u32',
1013 index: 'u32',
1014 },
1015 Canceled: {
1016 when: 'u32',
1017 index: 'u32',
1018 },
1019 PriorityChanged: {
1020 when: 'u32',
1021 index: 'u32',
1022 priority: 'u8',
1023 },
1024 Dispatched: {
1025 task: '(u32,u32)',
1026 id: 'Option<[u8;16]>',
1027 result: 'Result<Null, SpRuntimeDispatchError>',
1028 },
1029 CallLookupFailed: {
1030 task: '(u32,u32)',
1031 id: 'Option<[u8;16]>',
1032 error: 'FrameSupportScheduleLookupError'
1033 }
1034 }
1035 },
1036 /**
1037 * Lookup96: frame_support::traits::schedule::LookupError
1038 **/
1039 FrameSupportScheduleLookupError: {
1040 _enum: ['Unknown', 'BadFormat']
1041 },
1006 /**1042 /**
1007 * Lookup93: pallet_common::pallet::Event<T>1043 * Lookup97: pallet_common::pallet::Event<T>
1008 **/1044 **/
1009 PalletCommonEvent: {1045 PalletCommonEvent: {
1010 _enum: {1046 _enum: {
1011 CollectionCreated: '(u32,u8,AccountId32)',1047 CollectionCreated: '(u32,u8,AccountId32)',
1021 PropertyPermissionSet: '(u32,Bytes)'1057 PropertyPermissionSet: '(u32,Bytes)'
1022 }1058 }
1023 },1059 },
1024 /**1060 /**
1025 * Lookup96: pallet_structure::pallet::Event<T>1061 * Lookup100: pallet_structure::pallet::Event<T>
1026 **/1062 **/
1027 PalletStructureEvent: {1063 PalletStructureEvent: {
1028 _enum: {1064 _enum: {
1029 Executed: 'Result<Null, SpRuntimeDispatchError>'1065 Executed: 'Result<Null, SpRuntimeDispatchError>'
1030 }1066 }
1031 },1067 },
1032 /**1068 /**
1033 * Lookup97: pallet_rmrk_core::pallet::Event<T>1069 * Lookup101: pallet_rmrk_core::pallet::Event<T>
1034 **/1070 **/
1035 PalletRmrkCoreEvent: {1071 PalletRmrkCoreEvent: {
1036 _enum: {1072 _enum: {
1037 CollectionCreated: {1073 CollectionCreated: {
1106 }1142 }
1107 }1143 }
1108 },1144 },
1109 /**1145 /**
1110 * Lookup98: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1146 * Lookup102: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
1111 **/1147 **/
1112 RmrkTraitsNftAccountIdOrCollectionNftTuple: {1148 RmrkTraitsNftAccountIdOrCollectionNftTuple: {
1113 _enum: {1149 _enum: {
1114 AccountId: 'AccountId32',1150 AccountId: 'AccountId32',
1115 CollectionAndNftTuple: '(u32,u32)'1151 CollectionAndNftTuple: '(u32,u32)'
1116 }1152 }
1117 },1153 },
1118 /**1154 /**
1119 * Lookup103: pallet_rmrk_equip::pallet::Event<T>1155 * Lookup107: pallet_rmrk_equip::pallet::Event<T>
1120 **/1156 **/
1121 PalletRmrkEquipEvent: {1157 PalletRmrkEquipEvent: {
1122 _enum: {1158 _enum: {
1123 BaseCreated: {1159 BaseCreated: {
1130 }1166 }
1131 }1167 }
1132 },1168 },
1133 /**1169 /**
1134 * Lookup104: pallet_app_promotion::pallet::Event<T>1170 * Lookup108: pallet_app_promotion::pallet::Event<T>
1135 **/1171 **/
1136 PalletAppPromotionEvent: {1172 PalletAppPromotionEvent: {
1137 _enum: {1173 _enum: {
1138 StakingRecalculation: '(AccountId32,u128,u128)',1174 StakingRecalculation: '(AccountId32,u128,u128)',
1141 SetAdmin: 'AccountId32'1177 SetAdmin: 'AccountId32'
1142 }1178 }
1143 },1179 },
1144 /**1180 /**
1145 * Lookup105: pallet_foreign_assets::module::Event<T>1181 * Lookup109: pallet_foreign_assets::module::Event<T>
1146 **/1182 **/
1147 PalletForeignAssetsModuleEvent: {1183 PalletForeignAssetsModuleEvent: {
1148 _enum: {1184 _enum: {
1149 ForeignAssetRegistered: {1185 ForeignAssetRegistered: {
1166 }1202 }
1167 }1203 }
1168 },1204 },
1169 /**1205 /**
1170 * Lookup106: pallet_foreign_assets::module::AssetMetadata<Balance>1206 * Lookup110: pallet_foreign_assets::module::AssetMetadata<Balance>
1171 **/1207 **/
1172 PalletForeignAssetsModuleAssetMetadata: {1208 PalletForeignAssetsModuleAssetMetadata: {
1173 name: 'Bytes',1209 name: 'Bytes',
1174 symbol: 'Bytes',1210 symbol: 'Bytes',
1175 decimals: 'u8',1211 decimals: 'u8',
1176 minimalBalance: 'u128'1212 minimalBalance: 'u128'
1177 },1213 },
1178 /**1214 /**
1179 * Lookup107: pallet_evm::pallet::Event<T>1215 * Lookup111: pallet_evm::pallet::Event<T>
1180 **/1216 **/
1181 PalletEvmEvent: {1217 PalletEvmEvent: {
1182 _enum: {1218 _enum: {
1183 Log: 'EthereumLog',1219 Log: 'EthereumLog',
1189 BalanceWithdraw: '(AccountId32,H160,U256)'1225 BalanceWithdraw: '(AccountId32,H160,U256)'
1190 }1226 }
1191 },1227 },
1192 /**1228 /**
1193 * Lookup108: ethereum::log::Log1229 * Lookup112: ethereum::log::Log
1194 **/1230 **/
1195 EthereumLog: {1231 EthereumLog: {
1196 address: 'H160',1232 address: 'H160',
1197 topics: 'Vec<H256>',1233 topics: 'Vec<H256>',
1198 data: 'Bytes'1234 data: 'Bytes'
1199 },1235 },
1200 /**1236 /**
1201 * Lookup112: pallet_ethereum::pallet::Event1237 * Lookup116: pallet_ethereum::pallet::Event
1202 **/1238 **/
1203 PalletEthereumEvent: {1239 PalletEthereumEvent: {
1204 _enum: {1240 _enum: {
1205 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'1241 Executed: '(H160,H160,H256,EvmCoreErrorExitReason)'
1206 }1242 }
1207 },1243 },
1208 /**1244 /**
1209 * Lookup113: evm_core::error::ExitReason1245 * Lookup117: evm_core::error::ExitReason
1210 **/1246 **/
1211 EvmCoreErrorExitReason: {1247 EvmCoreErrorExitReason: {
1212 _enum: {1248 _enum: {
1213 Succeed: 'EvmCoreErrorExitSucceed',1249 Succeed: 'EvmCoreErrorExitSucceed',
1216 Fatal: 'EvmCoreErrorExitFatal'1252 Fatal: 'EvmCoreErrorExitFatal'
1217 }1253 }
1218 },1254 },
1219 /**1255 /**
1220 * Lookup114: evm_core::error::ExitSucceed1256 * Lookup118: evm_core::error::ExitSucceed
1221 **/1257 **/
1222 EvmCoreErrorExitSucceed: {1258 EvmCoreErrorExitSucceed: {
1223 _enum: ['Stopped', 'Returned', 'Suicided']1259 _enum: ['Stopped', 'Returned', 'Suicided']
1224 },1260 },
1225 /**1261 /**
1226 * Lookup115: evm_core::error::ExitError1262 * Lookup119: evm_core::error::ExitError
1227 **/1263 **/
1228 EvmCoreErrorExitError: {1264 EvmCoreErrorExitError: {
1229 _enum: {1265 _enum: {
1230 StackUnderflow: 'Null',1266 StackUnderflow: 'Null',
1244 InvalidCode: 'Null'1280 InvalidCode: 'Null'
1245 }1281 }
1246 },1282 },
1247 /**1283 /**
1248 * Lookup118: evm_core::error::ExitRevert1284 * Lookup122: evm_core::error::ExitRevert
1249 **/1285 **/
1250 EvmCoreErrorExitRevert: {1286 EvmCoreErrorExitRevert: {
1251 _enum: ['Reverted']1287 _enum: ['Reverted']
1252 },1288 },
1253 /**1289 /**
1254 * Lookup119: evm_core::error::ExitFatal1290 * Lookup123: evm_core::error::ExitFatal
1255 **/1291 **/
1256 EvmCoreErrorExitFatal: {1292 EvmCoreErrorExitFatal: {
1257 _enum: {1293 _enum: {
1258 NotSupported: 'Null',1294 NotSupported: 'Null',
1261 Other: 'Text'1297 Other: 'Text'
1262 }1298 }
1263 },1299 },
1264 /**1300 /**
1265 * Lookup120: pallet_evm_contract_helpers::pallet::Event<T>1301 * Lookup124: pallet_evm_contract_helpers::pallet::Event<T>
1266 **/1302 **/
1267 PalletEvmContractHelpersEvent: {1303 PalletEvmContractHelpersEvent: {
1268 _enum: {1304 _enum: {
1269 ContractSponsorSet: '(H160,AccountId32)',1305 ContractSponsorSet: '(H160,AccountId32)',
1270 ContractSponsorshipConfirmed: '(H160,AccountId32)',1306 ContractSponsorshipConfirmed: '(H160,AccountId32)',
1271 ContractSponsorRemoved: 'H160'1307 ContractSponsorRemoved: 'H160'
1272 }1308 }
1273 },1309 },
1310 /**
1311 * Lookup125: pallet_maintenance::pallet::Event<T>
1312 **/
1313 PalletMaintenanceEvent: {
1314 _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']
1315 },
1316 /**
1317 * Lookup126: pallet_test_utils::pallet::Event<T>
1318 **/
1319 PalletTestUtilsEvent: {
1320 _enum: ['ValueIsSet', 'ShouldRollback']
1321 },
1274 /**1322 /**
1275 * Lookup121: frame_system::Phase1323 * Lookup127: frame_system::Phase
1276 **/1324 **/
1277 FrameSystemPhase: {1325 FrameSystemPhase: {
1278 _enum: {1326 _enum: {
1279 ApplyExtrinsic: 'u32',1327 ApplyExtrinsic: 'u32',
1280 Finalization: 'Null',1328 Finalization: 'Null',
1281 Initialization: 'Null'1329 Initialization: 'Null'
1282 }1330 }
1283 },1331 },
1284 /**1332 /**
1285 * Lookup124: frame_system::LastRuntimeUpgradeInfo1333 * Lookup129: frame_system::LastRuntimeUpgradeInfo
1286 **/1334 **/
1287 FrameSystemLastRuntimeUpgradeInfo: {1335 FrameSystemLastRuntimeUpgradeInfo: {
1288 specVersion: 'Compact<u32>',1336 specVersion: 'Compact<u32>',
1289 specName: 'Text'1337 specName: 'Text'
1290 },1338 },
1291 /**1339 /**
1292 * Lookup125: frame_system::pallet::Call<T>1340 * Lookup130: frame_system::pallet::Call<T>
1293 **/1341 **/
1294 FrameSystemCall: {1342 FrameSystemCall: {
1295 _enum: {1343 _enum: {
1296 fill_block: {1344 fill_block: {
1326 }1374 }
1327 }1375 }
1328 },1376 },
1329 /**1377 /**
1330 * Lookup130: frame_system::limits::BlockWeights1378 * Lookup135: frame_system::limits::BlockWeights
1331 **/1379 **/
1332 FrameSystemLimitsBlockWeights: {1380 FrameSystemLimitsBlockWeights: {
1333 baseBlock: 'Weight',1381 baseBlock: 'Weight',
1334 maxBlock: 'Weight',1382 maxBlock: 'Weight',
1335 perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1383 perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'
1336 },1384 },
1337 /**1385 /**
1338 * Lookup131: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1386 * Lookup136: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>
1339 **/1387 **/
1340 FrameSupportDispatchPerDispatchClassWeightsPerClass: {1388 FrameSupportDispatchPerDispatchClassWeightsPerClass: {
1341 normal: 'FrameSystemLimitsWeightsPerClass',1389 normal: 'FrameSystemLimitsWeightsPerClass',
1342 operational: 'FrameSystemLimitsWeightsPerClass',1390 operational: 'FrameSystemLimitsWeightsPerClass',
1343 mandatory: 'FrameSystemLimitsWeightsPerClass'1391 mandatory: 'FrameSystemLimitsWeightsPerClass'
1344 },1392 },
1345 /**1393 /**
1346 * Lookup132: frame_system::limits::WeightsPerClass1394 * Lookup137: frame_system::limits::WeightsPerClass
1347 **/1395 **/
1348 FrameSystemLimitsWeightsPerClass: {1396 FrameSystemLimitsWeightsPerClass: {
1349 baseExtrinsic: 'Weight',1397 baseExtrinsic: 'Weight',
1350 maxExtrinsic: 'Option<Weight>',1398 maxExtrinsic: 'Option<Weight>',
1351 maxTotal: 'Option<Weight>',1399 maxTotal: 'Option<Weight>',
1352 reserved: 'Option<Weight>'1400 reserved: 'Option<Weight>'
1353 },1401 },
1354 /**1402 /**
1355 * Lookup134: frame_system::limits::BlockLength1403 * Lookup139: frame_system::limits::BlockLength
1356 **/1404 **/
1357 FrameSystemLimitsBlockLength: {1405 FrameSystemLimitsBlockLength: {
1358 max: 'FrameSupportDispatchPerDispatchClassU32'1406 max: 'FrameSupportDispatchPerDispatchClassU32'
1359 },1407 },
1360 /**1408 /**
1361 * Lookup135: frame_support::dispatch::PerDispatchClass<T>1409 * Lookup140: frame_support::dispatch::PerDispatchClass<T>
1362 **/1410 **/
1363 FrameSupportDispatchPerDispatchClassU32: {1411 FrameSupportDispatchPerDispatchClassU32: {
1364 normal: 'u32',1412 normal: 'u32',
1365 operational: 'u32',1413 operational: 'u32',
1366 mandatory: 'u32'1414 mandatory: 'u32'
1367 },1415 },
1368 /**1416 /**
1369 * Lookup136: sp_weights::RuntimeDbWeight1417 * Lookup141: sp_weights::RuntimeDbWeight
1370 **/1418 **/
1371 SpWeightsRuntimeDbWeight: {1419 SpWeightsRuntimeDbWeight: {
1372 read: 'u64',1420 read: 'u64',
1373 write: 'u64'1421 write: 'u64'
1374 },1422 },
1375 /**1423 /**
1376 * Lookup137: sp_version::RuntimeVersion1424 * Lookup142: sp_version::RuntimeVersion
1377 **/1425 **/
1378 SpVersionRuntimeVersion: {1426 SpVersionRuntimeVersion: {
1379 specName: 'Text',1427 specName: 'Text',
1380 implName: 'Text',1428 implName: 'Text',
1385 transactionVersion: 'u32',1433 transactionVersion: 'u32',
1386 stateVersion: 'u8'1434 stateVersion: 'u8'
1387 },1435 },
1388 /**1436 /**
1389 * Lookup142: frame_system::pallet::Error<T>1437 * Lookup147: frame_system::pallet::Error<T>
1390 **/1438 **/
1391 FrameSystemError: {1439 FrameSystemError: {
1392 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1440 _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
1393 },1441 },
1394 /**1442 /**
1395 * Lookup143: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1443 * Lookup148: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>
1396 **/1444 **/
1397 PolkadotPrimitivesV2PersistedValidationData: {1445 PolkadotPrimitivesV2PersistedValidationData: {
1398 parentHead: 'Bytes',1446 parentHead: 'Bytes',
1399 relayParentNumber: 'u32',1447 relayParentNumber: 'u32',
1400 relayParentStorageRoot: 'H256',1448 relayParentStorageRoot: 'H256',
1401 maxPovSize: 'u32'1449 maxPovSize: 'u32'
1402 },1450 },
1403 /**1451 /**
1404 * Lookup146: polkadot_primitives::v2::UpgradeRestriction1452 * Lookup151: polkadot_primitives::v2::UpgradeRestriction
1405 **/1453 **/
1406 PolkadotPrimitivesV2UpgradeRestriction: {1454 PolkadotPrimitivesV2UpgradeRestriction: {
1407 _enum: ['Present']1455 _enum: ['Present']
1408 },1456 },
1409 /**1457 /**
1410 * Lookup147: sp_trie::storage_proof::StorageProof1458 * Lookup152: sp_trie::storage_proof::StorageProof
1411 **/1459 **/
1412 SpTrieStorageProof: {1460 SpTrieStorageProof: {
1413 trieNodes: 'BTreeSet<Bytes>'1461 trieNodes: 'BTreeSet<Bytes>'
1414 },1462 },
1415 /**1463 /**
1416 * Lookup149: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1464 * Lookup154: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot
1417 **/1465 **/
1418 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1466 CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {
1419 dmqMqcHead: 'H256',1467 dmqMqcHead: 'H256',
1420 relayDispatchQueueSize: '(u32,u32)',1468 relayDispatchQueueSize: '(u32,u32)',
1421 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1469 ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',
1422 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1470 egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'
1423 },1471 },
1424 /**1472 /**
1425 * Lookup152: polkadot_primitives::v2::AbridgedHrmpChannel1473 * Lookup157: polkadot_primitives::v2::AbridgedHrmpChannel
1426 **/1474 **/
1427 PolkadotPrimitivesV2AbridgedHrmpChannel: {1475 PolkadotPrimitivesV2AbridgedHrmpChannel: {
1428 maxCapacity: 'u32',1476 maxCapacity: 'u32',
1429 maxTotalSize: 'u32',1477 maxTotalSize: 'u32',
1432 totalSize: 'u32',1480 totalSize: 'u32',
1433 mqcHead: 'Option<H256>'1481 mqcHead: 'Option<H256>'
1434 },1482 },
1435 /**1483 /**
1436 * Lookup153: polkadot_primitives::v2::AbridgedHostConfiguration1484 * Lookup158: polkadot_primitives::v2::AbridgedHostConfiguration
1437 **/1485 **/
1438 PolkadotPrimitivesV2AbridgedHostConfiguration: {1486 PolkadotPrimitivesV2AbridgedHostConfiguration: {
1439 maxCodeSize: 'u32',1487 maxCodeSize: 'u32',
1440 maxHeadDataSize: 'u32',1488 maxHeadDataSize: 'u32',
1446 validationUpgradeCooldown: 'u32',1494 validationUpgradeCooldown: 'u32',
1447 validationUpgradeDelay: 'u32'1495 validationUpgradeDelay: 'u32'
1448 },1496 },
1449 /**1497 /**
1450 * Lookup159: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1498 * Lookup164: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>
1451 **/1499 **/
1452 PolkadotCorePrimitivesOutboundHrmpMessage: {1500 PolkadotCorePrimitivesOutboundHrmpMessage: {
1453 recipient: 'u32',1501 recipient: 'u32',
1454 data: 'Bytes'1502 data: 'Bytes'
1455 },1503 },
1456 /**1504 /**
1457 * Lookup160: cumulus_pallet_parachain_system::pallet::Call<T>1505 * Lookup165: cumulus_pallet_parachain_system::pallet::Call<T>
1458 **/1506 **/
1459 CumulusPalletParachainSystemCall: {1507 CumulusPalletParachainSystemCall: {
1460 _enum: {1508 _enum: {
1461 set_validation_data: {1509 set_validation_data: {
1472 }1520 }
1473 }1521 }
1474 },1522 },
1475 /**1523 /**
1476 * Lookup161: cumulus_primitives_parachain_inherent::ParachainInherentData1524 * Lookup166: cumulus_primitives_parachain_inherent::ParachainInherentData
1477 **/1525 **/
1478 CumulusPrimitivesParachainInherentParachainInherentData: {1526 CumulusPrimitivesParachainInherentParachainInherentData: {
1479 validationData: 'PolkadotPrimitivesV2PersistedValidationData',1527 validationData: 'PolkadotPrimitivesV2PersistedValidationData',
1480 relayChainState: 'SpTrieStorageProof',1528 relayChainState: 'SpTrieStorageProof',
1481 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1529 downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',
1482 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1530 horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'
1483 },1531 },
1484 /**1532 /**
1485 * Lookup163: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1533 * Lookup168: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>
1486 **/1534 **/
1487 PolkadotCorePrimitivesInboundDownwardMessage: {1535 PolkadotCorePrimitivesInboundDownwardMessage: {
1488 sentAt: 'u32',1536 sentAt: 'u32',
1489 msg: 'Bytes'1537 msg: 'Bytes'
1490 },1538 },
1491 /**1539 /**
1492 * Lookup166: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1540 * Lookup171: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>
1493 **/1541 **/
1494 PolkadotCorePrimitivesInboundHrmpMessage: {1542 PolkadotCorePrimitivesInboundHrmpMessage: {
1495 sentAt: 'u32',1543 sentAt: 'u32',
1496 data: 'Bytes'1544 data: 'Bytes'
1497 },1545 },
1498 /**1546 /**
1499 * Lookup169: cumulus_pallet_parachain_system::pallet::Error<T>1547 * Lookup174: cumulus_pallet_parachain_system::pallet::Error<T>
1500 **/1548 **/
1501 CumulusPalletParachainSystemError: {1549 CumulusPalletParachainSystemError: {
1502 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1550 _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']
1503 },1551 },
1504 /**1552 /**
1505 * Lookup171: pallet_balances::BalanceLock<Balance>1553 * Lookup176: pallet_balances::BalanceLock<Balance>
1506 **/1554 **/
1507 PalletBalancesBalanceLock: {1555 PalletBalancesBalanceLock: {
1508 id: '[u8;8]',1556 id: '[u8;8]',
1509 amount: 'u128',1557 amount: 'u128',
1510 reasons: 'PalletBalancesReasons'1558 reasons: 'PalletBalancesReasons'
1511 },1559 },
1512 /**1560 /**
1513 * Lookup172: pallet_balances::Reasons1561 * Lookup177: pallet_balances::Reasons
1514 **/1562 **/
1515 PalletBalancesReasons: {1563 PalletBalancesReasons: {
1516 _enum: ['Fee', 'Misc', 'All']1564 _enum: ['Fee', 'Misc', 'All']
1517 },1565 },
1518 /**1566 /**
1519 * Lookup175: pallet_balances::ReserveData<ReserveIdentifier, Balance>1567 * Lookup180: pallet_balances::ReserveData<ReserveIdentifier, Balance>
1520 **/1568 **/
1521 PalletBalancesReserveData: {1569 PalletBalancesReserveData: {
1522 id: '[u8;16]',1570 id: '[u8;16]',
1523 amount: 'u128'1571 amount: 'u128'
1524 },1572 },
1525 /**1573 /**
1526 * Lookup177: pallet_balances::Releases1574 * Lookup182: pallet_balances::Releases
1527 **/1575 **/
1528 PalletBalancesReleases: {1576 PalletBalancesReleases: {
1529 _enum: ['V1_0_0', 'V2_0_0']1577 _enum: ['V1_0_0', 'V2_0_0']
1530 },1578 },
1531 /**1579 /**
1532 * Lookup178: pallet_balances::pallet::Call<T, I>1580 * Lookup183: pallet_balances::pallet::Call<T, I>
1533 **/1581 **/
1534 PalletBalancesCall: {1582 PalletBalancesCall: {
1535 _enum: {1583 _enum: {
1536 transfer: {1584 transfer: {
1561 }1609 }
1562 }1610 }
1563 },1611 },
1564 /**1612 /**
1565 * Lookup181: pallet_balances::pallet::Error<T, I>1613 * Lookup186: pallet_balances::pallet::Error<T, I>
1566 **/1614 **/
1567 PalletBalancesError: {1615 PalletBalancesError: {
1568 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1616 _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']
1569 },1617 },
1570 /**1618 /**
1571 * Lookup183: pallet_timestamp::pallet::Call<T>1619 * Lookup188: pallet_timestamp::pallet::Call<T>
1572 **/1620 **/
1573 PalletTimestampCall: {1621 PalletTimestampCall: {
1574 _enum: {1622 _enum: {
1575 set: {1623 set: {
1576 now: 'Compact<u64>'1624 now: 'Compact<u64>'
1577 }1625 }
1578 }1626 }
1579 },1627 },
1580 /**1628 /**
1581 * Lookup185: pallet_transaction_payment::Releases1629 * Lookup190: pallet_transaction_payment::Releases
1582 **/1630 **/
1583 PalletTransactionPaymentReleases: {1631 PalletTransactionPaymentReleases: {
1584 _enum: ['V1Ancient', 'V2']1632 _enum: ['V1Ancient', 'V2']
1585 },1633 },
1586 /**1634 /**
1587 * Lookup186: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1635 * Lookup191: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>
1588 **/1636 **/
1589 PalletTreasuryProposal: {1637 PalletTreasuryProposal: {
1590 proposer: 'AccountId32',1638 proposer: 'AccountId32',
1591 value: 'u128',1639 value: 'u128',
1592 beneficiary: 'AccountId32',1640 beneficiary: 'AccountId32',
1593 bond: 'u128'1641 bond: 'u128'
1594 },1642 },
1595 /**1643 /**
1596 * Lookup189: pallet_treasury::pallet::Call<T, I>1644 * Lookup194: pallet_treasury::pallet::Call<T, I>
1597 **/1645 **/
1598 PalletTreasuryCall: {1646 PalletTreasuryCall: {
1599 _enum: {1647 _enum: {
1600 propose_spend: {1648 propose_spend: {
1616 }1664 }
1617 }1665 }
1618 },1666 },
1619 /**1667 /**
1620 * Lookup192: frame_support::PalletId1668 * Lookup197: frame_support::PalletId
1621 **/1669 **/
1622 FrameSupportPalletId: '[u8;8]',1670 FrameSupportPalletId: '[u8;8]',
1623 /**1671 /**
1624 * Lookup193: pallet_treasury::pallet::Error<T, I>1672 * Lookup198: pallet_treasury::pallet::Error<T, I>
1625 **/1673 **/
1626 PalletTreasuryError: {1674 PalletTreasuryError: {
1627 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1675 _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']
1628 },1676 },
1629 /**1677 /**
1630 * Lookup194: pallet_sudo::pallet::Call<T>1678 * Lookup199: pallet_sudo::pallet::Call<T>
1631 **/1679 **/
1632 PalletSudoCall: {1680 PalletSudoCall: {
1633 _enum: {1681 _enum: {
1634 sudo: {1682 sudo: {
1650 }1698 }
1651 }1699 }
1652 },1700 },
1653 /**1701 /**
1654 * Lookup196: orml_vesting::module::Call<T>1702 * Lookup201: orml_vesting::module::Call<T>
1655 **/1703 **/
1656 OrmlVestingModuleCall: {1704 OrmlVestingModuleCall: {
1657 _enum: {1705 _enum: {
1658 claim: 'Null',1706 claim: 'Null',
1669 }1717 }
1670 }1718 }
1671 },1719 },
1672 /**1720 /**
1673 * Lookup198: orml_xtokens::module::Call<T>1721 * Lookup203: orml_xtokens::module::Call<T>
1674 **/1722 **/
1675 OrmlXtokensModuleCall: {1723 OrmlXtokensModuleCall: {
1676 _enum: {1724 _enum: {
1677 transfer: {1725 transfer: {
1712 }1760 }
1713 }1761 }
1714 },1762 },
1715 /**1763 /**
1716 * Lookup199: xcm::VersionedMultiAsset1764 * Lookup204: xcm::VersionedMultiAsset
1717 **/1765 **/
1718 XcmVersionedMultiAsset: {1766 XcmVersionedMultiAsset: {
1719 _enum: {1767 _enum: {
1720 V0: 'XcmV0MultiAsset',1768 V0: 'XcmV0MultiAsset',
1721 V1: 'XcmV1MultiAsset'1769 V1: 'XcmV1MultiAsset'
1722 }1770 }
1723 },1771 },
1724 /**1772 /**
1725 * Lookup202: orml_tokens::module::Call<T>1773 * Lookup207: orml_tokens::module::Call<T>
1726 **/1774 **/
1727 OrmlTokensModuleCall: {1775 OrmlTokensModuleCall: {
1728 _enum: {1776 _enum: {
1729 transfer: {1777 transfer: {
1755 }1803 }
1756 }1804 }
1757 },1805 },
1758 /**1806 /**
1759 * Lookup203: cumulus_pallet_xcmp_queue::pallet::Call<T>1807 * Lookup208: cumulus_pallet_xcmp_queue::pallet::Call<T>
1760 **/1808 **/
1761 CumulusPalletXcmpQueueCall: {1809 CumulusPalletXcmpQueueCall: {
1762 _enum: {1810 _enum: {
1763 service_overweight: {1811 service_overweight: {
1804 }1852 }
1805 }1853 }
1806 },1854 },
1807 /**1855 /**
1808 * Lookup204: pallet_xcm::pallet::Call<T>1856 * Lookup209: pallet_xcm::pallet::Call<T>
1809 **/1857 **/
1810 PalletXcmCall: {1858 PalletXcmCall: {
1811 _enum: {1859 _enum: {
1812 send: {1860 send: {
1858 }1906 }
1859 }1907 }
1860 },1908 },
1861 /**1909 /**
1862 * Lookup205: xcm::VersionedXcm<RuntimeCall>1910 * Lookup210: xcm::VersionedXcm<RuntimeCall>
1863 **/1911 **/
1864 XcmVersionedXcm: {1912 XcmVersionedXcm: {
1865 _enum: {1913 _enum: {
1866 V0: 'XcmV0Xcm',1914 V0: 'XcmV0Xcm',
1867 V1: 'XcmV1Xcm',1915 V1: 'XcmV1Xcm',
1868 V2: 'XcmV2Xcm'1916 V2: 'XcmV2Xcm'
1869 }1917 }
1870 },1918 },
1871 /**1919 /**
1872 * Lookup206: xcm::v0::Xcm<RuntimeCall>1920 * Lookup211: xcm::v0::Xcm<RuntimeCall>
1873 **/1921 **/
1874 XcmV0Xcm: {1922 XcmV0Xcm: {
1875 _enum: {1923 _enum: {
1876 WithdrawAsset: {1924 WithdrawAsset: {
1922 }1970 }
1923 }1971 }
1924 },1972 },
1925 /**1973 /**
1926 * Lookup208: xcm::v0::order::Order<RuntimeCall>1974 * Lookup213: xcm::v0::order::Order<RuntimeCall>
1927 **/1975 **/
1928 XcmV0Order: {1976 XcmV0Order: {
1929 _enum: {1977 _enum: {
1930 Null: 'Null',1978 Null: 'Null',
1965 }2013 }
1966 }2014 }
1967 },2015 },
1968 /**2016 /**
1969 * Lookup210: xcm::v0::Response2017 * Lookup215: xcm::v0::Response
1970 **/2018 **/
1971 XcmV0Response: {2019 XcmV0Response: {
1972 _enum: {2020 _enum: {
1973 Assets: 'Vec<XcmV0MultiAsset>'2021 Assets: 'Vec<XcmV0MultiAsset>'
1974 }2022 }
1975 },2023 },
1976 /**2024 /**
1977 * Lookup211: xcm::v1::Xcm<RuntimeCall>2025 * Lookup216: xcm::v1::Xcm<RuntimeCall>
1978 **/2026 **/
1979 XcmV1Xcm: {2027 XcmV1Xcm: {
1980 _enum: {2028 _enum: {
1981 WithdrawAsset: {2029 WithdrawAsset: {
2032 UnsubscribeVersion: 'Null'2080 UnsubscribeVersion: 'Null'
2033 }2081 }
2034 },2082 },
2035 /**2083 /**
2036 * Lookup213: xcm::v1::order::Order<RuntimeCall>2084 * Lookup218: xcm::v1::order::Order<RuntimeCall>
2037 **/2085 **/
2038 XcmV1Order: {2086 XcmV1Order: {
2039 _enum: {2087 _enum: {
2040 Noop: 'Null',2088 Noop: 'Null',
2077 }2125 }
2078 }2126 }
2079 },2127 },
2080 /**2128 /**
2081 * Lookup215: xcm::v1::Response2129 * Lookup220: xcm::v1::Response
2082 **/2130 **/
2083 XcmV1Response: {2131 XcmV1Response: {
2084 _enum: {2132 _enum: {
2085 Assets: 'XcmV1MultiassetMultiAssets',2133 Assets: 'XcmV1MultiassetMultiAssets',
2086 Version: 'u32'2134 Version: 'u32'
2087 }2135 }
2088 },2136 },
2089 /**2137 /**
2090 * Lookup229: cumulus_pallet_xcm::pallet::Call<T>2138 * Lookup234: cumulus_pallet_xcm::pallet::Call<T>
2091 **/2139 **/
2092 CumulusPalletXcmCall: 'Null',2140 CumulusPalletXcmCall: 'Null',
2093 /**2141 /**
2094 * Lookup230: cumulus_pallet_dmp_queue::pallet::Call<T>2142 * Lookup235: cumulus_pallet_dmp_queue::pallet::Call<T>
2095 **/2143 **/
2096 CumulusPalletDmpQueueCall: {2144 CumulusPalletDmpQueueCall: {
2097 _enum: {2145 _enum: {
2098 service_overweight: {2146 service_overweight: {
2101 }2149 }
2102 }2150 }
2103 },2151 },
2104 /**2152 /**
2105 * Lookup231: pallet_inflation::pallet::Call<T>2153 * Lookup236: pallet_inflation::pallet::Call<T>
2106 **/2154 **/
2107 PalletInflationCall: {2155 PalletInflationCall: {
2108 _enum: {2156 _enum: {
2109 start_inflation: {2157 start_inflation: {
2110 inflationStartRelayBlock: 'u32'2158 inflationStartRelayBlock: 'u32'
2111 }2159 }
2112 }2160 }
2113 },2161 },
2114 /**2162 /**
2115 * Lookup232: pallet_unique::Call<T>2163 * Lookup237: pallet_unique::Call<T>
2116 **/2164 **/
2117 PalletUniqueCall: {2165 PalletUniqueCall: {
2118 _enum: {2166 _enum: {
2119 create_collection: {2167 create_collection: {
2243 }2291 }
2244 }2292 }
2245 },2293 },
2246 /**2294 /**
2247 * Lookup237: up_data_structs::CollectionMode2295 * Lookup242: up_data_structs::CollectionMode
2248 **/2296 **/
2249 UpDataStructsCollectionMode: {2297 UpDataStructsCollectionMode: {
2250 _enum: {2298 _enum: {
2251 NFT: 'Null',2299 NFT: 'Null',
2252 Fungible: 'u8',2300 Fungible: 'u8',
2253 ReFungible: 'Null'2301 ReFungible: 'Null'
2254 }2302 }
2255 },2303 },
2256 /**2304 /**
2257 * Lookup238: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2305 * Lookup243: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>
2258 **/2306 **/
2259 UpDataStructsCreateCollectionData: {2307 UpDataStructsCreateCollectionData: {
2260 mode: 'UpDataStructsCollectionMode',2308 mode: 'UpDataStructsCollectionMode',
2261 access: 'Option<UpDataStructsAccessMode>',2309 access: 'Option<UpDataStructsAccessMode>',
2268 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2316 tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',
2269 properties: 'Vec<UpDataStructsProperty>'2317 properties: 'Vec<UpDataStructsProperty>'
2270 },2318 },
2271 /**2319 /**
2272 * Lookup240: up_data_structs::AccessMode2320 * Lookup245: up_data_structs::AccessMode
2273 **/2321 **/
2274 UpDataStructsAccessMode: {2322 UpDataStructsAccessMode: {
2275 _enum: ['Normal', 'AllowList']2323 _enum: ['Normal', 'AllowList']
2276 },2324 },
2277 /**2325 /**
2278 * Lookup242: up_data_structs::CollectionLimits2326 * Lookup247: up_data_structs::CollectionLimits
2279 **/2327 **/
2280 UpDataStructsCollectionLimits: {2328 UpDataStructsCollectionLimits: {
2281 accountTokenOwnershipLimit: 'Option<u32>',2329 accountTokenOwnershipLimit: 'Option<u32>',
2282 sponsoredDataSize: 'Option<u32>',2330 sponsoredDataSize: 'Option<u32>',
2288 ownerCanDestroy: 'Option<bool>',2336 ownerCanDestroy: 'Option<bool>',
2289 transfersEnabled: 'Option<bool>'2337 transfersEnabled: 'Option<bool>'
2290 },2338 },
2291 /**2339 /**
2292 * Lookup244: up_data_structs::SponsoringRateLimit2340 * Lookup249: up_data_structs::SponsoringRateLimit
2293 **/2341 **/
2294 UpDataStructsSponsoringRateLimit: {2342 UpDataStructsSponsoringRateLimit: {
2295 _enum: {2343 _enum: {
2296 SponsoringDisabled: 'Null',2344 SponsoringDisabled: 'Null',
2297 Blocks: 'u32'2345 Blocks: 'u32'
2298 }2346 }
2299 },2347 },
2300 /**2348 /**
2301 * Lookup247: up_data_structs::CollectionPermissions2349 * Lookup252: up_data_structs::CollectionPermissions
2302 **/2350 **/
2303 UpDataStructsCollectionPermissions: {2351 UpDataStructsCollectionPermissions: {
2304 access: 'Option<UpDataStructsAccessMode>',2352 access: 'Option<UpDataStructsAccessMode>',
2305 mintMode: 'Option<bool>',2353 mintMode: 'Option<bool>',
2306 nesting: 'Option<UpDataStructsNestingPermissions>'2354 nesting: 'Option<UpDataStructsNestingPermissions>'
2307 },2355 },
2308 /**2356 /**
2309 * Lookup249: up_data_structs::NestingPermissions2357 * Lookup254: up_data_structs::NestingPermissions
2310 **/2358 **/
2311 UpDataStructsNestingPermissions: {2359 UpDataStructsNestingPermissions: {
2312 tokenOwner: 'bool',2360 tokenOwner: 'bool',
2313 collectionAdmin: 'bool',2361 collectionAdmin: 'bool',
2314 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2362 restricted: 'Option<UpDataStructsOwnerRestrictedSet>'
2315 },2363 },
2316 /**2364 /**
2317 * Lookup251: up_data_structs::OwnerRestrictedSet2365 * Lookup256: up_data_structs::OwnerRestrictedSet
2318 **/2366 **/
2319 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2367 UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',
2320 /**2368 /**
2321 * Lookup256: up_data_structs::PropertyKeyPermission2369 * Lookup261: up_data_structs::PropertyKeyPermission
2322 **/2370 **/
2323 UpDataStructsPropertyKeyPermission: {2371 UpDataStructsPropertyKeyPermission: {
2324 key: 'Bytes',2372 key: 'Bytes',
2325 permission: 'UpDataStructsPropertyPermission'2373 permission: 'UpDataStructsPropertyPermission'
2326 },2374 },
2327 /**2375 /**
2328 * Lookup257: up_data_structs::PropertyPermission2376 * Lookup262: up_data_structs::PropertyPermission
2329 **/2377 **/
2330 UpDataStructsPropertyPermission: {2378 UpDataStructsPropertyPermission: {
2331 mutable: 'bool',2379 mutable: 'bool',
2332 collectionAdmin: 'bool',2380 collectionAdmin: 'bool',
2333 tokenOwner: 'bool'2381 tokenOwner: 'bool'
2334 },2382 },
2335 /**2383 /**
2336 * Lookup260: up_data_structs::Property2384 * Lookup265: up_data_structs::Property
2337 **/2385 **/
2338 UpDataStructsProperty: {2386 UpDataStructsProperty: {
2339 key: 'Bytes',2387 key: 'Bytes',
2340 value: 'Bytes'2388 value: 'Bytes'
2341 },2389 },
2342 /**2390 /**
2343 * Lookup263: up_data_structs::CreateItemData2391 * Lookup268: up_data_structs::CreateItemData
2344 **/2392 **/
2345 UpDataStructsCreateItemData: {2393 UpDataStructsCreateItemData: {
2346 _enum: {2394 _enum: {
2347 NFT: 'UpDataStructsCreateNftData',2395 NFT: 'UpDataStructsCreateNftData',
2348 Fungible: 'UpDataStructsCreateFungibleData',2396 Fungible: 'UpDataStructsCreateFungibleData',
2349 ReFungible: 'UpDataStructsCreateReFungibleData'2397 ReFungible: 'UpDataStructsCreateReFungibleData'
2350 }2398 }
2351 },2399 },
2352 /**2400 /**
2353 * Lookup264: up_data_structs::CreateNftData2401 * Lookup269: up_data_structs::CreateNftData
2354 **/2402 **/
2355 UpDataStructsCreateNftData: {2403 UpDataStructsCreateNftData: {
2356 properties: 'Vec<UpDataStructsProperty>'2404 properties: 'Vec<UpDataStructsProperty>'
2357 },2405 },
2358 /**2406 /**
2359 * Lookup265: up_data_structs::CreateFungibleData2407 * Lookup270: up_data_structs::CreateFungibleData
2360 **/2408 **/
2361 UpDataStructsCreateFungibleData: {2409 UpDataStructsCreateFungibleData: {
2362 value: 'u128'2410 value: 'u128'
2363 },2411 },
2364 /**2412 /**
2365 * Lookup266: up_data_structs::CreateReFungibleData2413 * Lookup271: up_data_structs::CreateReFungibleData
2366 **/2414 **/
2367 UpDataStructsCreateReFungibleData: {2415 UpDataStructsCreateReFungibleData: {
2368 pieces: 'u128',2416 pieces: 'u128',
2369 properties: 'Vec<UpDataStructsProperty>'2417 properties: 'Vec<UpDataStructsProperty>'
2370 },2418 },
2371 /**2419 /**
2372 * Lookup269: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2420 * Lookup274: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2373 **/2421 **/
2374 UpDataStructsCreateItemExData: {2422 UpDataStructsCreateItemExData: {
2375 _enum: {2423 _enum: {
2376 NFT: 'Vec<UpDataStructsCreateNftExData>',2424 NFT: 'Vec<UpDataStructsCreateNftExData>',
2379 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2427 RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'
2380 }2428 }
2381 },2429 },
2382 /**2430 /**
2383 * Lookup271: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2431 * Lookup276: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2384 **/2432 **/
2385 UpDataStructsCreateNftExData: {2433 UpDataStructsCreateNftExData: {
2386 properties: 'Vec<UpDataStructsProperty>',2434 properties: 'Vec<UpDataStructsProperty>',
2387 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2435 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
2388 },2436 },
2389 /**2437 /**
2390 * Lookup278: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2438 * Lookup283: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2391 **/2439 **/
2392 UpDataStructsCreateRefungibleExSingleOwner: {2440 UpDataStructsCreateRefungibleExSingleOwner: {
2393 user: 'PalletEvmAccountBasicCrossAccountIdRepr',2441 user: 'PalletEvmAccountBasicCrossAccountIdRepr',
2394 pieces: 'u128',2442 pieces: 'u128',
2395 properties: 'Vec<UpDataStructsProperty>'2443 properties: 'Vec<UpDataStructsProperty>'
2396 },2444 },
2397 /**2445 /**
2398 * Lookup280: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2446 * Lookup285: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
2399 **/2447 **/
2400 UpDataStructsCreateRefungibleExMultipleOwners: {2448 UpDataStructsCreateRefungibleExMultipleOwners: {
2401 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2449 users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',
2402 properties: 'Vec<UpDataStructsProperty>'2450 properties: 'Vec<UpDataStructsProperty>'
2403 },2451 },
2452 /**
2453 * Lookup286: pallet_unique_scheduler::pallet::Call<T>
2454 **/
2455 PalletUniqueSchedulerCall: {
2456 _enum: {
2457 schedule_named: {
2458 id: '[u8;16]',
2459 when: 'u32',
2460 maybePeriodic: 'Option<(u32,u32)>',
2461 priority: 'Option<u8>',
2462 call: 'FrameSupportScheduleMaybeHashed',
2463 },
2464 cancel_named: {
2465 id: '[u8;16]',
2466 },
2467 schedule_named_after: {
2468 id: '[u8;16]',
2469 after: 'u32',
2470 maybePeriodic: 'Option<(u32,u32)>',
2471 priority: 'Option<u8>',
2472 call: 'FrameSupportScheduleMaybeHashed',
2473 },
2474 change_named_priority: {
2475 id: '[u8;16]',
2476 priority: 'u8'
2477 }
2478 }
2479 },
2480 /**
2481 * Lookup289: frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>
2482 **/
2483 FrameSupportScheduleMaybeHashed: {
2484 _enum: {
2485 Value: 'Call',
2486 Hash: 'H256'
2487 }
2488 },
2404 /**2489 /**
2405 * Lookup281: pallet_configuration::pallet::Call<T>2490 * Lookup290: pallet_configuration::pallet::Call<T>
2406 **/2491 **/
2407 PalletConfigurationCall: {2492 PalletConfigurationCall: {
2408 _enum: {2493 _enum: {
2409 set_weight_to_fee_coefficient_override: {2494 set_weight_to_fee_coefficient_override: {
2414 }2499 }
2415 }2500 }
2416 },2501 },
2417 /**2502 /**
2418 * Lookup283: pallet_template_transaction_payment::Call<T>2503 * Lookup292: pallet_template_transaction_payment::Call<T>
2419 **/2504 **/
2420 PalletTemplateTransactionPaymentCall: 'Null',2505 PalletTemplateTransactionPaymentCall: 'Null',
2421 /**2506 /**
2422 * Lookup284: pallet_structure::pallet::Call<T>2507 * Lookup293: pallet_structure::pallet::Call<T>
2423 **/2508 **/
2424 PalletStructureCall: 'Null',2509 PalletStructureCall: 'Null',
2425 /**2510 /**
2426 * Lookup285: pallet_rmrk_core::pallet::Call<T>2511 * Lookup294: pallet_rmrk_core::pallet::Call<T>
2427 **/2512 **/
2428 PalletRmrkCoreCall: {2513 PalletRmrkCoreCall: {
2429 _enum: {2514 _enum: {
2430 create_collection: {2515 create_collection: {
2513 }2598 }
2514 }2599 }
2515 },2600 },
2516 /**2601 /**
2517 * Lookup291: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2602 * Lookup300: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2518 **/2603 **/
2519 RmrkTraitsResourceResourceTypes: {2604 RmrkTraitsResourceResourceTypes: {
2520 _enum: {2605 _enum: {
2521 Basic: 'RmrkTraitsResourceBasicResource',2606 Basic: 'RmrkTraitsResourceBasicResource',
2522 Composable: 'RmrkTraitsResourceComposableResource',2607 Composable: 'RmrkTraitsResourceComposableResource',
2523 Slot: 'RmrkTraitsResourceSlotResource'2608 Slot: 'RmrkTraitsResourceSlotResource'
2524 }2609 }
2525 },2610 },
2526 /**2611 /**
2527 * Lookup293: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2612 * Lookup302: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2528 **/2613 **/
2529 RmrkTraitsResourceBasicResource: {2614 RmrkTraitsResourceBasicResource: {
2530 src: 'Option<Bytes>',2615 src: 'Option<Bytes>',
2531 metadata: 'Option<Bytes>',2616 metadata: 'Option<Bytes>',
2532 license: 'Option<Bytes>',2617 license: 'Option<Bytes>',
2533 thumb: 'Option<Bytes>'2618 thumb: 'Option<Bytes>'
2534 },2619 },
2535 /**2620 /**
2536 * Lookup295: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2621 * Lookup304: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2537 **/2622 **/
2538 RmrkTraitsResourceComposableResource: {2623 RmrkTraitsResourceComposableResource: {
2539 parts: 'Vec<u32>',2624 parts: 'Vec<u32>',
2540 base: 'u32',2625 base: 'u32',
2543 license: 'Option<Bytes>',2628 license: 'Option<Bytes>',
2544 thumb: 'Option<Bytes>'2629 thumb: 'Option<Bytes>'
2545 },2630 },
2546 /**2631 /**
2547 * Lookup296: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2632 * Lookup305: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2548 **/2633 **/
2549 RmrkTraitsResourceSlotResource: {2634 RmrkTraitsResourceSlotResource: {
2550 base: 'u32',2635 base: 'u32',
2551 src: 'Option<Bytes>',2636 src: 'Option<Bytes>',
2554 license: 'Option<Bytes>',2639 license: 'Option<Bytes>',
2555 thumb: 'Option<Bytes>'2640 thumb: 'Option<Bytes>'
2556 },2641 },
2557 /**2642 /**
2558 * Lookup299: pallet_rmrk_equip::pallet::Call<T>2643 * Lookup308: pallet_rmrk_equip::pallet::Call<T>
2559 **/2644 **/
2560 PalletRmrkEquipCall: {2645 PalletRmrkEquipCall: {
2561 _enum: {2646 _enum: {
2562 create_base: {2647 create_base: {
2575 }2660 }
2576 }2661 }
2577 },2662 },
2578 /**2663 /**
2579 * Lookup302: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2664 * Lookup311: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2580 **/2665 **/
2581 RmrkTraitsPartPartType: {2666 RmrkTraitsPartPartType: {
2582 _enum: {2667 _enum: {
2583 FixedPart: 'RmrkTraitsPartFixedPart',2668 FixedPart: 'RmrkTraitsPartFixedPart',
2584 SlotPart: 'RmrkTraitsPartSlotPart'2669 SlotPart: 'RmrkTraitsPartSlotPart'
2585 }2670 }
2586 },2671 },
2587 /**2672 /**
2588 * Lookup304: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2673 * Lookup313: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2589 **/2674 **/
2590 RmrkTraitsPartFixedPart: {2675 RmrkTraitsPartFixedPart: {
2591 id: 'u32',2676 id: 'u32',
2592 z: 'u32',2677 z: 'u32',
2593 src: 'Bytes'2678 src: 'Bytes'
2594 },2679 },
2595 /**2680 /**
2596 * Lookup305: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2681 * Lookup314: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2597 **/2682 **/
2598 RmrkTraitsPartSlotPart: {2683 RmrkTraitsPartSlotPart: {
2599 id: 'u32',2684 id: 'u32',
2600 equippable: 'RmrkTraitsPartEquippableList',2685 equippable: 'RmrkTraitsPartEquippableList',
2601 src: 'Bytes',2686 src: 'Bytes',
2602 z: 'u32'2687 z: 'u32'
2603 },2688 },
2604 /**2689 /**
2605 * Lookup306: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2690 * Lookup315: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2606 **/2691 **/
2607 RmrkTraitsPartEquippableList: {2692 RmrkTraitsPartEquippableList: {
2608 _enum: {2693 _enum: {
2609 All: 'Null',2694 All: 'Null',
2610 Empty: 'Null',2695 Empty: 'Null',
2611 Custom: 'Vec<u32>'2696 Custom: 'Vec<u32>'
2612 }2697 }
2613 },2698 },
2614 /**2699 /**
2615 * Lookup308: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>2700 * Lookup317: rmrk_traits::theme::Theme<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>, S>>
2616 **/2701 **/
2617 RmrkTraitsTheme: {2702 RmrkTraitsTheme: {
2618 name: 'Bytes',2703 name: 'Bytes',
2619 properties: 'Vec<RmrkTraitsThemeThemeProperty>',2704 properties: 'Vec<RmrkTraitsThemeThemeProperty>',
2620 inherit: 'bool'2705 inherit: 'bool'
2621 },2706 },
2622 /**2707 /**
2623 * Lookup310: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2708 * Lookup319: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2624 **/2709 **/
2625 RmrkTraitsThemeThemeProperty: {2710 RmrkTraitsThemeThemeProperty: {
2626 key: 'Bytes',2711 key: 'Bytes',
2627 value: 'Bytes'2712 value: 'Bytes'
2628 },2713 },
2629 /**2714 /**
2630 * Lookup312: pallet_app_promotion::pallet::Call<T>2715 * Lookup321: pallet_app_promotion::pallet::Call<T>
2631 **/2716 **/
2632 PalletAppPromotionCall: {2717 PalletAppPromotionCall: {
2633 _enum: {2718 _enum: {
2634 set_admin_address: {2719 set_admin_address: {
2655 }2740 }
2656 }2741 }
2657 },2742 },
2658 /**2743 /**
2659 * Lookup314: pallet_foreign_assets::module::Call<T>2744 * Lookup322: pallet_foreign_assets::module::Call<T>
2660 **/2745 **/
2661 PalletForeignAssetsModuleCall: {2746 PalletForeignAssetsModuleCall: {
2662 _enum: {2747 _enum: {
2663 register_foreign_asset: {2748 register_foreign_asset: {
2672 }2757 }
2673 }2758 }
2674 },2759 },
2675 /**2760 /**
2676 * Lookup315: pallet_evm::pallet::Call<T>2761 * Lookup323: pallet_evm::pallet::Call<T>
2677 **/2762 **/
2678 PalletEvmCall: {2763 PalletEvmCall: {
2679 _enum: {2764 _enum: {
2680 withdraw: {2765 withdraw: {
2715 }2800 }
2716 }2801 }
2717 },2802 },
2718 /**2803 /**
2719 * Lookup319: pallet_ethereum::pallet::Call<T>2804 * Lookup327: pallet_ethereum::pallet::Call<T>
2720 **/2805 **/
2721 PalletEthereumCall: {2806 PalletEthereumCall: {
2722 _enum: {2807 _enum: {
2723 transact: {2808 transact: {
2724 transaction: 'EthereumTransactionTransactionV2'2809 transaction: 'EthereumTransactionTransactionV2'
2725 }2810 }
2726 }2811 }
2727 },2812 },
2728 /**2813 /**
2729 * Lookup320: ethereum::transaction::TransactionV22814 * Lookup328: ethereum::transaction::TransactionV2
2730 **/2815 **/
2731 EthereumTransactionTransactionV2: {2816 EthereumTransactionTransactionV2: {
2732 _enum: {2817 _enum: {
2733 Legacy: 'EthereumTransactionLegacyTransaction',2818 Legacy: 'EthereumTransactionLegacyTransaction',
2734 EIP2930: 'EthereumTransactionEip2930Transaction',2819 EIP2930: 'EthereumTransactionEip2930Transaction',
2735 EIP1559: 'EthereumTransactionEip1559Transaction'2820 EIP1559: 'EthereumTransactionEip1559Transaction'
2736 }2821 }
2737 },2822 },
2738 /**2823 /**
2739 * Lookup321: ethereum::transaction::LegacyTransaction2824 * Lookup329: ethereum::transaction::LegacyTransaction
2740 **/2825 **/
2741 EthereumTransactionLegacyTransaction: {2826 EthereumTransactionLegacyTransaction: {
2742 nonce: 'U256',2827 nonce: 'U256',
2743 gasPrice: 'U256',2828 gasPrice: 'U256',
2747 input: 'Bytes',2832 input: 'Bytes',
2748 signature: 'EthereumTransactionTransactionSignature'2833 signature: 'EthereumTransactionTransactionSignature'
2749 },2834 },
2750 /**2835 /**
2751 * Lookup322: ethereum::transaction::TransactionAction2836 * Lookup330: ethereum::transaction::TransactionAction
2752 **/2837 **/
2753 EthereumTransactionTransactionAction: {2838 EthereumTransactionTransactionAction: {
2754 _enum: {2839 _enum: {
2755 Call: 'H160',2840 Call: 'H160',
2756 Create: 'Null'2841 Create: 'Null'
2757 }2842 }
2758 },2843 },
2759 /**2844 /**
2760 * Lookup323: ethereum::transaction::TransactionSignature2845 * Lookup331: ethereum::transaction::TransactionSignature
2761 **/2846 **/
2762 EthereumTransactionTransactionSignature: {2847 EthereumTransactionTransactionSignature: {
2763 v: 'u64',2848 v: 'u64',
2764 r: 'H256',2849 r: 'H256',
2765 s: 'H256'2850 s: 'H256'
2766 },2851 },
2767 /**2852 /**
2768 * Lookup325: ethereum::transaction::EIP2930Transaction2853 * Lookup333: ethereum::transaction::EIP2930Transaction
2769 **/2854 **/
2770 EthereumTransactionEip2930Transaction: {2855 EthereumTransactionEip2930Transaction: {
2771 chainId: 'u64',2856 chainId: 'u64',
2772 nonce: 'U256',2857 nonce: 'U256',
2780 r: 'H256',2865 r: 'H256',
2781 s: 'H256'2866 s: 'H256'
2782 },2867 },
2783 /**2868 /**
2784 * Lookup327: ethereum::transaction::AccessListItem2869 * Lookup335: ethereum::transaction::AccessListItem
2785 **/2870 **/
2786 EthereumTransactionAccessListItem: {2871 EthereumTransactionAccessListItem: {
2787 address: 'H160',2872 address: 'H160',
2788 storageKeys: 'Vec<H256>'2873 storageKeys: 'Vec<H256>'
2789 },2874 },
2790 /**2875 /**
2791 * Lookup328: ethereum::transaction::EIP1559Transaction2876 * Lookup336: ethereum::transaction::EIP1559Transaction
2792 **/2877 **/
2793 EthereumTransactionEip1559Transaction: {2878 EthereumTransactionEip1559Transaction: {
2794 chainId: 'u64',2879 chainId: 'u64',
2795 nonce: 'U256',2880 nonce: 'U256',
2804 r: 'H256',2889 r: 'H256',
2805 s: 'H256'2890 s: 'H256'
2806 },2891 },
2807 /**2892 /**
2808 * Lookup329: pallet_evm_migration::pallet::Call<T>2893 * Lookup337: pallet_evm_migration::pallet::Call<T>
2809 **/2894 **/
2810 PalletEvmMigrationCall: {2895 PalletEvmMigrationCall: {
2811 _enum: {2896 _enum: {
2812 begin: {2897 begin: {
2822 }2907 }
2823 }2908 }
2824 },2909 },
2910 /**
2911 * Lookup340: pallet_maintenance::pallet::Call<T>
2912 **/
2913 PalletMaintenanceCall: {
2914 _enum: ['enable', 'disable']
2915 },
2916 /**
2917 * Lookup341: pallet_test_utils::pallet::Call<T>
2918 **/
2919 PalletTestUtilsCall: {
2920 _enum: {
2921 enable: 'Null',
2922 set_test_value: {
2923 value: 'u32',
2924 },
2925 set_test_value_and_rollback: {
2926 value: 'u32',
2927 },
2928 inc_test_value: 'Null',
2929 self_canceling_inc: {
2930 id: '[u8;16]',
2931 maxTestValue: 'u32',
2932 },
2933 just_take_fee: 'Null'
2934 }
2935 },
2825 /**2936 /**
2826 * Lookup332: pallet_sudo::pallet::Error<T>2937 * Lookup342: pallet_sudo::pallet::Error<T>
2827 **/2938 **/
2828 PalletSudoError: {2939 PalletSudoError: {
2829 _enum: ['RequireSudo']2940 _enum: ['RequireSudo']
2830 },2941 },
2831 /**2942 /**
2832 * Lookup334: orml_vesting::module::Error<T>2943 * Lookup344: orml_vesting::module::Error<T>
2833 **/2944 **/
2834 OrmlVestingModuleError: {2945 OrmlVestingModuleError: {
2835 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2946 _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
2836 },2947 },
2837 /**2948 /**
2838 * Lookup335: orml_xtokens::module::Error<T>2949 * Lookup345: orml_xtokens::module::Error<T>
2839 **/2950 **/
2840 OrmlXtokensModuleError: {2951 OrmlXtokensModuleError: {
2841 _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2952 _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']
2842 },2953 },
2843 /**2954 /**
2844 * Lookup338: orml_tokens::BalanceLock<Balance>2955 * Lookup348: orml_tokens::BalanceLock<Balance>
2845 **/2956 **/
2846 OrmlTokensBalanceLock: {2957 OrmlTokensBalanceLock: {
2847 id: '[u8;8]',2958 id: '[u8;8]',
2848 amount: 'u128'2959 amount: 'u128'
2849 },2960 },
2850 /**2961 /**
2851 * Lookup340: orml_tokens::AccountData<Balance>2962 * Lookup350: orml_tokens::AccountData<Balance>
2852 **/2963 **/
2853 OrmlTokensAccountData: {2964 OrmlTokensAccountData: {
2854 free: 'u128',2965 free: 'u128',
2855 reserved: 'u128',2966 reserved: 'u128',
2856 frozen: 'u128'2967 frozen: 'u128'
2857 },2968 },
2858 /**2969 /**
2859 * Lookup342: orml_tokens::ReserveData<ReserveIdentifier, Balance>2970 * Lookup352: orml_tokens::ReserveData<ReserveIdentifier, Balance>
2860 **/2971 **/
2861 OrmlTokensReserveData: {2972 OrmlTokensReserveData: {
2862 id: 'Null',2973 id: 'Null',
2863 amount: 'u128'2974 amount: 'u128'
2864 },2975 },
2865 /**2976 /**
2866 * Lookup344: orml_tokens::module::Error<T>2977 * Lookup354: orml_tokens::module::Error<T>
2867 **/2978 **/
2868 OrmlTokensModuleError: {2979 OrmlTokensModuleError: {
2869 _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']2980 _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']
2870 },2981 },
2871 /**2982 /**
2872 * Lookup346: cumulus_pallet_xcmp_queue::InboundChannelDetails2983 * Lookup356: cumulus_pallet_xcmp_queue::InboundChannelDetails
2873 **/2984 **/
2874 CumulusPalletXcmpQueueInboundChannelDetails: {2985 CumulusPalletXcmpQueueInboundChannelDetails: {
2875 sender: 'u32',2986 sender: 'u32',
2876 state: 'CumulusPalletXcmpQueueInboundState',2987 state: 'CumulusPalletXcmpQueueInboundState',
2877 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2988 messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
2878 },2989 },
2879 /**2990 /**
2880 * Lookup347: cumulus_pallet_xcmp_queue::InboundState2991 * Lookup357: cumulus_pallet_xcmp_queue::InboundState
2881 **/2992 **/
2882 CumulusPalletXcmpQueueInboundState: {2993 CumulusPalletXcmpQueueInboundState: {
2883 _enum: ['Ok', 'Suspended']2994 _enum: ['Ok', 'Suspended']
2884 },2995 },
2885 /**2996 /**
2886 * Lookup350: polkadot_parachain::primitives::XcmpMessageFormat2997 * Lookup360: polkadot_parachain::primitives::XcmpMessageFormat
2887 **/2998 **/
2888 PolkadotParachainPrimitivesXcmpMessageFormat: {2999 PolkadotParachainPrimitivesXcmpMessageFormat: {
2889 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3000 _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
2890 },3001 },
2891 /**3002 /**
2892 * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails3003 * Lookup363: cumulus_pallet_xcmp_queue::OutboundChannelDetails
2893 **/3004 **/
2894 CumulusPalletXcmpQueueOutboundChannelDetails: {3005 CumulusPalletXcmpQueueOutboundChannelDetails: {
2895 recipient: 'u32',3006 recipient: 'u32',
2896 state: 'CumulusPalletXcmpQueueOutboundState',3007 state: 'CumulusPalletXcmpQueueOutboundState',
2897 signalsExist: 'bool',3008 signalsExist: 'bool',
2898 firstIndex: 'u16',3009 firstIndex: 'u16',
2899 lastIndex: 'u16'3010 lastIndex: 'u16'
2900 },3011 },
2901 /**3012 /**
2902 * Lookup354: cumulus_pallet_xcmp_queue::OutboundState3013 * Lookup364: cumulus_pallet_xcmp_queue::OutboundState
2903 **/3014 **/
2904 CumulusPalletXcmpQueueOutboundState: {3015 CumulusPalletXcmpQueueOutboundState: {
2905 _enum: ['Ok', 'Suspended']3016 _enum: ['Ok', 'Suspended']
2906 },3017 },
2907 /**3018 /**
2908 * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData3019 * Lookup366: cumulus_pallet_xcmp_queue::QueueConfigData
2909 **/3020 **/
2910 CumulusPalletXcmpQueueQueueConfigData: {3021 CumulusPalletXcmpQueueQueueConfigData: {
2911 suspendThreshold: 'u32',3022 suspendThreshold: 'u32',
2912 dropThreshold: 'u32',3023 dropThreshold: 'u32',
2915 weightRestrictDecay: 'Weight',3026 weightRestrictDecay: 'Weight',
2916 xcmpMaxIndividualWeight: 'Weight'3027 xcmpMaxIndividualWeight: 'Weight'
2917 },3028 },
2918 /**3029 /**
2919 * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error<T>3030 * Lookup368: cumulus_pallet_xcmp_queue::pallet::Error<T>
2920 **/3031 **/
2921 CumulusPalletXcmpQueueError: {3032 CumulusPalletXcmpQueueError: {
2922 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3033 _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
2923 },3034 },
2924 /**3035 /**
2925 * Lookup359: pallet_xcm::pallet::Error<T>3036 * Lookup369: pallet_xcm::pallet::Error<T>
2926 **/3037 **/
2927 PalletXcmError: {3038 PalletXcmError: {
2928 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3039 _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
2929 },3040 },
2930 /**3041 /**
2931 * Lookup360: cumulus_pallet_xcm::pallet::Error<T>3042 * Lookup370: cumulus_pallet_xcm::pallet::Error<T>
2932 **/3043 **/
2933 CumulusPalletXcmError: 'Null',3044 CumulusPalletXcmError: 'Null',
2934 /**3045 /**
2935 * Lookup361: cumulus_pallet_dmp_queue::ConfigData3046 * Lookup371: cumulus_pallet_dmp_queue::ConfigData
2936 **/3047 **/
2937 CumulusPalletDmpQueueConfigData: {3048 CumulusPalletDmpQueueConfigData: {
2938 maxIndividual: 'Weight'3049 maxIndividual: 'Weight'
2939 },3050 },
2940 /**3051 /**
2941 * Lookup362: cumulus_pallet_dmp_queue::PageIndexData3052 * Lookup372: cumulus_pallet_dmp_queue::PageIndexData
2942 **/3053 **/
2943 CumulusPalletDmpQueuePageIndexData: {3054 CumulusPalletDmpQueuePageIndexData: {
2944 beginUsed: 'u32',3055 beginUsed: 'u32',
2945 endUsed: 'u32',3056 endUsed: 'u32',
2946 overweightCount: 'u64'3057 overweightCount: 'u64'
2947 },3058 },
2948 /**3059 /**
2949 * Lookup365: cumulus_pallet_dmp_queue::pallet::Error<T>3060 * Lookup375: cumulus_pallet_dmp_queue::pallet::Error<T>
2950 **/3061 **/
2951 CumulusPalletDmpQueueError: {3062 CumulusPalletDmpQueueError: {
2952 _enum: ['Unknown', 'OverLimit']3063 _enum: ['Unknown', 'OverLimit']
2953 },3064 },
2954 /**3065 /**
2955 * Lookup369: pallet_unique::Error<T>3066 * Lookup379: pallet_unique::Error<T>
2956 **/3067 **/
2957 PalletUniqueError: {3068 PalletUniqueError: {
2958 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3069 _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
2959 },3070 },
3071 /**
3072 * Lookup382: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
3073 **/
3074 PalletUniqueSchedulerScheduledV3: {
3075 maybeId: 'Option<[u8;16]>',
3076 priority: 'u8',
3077 call: 'FrameSupportScheduleMaybeHashed',
3078 maybePeriodic: 'Option<(u32,u32)>',
3079 origin: 'OpalRuntimeOriginCaller'
3080 },
3081 /**
3082 * Lookup383: opal_runtime::OriginCaller
3083 **/
3084 OpalRuntimeOriginCaller: {
3085 _enum: {
3086 system: 'FrameSupportDispatchRawOrigin',
3087 __Unused1: 'Null',
3088 __Unused2: 'Null',
3089 __Unused3: 'Null',
3090 Void: 'SpCoreVoid',
3091 __Unused5: 'Null',
3092 __Unused6: 'Null',
3093 __Unused7: 'Null',
3094 __Unused8: 'Null',
3095 __Unused9: 'Null',
3096 __Unused10: 'Null',
3097 __Unused11: 'Null',
3098 __Unused12: 'Null',
3099 __Unused13: 'Null',
3100 __Unused14: 'Null',
3101 __Unused15: 'Null',
3102 __Unused16: 'Null',
3103 __Unused17: 'Null',
3104 __Unused18: 'Null',
3105 __Unused19: 'Null',
3106 __Unused20: 'Null',
3107 __Unused21: 'Null',
3108 __Unused22: 'Null',
3109 __Unused23: 'Null',
3110 __Unused24: 'Null',
3111 __Unused25: 'Null',
3112 __Unused26: 'Null',
3113 __Unused27: 'Null',
3114 __Unused28: 'Null',
3115 __Unused29: 'Null',
3116 __Unused30: 'Null',
3117 __Unused31: 'Null',
3118 __Unused32: 'Null',
3119 __Unused33: 'Null',
3120 __Unused34: 'Null',
3121 __Unused35: 'Null',
3122 __Unused36: 'Null',
3123 __Unused37: 'Null',
3124 __Unused38: 'Null',
3125 __Unused39: 'Null',
3126 __Unused40: 'Null',
3127 __Unused41: 'Null',
3128 __Unused42: 'Null',
3129 __Unused43: 'Null',
3130 __Unused44: 'Null',
3131 __Unused45: 'Null',
3132 __Unused46: 'Null',
3133 __Unused47: 'Null',
3134 __Unused48: 'Null',
3135 __Unused49: 'Null',
3136 __Unused50: 'Null',
3137 PolkadotXcm: 'PalletXcmOrigin',
3138 CumulusXcm: 'CumulusPalletXcmOrigin',
3139 __Unused53: 'Null',
3140 __Unused54: 'Null',
3141 __Unused55: 'Null',
3142 __Unused56: 'Null',
3143 __Unused57: 'Null',
3144 __Unused58: 'Null',
3145 __Unused59: 'Null',
3146 __Unused60: 'Null',
3147 __Unused61: 'Null',
3148 __Unused62: 'Null',
3149 __Unused63: 'Null',
3150 __Unused64: 'Null',
3151 __Unused65: 'Null',
3152 __Unused66: 'Null',
3153 __Unused67: 'Null',
3154 __Unused68: 'Null',
3155 __Unused69: 'Null',
3156 __Unused70: 'Null',
3157 __Unused71: 'Null',
3158 __Unused72: 'Null',
3159 __Unused73: 'Null',
3160 __Unused74: 'Null',
3161 __Unused75: 'Null',
3162 __Unused76: 'Null',
3163 __Unused77: 'Null',
3164 __Unused78: 'Null',
3165 __Unused79: 'Null',
3166 __Unused80: 'Null',
3167 __Unused81: 'Null',
3168 __Unused82: 'Null',
3169 __Unused83: 'Null',
3170 __Unused84: 'Null',
3171 __Unused85: 'Null',
3172 __Unused86: 'Null',
3173 __Unused87: 'Null',
3174 __Unused88: 'Null',
3175 __Unused89: 'Null',
3176 __Unused90: 'Null',
3177 __Unused91: 'Null',
3178 __Unused92: 'Null',
3179 __Unused93: 'Null',
3180 __Unused94: 'Null',
3181 __Unused95: 'Null',
3182 __Unused96: 'Null',
3183 __Unused97: 'Null',
3184 __Unused98: 'Null',
3185 __Unused99: 'Null',
3186 __Unused100: 'Null',
3187 Ethereum: 'PalletEthereumRawOrigin'
3188 }
3189 },
3190 /**
3191 * Lookup384: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
3192 **/
3193 FrameSupportDispatchRawOrigin: {
3194 _enum: {
3195 Root: 'Null',
3196 Signed: 'AccountId32',
3197 None: 'Null'
3198 }
3199 },
3200 /**
3201 * Lookup385: pallet_xcm::pallet::Origin
3202 **/
3203 PalletXcmOrigin: {
3204 _enum: {
3205 Xcm: 'XcmV1MultiLocation',
3206 Response: 'XcmV1MultiLocation'
3207 }
3208 },
3209 /**
3210 * Lookup386: cumulus_pallet_xcm::pallet::Origin
3211 **/
3212 CumulusPalletXcmOrigin: {
3213 _enum: {
3214 Relay: 'Null',
3215 SiblingParachain: 'u32'
3216 }
3217 },
3218 /**
3219 * Lookup387: pallet_ethereum::RawOrigin
3220 **/
3221 PalletEthereumRawOrigin: {
3222 _enum: {
3223 EthereumTransaction: 'H160'
3224 }
3225 },
3226 /**
3227 * Lookup388: sp_core::Void
3228 **/
3229 SpCoreVoid: 'Null',
3230 /**
3231 * Lookup389: pallet_unique_scheduler::pallet::Error<T>
3232 **/
3233 PalletUniqueSchedulerError: {
3234 _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
3235 },
2960 /**3236 /**
2961 * Lookup370: up_data_structs::Collection<sp_core::crypto::AccountId32>3237 * Lookup390: up_data_structs::Collection<sp_core::crypto::AccountId32>
2962 **/3238 **/
2963 UpDataStructsCollection: {3239 UpDataStructsCollection: {
2964 owner: 'AccountId32',3240 owner: 'AccountId32',
2965 mode: 'UpDataStructsCollectionMode',3241 mode: 'UpDataStructsCollectionMode',
2971 permissions: 'UpDataStructsCollectionPermissions',3247 permissions: 'UpDataStructsCollectionPermissions',
2972 flags: '[u8;1]'3248 flags: '[u8;1]'
2973 },3249 },
2974 /**3250 /**
2975 * Lookup371: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3251 * Lookup391: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
2976 **/3252 **/
2977 UpDataStructsSponsorshipStateAccountId32: {3253 UpDataStructsSponsorshipStateAccountId32: {
2978 _enum: {3254 _enum: {
2979 Disabled: 'Null',3255 Disabled: 'Null',
2980 Unconfirmed: 'AccountId32',3256 Unconfirmed: 'AccountId32',
2981 Confirmed: 'AccountId32'3257 Confirmed: 'AccountId32'
2982 }3258 }
2983 },3259 },
2984 /**3260 /**
2985 * Lookup373: up_data_structs::Properties3261 * Lookup393: up_data_structs::Properties
2986 **/3262 **/
2987 UpDataStructsProperties: {3263 UpDataStructsProperties: {
2988 map: 'UpDataStructsPropertiesMapBoundedVec',3264 map: 'UpDataStructsPropertiesMapBoundedVec',
2989 consumedSpace: 'u32',3265 consumedSpace: 'u32',
2990 spaceLimit: 'u32'3266 spaceLimit: 'u32'
2991 },3267 },
2992 /**3268 /**
2993 * Lookup374: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3269 * Lookup394: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
2994 **/3270 **/
2995 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3271 UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
2996 /**3272 /**
2997 * Lookup379: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3273 * Lookup399: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
2998 **/3274 **/
2999 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3275 UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
3000 /**3276 /**
3001 * Lookup386: up_data_structs::CollectionStats3277 * Lookup406: up_data_structs::CollectionStats
3002 **/3278 **/
3003 UpDataStructsCollectionStats: {3279 UpDataStructsCollectionStats: {
3004 created: 'u32',3280 created: 'u32',
3005 destroyed: 'u32',3281 destroyed: 'u32',
3006 alive: 'u32'3282 alive: 'u32'
3007 },3283 },
3008 /**3284 /**
3009 * Lookup387: up_data_structs::TokenChild3285 * Lookup407: up_data_structs::TokenChild
3010 **/3286 **/
3011 UpDataStructsTokenChild: {3287 UpDataStructsTokenChild: {
3012 token: 'u32',3288 token: 'u32',
3013 collection: 'u32'3289 collection: 'u32'
3014 },3290 },
3015 /**3291 /**
3016 * Lookup388: PhantomType::up_data_structs<T>3292 * Lookup408: PhantomType::up_data_structs<T>
3017 **/3293 **/
3018 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3294 PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
3019 /**3295 /**
3020 * Lookup390: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3296 * Lookup410: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
3021 **/3297 **/
3022 UpDataStructsTokenData: {3298 UpDataStructsTokenData: {
3023 properties: 'Vec<UpDataStructsProperty>',3299 properties: 'Vec<UpDataStructsProperty>',
3024 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3300 owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',
3025 pieces: 'u128'3301 pieces: 'u128'
3026 },3302 },
3027 /**3303 /**
3028 * Lookup392: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3304 * Lookup412: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
3029 **/3305 **/
3030 UpDataStructsRpcCollection: {3306 UpDataStructsRpcCollection: {
3031 owner: 'AccountId32',3307 owner: 'AccountId32',
3032 mode: 'UpDataStructsCollectionMode',3308 mode: 'UpDataStructsCollectionMode',
3041 readOnly: 'bool',3317 readOnly: 'bool',
3042 flags: 'UpDataStructsRpcCollectionFlags'3318 flags: 'UpDataStructsRpcCollectionFlags'
3043 },3319 },
3044 /**3320 /**
3045 * Lookup393: up_data_structs::RpcCollectionFlags3321 * Lookup413: up_data_structs::RpcCollectionFlags
3046 **/3322 **/
3047 UpDataStructsRpcCollectionFlags: {3323 UpDataStructsRpcCollectionFlags: {
3048 foreign: 'bool',3324 foreign: 'bool',
3049 erc721metadata: 'bool'3325 erc721metadata: 'bool'
3050 },3326 },
3051 /**3327 /**
3052 * Lookup394: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3328 * Lookup414: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
3053 **/3329 **/
3054 RmrkTraitsCollectionCollectionInfo: {3330 RmrkTraitsCollectionCollectionInfo: {
3055 issuer: 'AccountId32',3331 issuer: 'AccountId32',
3056 metadata: 'Bytes',3332 metadata: 'Bytes',
3057 max: 'Option<u32>',3333 max: 'Option<u32>',
3058 symbol: 'Bytes',3334 symbol: 'Bytes',
3059 nftsCount: 'u32'3335 nftsCount: 'u32'
3060 },3336 },
3061 /**3337 /**
3062 * Lookup395: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3338 * Lookup415: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
3063 **/3339 **/
3064 RmrkTraitsNftNftInfo: {3340 RmrkTraitsNftNftInfo: {
3065 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3341 owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
3066 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3342 royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',
3067 metadata: 'Bytes',3343 metadata: 'Bytes',
3068 equipped: 'bool',3344 equipped: 'bool',
3069 pending: 'bool'3345 pending: 'bool'
3070 },3346 },
3071 /**3347 /**
3072 * Lookup397: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3348 * Lookup417: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
3073 **/3349 **/
3074 RmrkTraitsNftRoyaltyInfo: {3350 RmrkTraitsNftRoyaltyInfo: {
3075 recipient: 'AccountId32',3351 recipient: 'AccountId32',
3076 amount: 'Permill'3352 amount: 'Permill'
3077 },3353 },
3078 /**3354 /**
3079 * Lookup398: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3355 * Lookup418: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
3080 **/3356 **/
3081 RmrkTraitsResourceResourceInfo: {3357 RmrkTraitsResourceResourceInfo: {
3082 id: 'u32',3358 id: 'u32',
3083 resource: 'RmrkTraitsResourceResourceTypes',3359 resource: 'RmrkTraitsResourceResourceTypes',
3084 pending: 'bool',3360 pending: 'bool',
3085 pendingRemoval: 'bool'3361 pendingRemoval: 'bool'
3086 },3362 },
3087 /**3363 /**
3088 * Lookup399: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3364 * Lookup419: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
3089 **/3365 **/
3090 RmrkTraitsPropertyPropertyInfo: {3366 RmrkTraitsPropertyPropertyInfo: {
3091 key: 'Bytes',3367 key: 'Bytes',
3092 value: 'Bytes'3368 value: 'Bytes'
3093 },3369 },
3094 /**3370 /**
3095 * Lookup400: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3371 * Lookup420: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
3096 **/3372 **/
3097 RmrkTraitsBaseBaseInfo: {3373 RmrkTraitsBaseBaseInfo: {
3098 issuer: 'AccountId32',3374 issuer: 'AccountId32',
3099 baseType: 'Bytes',3375 baseType: 'Bytes',
3100 symbol: 'Bytes'3376 symbol: 'Bytes'
3101 },3377 },
3102 /**3378 /**
3103 * Lookup401: rmrk_traits::nft::NftChild3379 * Lookup421: rmrk_traits::nft::NftChild
3104 **/3380 **/
3105 RmrkTraitsNftNftChild: {3381 RmrkTraitsNftNftChild: {
3106 collectionId: 'u32',3382 collectionId: 'u32',
3107 nftId: 'u32'3383 nftId: 'u32'
3108 },3384 },
3109 /**3385 /**
3110 * Lookup403: pallet_common::pallet::Error<T>3386 * Lookup423: pallet_common::pallet::Error<T>
3111 **/3387 **/
3112 PalletCommonError: {3388 PalletCommonError: {
3113 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']3389 _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']
3114 },3390 },
3115 /**3391 /**
3116 * Lookup405: pallet_fungible::pallet::Error<T>3392 * Lookup425: pallet_fungible::pallet::Error<T>
3117 **/3393 **/
3118 PalletFungibleError: {3394 PalletFungibleError: {
3119 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3395 _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
3120 },3396 },
3121 /**3397 /**
3122 * Lookup406: pallet_refungible::ItemData3398 * Lookup426: pallet_refungible::ItemData
3123 **/3399 **/
3124 PalletRefungibleItemData: {3400 PalletRefungibleItemData: {
3125 constData: 'Bytes'3401 constData: 'Bytes'
3126 },3402 },
3127 /**3403 /**
3128 * Lookup411: pallet_refungible::pallet::Error<T>3404 * Lookup431: pallet_refungible::pallet::Error<T>
3129 **/3405 **/
3130 PalletRefungibleError: {3406 PalletRefungibleError: {
3131 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3407 _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
3132 },3408 },
3133 /**3409 /**
3134 * Lookup412: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3410 * Lookup432: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
3135 **/3411 **/
3136 PalletNonfungibleItemData: {3412 PalletNonfungibleItemData: {
3137 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3413 owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
3138 },3414 },
3139 /**3415 /**
3140 * Lookup414: up_data_structs::PropertyScope3416 * Lookup434: up_data_structs::PropertyScope
3141 **/3417 **/
3142 UpDataStructsPropertyScope: {3418 UpDataStructsPropertyScope: {
3143 _enum: ['None', 'Rmrk']3419 _enum: ['None', 'Rmrk']
3144 },3420 },
3145 /**3421 /**
3146 * Lookup416: pallet_nonfungible::pallet::Error<T>3422 * Lookup436: pallet_nonfungible::pallet::Error<T>
3147 **/3423 **/
3148 PalletNonfungibleError: {3424 PalletNonfungibleError: {
3149 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3425 _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
3150 },3426 },
3151 /**3427 /**
3152 * Lookup417: pallet_structure::pallet::Error<T>3428 * Lookup437: pallet_structure::pallet::Error<T>
3153 **/3429 **/
3154 PalletStructureError: {3430 PalletStructureError: {
3155 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3431 _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
3156 },3432 },
3157 /**3433 /**
3158 * Lookup418: pallet_rmrk_core::pallet::Error<T>3434 * Lookup438: pallet_rmrk_core::pallet::Error<T>
3159 **/3435 **/
3160 PalletRmrkCoreError: {3436 PalletRmrkCoreError: {
3161 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3437 _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
3162 },3438 },
3163 /**3439 /**
3164 * Lookup420: pallet_rmrk_equip::pallet::Error<T>3440 * Lookup440: pallet_rmrk_equip::pallet::Error<T>
3165 **/3441 **/
3166 PalletRmrkEquipError: {3442 PalletRmrkEquipError: {
3167 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3443 _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
3168 },3444 },
3169 /**3445 /**
3170 * Lookup426: pallet_app_promotion::pallet::Error<T>3446 * Lookup446: pallet_app_promotion::pallet::Error<T>
3171 **/3447 **/
3172 PalletAppPromotionError: {3448 PalletAppPromotionError: {
3173 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3449 _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']
3174 },3450 },
3175 /**3451 /**
3176 * Lookup427: pallet_foreign_assets::module::Error<T>3452 * Lookup447: pallet_foreign_assets::module::Error<T>
3177 **/3453 **/
3178 PalletForeignAssetsModuleError: {3454 PalletForeignAssetsModuleError: {
3179 _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3455 _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']
3180 },3456 },
3181 /**3457 /**
3182 * Lookup430: pallet_evm::pallet::Error<T>3458 * Lookup450: pallet_evm::pallet::Error<T>
3183 **/3459 **/
3184 PalletEvmError: {3460 PalletEvmError: {
3185 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']3461 _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
3186 },3462 },
3187 /**3463 /**
3188 * Lookup433: fp_rpc::TransactionStatus3464 * Lookup453: fp_rpc::TransactionStatus
3189 **/3465 **/
3190 FpRpcTransactionStatus: {3466 FpRpcTransactionStatus: {
3191 transactionHash: 'H256',3467 transactionHash: 'H256',
3192 transactionIndex: 'u32',3468 transactionIndex: 'u32',
3196 logs: 'Vec<EthereumLog>',3472 logs: 'Vec<EthereumLog>',
3197 logsBloom: 'EthbloomBloom'3473 logsBloom: 'EthbloomBloom'
3198 },3474 },
3199 /**3475 /**
3200 * Lookup435: ethbloom::Bloom3476 * Lookup455: ethbloom::Bloom
3201 **/3477 **/
3202 EthbloomBloom: '[u8;256]',3478 EthbloomBloom: '[u8;256]',
3203 /**3479 /**
3204 * Lookup437: ethereum::receipt::ReceiptV33480 * Lookup457: ethereum::receipt::ReceiptV3
3205 **/3481 **/
3206 EthereumReceiptReceiptV3: {3482 EthereumReceiptReceiptV3: {
3207 _enum: {3483 _enum: {
3208 Legacy: 'EthereumReceiptEip658ReceiptData',3484 Legacy: 'EthereumReceiptEip658ReceiptData',
3209 EIP2930: 'EthereumReceiptEip658ReceiptData',3485 EIP2930: 'EthereumReceiptEip658ReceiptData',
3210 EIP1559: 'EthereumReceiptEip658ReceiptData'3486 EIP1559: 'EthereumReceiptEip658ReceiptData'
3211 }3487 }
3212 },3488 },
3213 /**3489 /**
3214 * Lookup438: ethereum::receipt::EIP658ReceiptData3490 * Lookup458: ethereum::receipt::EIP658ReceiptData
3215 **/3491 **/
3216 EthereumReceiptEip658ReceiptData: {3492 EthereumReceiptEip658ReceiptData: {
3217 statusCode: 'u8',3493 statusCode: 'u8',
3218 usedGas: 'U256',3494 usedGas: 'U256',
3219 logsBloom: 'EthbloomBloom',3495 logsBloom: 'EthbloomBloom',
3220 logs: 'Vec<EthereumLog>'3496 logs: 'Vec<EthereumLog>'
3221 },3497 },
3222 /**3498 /**
3223 * Lookup439: ethereum::block::Block<ethereum::transaction::TransactionV2>3499 * Lookup459: ethereum::block::Block<ethereum::transaction::TransactionV2>
3224 **/3500 **/
3225 EthereumBlock: {3501 EthereumBlock: {
3226 header: 'EthereumHeader',3502 header: 'EthereumHeader',
3227 transactions: 'Vec<EthereumTransactionTransactionV2>',3503 transactions: 'Vec<EthereumTransactionTransactionV2>',
3228 ommers: 'Vec<EthereumHeader>'3504 ommers: 'Vec<EthereumHeader>'
3229 },3505 },
3230 /**3506 /**
3231 * Lookup440: ethereum::header::Header3507 * Lookup460: ethereum::header::Header
3232 **/3508 **/
3233 EthereumHeader: {3509 EthereumHeader: {
3234 parentHash: 'H256',3510 parentHash: 'H256',
3235 ommersHash: 'H256',3511 ommersHash: 'H256',
3247 mixHash: 'H256',3523 mixHash: 'H256',
3248 nonce: 'EthereumTypesHashH64'3524 nonce: 'EthereumTypesHashH64'
3249 },3525 },
3250 /**3526 /**
3251 * Lookup441: ethereum_types::hash::H643527 * Lookup461: ethereum_types::hash::H64
3252 **/3528 **/
3253 EthereumTypesHashH64: '[u8;8]',3529 EthereumTypesHashH64: '[u8;8]',
3254 /**3530 /**
3255 * Lookup446: pallet_ethereum::pallet::Error<T>3531 * Lookup466: pallet_ethereum::pallet::Error<T>
3256 **/3532 **/
3257 PalletEthereumError: {3533 PalletEthereumError: {
3258 _enum: ['InvalidSignature', 'PreLogExists']3534 _enum: ['InvalidSignature', 'PreLogExists']
3259 },3535 },
3260 /**3536 /**
3261 * Lookup447: pallet_evm_coder_substrate::pallet::Error<T>3537 * Lookup467: pallet_evm_coder_substrate::pallet::Error<T>
3262 **/3538 **/
3263 PalletEvmCoderSubstrateError: {3539 PalletEvmCoderSubstrateError: {
3264 _enum: ['OutOfGas', 'OutOfFund']3540 _enum: ['OutOfGas', 'OutOfFund']
3265 },3541 },
3266 /**3542 /**
3267 * Lookup448: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3543 * Lookup468: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
3268 **/3544 **/
3269 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3545 UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {
3270 _enum: {3546 _enum: {
3271 Disabled: 'Null',3547 Disabled: 'Null',
3272 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3548 Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',
3273 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3549 Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'
3274 }3550 }
3275 },3551 },
3276 /**3552 /**
3277 * Lookup449: pallet_evm_contract_helpers::SponsoringModeT3553 * Lookup469: pallet_evm_contract_helpers::SponsoringModeT
3278 **/3554 **/
3279 PalletEvmContractHelpersSponsoringModeT: {3555 PalletEvmContractHelpersSponsoringModeT: {
3280 _enum: ['Disabled', 'Allowlisted', 'Generous']3556 _enum: ['Disabled', 'Allowlisted', 'Generous']
3281 },3557 },
3282 /**3558 /**
3283 * Lookup455: pallet_evm_contract_helpers::pallet::Error<T>3559 * Lookup475: pallet_evm_contract_helpers::pallet::Error<T>
3284 **/3560 **/
3285 PalletEvmContractHelpersError: {3561 PalletEvmContractHelpersError: {
3286 _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3562 _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']
3287 },3563 },
3288 /**3564 /**
3289 * Lookup456: pallet_evm_migration::pallet::Error<T>3565 * Lookup476: pallet_evm_migration::pallet::Error<T>
3290 **/3566 **/
3291 PalletEvmMigrationError: {3567 PalletEvmMigrationError: {
3292 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']3568 _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
3293 },3569 },
3570 /**
3571 * Lookup477: pallet_maintenance::pallet::Error<T>
3572 **/
3573 PalletMaintenanceError: 'Null',
3574 /**
3575 * Lookup478: pallet_test_utils::pallet::Error<T>
3576 **/
3577 PalletTestUtilsError: {
3578 _enum: ['TestPalletDisabled', 'TriggerRollback']
3579 },
3294 /**3580 /**
3295 * Lookup458: sp_runtime::MultiSignature3581 * Lookup480: sp_runtime::MultiSignature
3296 **/3582 **/
3297 SpRuntimeMultiSignature: {3583 SpRuntimeMultiSignature: {
3298 _enum: {3584 _enum: {
3299 Ed25519: 'SpCoreEd25519Signature',3585 Ed25519: 'SpCoreEd25519Signature',
3300 Sr25519: 'SpCoreSr25519Signature',3586 Sr25519: 'SpCoreSr25519Signature',
3301 Ecdsa: 'SpCoreEcdsaSignature'3587 Ecdsa: 'SpCoreEcdsaSignature'
3302 }3588 }
3303 },3589 },
3304 /**3590 /**
3305 * Lookup459: sp_core::ed25519::Signature3591 * Lookup481: sp_core::ed25519::Signature
3306 **/3592 **/
3307 SpCoreEd25519Signature: '[u8;64]',3593 SpCoreEd25519Signature: '[u8;64]',
3308 /**3594 /**
3309 * Lookup461: sp_core::sr25519::Signature3595 * Lookup483: sp_core::sr25519::Signature
3310 **/3596 **/
3311 SpCoreSr25519Signature: '[u8;64]',3597 SpCoreSr25519Signature: '[u8;64]',
3312 /**3598 /**
3313 * Lookup462: sp_core::ecdsa::Signature3599 * Lookup484: sp_core::ecdsa::Signature
3314 **/3600 **/
3315 SpCoreEcdsaSignature: '[u8;65]',3601 SpCoreEcdsaSignature: '[u8;65]',
3316 /**3602 /**
3317 * Lookup465: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3603 * Lookup487: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
3318 **/3604 **/
3319 FrameSystemExtensionsCheckSpecVersion: 'Null',3605 FrameSystemExtensionsCheckSpecVersion: 'Null',
3320 /**3606 /**
3321 * Lookup466: frame_system::extensions::check_tx_version::CheckTxVersion<T>3607 * Lookup488: frame_system::extensions::check_tx_version::CheckTxVersion<T>
3322 **/3608 **/
3323 FrameSystemExtensionsCheckTxVersion: 'Null',3609 FrameSystemExtensionsCheckTxVersion: 'Null',
3324 /**3610 /**
3325 * Lookup467: frame_system::extensions::check_genesis::CheckGenesis<T>3611 * Lookup489: frame_system::extensions::check_genesis::CheckGenesis<T>
3326 **/3612 **/
3327 FrameSystemExtensionsCheckGenesis: 'Null',3613 FrameSystemExtensionsCheckGenesis: 'Null',
3328 /**3614 /**
3329 * Lookup470: frame_system::extensions::check_nonce::CheckNonce<T>3615 * Lookup492: frame_system::extensions::check_nonce::CheckNonce<T>
3330 **/3616 **/
3331 FrameSystemExtensionsCheckNonce: 'Compact<u32>',3617 FrameSystemExtensionsCheckNonce: 'Compact<u32>',
3332 /**3618 /**
3333 * Lookup471: frame_system::extensions::check_weight::CheckWeight<T>3619 * Lookup493: frame_system::extensions::check_weight::CheckWeight<T>
3334 **/3620 **/
3335 FrameSystemExtensionsCheckWeight: 'Null',3621 FrameSystemExtensionsCheckWeight: 'Null',
3622 /**
3623 * Lookup494: opal_runtime::runtime_common::maintenance::CheckMaintenance
3624 **/
3625 OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',
3336 /**3626 /**
3337 * Lookup472: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3627 * Lookup495: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
3338 **/3628 **/
3339 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3629 PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
3340 /**3630 /**
3341 * Lookup473: opal_runtime::Runtime3631 * Lookup496: opal_runtime::Runtime
3342 **/3632 **/
3343 OpalRuntimeRuntime: 'Null',3633 OpalRuntimeRuntime: 'Null',
3344 /**3634 /**
3345 * Lookup474: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3635 * Lookup497: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
3346 **/3636 **/
3347 PalletEthereumFakeTransactionFinalizer: 'Null'3637 PalletEthereumFakeTransactionFinalizer: 'Null'
3348};3638};
33493639
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -5,7 +5,7 @@
 // this is required to allow for ambient/previous definitions
 import '@polkadot/types/types/registry';
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   interface InterfaceTypes {
@@ -21,6 +21,7 @@
     CumulusPalletXcmCall: CumulusPalletXcmCall;
     CumulusPalletXcmError: CumulusPalletXcmError;
     CumulusPalletXcmEvent: CumulusPalletXcmEvent;
+    CumulusPalletXcmOrigin: CumulusPalletXcmOrigin;
     CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall;
     CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError;
     CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent;
@@ -56,7 +57,10 @@
     FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32;
     FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight;
     FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
+    FrameSupportDispatchRawOrigin: FrameSupportDispatchRawOrigin;
     FrameSupportPalletId: FrameSupportPalletId;
+    FrameSupportScheduleLookupError: FrameSupportScheduleLookupError;
+    FrameSupportScheduleMaybeHashed: FrameSupportScheduleMaybeHashed;
     FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus;
     FrameSystemAccountInfo: FrameSystemAccountInfo;
     FrameSystemCall: FrameSystemCall;
@@ -73,7 +77,9 @@
     FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights;
     FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass;
     FrameSystemPhase: FrameSystemPhase;
+    OpalRuntimeOriginCaller: OpalRuntimeOriginCaller;
     OpalRuntimeRuntime: OpalRuntimeRuntime;
+    OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance;
     OrmlTokensAccountData: OrmlTokensAccountData;
     OrmlTokensBalanceLock: OrmlTokensBalanceLock;
     OrmlTokensModuleCall: OrmlTokensModuleCall;
@@ -105,6 +111,7 @@
     PalletEthereumError: PalletEthereumError;
     PalletEthereumEvent: PalletEthereumEvent;
     PalletEthereumFakeTransactionFinalizer: PalletEthereumFakeTransactionFinalizer;
+    PalletEthereumRawOrigin: PalletEthereumRawOrigin;
     PalletEvmAccountBasicCrossAccountIdRepr: PalletEvmAccountBasicCrossAccountIdRepr;
     PalletEvmCall: PalletEvmCall;
     PalletEvmCoderSubstrateError: PalletEvmCoderSubstrateError;
@@ -123,6 +130,9 @@
     PalletForeignAssetsNativeCurrency: PalletForeignAssetsNativeCurrency;
     PalletFungibleError: PalletFungibleError;
     PalletInflationCall: PalletInflationCall;
+    PalletMaintenanceCall: PalletMaintenanceCall;
+    PalletMaintenanceError: PalletMaintenanceError;
+    PalletMaintenanceEvent: PalletMaintenanceEvent;
     PalletNonfungibleError: PalletNonfungibleError;
     PalletNonfungibleItemData: PalletNonfungibleItemData;
     PalletRefungibleError: PalletRefungibleError;
@@ -141,6 +151,9 @@
     PalletSudoEvent: PalletSudoEvent;
     PalletTemplateTransactionPaymentCall: PalletTemplateTransactionPaymentCall;
     PalletTemplateTransactionPaymentChargeTransactionPayment: PalletTemplateTransactionPaymentChargeTransactionPayment;
+    PalletTestUtilsCall: PalletTestUtilsCall;
+    PalletTestUtilsError: PalletTestUtilsError;
+    PalletTestUtilsEvent: PalletTestUtilsEvent;
     PalletTimestampCall: PalletTimestampCall;
     PalletTransactionPaymentEvent: PalletTransactionPaymentEvent;
     PalletTransactionPaymentReleases: PalletTransactionPaymentReleases;
@@ -151,9 +164,14 @@
     PalletUniqueCall: PalletUniqueCall;
     PalletUniqueError: PalletUniqueError;
     PalletUniqueRawEvent: PalletUniqueRawEvent;
+    PalletUniqueSchedulerCall: PalletUniqueSchedulerCall;
+    PalletUniqueSchedulerError: PalletUniqueSchedulerError;
+    PalletUniqueSchedulerEvent: PalletUniqueSchedulerEvent;
+    PalletUniqueSchedulerScheduledV3: PalletUniqueSchedulerScheduledV3;
     PalletXcmCall: PalletXcmCall;
     PalletXcmError: PalletXcmError;
     PalletXcmEvent: PalletXcmEvent;
+    PalletXcmOrigin: PalletXcmOrigin;
     PhantomTypeUpDataStructs: PhantomTypeUpDataStructs;
     PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage;
     PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage;
@@ -184,6 +202,7 @@
     SpCoreEcdsaSignature: SpCoreEcdsaSignature;
     SpCoreEd25519Signature: SpCoreEd25519Signature;
     SpCoreSr25519Signature: SpCoreSr25519Signature;
+    SpCoreVoid: SpCoreVoid;
     SpRuntimeArithmeticError: SpRuntimeArithmeticError;
     SpRuntimeDigest: SpRuntimeDigest;
     SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1132,7 +1132,47 @@
     readonly type: 'Substrate' | 'Ethereum';
   }
 
-  /** @name PalletCommonEvent (93) */
+  /** @name PalletUniqueSchedulerEvent (93) */
+  interface PalletUniqueSchedulerEvent extends Enum {
+    readonly isScheduled: boolean;
+    readonly asScheduled: {
+      readonly when: u32;
+      readonly index: u32;
+    } & Struct;
+    readonly isCanceled: boolean;
+    readonly asCanceled: {
+      readonly when: u32;
+      readonly index: u32;
+    } & Struct;
+    readonly isPriorityChanged: boolean;
+    readonly asPriorityChanged: {
+      readonly when: u32;
+      readonly index: u32;
+      readonly priority: u8;
+    } & Struct;
+    readonly isDispatched: boolean;
+    readonly asDispatched: {
+      readonly task: ITuple<[u32, u32]>;
+      readonly id: Option<U8aFixed>;
+      readonly result: Result<Null, SpRuntimeDispatchError>;
+    } & Struct;
+    readonly isCallLookupFailed: boolean;
+    readonly asCallLookupFailed: {
+      readonly task: ITuple<[u32, u32]>;
+      readonly id: Option<U8aFixed>;
+      readonly error: FrameSupportScheduleLookupError;
+    } & Struct;
+    readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';
+  }
+
+  /** @name FrameSupportScheduleLookupError (96) */
+  interface FrameSupportScheduleLookupError extends Enum {
+    readonly isUnknown: boolean;
+    readonly isBadFormat: boolean;
+    readonly type: 'Unknown' | 'BadFormat';
+  }
+
+  /** @name PalletCommonEvent (97) */
   interface PalletCommonEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -1159,14 +1199,14 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
   }
 
-  /** @name PalletStructureEvent (96) */
+  /** @name PalletStructureEvent (100) */
   interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (97) */
+  /** @name PalletRmrkCoreEvent (101) */
   interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -1256,7 +1296,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (98) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (102) */
   interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
     readonly isAccountId: boolean;
     readonly asAccountId: AccountId32;
@@ -1265,7 +1305,7 @@
     readonly type: 'AccountId' | 'CollectionAndNftTuple';
   }
 
-  /** @name PalletRmrkEquipEvent (103) */
+  /** @name PalletRmrkEquipEvent (107) */
   interface PalletRmrkEquipEvent extends Enum {
     readonly isBaseCreated: boolean;
     readonly asBaseCreated: {
@@ -1280,7 +1320,7 @@
     readonly type: 'BaseCreated' | 'EquippablesUpdated';
   }
 
-  /** @name PalletAppPromotionEvent (104) */
+  /** @name PalletAppPromotionEvent (108) */
   interface PalletAppPromotionEvent extends Enum {
     readonly isStakingRecalculation: boolean;
     readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;
@@ -1293,7 +1333,7 @@
     readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';
   }
 
-  /** @name PalletForeignAssetsModuleEvent (105) */
+  /** @name PalletForeignAssetsModuleEvent (109) */
   interface PalletForeignAssetsModuleEvent extends Enum {
     readonly isForeignAssetRegistered: boolean;
     readonly asForeignAssetRegistered: {
@@ -1320,7 +1360,7 @@
     readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';
   }
 
-  /** @name PalletForeignAssetsModuleAssetMetadata (106) */
+  /** @name PalletForeignAssetsModuleAssetMetadata (110) */
   interface PalletForeignAssetsModuleAssetMetadata extends Struct {
     readonly name: Bytes;
     readonly symbol: Bytes;
@@ -1328,7 +1368,7 @@
     readonly minimalBalance: u128;
   }
 
-  /** @name PalletEvmEvent (107) */
+  /** @name PalletEvmEvent (111) */
   interface PalletEvmEvent extends Enum {
     readonly isLog: boolean;
     readonly asLog: EthereumLog;
@@ -1347,21 +1387,21 @@
     readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
   }
 
-  /** @name EthereumLog (108) */
+  /** @name EthereumLog (112) */
   interface EthereumLog extends Struct {
     readonly address: H160;
     readonly topics: Vec<H256>;
     readonly data: Bytes;
   }
 
-  /** @name PalletEthereumEvent (112) */
+  /** @name PalletEthereumEvent (116) */
   interface PalletEthereumEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
     readonly type: 'Executed';
   }
 
-  /** @name EvmCoreErrorExitReason (113) */
+  /** @name EvmCoreErrorExitReason (117) */
   interface EvmCoreErrorExitReason extends Enum {
     readonly isSucceed: boolean;
     readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -1374,7 +1414,7 @@
     readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
   }
 
-  /** @name EvmCoreErrorExitSucceed (114) */
+  /** @name EvmCoreErrorExitSucceed (118) */
   interface EvmCoreErrorExitSucceed extends Enum {
     readonly isStopped: boolean;
     readonly isReturned: boolean;
@@ -1382,7 +1422,7 @@
     readonly type: 'Stopped' | 'Returned' | 'Suicided';
   }
 
-  /** @name EvmCoreErrorExitError (115) */
+  /** @name EvmCoreErrorExitError (119) */
   interface EvmCoreErrorExitError extends Enum {
     readonly isStackUnderflow: boolean;
     readonly isStackOverflow: boolean;
@@ -1403,13 +1443,13 @@
     readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
   }
 
-  /** @name EvmCoreErrorExitRevert (118) */
+  /** @name EvmCoreErrorExitRevert (122) */
   interface EvmCoreErrorExitRevert extends Enum {
     readonly isReverted: boolean;
     readonly type: 'Reverted';
   }
 
-  /** @name EvmCoreErrorExitFatal (119) */
+  /** @name EvmCoreErrorExitFatal (123) */
   interface EvmCoreErrorExitFatal extends Enum {
     readonly isNotSupported: boolean;
     readonly isUnhandledInterrupt: boolean;
@@ -1420,7 +1460,7 @@
     readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
   }
 
-  /** @name PalletEvmContractHelpersEvent (120) */
+  /** @name PalletEvmContractHelpersEvent (124) */
   interface PalletEvmContractHelpersEvent extends Enum {
     readonly isContractSponsorSet: boolean;
     readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;
@@ -1431,7 +1471,21 @@
     readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';
   }
 
-  /** @name FrameSystemPhase (121) */
+  /** @name PalletMaintenanceEvent (125) */
+  interface PalletMaintenanceEvent extends Enum {
+    readonly isMaintenanceEnabled: boolean;
+    readonly isMaintenanceDisabled: boolean;
+    readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';
+  }
+
+  /** @name PalletTestUtilsEvent (126) */
+  interface PalletTestUtilsEvent extends Enum {
+    readonly isValueIsSet: boolean;
+    readonly isShouldRollback: boolean;
+    readonly type: 'ValueIsSet' | 'ShouldRollback';
+  }
+
+  /** @name FrameSystemPhase (127) */
   interface FrameSystemPhase extends Enum {
     readonly isApplyExtrinsic: boolean;
     readonly asApplyExtrinsic: u32;
@@ -1440,13 +1494,13 @@
     readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
   }
 
-  /** @name FrameSystemLastRuntimeUpgradeInfo (124) */
+  /** @name FrameSystemLastRuntimeUpgradeInfo (129) */
   interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
     readonly specVersion: Compact<u32>;
     readonly specName: Text;
   }
 
-  /** @name FrameSystemCall (125) */
+  /** @name FrameSystemCall (130) */
   interface FrameSystemCall extends Enum {
     readonly isFillBlock: boolean;
     readonly asFillBlock: {
@@ -1488,21 +1542,21 @@
     readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';
   }
 
-  /** @name FrameSystemLimitsBlockWeights (130) */
+  /** @name FrameSystemLimitsBlockWeights (135) */
   interface FrameSystemLimitsBlockWeights extends Struct {
     readonly baseBlock: Weight;
     readonly maxBlock: Weight;
     readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
   }
 
-  /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (131) */
+  /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (136) */
   interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct {
     readonly normal: FrameSystemLimitsWeightsPerClass;
     readonly operational: FrameSystemLimitsWeightsPerClass;
     readonly mandatory: FrameSystemLimitsWeightsPerClass;
   }
 
-  /** @name FrameSystemLimitsWeightsPerClass (132) */
+  /** @name FrameSystemLimitsWeightsPerClass (137) */
   interface FrameSystemLimitsWeightsPerClass extends Struct {
     readonly baseExtrinsic: Weight;
     readonly maxExtrinsic: Option<Weight>;
@@ -1510,25 +1564,25 @@
     readonly reserved: Option<Weight>;
   }
 
-  /** @name FrameSystemLimitsBlockLength (134) */
+  /** @name FrameSystemLimitsBlockLength (139) */
   interface FrameSystemLimitsBlockLength extends Struct {
     readonly max: FrameSupportDispatchPerDispatchClassU32;
   }
 
-  /** @name FrameSupportDispatchPerDispatchClassU32 (135) */
+  /** @name FrameSupportDispatchPerDispatchClassU32 (140) */
   interface FrameSupportDispatchPerDispatchClassU32 extends Struct {
     readonly normal: u32;
     readonly operational: u32;
     readonly mandatory: u32;
   }
 
-  /** @name SpWeightsRuntimeDbWeight (136) */
+  /** @name SpWeightsRuntimeDbWeight (141) */
   interface SpWeightsRuntimeDbWeight extends Struct {
     readonly read: u64;
     readonly write: u64;
   }
 
-  /** @name SpVersionRuntimeVersion (137) */
+  /** @name SpVersionRuntimeVersion (142) */
   interface SpVersionRuntimeVersion extends Struct {
     readonly specName: Text;
     readonly implName: Text;
@@ -1540,7 +1594,7 @@
     readonly stateVersion: u8;
   }
 
-  /** @name FrameSystemError (142) */
+  /** @name FrameSystemError (147) */
   interface FrameSystemError extends Enum {
     readonly isInvalidSpecName: boolean;
     readonly isSpecVersionNeedsToIncrease: boolean;
@@ -1551,7 +1605,7 @@
     readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
   }
 
-  /** @name PolkadotPrimitivesV2PersistedValidationData (143) */
+  /** @name PolkadotPrimitivesV2PersistedValidationData (148) */
   interface PolkadotPrimitivesV2PersistedValidationData extends Struct {
     readonly parentHead: Bytes;
     readonly relayParentNumber: u32;
@@ -1559,18 +1613,18 @@
     readonly maxPovSize: u32;
   }
 
-  /** @name PolkadotPrimitivesV2UpgradeRestriction (146) */
+  /** @name PolkadotPrimitivesV2UpgradeRestriction (151) */
   interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {
     readonly isPresent: boolean;
     readonly type: 'Present';
   }
 
-  /** @name SpTrieStorageProof (147) */
+  /** @name SpTrieStorageProof (152) */
   interface SpTrieStorageProof extends Struct {
     readonly trieNodes: BTreeSet<Bytes>;
   }
 
-  /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (149) */
+  /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (154) */
   interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {
     readonly dmqMqcHead: H256;
     readonly relayDispatchQueueSize: ITuple<[u32, u32]>;
@@ -1578,7 +1632,7 @@
     readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;
   }
 
-  /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (152) */
+  /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (157) */
   interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {
     readonly maxCapacity: u32;
     readonly maxTotalSize: u32;
@@ -1588,7 +1642,7 @@
     readonly mqcHead: Option<H256>;
   }
 
-  /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (153) */
+  /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (158) */
   interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {
     readonly maxCodeSize: u32;
     readonly maxHeadDataSize: u32;
@@ -1601,13 +1655,13 @@
     readonly validationUpgradeDelay: u32;
   }
 
-  /** @name PolkadotCorePrimitivesOutboundHrmpMessage (159) */
+  /** @name PolkadotCorePrimitivesOutboundHrmpMessage (164) */
   interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {
     readonly recipient: u32;
     readonly data: Bytes;
   }
 
-  /** @name CumulusPalletParachainSystemCall (160) */
+  /** @name CumulusPalletParachainSystemCall (165) */
   interface CumulusPalletParachainSystemCall extends Enum {
     readonly isSetValidationData: boolean;
     readonly asSetValidationData: {
@@ -1628,7 +1682,7 @@
     readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';
   }
 
-  /** @name CumulusPrimitivesParachainInherentParachainInherentData (161) */
+  /** @name CumulusPrimitivesParachainInherentParachainInherentData (166) */
   interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {
     readonly validationData: PolkadotPrimitivesV2PersistedValidationData;
     readonly relayChainState: SpTrieStorageProof;
@@ -1636,19 +1690,19 @@
     readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;
   }
 
-  /** @name PolkadotCorePrimitivesInboundDownwardMessage (163) */
+  /** @name PolkadotCorePrimitivesInboundDownwardMessage (168) */
   interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {
     readonly sentAt: u32;
     readonly msg: Bytes;
   }
 
-  /** @name PolkadotCorePrimitivesInboundHrmpMessage (166) */
+  /** @name PolkadotCorePrimitivesInboundHrmpMessage (171) */
   interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {
     readonly sentAt: u32;
     readonly data: Bytes;
   }
 
-  /** @name CumulusPalletParachainSystemError (169) */
+  /** @name CumulusPalletParachainSystemError (174) */
   interface CumulusPalletParachainSystemError extends Enum {
     readonly isOverlappingUpgrades: boolean;
     readonly isProhibitedByPolkadot: boolean;
@@ -1661,14 +1715,14 @@
     readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';
   }
 
-  /** @name PalletBalancesBalanceLock (171) */
+  /** @name PalletBalancesBalanceLock (176) */
   interface PalletBalancesBalanceLock extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
     readonly reasons: PalletBalancesReasons;
   }
 
-  /** @name PalletBalancesReasons (172) */
+  /** @name PalletBalancesReasons (177) */
   interface PalletBalancesReasons extends Enum {
     readonly isFee: boolean;
     readonly isMisc: boolean;
@@ -1676,20 +1730,20 @@
     readonly type: 'Fee' | 'Misc' | 'All';
   }
 
-  /** @name PalletBalancesReserveData (175) */
+  /** @name PalletBalancesReserveData (180) */
   interface PalletBalancesReserveData extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
   }
 
-  /** @name PalletBalancesReleases (177) */
+  /** @name PalletBalancesReleases (182) */
   interface PalletBalancesReleases extends Enum {
     readonly isV100: boolean;
     readonly isV200: boolean;
     readonly type: 'V100' | 'V200';
   }
 
-  /** @name PalletBalancesCall (178) */
+  /** @name PalletBalancesCall (183) */
   interface PalletBalancesCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1726,7 +1780,7 @@
     readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';
   }
 
-  /** @name PalletBalancesError (181) */
+  /** @name PalletBalancesError (186) */
   interface PalletBalancesError extends Enum {
     readonly isVestingBalance: boolean;
     readonly isLiquidityRestrictions: boolean;
@@ -1739,7 +1793,7 @@
     readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';
   }
 
-  /** @name PalletTimestampCall (183) */
+  /** @name PalletTimestampCall (188) */
   interface PalletTimestampCall extends Enum {
     readonly isSet: boolean;
     readonly asSet: {
@@ -1748,14 +1802,14 @@
     readonly type: 'Set';
   }
 
-  /** @name PalletTransactionPaymentReleases (185) */
+  /** @name PalletTransactionPaymentReleases (190) */
   interface PalletTransactionPaymentReleases extends Enum {
     readonly isV1Ancient: boolean;
     readonly isV2: boolean;
     readonly type: 'V1Ancient' | 'V2';
   }
 
-  /** @name PalletTreasuryProposal (186) */
+  /** @name PalletTreasuryProposal (191) */
   interface PalletTreasuryProposal extends Struct {
     readonly proposer: AccountId32;
     readonly value: u128;
@@ -1763,7 +1817,7 @@
     readonly bond: u128;
   }
 
-  /** @name PalletTreasuryCall (189) */
+  /** @name PalletTreasuryCall (194) */
   interface PalletTreasuryCall extends Enum {
     readonly isProposeSpend: boolean;
     readonly asProposeSpend: {
@@ -1790,10 +1844,10 @@
     readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';
   }
 
-  /** @name FrameSupportPalletId (192) */
+  /** @name FrameSupportPalletId (197) */
   interface FrameSupportPalletId extends U8aFixed {}
 
-  /** @name PalletTreasuryError (193) */
+  /** @name PalletTreasuryError (198) */
   interface PalletTreasuryError extends Enum {
     readonly isInsufficientProposersBalance: boolean;
     readonly isInvalidIndex: boolean;
@@ -1803,7 +1857,7 @@
     readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';
   }
 
-  /** @name PalletSudoCall (194) */
+  /** @name PalletSudoCall (199) */
   interface PalletSudoCall extends Enum {
     readonly isSudo: boolean;
     readonly asSudo: {
@@ -1826,7 +1880,7 @@
     readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';
   }
 
-  /** @name OrmlVestingModuleCall (196) */
+  /** @name OrmlVestingModuleCall (201) */
   interface OrmlVestingModuleCall extends Enum {
     readonly isClaim: boolean;
     readonly isVestedTransfer: boolean;
@@ -1846,7 +1900,7 @@
     readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';
   }
 
-  /** @name OrmlXtokensModuleCall (198) */
+  /** @name OrmlXtokensModuleCall (203) */
   interface OrmlXtokensModuleCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1893,7 +1947,7 @@
     readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';
   }
 
-  /** @name XcmVersionedMultiAsset (199) */
+  /** @name XcmVersionedMultiAsset (204) */
   interface XcmVersionedMultiAsset extends Enum {
     readonly isV0: boolean;
     readonly asV0: XcmV0MultiAsset;
@@ -1902,7 +1956,7 @@
     readonly type: 'V0' | 'V1';
   }
 
-  /** @name OrmlTokensModuleCall (202) */
+  /** @name OrmlTokensModuleCall (207) */
   interface OrmlTokensModuleCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1939,7 +1993,7 @@
     readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';
   }
 
-  /** @name CumulusPalletXcmpQueueCall (203) */
+  /** @name CumulusPalletXcmpQueueCall (208) */
   interface CumulusPalletXcmpQueueCall extends Enum {
     readonly isServiceOverweight: boolean;
     readonly asServiceOverweight: {
@@ -1975,7 +2029,7 @@
     readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';
   }
 
-  /** @name PalletXcmCall (204) */
+  /** @name PalletXcmCall (209) */
   interface PalletXcmCall extends Enum {
     readonly isSend: boolean;
     readonly asSend: {
@@ -2037,7 +2091,7 @@
     readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';
   }
 
-  /** @name XcmVersionedXcm (205) */
+  /** @name XcmVersionedXcm (210) */
   interface XcmVersionedXcm extends Enum {
     readonly isV0: boolean;
     readonly asV0: XcmV0Xcm;
@@ -2048,7 +2102,7 @@
     readonly type: 'V0' | 'V1' | 'V2';
   }
 
-  /** @name XcmV0Xcm (206) */
+  /** @name XcmV0Xcm (211) */
   interface XcmV0Xcm extends Enum {
     readonly isWithdrawAsset: boolean;
     readonly asWithdrawAsset: {
@@ -2111,7 +2165,7 @@
     readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';
   }
 
-  /** @name XcmV0Order (208) */
+  /** @name XcmV0Order (213) */
   interface XcmV0Order extends Enum {
     readonly isNull: boolean;
     readonly isDepositAsset: boolean;
@@ -2159,14 +2213,14 @@
     readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
   }
 
-  /** @name XcmV0Response (210) */
+  /** @name XcmV0Response (215) */
   interface XcmV0Response extends Enum {
     readonly isAssets: boolean;
     readonly asAssets: Vec<XcmV0MultiAsset>;
     readonly type: 'Assets';
   }
 
-  /** @name XcmV1Xcm (211) */
+  /** @name XcmV1Xcm (216) */
   interface XcmV1Xcm extends Enum {
     readonly isWithdrawAsset: boolean;
     readonly asWithdrawAsset: {
@@ -2235,7 +2289,7 @@
     readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';
   }
 
-  /** @name XcmV1Order (213) */
+  /** @name XcmV1Order (218) */
   interface XcmV1Order extends Enum {
     readonly isNoop: boolean;
     readonly isDepositAsset: boolean;
@@ -2285,7 +2339,7 @@
     readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
   }
 
-  /** @name XcmV1Response (215) */
+  /** @name XcmV1Response (220) */
   interface XcmV1Response extends Enum {
     readonly isAssets: boolean;
     readonly asAssets: XcmV1MultiassetMultiAssets;
@@ -2294,10 +2348,10 @@
     readonly type: 'Assets' | 'Version';
   }
 
-  /** @name CumulusPalletXcmCall (229) */
+  /** @name CumulusPalletXcmCall (234) */
   type CumulusPalletXcmCall = Null;
 
-  /** @name CumulusPalletDmpQueueCall (230) */
+  /** @name CumulusPalletDmpQueueCall (235) */
   interface CumulusPalletDmpQueueCall extends Enum {
     readonly isServiceOverweight: boolean;
     readonly asServiceOverweight: {
@@ -2307,7 +2361,7 @@
     readonly type: 'ServiceOverweight';
   }
 
-  /** @name PalletInflationCall (231) */
+  /** @name PalletInflationCall (236) */
   interface PalletInflationCall extends Enum {
     readonly isStartInflation: boolean;
     readonly asStartInflation: {
@@ -2316,7 +2370,7 @@
     readonly type: 'StartInflation';
   }
 
-  /** @name PalletUniqueCall (232) */
+  /** @name PalletUniqueCall (237) */
   interface PalletUniqueCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -2474,7 +2528,7 @@
     readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition';
   }
 
-  /** @name UpDataStructsCollectionMode (237) */
+  /** @name UpDataStructsCollectionMode (242) */
   interface UpDataStructsCollectionMode extends Enum {
     readonly isNft: boolean;
     readonly isFungible: boolean;
@@ -2483,7 +2537,7 @@
     readonly type: 'Nft' | 'Fungible' | 'ReFungible';
   }
 
-  /** @name UpDataStructsCreateCollectionData (238) */
+  /** @name UpDataStructsCreateCollectionData (243) */
   interface UpDataStructsCreateCollectionData extends Struct {
     readonly mode: UpDataStructsCollectionMode;
     readonly access: Option<UpDataStructsAccessMode>;
@@ -2497,14 +2551,14 @@
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsAccessMode (240) */
+  /** @name UpDataStructsAccessMode (245) */
   interface UpDataStructsAccessMode extends Enum {
     readonly isNormal: boolean;
     readonly isAllowList: boolean;
     readonly type: 'Normal' | 'AllowList';
   }
 
-  /** @name UpDataStructsCollectionLimits (242) */
+  /** @name UpDataStructsCollectionLimits (247) */
   interface UpDataStructsCollectionLimits extends Struct {
     readonly accountTokenOwnershipLimit: Option<u32>;
     readonly sponsoredDataSize: Option<u32>;
@@ -2517,7 +2571,7 @@
     readonly transfersEnabled: Option<bool>;
   }
 
-  /** @name UpDataStructsSponsoringRateLimit (244) */
+  /** @name UpDataStructsSponsoringRateLimit (249) */
   interface UpDataStructsSponsoringRateLimit extends Enum {
     readonly isSponsoringDisabled: boolean;
     readonly isBlocks: boolean;
@@ -2525,43 +2579,43 @@
     readonly type: 'SponsoringDisabled' | 'Blocks';
   }
 
-  /** @name UpDataStructsCollectionPermissions (247) */
+  /** @name UpDataStructsCollectionPermissions (252) */
   interface UpDataStructsCollectionPermissions extends Struct {
     readonly access: Option<UpDataStructsAccessMode>;
     readonly mintMode: Option<bool>;
     readonly nesting: Option<UpDataStructsNestingPermissions>;
   }
 
-  /** @name UpDataStructsNestingPermissions (249) */
+  /** @name UpDataStructsNestingPermissions (254) */
   interface UpDataStructsNestingPermissions extends Struct {
     readonly tokenOwner: bool;
     readonly collectionAdmin: bool;
     readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;
   }
 
-  /** @name UpDataStructsOwnerRestrictedSet (251) */
+  /** @name UpDataStructsOwnerRestrictedSet (256) */
   interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}
 
-  /** @name UpDataStructsPropertyKeyPermission (256) */
+  /** @name UpDataStructsPropertyKeyPermission (261) */
   interface UpDataStructsPropertyKeyPermission extends Struct {
     readonly key: Bytes;
     readonly permission: UpDataStructsPropertyPermission;
   }
 
-  /** @name UpDataStructsPropertyPermission (257) */
+  /** @name UpDataStructsPropertyPermission (262) */
   interface UpDataStructsPropertyPermission extends Struct {
     readonly mutable: bool;
     readonly collectionAdmin: bool;
     readonly tokenOwner: bool;
   }
 
-  /** @name UpDataStructsProperty (260) */
+  /** @name UpDataStructsProperty (265) */
   interface UpDataStructsProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name UpDataStructsCreateItemData (263) */
+  /** @name UpDataStructsCreateItemData (268) */
   interface UpDataStructsCreateItemData extends Enum {
     readonly isNft: boolean;
     readonly asNft: UpDataStructsCreateNftData;
@@ -2572,23 +2626,23 @@
     readonly type: 'Nft' | 'Fungible' | 'ReFungible';
   }
 
-  /** @name UpDataStructsCreateNftData (264) */
+  /** @name UpDataStructsCreateNftData (269) */
   interface UpDataStructsCreateNftData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateFungibleData (265) */
+  /** @name UpDataStructsCreateFungibleData (270) */
   interface UpDataStructsCreateFungibleData extends Struct {
     readonly value: u128;
   }
 
-  /** @name UpDataStructsCreateReFungibleData (266) */
+  /** @name UpDataStructsCreateReFungibleData (271) */
   interface UpDataStructsCreateReFungibleData extends Struct {
     readonly pieces: u128;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateItemExData (269) */
+  /** @name UpDataStructsCreateItemExData (274) */
   interface UpDataStructsCreateItemExData extends Enum {
     readonly isNft: boolean;
     readonly asNft: Vec<UpDataStructsCreateNftExData>;
@@ -2601,26 +2655,65 @@
     readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';
   }
 
-  /** @name UpDataStructsCreateNftExData (271) */
+  /** @name UpDataStructsCreateNftExData (276) */
   interface UpDataStructsCreateNftExData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsCreateRefungibleExSingleOwner (278) */
+  /** @name UpDataStructsCreateRefungibleExSingleOwner (283) */
   interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {
     readonly user: PalletEvmAccountBasicCrossAccountIdRepr;
     readonly pieces: u128;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateRefungibleExMultipleOwners (280) */
+  /** @name UpDataStructsCreateRefungibleExMultipleOwners (285) */
   interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {
     readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name PalletConfigurationCall (281) */
+  /** @name PalletUniqueSchedulerCall (286) */
+  interface PalletUniqueSchedulerCall extends Enum {
+    readonly isScheduleNamed: boolean;
+    readonly asScheduleNamed: {
+      readonly id: U8aFixed;
+      readonly when: u32;
+      readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+      readonly priority: Option<u8>;
+      readonly call: FrameSupportScheduleMaybeHashed;
+    } & Struct;
+    readonly isCancelNamed: boolean;
+    readonly asCancelNamed: {
+      readonly id: U8aFixed;
+    } & Struct;
+    readonly isScheduleNamedAfter: boolean;
+    readonly asScheduleNamedAfter: {
+      readonly id: U8aFixed;
+      readonly after: u32;
+      readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+      readonly priority: Option<u8>;
+      readonly call: FrameSupportScheduleMaybeHashed;
+    } & Struct;
+    readonly isChangeNamedPriority: boolean;
+    readonly asChangeNamedPriority: {
+      readonly id: U8aFixed;
+      readonly priority: u8;
+    } & Struct;
+    readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';
+  }
+
+  /** @name FrameSupportScheduleMaybeHashed (289) */
+  interface FrameSupportScheduleMaybeHashed extends Enum {
+    readonly isValue: boolean;
+    readonly asValue: Call;
+    readonly isHash: boolean;
+    readonly asHash: H256;
+    readonly type: 'Value' | 'Hash';
+  }
+
+  /** @name PalletConfigurationCall (290) */
   interface PalletConfigurationCall extends Enum {
     readonly isSetWeightToFeeCoefficientOverride: boolean;
     readonly asSetWeightToFeeCoefficientOverride: {
@@ -2633,13 +2726,13 @@
     readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';
   }
 
-  /** @name PalletTemplateTransactionPaymentCall (283) */
+  /** @name PalletTemplateTransactionPaymentCall (292) */
   type PalletTemplateTransactionPaymentCall = Null;
 
-  /** @name PalletStructureCall (284) */
+  /** @name PalletStructureCall (293) */
   type PalletStructureCall = Null;
 
-  /** @name PalletRmrkCoreCall (285) */
+  /** @name PalletRmrkCoreCall (294) */
   interface PalletRmrkCoreCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -2745,7 +2838,7 @@
     readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
   }
 
-  /** @name RmrkTraitsResourceResourceTypes (291) */
+  /** @name RmrkTraitsResourceResourceTypes (300) */
   interface RmrkTraitsResourceResourceTypes extends Enum {
     readonly isBasic: boolean;
     readonly asBasic: RmrkTraitsResourceBasicResource;
@@ -2756,7 +2849,7 @@
     readonly type: 'Basic' | 'Composable' | 'Slot';
   }
 
-  /** @name RmrkTraitsResourceBasicResource (293) */
+  /** @name RmrkTraitsResourceBasicResource (302) */
   interface RmrkTraitsResourceBasicResource extends Struct {
     readonly src: Option<Bytes>;
     readonly metadata: Option<Bytes>;
@@ -2764,7 +2857,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceComposableResource (295) */
+  /** @name RmrkTraitsResourceComposableResource (304) */
   interface RmrkTraitsResourceComposableResource extends Struct {
     readonly parts: Vec<u32>;
     readonly base: u32;
@@ -2774,7 +2867,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceSlotResource (296) */
+  /** @name RmrkTraitsResourceSlotResource (305) */
   interface RmrkTraitsResourceSlotResource extends Struct {
     readonly base: u32;
     readonly src: Option<Bytes>;
@@ -2784,7 +2877,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name PalletRmrkEquipCall (299) */
+  /** @name PalletRmrkEquipCall (308) */
   interface PalletRmrkEquipCall extends Enum {
     readonly isCreateBase: boolean;
     readonly asCreateBase: {
@@ -2806,7 +2899,7 @@
     readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';
   }
 
-  /** @name RmrkTraitsPartPartType (302) */
+  /** @name RmrkTraitsPartPartType (311) */
   interface RmrkTraitsPartPartType extends Enum {
     readonly isFixedPart: boolean;
     readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -2815,14 +2908,14 @@
     readonly type: 'FixedPart' | 'SlotPart';
   }
 
-  /** @name RmrkTraitsPartFixedPart (304) */
+  /** @name RmrkTraitsPartFixedPart (313) */
   interface RmrkTraitsPartFixedPart extends Struct {
     readonly id: u32;
     readonly z: u32;
     readonly src: Bytes;
   }
 
-  /** @name RmrkTraitsPartSlotPart (305) */
+  /** @name RmrkTraitsPartSlotPart (314) */
   interface RmrkTraitsPartSlotPart extends Struct {
     readonly id: u32;
     readonly equippable: RmrkTraitsPartEquippableList;
@@ -2830,7 +2923,7 @@
     readonly z: u32;
   }
 
-  /** @name RmrkTraitsPartEquippableList (306) */
+  /** @name RmrkTraitsPartEquippableList (315) */
   interface RmrkTraitsPartEquippableList extends Enum {
     readonly isAll: boolean;
     readonly isEmpty: boolean;
@@ -2839,20 +2932,20 @@
     readonly type: 'All' | 'Empty' | 'Custom';
   }
 
-  /** @name RmrkTraitsTheme (308) */
+  /** @name RmrkTraitsTheme (317) */
   interface RmrkTraitsTheme extends Struct {
     readonly name: Bytes;
     readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
     readonly inherit: bool;
   }
 
-  /** @name RmrkTraitsThemeThemeProperty (310) */
+  /** @name RmrkTraitsThemeThemeProperty (319) */
   interface RmrkTraitsThemeThemeProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletAppPromotionCall (312) */
+  /** @name PalletAppPromotionCall (321) */
   interface PalletAppPromotionCall extends Enum {
     readonly isSetAdminAddress: boolean;
     readonly asSetAdminAddress: {
@@ -2886,7 +2979,7 @@
     readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';
   }
 
-  /** @name PalletForeignAssetsModuleCall (314) */
+  /** @name PalletForeignAssetsModuleCall (322) */
   interface PalletForeignAssetsModuleCall extends Enum {
     readonly isRegisterForeignAsset: boolean;
     readonly asRegisterForeignAsset: {
@@ -2903,7 +2996,7 @@
     readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';
   }
 
-  /** @name PalletEvmCall (315) */
+  /** @name PalletEvmCall (323) */
   interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -2948,7 +3041,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (319) */
+  /** @name PalletEthereumCall (327) */
   interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -2957,7 +3050,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (320) */
+  /** @name EthereumTransactionTransactionV2 (328) */
   interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -2968,7 +3061,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (321) */
+  /** @name EthereumTransactionLegacyTransaction (329) */
   interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -2979,7 +3072,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (322) */
+  /** @name EthereumTransactionTransactionAction (330) */
   interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -2987,14 +3080,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (323) */
+  /** @name EthereumTransactionTransactionSignature (331) */
   interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (325) */
+  /** @name EthereumTransactionEip2930Transaction (333) */
   interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -3009,13 +3102,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (327) */
+  /** @name EthereumTransactionAccessListItem (335) */
   interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (328) */
+  /** @name EthereumTransactionEip1559Transaction (336) */
   interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -3031,7 +3124,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (329) */
+  /** @name PalletEvmMigrationCall (337) */
   interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -3050,13 +3143,41 @@
     readonly type: 'Begin' | 'SetData' | 'Finish';
   }
 
-  /** @name PalletSudoError (332) */
+  /** @name PalletMaintenanceCall (340) */
+  interface PalletMaintenanceCall extends Enum {
+    readonly isEnable: boolean;
+    readonly isDisable: boolean;
+    readonly type: 'Enable' | 'Disable';
+  }
+
+  /** @name PalletTestUtilsCall (341) */
+  interface PalletTestUtilsCall extends Enum {
+    readonly isEnable: boolean;
+    readonly isSetTestValue: boolean;
+    readonly asSetTestValue: {
+      readonly value: u32;
+    } & Struct;
+    readonly isSetTestValueAndRollback: boolean;
+    readonly asSetTestValueAndRollback: {
+      readonly value: u32;
+    } & Struct;
+    readonly isIncTestValue: boolean;
+    readonly isSelfCancelingInc: boolean;
+    readonly asSelfCancelingInc: {
+      readonly id: U8aFixed;
+      readonly maxTestValue: u32;
+    } & Struct;
+    readonly isJustTakeFee: boolean;
+    readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';
+  }
+
+  /** @name PalletSudoError (342) */
   interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name OrmlVestingModuleError (334) */
+  /** @name OrmlVestingModuleError (344) */
   interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -3067,7 +3188,7 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name OrmlXtokensModuleError (335) */
+  /** @name OrmlXtokensModuleError (345) */
   interface OrmlXtokensModuleError extends Enum {
     readonly isAssetHasNoReserve: boolean;
     readonly isNotCrossChainTransfer: boolean;
@@ -3091,26 +3212,26 @@
     readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';
   }
 
-  /** @name OrmlTokensBalanceLock (338) */
+  /** @name OrmlTokensBalanceLock (348) */
   interface OrmlTokensBalanceLock extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
   }
 
-  /** @name OrmlTokensAccountData (340) */
+  /** @name OrmlTokensAccountData (350) */
   interface OrmlTokensAccountData extends Struct {
     readonly free: u128;
     readonly reserved: u128;
     readonly frozen: u128;
   }
 
-  /** @name OrmlTokensReserveData (342) */
+  /** @name OrmlTokensReserveData (352) */
   interface OrmlTokensReserveData extends Struct {
     readonly id: Null;
     readonly amount: u128;
   }
 
-  /** @name OrmlTokensModuleError (344) */
+  /** @name OrmlTokensModuleError (354) */
   interface OrmlTokensModuleError extends Enum {
     readonly isBalanceTooLow: boolean;
     readonly isAmountIntoBalanceFailed: boolean;
@@ -3123,21 +3244,21 @@
     readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (346) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (356) */
   interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (347) */
+  /** @name CumulusPalletXcmpQueueInboundState (357) */
   interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (350) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (360) */
   interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -3145,7 +3266,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (363) */
   interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -3154,14 +3275,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (354) */
+  /** @name CumulusPalletXcmpQueueOutboundState (364) */
   interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (356) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (366) */
   interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -3171,7 +3292,7 @@
     readonly xcmpMaxIndividualWeight: Weight;
   }
 
-  /** @name CumulusPalletXcmpQueueError (358) */
+  /** @name CumulusPalletXcmpQueueError (368) */
   interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -3181,7 +3302,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (359) */
+  /** @name PalletXcmError (369) */
   interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -3199,29 +3320,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (360) */
+  /** @name CumulusPalletXcmError (370) */
   type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (361) */
+  /** @name CumulusPalletDmpQueueConfigData (371) */
   interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: Weight;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (362) */
+  /** @name CumulusPalletDmpQueuePageIndexData (372) */
   interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (365) */
+  /** @name CumulusPalletDmpQueueError (375) */
   interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (369) */
+  /** @name PalletUniqueError (379) */
   interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isConfirmUnsetSponsorFail: boolean;
@@ -3230,7 +3351,75 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';
   }
 
-  /** @name UpDataStructsCollection (370) */
+  /** @name PalletUniqueSchedulerScheduledV3 (382) */
+  interface PalletUniqueSchedulerScheduledV3 extends Struct {
+    readonly maybeId: Option<U8aFixed>;
+    readonly priority: u8;
+    readonly call: FrameSupportScheduleMaybeHashed;
+    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;
+    readonly origin: OpalRuntimeOriginCaller;
+  }
+
+  /** @name OpalRuntimeOriginCaller (383) */
+  interface OpalRuntimeOriginCaller extends Enum {
+    readonly isSystem: boolean;
+    readonly asSystem: FrameSupportDispatchRawOrigin;
+    readonly isVoid: boolean;
+    readonly isPolkadotXcm: boolean;
+    readonly asPolkadotXcm: PalletXcmOrigin;
+    readonly isCumulusXcm: boolean;
+    readonly asCumulusXcm: CumulusPalletXcmOrigin;
+    readonly isEthereum: boolean;
+    readonly asEthereum: PalletEthereumRawOrigin;
+    readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
+  }
+
+  /** @name FrameSupportDispatchRawOrigin (384) */
+  interface FrameSupportDispatchRawOrigin extends Enum {
+    readonly isRoot: boolean;
+    readonly isSigned: boolean;
+    readonly asSigned: AccountId32;
+    readonly isNone: boolean;
+    readonly type: 'Root' | 'Signed' | 'None';
+  }
+
+  /** @name PalletXcmOrigin (385) */
+  interface PalletXcmOrigin extends Enum {
+    readonly isXcm: boolean;
+    readonly asXcm: XcmV1MultiLocation;
+    readonly isResponse: boolean;
+    readonly asResponse: XcmV1MultiLocation;
+    readonly type: 'Xcm' | 'Response';
+  }
+
+  /** @name CumulusPalletXcmOrigin (386) */
+  interface CumulusPalletXcmOrigin extends Enum {
+    readonly isRelay: boolean;
+    readonly isSiblingParachain: boolean;
+    readonly asSiblingParachain: u32;
+    readonly type: 'Relay' | 'SiblingParachain';
+  }
+
+  /** @name PalletEthereumRawOrigin (387) */
+  interface PalletEthereumRawOrigin extends Enum {
+    readonly isEthereumTransaction: boolean;
+    readonly asEthereumTransaction: H160;
+    readonly type: 'EthereumTransaction';
+  }
+
+  /** @name SpCoreVoid (388) */
+  type SpCoreVoid = Null;
+
+  /** @name PalletUniqueSchedulerError (389) */
+  interface PalletUniqueSchedulerError extends Enum {
+    readonly isFailedToSchedule: boolean;
+    readonly isNotFound: boolean;
+    readonly isTargetBlockNumberInPast: boolean;
+    readonly isRescheduleNoChange: boolean;
+    readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
+  }
+
+  /** @name UpDataStructsCollection (390) */
   interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3243,7 +3432,7 @@
     readonly flags: U8aFixed;
   }
 
-  /** @name UpDataStructsSponsorshipStateAccountId32 (371) */
+  /** @name UpDataStructsSponsorshipStateAccountId32 (391) */
   interface UpDataStructsSponsorshipStateAccountId32 extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3253,43 +3442,43 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (373) */
+  /** @name UpDataStructsProperties (393) */
   interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (374) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (394) */
   interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (379) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (399) */
   interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (386) */
+  /** @name UpDataStructsCollectionStats (406) */
   interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (387) */
+  /** @name UpDataStructsTokenChild (407) */
   interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (388) */
+  /** @name PhantomTypeUpDataStructs (408) */
   interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (390) */
+  /** @name UpDataStructsTokenData (410) */
   interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
     readonly pieces: u128;
   }
 
-  /** @name UpDataStructsRpcCollection (392) */
+  /** @name UpDataStructsRpcCollection (412) */
   interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3305,13 +3494,13 @@
     readonly flags: UpDataStructsRpcCollectionFlags;
   }
 
-  /** @name UpDataStructsRpcCollectionFlags (393) */
+  /** @name UpDataStructsRpcCollectionFlags (413) */
   interface UpDataStructsRpcCollectionFlags extends Struct {
     readonly foreign: bool;
     readonly erc721metadata: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (394) */
+  /** @name RmrkTraitsCollectionCollectionInfo (414) */
   interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -3320,7 +3509,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (395) */
+  /** @name RmrkTraitsNftNftInfo (415) */
   interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -3329,13 +3518,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (397) */
+  /** @name RmrkTraitsNftRoyaltyInfo (417) */
   interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (398) */
+  /** @name RmrkTraitsResourceResourceInfo (418) */
   interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -3343,26 +3532,26 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsPropertyPropertyInfo (399) */
+  /** @name RmrkTraitsPropertyPropertyInfo (419) */
   interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (400) */
+  /** @name RmrkTraitsBaseBaseInfo (420) */
   interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (401) */
+  /** @name RmrkTraitsNftNftChild (421) */
   interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (403) */
+  /** @name PalletCommonError (423) */
   interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3401,7 +3590,7 @@
     readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';
   }
 
-  /** @name PalletFungibleError (405) */
+  /** @name PalletFungibleError (425) */
   interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3411,12 +3600,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (406) */
+  /** @name PalletRefungibleItemData (426) */
   interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (411) */
+  /** @name PalletRefungibleError (431) */
   interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3426,19 +3615,19 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (412) */
+  /** @name PalletNonfungibleItemData (432) */
   interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsPropertyScope (414) */
+  /** @name UpDataStructsPropertyScope (434) */
   interface UpDataStructsPropertyScope extends Enum {
     readonly isNone: boolean;
     readonly isRmrk: boolean;
     readonly type: 'None' | 'Rmrk';
   }
 
-  /** @name PalletNonfungibleError (416) */
+  /** @name PalletNonfungibleError (436) */
   interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3446,7 +3635,7 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (417) */
+  /** @name PalletStructureError (437) */
   interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -3455,7 +3644,7 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (418) */
+  /** @name PalletRmrkCoreError (438) */
   interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isRmrkPropertyKeyIsTooLong: boolean;
@@ -3479,7 +3668,7 @@
     readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
   }
 
-  /** @name PalletRmrkEquipError (420) */
+  /** @name PalletRmrkEquipError (440) */
   interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3491,7 +3680,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';
   }
 
-  /** @name PalletAppPromotionError (426) */
+  /** @name PalletAppPromotionError (446) */
   interface PalletAppPromotionError extends Enum {
     readonly isAdminNotSet: boolean;
     readonly isNoPermission: boolean;
@@ -3502,7 +3691,7 @@
     readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';
   }
 
-  /** @name PalletForeignAssetsModuleError (427) */
+  /** @name PalletForeignAssetsModuleError (447) */
   interface PalletForeignAssetsModuleError extends Enum {
     readonly isBadLocation: boolean;
     readonly isMultiLocationExisted: boolean;
@@ -3511,7 +3700,7 @@
     readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';
   }
 
-  /** @name PalletEvmError (430) */
+  /** @name PalletEvmError (450) */
   interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3522,7 +3711,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (433) */
+  /** @name FpRpcTransactionStatus (453) */
   interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3533,10 +3722,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (435) */
+  /** @name EthbloomBloom (455) */
   interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (437) */
+  /** @name EthereumReceiptReceiptV3 (457) */
   interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3547,7 +3736,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (438) */
+  /** @name EthereumReceiptEip658ReceiptData (458) */
   interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3555,14 +3744,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (439) */
+  /** @name EthereumBlock (459) */
   interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (440) */
+  /** @name EthereumHeader (460) */
   interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3581,24 +3770,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (441) */
+  /** @name EthereumTypesHashH64 (461) */
   interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (446) */
+  /** @name PalletEthereumError (466) */
   interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (447) */
+  /** @name PalletEvmCoderSubstrateError (467) */
   interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (448) */
+  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (468) */
   interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3608,7 +3797,7 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (449) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (469) */
   interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3616,7 +3805,7 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (455) */
+  /** @name PalletEvmContractHelpersError (475) */
   interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly isNoPendingSponsor: boolean;
@@ -3624,14 +3813,24 @@
     readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';
   }
 
-  /** @name PalletEvmMigrationError (456) */
+  /** @name PalletEvmMigrationError (476) */
   interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (458) */
+  /** @name PalletMaintenanceError (477) */
+  type PalletMaintenanceError = Null;
+
+  /** @name PalletTestUtilsError (478) */
+  interface PalletTestUtilsError extends Enum {
+    readonly isTestPalletDisabled: boolean;
+    readonly isTriggerRollback: boolean;
+    readonly type: 'TestPalletDisabled' | 'TriggerRollback';
+  }
+
+  /** @name SpRuntimeMultiSignature (480) */
   interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3642,37 +3841,40 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (459) */
+  /** @name SpCoreEd25519Signature (481) */
   interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (461) */
+  /** @name SpCoreSr25519Signature (483) */
   interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (462) */
+  /** @name SpCoreEcdsaSignature (484) */
   interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (465) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (487) */
   type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckTxVersion (466) */
+  /** @name FrameSystemExtensionsCheckTxVersion (488) */
   type FrameSystemExtensionsCheckTxVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (467) */
+  /** @name FrameSystemExtensionsCheckGenesis (489) */
   type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (470) */
+  /** @name FrameSystemExtensionsCheckNonce (492) */
   interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (471) */
+  /** @name FrameSystemExtensionsCheckWeight (493) */
   type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (472) */
+  /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (494) */
+  type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;
+
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (495) */
   interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (473) */
+  /** @name OpalRuntimeRuntime (496) */
   type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (474) */
+  /** @name PalletEthereumFakeTransactionFinalizer (497) */
   type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
addedtests/src/maintenanceMode.seqtest.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/maintenanceMode.seqtest.ts
@@ -0,0 +1,266 @@
+// 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/>.
+
+import {IKeyringPair} from '@polkadot/types/types';
+import {ApiPromise} from '@polkadot/api';
+import {expect, itSub, Pallets, usingPlaygrounds} from './util';
+import {itEth} from './eth/util';
+
+async function maintenanceEnabled(api: ApiPromise): Promise<boolean> {
+  return (await api.query.maintenance.enabled()).toJSON() as boolean;
+}
+
+describe('Integration Test: Maintenance Mode', () => {
+  let superuser: IKeyringPair;
+  let donor: IKeyringPair;
+  let bob: IKeyringPair;
+
+  before(async () => {
+    await usingPlaygrounds(async (helper, privateKey) => {
+      superuser = await privateKey('//Alice');
+      donor = await privateKey({filename: __filename});
+      [bob] = await helper.arrange.createAccounts([100n], donor);
+
+      if (await maintenanceEnabled(helper.getApi())) {
+        console.warn('\tMaintenance mode was left enabled BEFORE the test suite! Disabling it now.');
+        await expect(helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', [])).to.be.fulfilled;
+      }
+    });
+  });
+
+  itSub('Allows superuser to enable and disable maintenance mode - and disallows anyone else', async ({helper}) => {
+    // Make sure non-sudo can't enable maintenance mode
+    await expect(helper.executeExtrinsic(superuser, 'api.tx.maintenance.enable', []), 'on commoner enabling MM')
+      .to.be.rejectedWith(/BadOrigin/);
+
+    // Set maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    // Make sure non-sudo can't disable maintenance mode
+    await expect(helper.executeExtrinsic(bob, 'api.tx.maintenance.disable', []), 'on commoner disabling MM')
+      .to.be.rejectedWith(/BadOrigin/);
+
+    // Disable maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+  });
+
+  itSub('MM blocks unique pallet calls', async ({helper}) => {
+    // Can create an NFT collection before enabling the MM
+    const nftCollection = await helper.nft.mintCollection(bob, {
+      tokenPropertyPermissions: [{key: 'test', permission: {
+        collectionAdmin: true,
+        tokenOwner: true,
+        mutable: true,
+      }}],
+    });
+
+    // Can mint an NFT before enabling the MM
+    const nft = await nftCollection.mintToken(bob);
+
+    // Can create an FT collection before enabling the MM
+    const ftCollection = await helper.ft.mintCollection(superuser);
+
+    // Can mint an FT before enabling the MM
+    await expect(ftCollection.mint(superuser)).to.be.fulfilled;
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    // Unable to create a collection when the MM is enabled
+    await expect(helper.nft.mintCollection(superuser), 'cudo forbidden stuff')
+      .to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+
+    // Unable to set token properties when the MM is enabled
+    await expect(nft.setProperties(
+      bob,
+      [{key: 'test', value: 'test-val'}],
+    )).to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+
+    // Unable to mint an NFT when the MM is enabled
+    await expect(nftCollection.mintToken(superuser))
+      .to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+
+    // Unable to mint an FT when the MM is enabled
+    await expect(ftCollection.mint(superuser))
+      .to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+
+    // Can create a collection after disabling the MM
+    await expect(helper.nft.mintCollection(bob), 'MM is disabled, the collection should be created').to.be.fulfilled;
+
+    // Can set token properties after disabling the MM
+    await nft.setProperties(bob, [{key: 'test', value: 'test-val'}]);
+
+    // Can mint an NFT after disabling the MM
+    await nftCollection.mintToken(bob);
+
+    // Can mint an FT after disabling the MM
+    await ftCollection.mint(superuser);
+  });
+
+  itSub.ifWithPallets('MM blocks unique pallet calls (Re-Fungible)', [Pallets.ReFungible], async ({helper}) => {
+    // Can create an RFT collection before enabling the MM
+    const rftCollection = await helper.rft.mintCollection(superuser);
+
+    // Can mint an RFT before enabling the MM
+    await expect(rftCollection.mintToken(superuser)).to.be.fulfilled;
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    // Unable to mint an RFT when the MM is enabled
+    await expect(rftCollection.mintToken(superuser))
+      .to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+    
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+
+    // Can mint an RFT after disabling the MM
+    await rftCollection.mintToken(superuser);
+  });
+
+  itSub('MM allows native token transfers and RPC calls', async ({helper}) => {
+    // We can use RPC before the MM is enabled
+    const totalCount = await helper.collection.getTotalCount();
+
+    // We can transfer funds before the MM is enabled
+    await expect(helper.balance.transferToSubstrate(superuser, bob.address, 2n)).to.be.fulfilled;
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    // RPCs work while in maintenance
+    expect(await helper.collection.getTotalCount()).to.be.deep.equal(totalCount);
+
+    // We still able to transfer funds
+    await expect(helper.balance.transferToSubstrate(bob, superuser.address, 1n)).to.be.fulfilled;
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+
+    // RPCs work after maintenance
+    expect(await helper.collection.getTotalCount()).to.be.deep.equal(totalCount);
+
+    // Transfers work after maintenance
+    await expect(helper.balance.transferToSubstrate(bob, superuser.address, 1n)).to.be.fulfilled;
+  });
+
+  itSub.ifWithPallets('MM blocks scheduled calls and the scheduler itself', [Pallets.Scheduler], async ({helper}) => {
+    const collection = await helper.nft.mintCollection(bob);
+
+    const nftBeforeMM = await collection.mintToken(bob);
+    const nftDuringMM = await collection.mintToken(bob);
+    const nftAfterMM = await collection.mintToken(bob);
+
+    const scheduledIdBeforeMM = '0x' + '0'.repeat(31) + '0';
+    const scheduledIdDuringMM = '0x' + '0'.repeat(31) + '1';
+    const scheduledIdBunkerThroughMM = '0x' + '0'.repeat(31) + '2';
+    const scheduledIdAttemptDuringMM = '0x' + '0'.repeat(31) + '3';
+    const scheduledIdAfterMM = '0x' + '0'.repeat(31) + '4';
+
+    const blocksToWait = 6;
+
+    // Scheduling works before the maintenance
+    await nftBeforeMM.scheduleAfter(scheduledIdBeforeMM, blocksToWait)
+      .transfer(bob, {Substrate: superuser.address});
+
+    await helper.wait.newBlocks(blocksToWait + 1);
+    expect(await nftBeforeMM.getOwner()).to.be.deep.equal({Substrate: superuser.address});
+
+    // Schedule a transaction that should occur *during* the maintenance
+    await nftDuringMM.scheduleAfter(scheduledIdDuringMM, blocksToWait)
+      .transfer(bob, {Substrate: superuser.address});
+    
+    // Schedule a transaction that should occur *after* the maintenance
+    await nftDuringMM.scheduleAfter(scheduledIdBunkerThroughMM, blocksToWait * 2)
+      .transfer(bob, {Substrate: superuser.address});
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    await helper.wait.newBlocks(blocksToWait + 1);
+    // The owner should NOT change since the scheduled transaction should be rejected
+    expect(await nftDuringMM.getOwner()).to.be.deep.equal({Substrate: bob.address});
+
+    // Any attempts to schedule a tx during the MM should be rejected
+    await expect(nftDuringMM.scheduleAfter(scheduledIdAttemptDuringMM, blocksToWait)
+      .transfer(bob, {Substrate: superuser.address}))
+      .to.be.rejectedWith(/Invalid Transaction: Transaction call is not expected/);
+
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+
+    // Scheduling works after the maintenance
+    await nftAfterMM.scheduleAfter(scheduledIdAfterMM, blocksToWait)
+      .transfer(bob, {Substrate: superuser.address});
+    
+    await helper.wait.newBlocks(blocksToWait + 1);
+
+    expect(await nftAfterMM.getOwner()).to.be.deep.equal({Substrate: superuser.address});
+    // The owner of the token scheduled for transaction *before* maintenance should now change *after* maintenance
+    expect(await nftDuringMM.getOwner()).to.be.deep.equal({Substrate: superuser.address});
+  });
+
+  itEth('Disallows Ethereum transactions to execute while in maintenance', async ({helper}) => {
+    const owner = await helper.eth.createAccountWithBalance(donor);
+    const receiver = helper.eth.createAccount();
+    
+    const {collectionAddress} = await helper.eth.createERC721MetadataCompatibleNFTCollection(owner, 'A', 'B', 'C', '');
+
+    // Set maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    const contract = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+    const tokenId = await contract.methods.nextTokenId().call();
+    expect(tokenId).to.be.equal('1');
+
+    await expect(contract.methods.mintWithTokenURI(receiver, 'Test URI').send())
+      .to.be.rejectedWith(/submit transaction to pool failed: Pool\(InvalidTransaction\(InvalidTransaction::Call\)\)/);
+
+    await expect(contract.methods.ownerOf(tokenId).call()).rejectedWith(/token not found/);
+
+    // Disable maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+  });
+
+  itSub('Allows to enable and disable MM repeatedly', async ({helper}) => {
+    // Set maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.enable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is OFF when it should be ON').to.be.true;
+
+    // Disable maintenance mode
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+    expect(await maintenanceEnabled(helper.getApi()), 'MM is ON when it should be OFF').to.be.false;
+  });
+
+  afterEach(async () => {
+    await usingPlaygrounds(async helper => {
+      if (await maintenanceEnabled(helper.getApi())) {
+        console.warn('\tMaintenance mode was left enabled AFTER a test has finished! Be careful. Disabling it now.');
+        await helper.getSudo().executeExtrinsic(superuser, 'api.tx.maintenance.disable', []);
+      }
+      expect(await maintenanceEnabled(helper.getApi()), 'Disastrous! Exited the test suite with maintenance mode on.').to.be.false;
+    });
+  });
+});
modifiedtests/src/pallet-presence.test.tsdiffbeforeafterboth
--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -47,6 +47,7 @@
   'configuration',
   'tokens',
   'xtokens',
+  'maintenance',
 ];
 
 // Pallets that depend on consensus and governance configuration
modifiedtests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.dev.ts
+++ b/tests/src/util/playgrounds/unique.dev.ts
@@ -86,6 +86,10 @@
           extrinsic: {},
           payload: {},
         },
+        CheckMaintenance: {
+          extrinsic: {},
+          payload: {},
+        },
         FakeTransactionFinalizer: {
           extrinsic: {},
           payload: {},