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
after · tests/src/interfaces/default/types.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';5import type { ITuple } from '@polkadot/types-codec/types';6import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill, Weight } from '@polkadot/types/interfaces/runtime';7import type { Event } from '@polkadot/types/interfaces/system';89/** @name CumulusPalletDmpQueueCall */10export interface CumulusPalletDmpQueueCall extends Enum {11  readonly isServiceOverweight: boolean;12  readonly asServiceOverweight: {13    readonly index: u64;14    readonly weightLimit: Weight;15  } & Struct;16  readonly type: 'ServiceOverweight';17}1819/** @name CumulusPalletDmpQueueConfigData */20export interface CumulusPalletDmpQueueConfigData extends Struct {21  readonly maxIndividual: Weight;22}2324/** @name CumulusPalletDmpQueueError */25export interface CumulusPalletDmpQueueError extends Enum {26  readonly isUnknown: boolean;27  readonly isOverLimit: boolean;28  readonly type: 'Unknown' | 'OverLimit';29}3031/** @name CumulusPalletDmpQueueEvent */32export interface CumulusPalletDmpQueueEvent extends Enum {33  readonly isInvalidFormat: boolean;34  readonly asInvalidFormat: {35    readonly messageId: U8aFixed;36  } & Struct;37  readonly isUnsupportedVersion: boolean;38  readonly asUnsupportedVersion: {39    readonly messageId: U8aFixed;40  } & Struct;41  readonly isExecutedDownward: boolean;42  readonly asExecutedDownward: {43    readonly messageId: U8aFixed;44    readonly outcome: XcmV2TraitsOutcome;45  } & Struct;46  readonly isWeightExhausted: boolean;47  readonly asWeightExhausted: {48    readonly messageId: U8aFixed;49    readonly remainingWeight: Weight;50    readonly requiredWeight: Weight;51  } & Struct;52  readonly isOverweightEnqueued: boolean;53  readonly asOverweightEnqueued: {54    readonly messageId: U8aFixed;55    readonly overweightIndex: u64;56    readonly requiredWeight: Weight;57  } & Struct;58  readonly isOverweightServiced: boolean;59  readonly asOverweightServiced: {60    readonly overweightIndex: u64;61    readonly weightUsed: Weight;62  } & Struct;63  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';64}6566/** @name CumulusPalletDmpQueuePageIndexData */67export interface CumulusPalletDmpQueuePageIndexData extends Struct {68  readonly beginUsed: u32;69  readonly endUsed: u32;70  readonly overweightCount: u64;71}7273/** @name CumulusPalletParachainSystemCall */74export interface CumulusPalletParachainSystemCall extends Enum {75  readonly isSetValidationData: boolean;76  readonly asSetValidationData: {77    readonly data: CumulusPrimitivesParachainInherentParachainInherentData;78  } & Struct;79  readonly isSudoSendUpwardMessage: boolean;80  readonly asSudoSendUpwardMessage: {81    readonly message: Bytes;82  } & Struct;83  readonly isAuthorizeUpgrade: boolean;84  readonly asAuthorizeUpgrade: {85    readonly codeHash: H256;86  } & Struct;87  readonly isEnactAuthorizedUpgrade: boolean;88  readonly asEnactAuthorizedUpgrade: {89    readonly code: Bytes;90  } & Struct;91  readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';92}9394/** @name CumulusPalletParachainSystemError */95export interface CumulusPalletParachainSystemError extends Enum {96  readonly isOverlappingUpgrades: boolean;97  readonly isProhibitedByPolkadot: boolean;98  readonly isTooBig: boolean;99  readonly isValidationDataNotAvailable: boolean;100  readonly isHostConfigurationNotAvailable: boolean;101  readonly isNotScheduled: boolean;102  readonly isNothingAuthorized: boolean;103  readonly isUnauthorized: boolean;104  readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';105}106107/** @name CumulusPalletParachainSystemEvent */108export interface CumulusPalletParachainSystemEvent extends Enum {109  readonly isValidationFunctionStored: boolean;110  readonly isValidationFunctionApplied: boolean;111  readonly asValidationFunctionApplied: {112    readonly relayChainBlockNum: u32;113  } & Struct;114  readonly isValidationFunctionDiscarded: boolean;115  readonly isUpgradeAuthorized: boolean;116  readonly asUpgradeAuthorized: {117    readonly codeHash: H256;118  } & Struct;119  readonly isDownwardMessagesReceived: boolean;120  readonly asDownwardMessagesReceived: {121    readonly count: u32;122  } & Struct;123  readonly isDownwardMessagesProcessed: boolean;124  readonly asDownwardMessagesProcessed: {125    readonly weightUsed: Weight;126    readonly dmqHead: H256;127  } & Struct;128  readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';129}130131/** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot */132export interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {133  readonly dmqMqcHead: H256;134  readonly relayDispatchQueueSize: ITuple<[u32, u32]>;135  readonly ingressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;136  readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;137}138139/** @name CumulusPalletXcmCall */140export interface CumulusPalletXcmCall extends Null {}141142/** @name CumulusPalletXcmError */143export interface CumulusPalletXcmError extends Null {}144145/** @name CumulusPalletXcmEvent */146export interface CumulusPalletXcmEvent extends Enum {147  readonly isInvalidFormat: boolean;148  readonly asInvalidFormat: U8aFixed;149  readonly isUnsupportedVersion: boolean;150  readonly asUnsupportedVersion: U8aFixed;151  readonly isExecutedDownward: boolean;152  readonly asExecutedDownward: ITuple<[U8aFixed, XcmV2TraitsOutcome]>;153  readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';154}155156/** @name CumulusPalletXcmOrigin */157export interface CumulusPalletXcmOrigin extends Enum {158  readonly isRelay: boolean;159  readonly isSiblingParachain: boolean;160  readonly asSiblingParachain: u32;161  readonly type: 'Relay' | 'SiblingParachain';162}163164/** @name CumulusPalletXcmpQueueCall */165export interface CumulusPalletXcmpQueueCall extends Enum {166  readonly isServiceOverweight: boolean;167  readonly asServiceOverweight: {168    readonly index: u64;169    readonly weightLimit: Weight;170  } & Struct;171  readonly isSuspendXcmExecution: boolean;172  readonly isResumeXcmExecution: boolean;173  readonly isUpdateSuspendThreshold: boolean;174  readonly asUpdateSuspendThreshold: {175    readonly new_: u32;176  } & Struct;177  readonly isUpdateDropThreshold: boolean;178  readonly asUpdateDropThreshold: {179    readonly new_: u32;180  } & Struct;181  readonly isUpdateResumeThreshold: boolean;182  readonly asUpdateResumeThreshold: {183    readonly new_: u32;184  } & Struct;185  readonly isUpdateThresholdWeight: boolean;186  readonly asUpdateThresholdWeight: {187    readonly new_: Weight;188  } & Struct;189  readonly isUpdateWeightRestrictDecay: boolean;190  readonly asUpdateWeightRestrictDecay: {191    readonly new_: Weight;192  } & Struct;193  readonly isUpdateXcmpMaxIndividualWeight: boolean;194  readonly asUpdateXcmpMaxIndividualWeight: {195    readonly new_: Weight;196  } & Struct;197  readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';198}199200/** @name CumulusPalletXcmpQueueError */201export interface CumulusPalletXcmpQueueError extends Enum {202  readonly isFailedToSend: boolean;203  readonly isBadXcmOrigin: boolean;204  readonly isBadXcm: boolean;205  readonly isBadOverweightIndex: boolean;206  readonly isWeightOverLimit: boolean;207  readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';208}209210/** @name CumulusPalletXcmpQueueEvent */211export interface CumulusPalletXcmpQueueEvent extends Enum {212  readonly isSuccess: boolean;213  readonly asSuccess: {214    readonly messageHash: Option<H256>;215    readonly weight: Weight;216  } & Struct;217  readonly isFail: boolean;218  readonly asFail: {219    readonly messageHash: Option<H256>;220    readonly error: XcmV2TraitsError;221    readonly weight: Weight;222  } & Struct;223  readonly isBadVersion: boolean;224  readonly asBadVersion: {225    readonly messageHash: Option<H256>;226  } & Struct;227  readonly isBadFormat: boolean;228  readonly asBadFormat: {229    readonly messageHash: Option<H256>;230  } & Struct;231  readonly isUpwardMessageSent: boolean;232  readonly asUpwardMessageSent: {233    readonly messageHash: Option<H256>;234  } & Struct;235  readonly isXcmpMessageSent: boolean;236  readonly asXcmpMessageSent: {237    readonly messageHash: Option<H256>;238  } & Struct;239  readonly isOverweightEnqueued: boolean;240  readonly asOverweightEnqueued: {241    readonly sender: u32;242    readonly sentAt: u32;243    readonly index: u64;244    readonly required: Weight;245  } & Struct;246  readonly isOverweightServiced: boolean;247  readonly asOverweightServiced: {248    readonly index: u64;249    readonly used: Weight;250  } & Struct;251  readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';252}253254/** @name CumulusPalletXcmpQueueInboundChannelDetails */255export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {256  readonly sender: u32;257  readonly state: CumulusPalletXcmpQueueInboundState;258  readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;259}260261/** @name CumulusPalletXcmpQueueInboundState */262export interface CumulusPalletXcmpQueueInboundState extends Enum {263  readonly isOk: boolean;264  readonly isSuspended: boolean;265  readonly type: 'Ok' | 'Suspended';266}267268/** @name CumulusPalletXcmpQueueOutboundChannelDetails */269export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {270  readonly recipient: u32;271  readonly state: CumulusPalletXcmpQueueOutboundState;272  readonly signalsExist: bool;273  readonly firstIndex: u16;274  readonly lastIndex: u16;275}276277/** @name CumulusPalletXcmpQueueOutboundState */278export interface CumulusPalletXcmpQueueOutboundState extends Enum {279  readonly isOk: boolean;280  readonly isSuspended: boolean;281  readonly type: 'Ok' | 'Suspended';282}283284/** @name CumulusPalletXcmpQueueQueueConfigData */285export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {286  readonly suspendThreshold: u32;287  readonly dropThreshold: u32;288  readonly resumeThreshold: u32;289  readonly thresholdWeight: Weight;290  readonly weightRestrictDecay: Weight;291  readonly xcmpMaxIndividualWeight: Weight;292}293294/** @name CumulusPrimitivesParachainInherentParachainInherentData */295export interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {296  readonly validationData: PolkadotPrimitivesV2PersistedValidationData;297  readonly relayChainState: SpTrieStorageProof;298  readonly downwardMessages: Vec<PolkadotCorePrimitivesInboundDownwardMessage>;299  readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;300}301302/** @name EthbloomBloom */303export interface EthbloomBloom extends U8aFixed {}304305/** @name EthereumBlock */306export interface EthereumBlock extends Struct {307  readonly header: EthereumHeader;308  readonly transactions: Vec<EthereumTransactionTransactionV2>;309  readonly ommers: Vec<EthereumHeader>;310}311312/** @name EthereumHeader */313export interface EthereumHeader extends Struct {314  readonly parentHash: H256;315  readonly ommersHash: H256;316  readonly beneficiary: H160;317  readonly stateRoot: H256;318  readonly transactionsRoot: H256;319  readonly receiptsRoot: H256;320  readonly logsBloom: EthbloomBloom;321  readonly difficulty: U256;322  readonly number: U256;323  readonly gasLimit: U256;324  readonly gasUsed: U256;325  readonly timestamp: u64;326  readonly extraData: Bytes;327  readonly mixHash: H256;328  readonly nonce: EthereumTypesHashH64;329}330331/** @name EthereumLog */332export interface EthereumLog extends Struct {333  readonly address: H160;334  readonly topics: Vec<H256>;335  readonly data: Bytes;336}337338/** @name EthereumReceiptEip658ReceiptData */339export interface EthereumReceiptEip658ReceiptData extends Struct {340  readonly statusCode: u8;341  readonly usedGas: U256;342  readonly logsBloom: EthbloomBloom;343  readonly logs: Vec<EthereumLog>;344}345346/** @name EthereumReceiptReceiptV3 */347export interface EthereumReceiptReceiptV3 extends Enum {348  readonly isLegacy: boolean;349  readonly asLegacy: EthereumReceiptEip658ReceiptData;350  readonly isEip2930: boolean;351  readonly asEip2930: EthereumReceiptEip658ReceiptData;352  readonly isEip1559: boolean;353  readonly asEip1559: EthereumReceiptEip658ReceiptData;354  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';355}356357/** @name EthereumTransactionAccessListItem */358export interface EthereumTransactionAccessListItem extends Struct {359  readonly address: H160;360  readonly storageKeys: Vec<H256>;361}362363/** @name EthereumTransactionEip1559Transaction */364export interface EthereumTransactionEip1559Transaction extends Struct {365  readonly chainId: u64;366  readonly nonce: U256;367  readonly maxPriorityFeePerGas: U256;368  readonly maxFeePerGas: U256;369  readonly gasLimit: U256;370  readonly action: EthereumTransactionTransactionAction;371  readonly value: U256;372  readonly input: Bytes;373  readonly accessList: Vec<EthereumTransactionAccessListItem>;374  readonly oddYParity: bool;375  readonly r: H256;376  readonly s: H256;377}378379/** @name EthereumTransactionEip2930Transaction */380export interface EthereumTransactionEip2930Transaction extends Struct {381  readonly chainId: u64;382  readonly nonce: U256;383  readonly gasPrice: U256;384  readonly gasLimit: U256;385  readonly action: EthereumTransactionTransactionAction;386  readonly value: U256;387  readonly input: Bytes;388  readonly accessList: Vec<EthereumTransactionAccessListItem>;389  readonly oddYParity: bool;390  readonly r: H256;391  readonly s: H256;392}393394/** @name EthereumTransactionLegacyTransaction */395export interface EthereumTransactionLegacyTransaction extends Struct {396  readonly nonce: U256;397  readonly gasPrice: U256;398  readonly gasLimit: U256;399  readonly action: EthereumTransactionTransactionAction;400  readonly value: U256;401  readonly input: Bytes;402  readonly signature: EthereumTransactionTransactionSignature;403}404405/** @name EthereumTransactionTransactionAction */406export interface EthereumTransactionTransactionAction extends Enum {407  readonly isCall: boolean;408  readonly asCall: H160;409  readonly isCreate: boolean;410  readonly type: 'Call' | 'Create';411}412413/** @name EthereumTransactionTransactionSignature */414export interface EthereumTransactionTransactionSignature extends Struct {415  readonly v: u64;416  readonly r: H256;417  readonly s: H256;418}419420/** @name EthereumTransactionTransactionV2 */421export interface EthereumTransactionTransactionV2 extends Enum {422  readonly isLegacy: boolean;423  readonly asLegacy: EthereumTransactionLegacyTransaction;424  readonly isEip2930: boolean;425  readonly asEip2930: EthereumTransactionEip2930Transaction;426  readonly isEip1559: boolean;427  readonly asEip1559: EthereumTransactionEip1559Transaction;428  readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';429}430431/** @name EthereumTypesHashH64 */432export interface EthereumTypesHashH64 extends U8aFixed {}433434/** @name EvmCoreErrorExitError */435export interface EvmCoreErrorExitError extends Enum {436  readonly isStackUnderflow: boolean;437  readonly isStackOverflow: boolean;438  readonly isInvalidJump: boolean;439  readonly isInvalidRange: boolean;440  readonly isDesignatedInvalid: boolean;441  readonly isCallTooDeep: boolean;442  readonly isCreateCollision: boolean;443  readonly isCreateContractLimit: boolean;444  readonly isOutOfOffset: boolean;445  readonly isOutOfGas: boolean;446  readonly isOutOfFund: boolean;447  readonly isPcUnderflow: boolean;448  readonly isCreateEmpty: boolean;449  readonly isOther: boolean;450  readonly asOther: Text;451  readonly isInvalidCode: boolean;452  readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';453}454455/** @name EvmCoreErrorExitFatal */456export interface EvmCoreErrorExitFatal extends Enum {457  readonly isNotSupported: boolean;458  readonly isUnhandledInterrupt: boolean;459  readonly isCallErrorAsFatal: boolean;460  readonly asCallErrorAsFatal: EvmCoreErrorExitError;461  readonly isOther: boolean;462  readonly asOther: Text;463  readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';464}465466/** @name EvmCoreErrorExitReason */467export interface EvmCoreErrorExitReason extends Enum {468  readonly isSucceed: boolean;469  readonly asSucceed: EvmCoreErrorExitSucceed;470  readonly isError: boolean;471  readonly asError: EvmCoreErrorExitError;472  readonly isRevert: boolean;473  readonly asRevert: EvmCoreErrorExitRevert;474  readonly isFatal: boolean;475  readonly asFatal: EvmCoreErrorExitFatal;476  readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';477}478479/** @name EvmCoreErrorExitRevert */480export interface EvmCoreErrorExitRevert extends Enum {481  readonly isReverted: boolean;482  readonly type: 'Reverted';483}484485/** @name EvmCoreErrorExitSucceed */486export interface EvmCoreErrorExitSucceed extends Enum {487  readonly isStopped: boolean;488  readonly isReturned: boolean;489  readonly isSuicided: boolean;490  readonly type: 'Stopped' | 'Returned' | 'Suicided';491}492493/** @name FpRpcTransactionStatus */494export interface FpRpcTransactionStatus extends Struct {495  readonly transactionHash: H256;496  readonly transactionIndex: u32;497  readonly from: H160;498  readonly to: Option<H160>;499  readonly contractAddress: Option<H160>;500  readonly logs: Vec<EthereumLog>;501  readonly logsBloom: EthbloomBloom;502}503504/** @name FrameSupportDispatchDispatchClass */505export interface FrameSupportDispatchDispatchClass extends Enum {506  readonly isNormal: boolean;507  readonly isOperational: boolean;508  readonly isMandatory: boolean;509  readonly type: 'Normal' | 'Operational' | 'Mandatory';510}511512/** @name FrameSupportDispatchDispatchInfo */513export interface FrameSupportDispatchDispatchInfo extends Struct {514  readonly weight: Weight;515  readonly class: FrameSupportDispatchDispatchClass;516  readonly paysFee: FrameSupportDispatchPays;517}518519/** @name FrameSupportDispatchPays */520export interface FrameSupportDispatchPays extends Enum {521  readonly isYes: boolean;522  readonly isNo: boolean;523  readonly type: 'Yes' | 'No';524}525526/** @name FrameSupportDispatchPerDispatchClassU32 */527export interface FrameSupportDispatchPerDispatchClassU32 extends Struct {528  readonly normal: u32;529  readonly operational: u32;530  readonly mandatory: u32;531}532533/** @name FrameSupportDispatchPerDispatchClassWeight */534export interface FrameSupportDispatchPerDispatchClassWeight extends Struct {535  readonly normal: Weight;536  readonly operational: Weight;537  readonly mandatory: Weight;538}539540/** @name FrameSupportDispatchPerDispatchClassWeightsPerClass */541export interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct {542  readonly normal: FrameSystemLimitsWeightsPerClass;543  readonly operational: FrameSystemLimitsWeightsPerClass;544  readonly mandatory: FrameSystemLimitsWeightsPerClass;545}546547/** @name FrameSupportDispatchRawOrigin */548export interface FrameSupportDispatchRawOrigin extends Enum {549  readonly isRoot: boolean;550  readonly isSigned: boolean;551  readonly asSigned: AccountId32;552  readonly isNone: boolean;553  readonly type: 'Root' | 'Signed' | 'None';554}555556/** @name FrameSupportPalletId */557export interface FrameSupportPalletId extends U8aFixed {}558559/** @name FrameSupportScheduleLookupError */560export interface FrameSupportScheduleLookupError extends Enum {561  readonly isUnknown: boolean;562  readonly isBadFormat: boolean;563  readonly type: 'Unknown' | 'BadFormat';564}565566/** @name FrameSupportScheduleMaybeHashed */567export interface FrameSupportScheduleMaybeHashed extends Enum {568  readonly isValue: boolean;569  readonly asValue: Call;570  readonly isHash: boolean;571  readonly asHash: H256;572  readonly type: 'Value' | 'Hash';573}574575/** @name FrameSupportTokensMiscBalanceStatus */576export interface FrameSupportTokensMiscBalanceStatus extends Enum {577  readonly isFree: boolean;578  readonly isReserved: boolean;579  readonly type: 'Free' | 'Reserved';580}581582/** @name FrameSystemAccountInfo */583export interface FrameSystemAccountInfo extends Struct {584  readonly nonce: u32;585  readonly consumers: u32;586  readonly providers: u32;587  readonly sufficients: u32;588  readonly data: PalletBalancesAccountData;589}590591/** @name FrameSystemCall */592export interface FrameSystemCall extends Enum {593  readonly isFillBlock: boolean;594  readonly asFillBlock: {595    readonly ratio: Perbill;596  } & Struct;597  readonly isRemark: boolean;598  readonly asRemark: {599    readonly remark: Bytes;600  } & Struct;601  readonly isSetHeapPages: boolean;602  readonly asSetHeapPages: {603    readonly pages: u64;604  } & Struct;605  readonly isSetCode: boolean;606  readonly asSetCode: {607    readonly code: Bytes;608  } & Struct;609  readonly isSetCodeWithoutChecks: boolean;610  readonly asSetCodeWithoutChecks: {611    readonly code: Bytes;612  } & Struct;613  readonly isSetStorage: boolean;614  readonly asSetStorage: {615    readonly items: Vec<ITuple<[Bytes, Bytes]>>;616  } & Struct;617  readonly isKillStorage: boolean;618  readonly asKillStorage: {619    readonly keys_: Vec<Bytes>;620  } & Struct;621  readonly isKillPrefix: boolean;622  readonly asKillPrefix: {623    readonly prefix: Bytes;624    readonly subkeys: u32;625  } & Struct;626  readonly isRemarkWithEvent: boolean;627  readonly asRemarkWithEvent: {628    readonly remark: Bytes;629  } & Struct;630  readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';631}632633/** @name FrameSystemError */634export interface FrameSystemError extends Enum {635  readonly isInvalidSpecName: boolean;636  readonly isSpecVersionNeedsToIncrease: boolean;637  readonly isFailedToExtractRuntimeVersion: boolean;638  readonly isNonDefaultComposite: boolean;639  readonly isNonZeroRefCount: boolean;640  readonly isCallFiltered: boolean;641  readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';642}643644/** @name FrameSystemEvent */645export interface FrameSystemEvent extends Enum {646  readonly isExtrinsicSuccess: boolean;647  readonly asExtrinsicSuccess: {648    readonly dispatchInfo: FrameSupportDispatchDispatchInfo;649  } & Struct;650  readonly isExtrinsicFailed: boolean;651  readonly asExtrinsicFailed: {652    readonly dispatchError: SpRuntimeDispatchError;653    readonly dispatchInfo: FrameSupportDispatchDispatchInfo;654  } & Struct;655  readonly isCodeUpdated: boolean;656  readonly isNewAccount: boolean;657  readonly asNewAccount: {658    readonly account: AccountId32;659  } & Struct;660  readonly isKilledAccount: boolean;661  readonly asKilledAccount: {662    readonly account: AccountId32;663  } & Struct;664  readonly isRemarked: boolean;665  readonly asRemarked: {666    readonly sender: AccountId32;667    readonly hash_: H256;668  } & Struct;669  readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';670}671672/** @name FrameSystemEventRecord */673export interface FrameSystemEventRecord extends Struct {674  readonly phase: FrameSystemPhase;675  readonly event: Event;676  readonly topics: Vec<H256>;677}678679/** @name FrameSystemExtensionsCheckGenesis */680export interface FrameSystemExtensionsCheckGenesis extends Null {}681682/** @name FrameSystemExtensionsCheckNonce */683export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}684685/** @name FrameSystemExtensionsCheckSpecVersion */686export interface FrameSystemExtensionsCheckSpecVersion extends Null {}687688/** @name FrameSystemExtensionsCheckTxVersion */689export interface FrameSystemExtensionsCheckTxVersion extends Null {}690691/** @name FrameSystemExtensionsCheckWeight */692export interface FrameSystemExtensionsCheckWeight extends Null {}693694/** @name FrameSystemLastRuntimeUpgradeInfo */695export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {696  readonly specVersion: Compact<u32>;697  readonly specName: Text;698}699700/** @name FrameSystemLimitsBlockLength */701export interface FrameSystemLimitsBlockLength extends Struct {702  readonly max: FrameSupportDispatchPerDispatchClassU32;703}704705/** @name FrameSystemLimitsBlockWeights */706export interface FrameSystemLimitsBlockWeights extends Struct {707  readonly baseBlock: Weight;708  readonly maxBlock: Weight;709  readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;710}711712/** @name FrameSystemLimitsWeightsPerClass */713export interface FrameSystemLimitsWeightsPerClass extends Struct {714  readonly baseExtrinsic: Weight;715  readonly maxExtrinsic: Option<Weight>;716  readonly maxTotal: Option<Weight>;717  readonly reserved: Option<Weight>;718}719720/** @name FrameSystemPhase */721export interface FrameSystemPhase extends Enum {722  readonly isApplyExtrinsic: boolean;723  readonly asApplyExtrinsic: u32;724  readonly isFinalization: boolean;725  readonly isInitialization: boolean;726  readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';727}728729/** @name OpalRuntimeOriginCaller */730export interface OpalRuntimeOriginCaller extends Enum {731  readonly isSystem: boolean;732  readonly asSystem: FrameSupportDispatchRawOrigin;733  readonly isVoid: boolean;734  readonly asVoid: SpCoreVoid;735  readonly isPolkadotXcm: boolean;736  readonly asPolkadotXcm: PalletXcmOrigin;737  readonly isCumulusXcm: boolean;738  readonly asCumulusXcm: CumulusPalletXcmOrigin;739  readonly isEthereum: boolean;740  readonly asEthereum: PalletEthereumRawOrigin;741  readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';742}743744/** @name OpalRuntimeRuntime */745export interface OpalRuntimeRuntime extends Null {}746747/** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance */748export interface OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance extends Null {}749750/** @name OrmlTokensAccountData */751export interface OrmlTokensAccountData extends Struct {752  readonly free: u128;753  readonly reserved: u128;754  readonly frozen: u128;755}756757/** @name OrmlTokensBalanceLock */758export interface OrmlTokensBalanceLock extends Struct {759  readonly id: U8aFixed;760  readonly amount: u128;761}762763/** @name OrmlTokensModuleCall */764export interface OrmlTokensModuleCall extends Enum {765  readonly isTransfer: boolean;766  readonly asTransfer: {767    readonly dest: MultiAddress;768    readonly currencyId: PalletForeignAssetsAssetIds;769    readonly amount: Compact<u128>;770  } & Struct;771  readonly isTransferAll: boolean;772  readonly asTransferAll: {773    readonly dest: MultiAddress;774    readonly currencyId: PalletForeignAssetsAssetIds;775    readonly keepAlive: bool;776  } & Struct;777  readonly isTransferKeepAlive: boolean;778  readonly asTransferKeepAlive: {779    readonly dest: MultiAddress;780    readonly currencyId: PalletForeignAssetsAssetIds;781    readonly amount: Compact<u128>;782  } & Struct;783  readonly isForceTransfer: boolean;784  readonly asForceTransfer: {785    readonly source: MultiAddress;786    readonly dest: MultiAddress;787    readonly currencyId: PalletForeignAssetsAssetIds;788    readonly amount: Compact<u128>;789  } & Struct;790  readonly isSetBalance: boolean;791  readonly asSetBalance: {792    readonly who: MultiAddress;793    readonly currencyId: PalletForeignAssetsAssetIds;794    readonly newFree: Compact<u128>;795    readonly newReserved: Compact<u128>;796  } & Struct;797  readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';798}799800/** @name OrmlTokensModuleError */801export interface OrmlTokensModuleError extends Enum {802  readonly isBalanceTooLow: boolean;803  readonly isAmountIntoBalanceFailed: boolean;804  readonly isLiquidityRestrictions: boolean;805  readonly isMaxLocksExceeded: boolean;806  readonly isKeepAlive: boolean;807  readonly isExistentialDeposit: boolean;808  readonly isDeadAccount: boolean;809  readonly isTooManyReserves: boolean;810  readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';811}812813/** @name OrmlTokensModuleEvent */814export interface OrmlTokensModuleEvent extends Enum {815  readonly isEndowed: boolean;816  readonly asEndowed: {817    readonly currencyId: PalletForeignAssetsAssetIds;818    readonly who: AccountId32;819    readonly amount: u128;820  } & Struct;821  readonly isDustLost: boolean;822  readonly asDustLost: {823    readonly currencyId: PalletForeignAssetsAssetIds;824    readonly who: AccountId32;825    readonly amount: u128;826  } & Struct;827  readonly isTransfer: boolean;828  readonly asTransfer: {829    readonly currencyId: PalletForeignAssetsAssetIds;830    readonly from: AccountId32;831    readonly to: AccountId32;832    readonly amount: u128;833  } & Struct;834  readonly isReserved: boolean;835  readonly asReserved: {836    readonly currencyId: PalletForeignAssetsAssetIds;837    readonly who: AccountId32;838    readonly amount: u128;839  } & Struct;840  readonly isUnreserved: boolean;841  readonly asUnreserved: {842    readonly currencyId: PalletForeignAssetsAssetIds;843    readonly who: AccountId32;844    readonly amount: u128;845  } & Struct;846  readonly isReserveRepatriated: boolean;847  readonly asReserveRepatriated: {848    readonly currencyId: PalletForeignAssetsAssetIds;849    readonly from: AccountId32;850    readonly to: AccountId32;851    readonly amount: u128;852    readonly status: FrameSupportTokensMiscBalanceStatus;853  } & Struct;854  readonly isBalanceSet: boolean;855  readonly asBalanceSet: {856    readonly currencyId: PalletForeignAssetsAssetIds;857    readonly who: AccountId32;858    readonly free: u128;859    readonly reserved: u128;860  } & Struct;861  readonly isTotalIssuanceSet: boolean;862  readonly asTotalIssuanceSet: {863    readonly currencyId: PalletForeignAssetsAssetIds;864    readonly amount: u128;865  } & Struct;866  readonly isWithdrawn: boolean;867  readonly asWithdrawn: {868    readonly currencyId: PalletForeignAssetsAssetIds;869    readonly who: AccountId32;870    readonly amount: u128;871  } & Struct;872  readonly isSlashed: boolean;873  readonly asSlashed: {874    readonly currencyId: PalletForeignAssetsAssetIds;875    readonly who: AccountId32;876    readonly freeAmount: u128;877    readonly reservedAmount: u128;878  } & Struct;879  readonly isDeposited: boolean;880  readonly asDeposited: {881    readonly currencyId: PalletForeignAssetsAssetIds;882    readonly who: AccountId32;883    readonly amount: u128;884  } & Struct;885  readonly isLockSet: boolean;886  readonly asLockSet: {887    readonly lockId: U8aFixed;888    readonly currencyId: PalletForeignAssetsAssetIds;889    readonly who: AccountId32;890    readonly amount: u128;891  } & Struct;892  readonly isLockRemoved: boolean;893  readonly asLockRemoved: {894    readonly lockId: U8aFixed;895    readonly currencyId: PalletForeignAssetsAssetIds;896    readonly who: AccountId32;897  } & Struct;898  readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';899}900901/** @name OrmlTokensReserveData */902export interface OrmlTokensReserveData extends Struct {903  readonly id: Null;904  readonly amount: u128;905}906907/** @name OrmlVestingModuleCall */908export interface OrmlVestingModuleCall extends Enum {909  readonly isClaim: boolean;910  readonly isVestedTransfer: boolean;911  readonly asVestedTransfer: {912    readonly dest: MultiAddress;913    readonly schedule: OrmlVestingVestingSchedule;914  } & Struct;915  readonly isUpdateVestingSchedules: boolean;916  readonly asUpdateVestingSchedules: {917    readonly who: MultiAddress;918    readonly vestingSchedules: Vec<OrmlVestingVestingSchedule>;919  } & Struct;920  readonly isClaimFor: boolean;921  readonly asClaimFor: {922    readonly dest: MultiAddress;923  } & Struct;924  readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';925}926927/** @name OrmlVestingModuleError */928export interface OrmlVestingModuleError extends Enum {929  readonly isZeroVestingPeriod: boolean;930  readonly isZeroVestingPeriodCount: boolean;931  readonly isInsufficientBalanceToLock: boolean;932  readonly isTooManyVestingSchedules: boolean;933  readonly isAmountLow: boolean;934  readonly isMaxVestingSchedulesExceeded: boolean;935  readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';936}937938/** @name OrmlVestingModuleEvent */939export interface OrmlVestingModuleEvent extends Enum {940  readonly isVestingScheduleAdded: boolean;941  readonly asVestingScheduleAdded: {942    readonly from: AccountId32;943    readonly to: AccountId32;944    readonly vestingSchedule: OrmlVestingVestingSchedule;945  } & Struct;946  readonly isClaimed: boolean;947  readonly asClaimed: {948    readonly who: AccountId32;949    readonly amount: u128;950  } & Struct;951  readonly isVestingSchedulesUpdated: boolean;952  readonly asVestingSchedulesUpdated: {953    readonly who: AccountId32;954  } & Struct;955  readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';956}957958/** @name OrmlVestingVestingSchedule */959export interface OrmlVestingVestingSchedule extends Struct {960  readonly start: u32;961  readonly period: u32;962  readonly periodCount: u32;963  readonly perPeriod: Compact<u128>;964}965966/** @name OrmlXtokensModuleCall */967export interface OrmlXtokensModuleCall extends Enum {968  readonly isTransfer: boolean;969  readonly asTransfer: {970    readonly currencyId: PalletForeignAssetsAssetIds;971    readonly amount: u128;972    readonly dest: XcmVersionedMultiLocation;973    readonly destWeight: u64;974  } & Struct;975  readonly isTransferMultiasset: boolean;976  readonly asTransferMultiasset: {977    readonly asset: XcmVersionedMultiAsset;978    readonly dest: XcmVersionedMultiLocation;979    readonly destWeight: u64;980  } & Struct;981  readonly isTransferWithFee: boolean;982  readonly asTransferWithFee: {983    readonly currencyId: PalletForeignAssetsAssetIds;984    readonly amount: u128;985    readonly fee: u128;986    readonly dest: XcmVersionedMultiLocation;987    readonly destWeight: u64;988  } & Struct;989  readonly isTransferMultiassetWithFee: boolean;990  readonly asTransferMultiassetWithFee: {991    readonly asset: XcmVersionedMultiAsset;992    readonly fee: XcmVersionedMultiAsset;993    readonly dest: XcmVersionedMultiLocation;994    readonly destWeight: u64;995  } & Struct;996  readonly isTransferMulticurrencies: boolean;997  readonly asTransferMulticurrencies: {998    readonly currencies: Vec<ITuple<[PalletForeignAssetsAssetIds, u128]>>;999    readonly feeItem: u32;1000    readonly dest: XcmVersionedMultiLocation;1001    readonly destWeight: u64;1002  } & Struct;1003  readonly isTransferMultiassets: boolean;1004  readonly asTransferMultiassets: {1005    readonly assets: XcmVersionedMultiAssets;1006    readonly feeItem: u32;1007    readonly dest: XcmVersionedMultiLocation;1008    readonly destWeight: u64;1009  } & Struct;1010  readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';1011}10121013/** @name OrmlXtokensModuleError */1014export interface OrmlXtokensModuleError extends Enum {1015  readonly isAssetHasNoReserve: boolean;1016  readonly isNotCrossChainTransfer: boolean;1017  readonly isInvalidDest: boolean;1018  readonly isNotCrossChainTransferableCurrency: boolean;1019  readonly isUnweighableMessage: boolean;1020  readonly isXcmExecutionFailed: boolean;1021  readonly isCannotReanchor: boolean;1022  readonly isInvalidAncestry: boolean;1023  readonly isInvalidAsset: boolean;1024  readonly isDestinationNotInvertible: boolean;1025  readonly isBadVersion: boolean;1026  readonly isDistinctReserveForAssetAndFee: boolean;1027  readonly isZeroFee: boolean;1028  readonly isZeroAmount: boolean;1029  readonly isTooManyAssetsBeingSent: boolean;1030  readonly isAssetIndexNonExistent: boolean;1031  readonly isFeeNotEnough: boolean;1032  readonly isNotSupportedMultiLocation: boolean;1033  readonly isMinXcmFeeNotDefined: boolean;1034  readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';1035}10361037/** @name OrmlXtokensModuleEvent */1038export interface OrmlXtokensModuleEvent extends Enum {1039  readonly isTransferredMultiAssets: boolean;1040  readonly asTransferredMultiAssets: {1041    readonly sender: AccountId32;1042    readonly assets: XcmV1MultiassetMultiAssets;1043    readonly fee: XcmV1MultiAsset;1044    readonly dest: XcmV1MultiLocation;1045  } & Struct;1046  readonly type: 'TransferredMultiAssets';1047}10481049/** @name PalletAppPromotionCall */1050export interface PalletAppPromotionCall extends Enum {1051  readonly isSetAdminAddress: boolean;1052  readonly asSetAdminAddress: {1053    readonly admin: PalletEvmAccountBasicCrossAccountIdRepr;1054  } & Struct;1055  readonly isStake: boolean;1056  readonly asStake: {1057    readonly amount: u128;1058  } & Struct;1059  readonly isUnstake: boolean;1060  readonly isSponsorCollection: boolean;1061  readonly asSponsorCollection: {1062    readonly collectionId: u32;1063  } & Struct;1064  readonly isStopSponsoringCollection: boolean;1065  readonly asStopSponsoringCollection: {1066    readonly collectionId: u32;1067  } & Struct;1068  readonly isSponsorContract: boolean;1069  readonly asSponsorContract: {1070    readonly contractId: H160;1071  } & Struct;1072  readonly isStopSponsoringContract: boolean;1073  readonly asStopSponsoringContract: {1074    readonly contractId: H160;1075  } & Struct;1076  readonly isPayoutStakers: boolean;1077  readonly asPayoutStakers: {1078    readonly stakersNumber: Option<u8>;1079  } & Struct;1080  readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';1081}10821083/** @name PalletAppPromotionError */1084export interface PalletAppPromotionError extends Enum {1085  readonly isAdminNotSet: boolean;1086  readonly isNoPermission: boolean;1087  readonly isNotSufficientFunds: boolean;1088  readonly isPendingForBlockOverflow: boolean;1089  readonly isSponsorNotSet: boolean;1090  readonly isIncorrectLockedBalanceOperation: boolean;1091  readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';1092}10931094/** @name PalletAppPromotionEvent */1095export interface PalletAppPromotionEvent extends Enum {1096  readonly isStakingRecalculation: boolean;1097  readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;1098  readonly isStake: boolean;1099  readonly asStake: ITuple<[AccountId32, u128]>;1100  readonly isUnstake: boolean;1101  readonly asUnstake: ITuple<[AccountId32, u128]>;1102  readonly isSetAdmin: boolean;1103  readonly asSetAdmin: AccountId32;1104  readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';1105}11061107/** @name PalletBalancesAccountData */1108export interface PalletBalancesAccountData extends Struct {1109  readonly free: u128;1110  readonly reserved: u128;1111  readonly miscFrozen: u128;1112  readonly feeFrozen: u128;1113}11141115/** @name PalletBalancesBalanceLock */1116export interface PalletBalancesBalanceLock extends Struct {1117  readonly id: U8aFixed;1118  readonly amount: u128;1119  readonly reasons: PalletBalancesReasons;1120}11211122/** @name PalletBalancesCall */1123export interface PalletBalancesCall extends Enum {1124  readonly isTransfer: boolean;1125  readonly asTransfer: {1126    readonly dest: MultiAddress;1127    readonly value: Compact<u128>;1128  } & Struct;1129  readonly isSetBalance: boolean;1130  readonly asSetBalance: {1131    readonly who: MultiAddress;1132    readonly newFree: Compact<u128>;1133    readonly newReserved: Compact<u128>;1134  } & Struct;1135  readonly isForceTransfer: boolean;1136  readonly asForceTransfer: {1137    readonly source: MultiAddress;1138    readonly dest: MultiAddress;1139    readonly value: Compact<u128>;1140  } & Struct;1141  readonly isTransferKeepAlive: boolean;1142  readonly asTransferKeepAlive: {1143    readonly dest: MultiAddress;1144    readonly value: Compact<u128>;1145  } & Struct;1146  readonly isTransferAll: boolean;1147  readonly asTransferAll: {1148    readonly dest: MultiAddress;1149    readonly keepAlive: bool;1150  } & Struct;1151  readonly isForceUnreserve: boolean;1152  readonly asForceUnreserve: {1153    readonly who: MultiAddress;1154    readonly amount: u128;1155  } & Struct;1156  readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';1157}11581159/** @name PalletBalancesError */1160export interface PalletBalancesError extends Enum {1161  readonly isVestingBalance: boolean;1162  readonly isLiquidityRestrictions: boolean;1163  readonly isInsufficientBalance: boolean;1164  readonly isExistentialDeposit: boolean;1165  readonly isKeepAlive: boolean;1166  readonly isExistingVestingSchedule: boolean;1167  readonly isDeadAccount: boolean;1168  readonly isTooManyReserves: boolean;1169  readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';1170}11711172/** @name PalletBalancesEvent */1173export interface PalletBalancesEvent extends Enum {1174  readonly isEndowed: boolean;1175  readonly asEndowed: {1176    readonly account: AccountId32;1177    readonly freeBalance: u128;1178  } & Struct;1179  readonly isDustLost: boolean;1180  readonly asDustLost: {1181    readonly account: AccountId32;1182    readonly amount: u128;1183  } & Struct;1184  readonly isTransfer: boolean;1185  readonly asTransfer: {1186    readonly from: AccountId32;1187    readonly to: AccountId32;1188    readonly amount: u128;1189  } & Struct;1190  readonly isBalanceSet: boolean;1191  readonly asBalanceSet: {1192    readonly who: AccountId32;1193    readonly free: u128;1194    readonly reserved: u128;1195  } & Struct;1196  readonly isReserved: boolean;1197  readonly asReserved: {1198    readonly who: AccountId32;1199    readonly amount: u128;1200  } & Struct;1201  readonly isUnreserved: boolean;1202  readonly asUnreserved: {1203    readonly who: AccountId32;1204    readonly amount: u128;1205  } & Struct;1206  readonly isReserveRepatriated: boolean;1207  readonly asReserveRepatriated: {1208    readonly from: AccountId32;1209    readonly to: AccountId32;1210    readonly amount: u128;1211    readonly destinationStatus: FrameSupportTokensMiscBalanceStatus;1212  } & Struct;1213  readonly isDeposit: boolean;1214  readonly asDeposit: {1215    readonly who: AccountId32;1216    readonly amount: u128;1217  } & Struct;1218  readonly isWithdraw: boolean;1219  readonly asWithdraw: {1220    readonly who: AccountId32;1221    readonly amount: u128;1222  } & Struct;1223  readonly isSlashed: boolean;1224  readonly asSlashed: {1225    readonly who: AccountId32;1226    readonly amount: u128;1227  } & Struct;1228  readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';1229}12301231/** @name PalletBalancesReasons */1232export interface PalletBalancesReasons extends Enum {1233  readonly isFee: boolean;1234  readonly isMisc: boolean;1235  readonly isAll: boolean;1236  readonly type: 'Fee' | 'Misc' | 'All';1237}12381239/** @name PalletBalancesReleases */1240export interface PalletBalancesReleases extends Enum {1241  readonly isV100: boolean;1242  readonly isV200: boolean;1243  readonly type: 'V100' | 'V200';1244}12451246/** @name PalletBalancesReserveData */1247export interface PalletBalancesReserveData extends Struct {1248  readonly id: U8aFixed;1249  readonly amount: u128;1250}12511252/** @name PalletCommonError */1253export interface PalletCommonError extends Enum {1254  readonly isCollectionNotFound: boolean;1255  readonly isMustBeTokenOwner: boolean;1256  readonly isNoPermission: boolean;1257  readonly isCantDestroyNotEmptyCollection: boolean;1258  readonly isPublicMintingNotAllowed: boolean;1259  readonly isAddressNotInAllowlist: boolean;1260  readonly isCollectionNameLimitExceeded: boolean;1261  readonly isCollectionDescriptionLimitExceeded: boolean;1262  readonly isCollectionTokenPrefixLimitExceeded: boolean;1263  readonly isTotalCollectionsLimitExceeded: boolean;1264  readonly isCollectionAdminCountExceeded: boolean;1265  readonly isCollectionLimitBoundsExceeded: boolean;1266  readonly isOwnerPermissionsCantBeReverted: boolean;1267  readonly isTransferNotAllowed: boolean;1268  readonly isAccountTokenLimitExceeded: boolean;1269  readonly isCollectionTokenLimitExceeded: boolean;1270  readonly isMetadataFlagFrozen: boolean;1271  readonly isTokenNotFound: boolean;1272  readonly isTokenValueTooLow: boolean;1273  readonly isApprovedValueTooLow: boolean;1274  readonly isCantApproveMoreThanOwned: boolean;1275  readonly isAddressIsZero: boolean;1276  readonly isUnsupportedOperation: boolean;1277  readonly isNotSufficientFounds: boolean;1278  readonly isUserIsNotAllowedToNest: boolean;1279  readonly isSourceCollectionIsNotAllowedToNest: boolean;1280  readonly isCollectionFieldSizeExceeded: boolean;1281  readonly isNoSpaceForProperty: boolean;1282  readonly isPropertyLimitReached: boolean;1283  readonly isPropertyKeyIsTooLong: boolean;1284  readonly isInvalidCharacterInPropertyKey: boolean;1285  readonly isEmptyPropertyKey: boolean;1286  readonly isCollectionIsExternal: boolean;1287  readonly isCollectionIsInternal: boolean;1288  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';1289}12901291/** @name PalletCommonEvent */1292export interface PalletCommonEvent extends Enum {1293  readonly isCollectionCreated: boolean;1294  readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;1295  readonly isCollectionDestroyed: boolean;1296  readonly asCollectionDestroyed: u32;1297  readonly isItemCreated: boolean;1298  readonly asItemCreated: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1299  readonly isItemDestroyed: boolean;1300  readonly asItemDestroyed: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1301  readonly isTransfer: boolean;1302  readonly asTransfer: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1303  readonly isApproved: boolean;1304  readonly asApproved: ITuple<[u32, u32, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u128]>;1305  readonly isCollectionPropertySet: boolean;1306  readonly asCollectionPropertySet: ITuple<[u32, Bytes]>;1307  readonly isCollectionPropertyDeleted: boolean;1308  readonly asCollectionPropertyDeleted: ITuple<[u32, Bytes]>;1309  readonly isTokenPropertySet: boolean;1310  readonly asTokenPropertySet: ITuple<[u32, u32, Bytes]>;1311  readonly isTokenPropertyDeleted: boolean;1312  readonly asTokenPropertyDeleted: ITuple<[u32, u32, Bytes]>;1313  readonly isPropertyPermissionSet: boolean;1314  readonly asPropertyPermissionSet: ITuple<[u32, Bytes]>;1315  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';1316}13171318/** @name PalletConfigurationCall */1319export interface PalletConfigurationCall extends Enum {1320  readonly isSetWeightToFeeCoefficientOverride: boolean;1321  readonly asSetWeightToFeeCoefficientOverride: {1322    readonly coeff: Option<u32>;1323  } & Struct;1324  readonly isSetMinGasPriceOverride: boolean;1325  readonly asSetMinGasPriceOverride: {1326    readonly coeff: Option<u64>;1327  } & Struct;1328  readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';1329}13301331/** @name PalletEthereumCall */1332export interface PalletEthereumCall extends Enum {1333  readonly isTransact: boolean;1334  readonly asTransact: {1335    readonly transaction: EthereumTransactionTransactionV2;1336  } & Struct;1337  readonly type: 'Transact';1338}13391340/** @name PalletEthereumError */1341export interface PalletEthereumError extends Enum {1342  readonly isInvalidSignature: boolean;1343  readonly isPreLogExists: boolean;1344  readonly type: 'InvalidSignature' | 'PreLogExists';1345}13461347/** @name PalletEthereumEvent */1348export interface PalletEthereumEvent extends Enum {1349  readonly isExecuted: boolean;1350  readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;1351  readonly type: 'Executed';1352}13531354/** @name PalletEthereumFakeTransactionFinalizer */1355export interface PalletEthereumFakeTransactionFinalizer extends Null {}13561357/** @name PalletEthereumRawOrigin */1358export interface PalletEthereumRawOrigin extends Enum {1359  readonly isEthereumTransaction: boolean;1360  readonly asEthereumTransaction: H160;1361  readonly type: 'EthereumTransaction';1362}13631364/** @name PalletEvmAccountBasicCrossAccountIdRepr */1365export interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {1366  readonly isSubstrate: boolean;1367  readonly asSubstrate: AccountId32;1368  readonly isEthereum: boolean;1369  readonly asEthereum: H160;1370  readonly type: 'Substrate' | 'Ethereum';1371}13721373/** @name PalletEvmCall */1374export interface PalletEvmCall extends Enum {1375  readonly isWithdraw: boolean;1376  readonly asWithdraw: {1377    readonly address: H160;1378    readonly value: u128;1379  } & Struct;1380  readonly isCall: boolean;1381  readonly asCall: {1382    readonly source: H160;1383    readonly target: H160;1384    readonly input: Bytes;1385    readonly value: U256;1386    readonly gasLimit: u64;1387    readonly maxFeePerGas: U256;1388    readonly maxPriorityFeePerGas: Option<U256>;1389    readonly nonce: Option<U256>;1390    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1391  } & Struct;1392  readonly isCreate: boolean;1393  readonly asCreate: {1394    readonly source: H160;1395    readonly init: Bytes;1396    readonly value: U256;1397    readonly gasLimit: u64;1398    readonly maxFeePerGas: U256;1399    readonly maxPriorityFeePerGas: Option<U256>;1400    readonly nonce: Option<U256>;1401    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1402  } & Struct;1403  readonly isCreate2: boolean;1404  readonly asCreate2: {1405    readonly source: H160;1406    readonly init: Bytes;1407    readonly salt: H256;1408    readonly value: U256;1409    readonly gasLimit: u64;1410    readonly maxFeePerGas: U256;1411    readonly maxPriorityFeePerGas: Option<U256>;1412    readonly nonce: Option<U256>;1413    readonly accessList: Vec<ITuple<[H160, Vec<H256>]>>;1414  } & Struct;1415  readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';1416}14171418/** @name PalletEvmCoderSubstrateError */1419export interface PalletEvmCoderSubstrateError extends Enum {1420  readonly isOutOfGas: boolean;1421  readonly isOutOfFund: boolean;1422  readonly type: 'OutOfGas' | 'OutOfFund';1423}14241425/** @name PalletEvmContractHelpersError */1426export interface PalletEvmContractHelpersError extends Enum {1427  readonly isNoPermission: boolean;1428  readonly isNoPendingSponsor: boolean;1429  readonly isTooManyMethodsHaveSponsoredLimit: boolean;1430  readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';1431}14321433/** @name PalletEvmContractHelpersEvent */1434export interface PalletEvmContractHelpersEvent extends Enum {1435  readonly isContractSponsorSet: boolean;1436  readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;1437  readonly isContractSponsorshipConfirmed: boolean;1438  readonly asContractSponsorshipConfirmed: ITuple<[H160, AccountId32]>;1439  readonly isContractSponsorRemoved: boolean;1440  readonly asContractSponsorRemoved: H160;1441  readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';1442}14431444/** @name PalletEvmContractHelpersSponsoringModeT */1445export interface PalletEvmContractHelpersSponsoringModeT extends Enum {1446  readonly isDisabled: boolean;1447  readonly isAllowlisted: boolean;1448  readonly isGenerous: boolean;1449  readonly type: 'Disabled' | 'Allowlisted' | 'Generous';1450}14511452/** @name PalletEvmError */1453export interface PalletEvmError extends Enum {1454  readonly isBalanceLow: boolean;1455  readonly isFeeOverflow: boolean;1456  readonly isPaymentOverflow: boolean;1457  readonly isWithdrawFailed: boolean;1458  readonly isGasPriceTooLow: boolean;1459  readonly isInvalidNonce: boolean;1460  readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';1461}14621463/** @name PalletEvmEvent */1464export interface PalletEvmEvent extends Enum {1465  readonly isLog: boolean;1466  readonly asLog: EthereumLog;1467  readonly isCreated: boolean;1468  readonly asCreated: H160;1469  readonly isCreatedFailed: boolean;1470  readonly asCreatedFailed: H160;1471  readonly isExecuted: boolean;1472  readonly asExecuted: H160;1473  readonly isExecutedFailed: boolean;1474  readonly asExecutedFailed: H160;1475  readonly isBalanceDeposit: boolean;1476  readonly asBalanceDeposit: ITuple<[AccountId32, H160, U256]>;1477  readonly isBalanceWithdraw: boolean;1478  readonly asBalanceWithdraw: ITuple<[AccountId32, H160, U256]>;1479  readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';1480}14811482/** @name PalletEvmMigrationCall */1483export interface PalletEvmMigrationCall extends Enum {1484  readonly isBegin: boolean;1485  readonly asBegin: {1486    readonly address: H160;1487  } & Struct;1488  readonly isSetData: boolean;1489  readonly asSetData: {1490    readonly address: H160;1491    readonly data: Vec<ITuple<[H256, H256]>>;1492  } & Struct;1493  readonly isFinish: boolean;1494  readonly asFinish: {1495    readonly address: H160;1496    readonly code: Bytes;1497  } & Struct;1498  readonly type: 'Begin' | 'SetData' | 'Finish';1499}15001501/** @name PalletEvmMigrationError */1502export interface PalletEvmMigrationError extends Enum {1503  readonly isAccountNotEmpty: boolean;1504  readonly isAccountIsNotMigrating: boolean;1505  readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';1506}15071508/** @name PalletForeignAssetsAssetIds */1509export interface PalletForeignAssetsAssetIds extends Enum {1510  readonly isForeignAssetId: boolean;1511  readonly asForeignAssetId: u32;1512  readonly isNativeAssetId: boolean;1513  readonly asNativeAssetId: PalletForeignAssetsNativeCurrency;1514  readonly type: 'ForeignAssetId' | 'NativeAssetId';1515}15161517/** @name PalletForeignAssetsModuleAssetMetadata */1518export interface PalletForeignAssetsModuleAssetMetadata extends Struct {1519  readonly name: Bytes;1520  readonly symbol: Bytes;1521  readonly decimals: u8;1522  readonly minimalBalance: u128;1523}15241525/** @name PalletForeignAssetsModuleCall */1526export interface PalletForeignAssetsModuleCall extends Enum {1527  readonly isRegisterForeignAsset: boolean;1528  readonly asRegisterForeignAsset: {1529    readonly owner: AccountId32;1530    readonly location: XcmVersionedMultiLocation;1531    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1532  } & Struct;1533  readonly isUpdateForeignAsset: boolean;1534  readonly asUpdateForeignAsset: {1535    readonly foreignAssetId: u32;1536    readonly location: XcmVersionedMultiLocation;1537    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1538  } & Struct;1539  readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';1540}15411542/** @name PalletForeignAssetsModuleError */1543export interface PalletForeignAssetsModuleError extends Enum {1544  readonly isBadLocation: boolean;1545  readonly isMultiLocationExisted: boolean;1546  readonly isAssetIdNotExists: boolean;1547  readonly isAssetIdExisted: boolean;1548  readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';1549}15501551/** @name PalletForeignAssetsModuleEvent */1552export interface PalletForeignAssetsModuleEvent extends Enum {1553  readonly isForeignAssetRegistered: boolean;1554  readonly asForeignAssetRegistered: {1555    readonly assetId: u32;1556    readonly assetAddress: XcmV1MultiLocation;1557    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1558  } & Struct;1559  readonly isForeignAssetUpdated: boolean;1560  readonly asForeignAssetUpdated: {1561    readonly assetId: u32;1562    readonly assetAddress: XcmV1MultiLocation;1563    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1564  } & Struct;1565  readonly isAssetRegistered: boolean;1566  readonly asAssetRegistered: {1567    readonly assetId: PalletForeignAssetsAssetIds;1568    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1569  } & Struct;1570  readonly isAssetUpdated: boolean;1571  readonly asAssetUpdated: {1572    readonly assetId: PalletForeignAssetsAssetIds;1573    readonly metadata: PalletForeignAssetsModuleAssetMetadata;1574  } & Struct;1575  readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';1576}15771578/** @name PalletForeignAssetsNativeCurrency */1579export interface PalletForeignAssetsNativeCurrency extends Enum {1580  readonly isHere: boolean;1581  readonly isParent: boolean;1582  readonly type: 'Here' | 'Parent';1583}15841585/** @name PalletFungibleError */1586export interface PalletFungibleError extends Enum {1587  readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;1588  readonly isFungibleItemsHaveNoId: boolean;1589  readonly isFungibleItemsDontHaveData: boolean;1590  readonly isFungibleDisallowsNesting: boolean;1591  readonly isSettingPropertiesNotAllowed: boolean;1592  readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1593}15941595/** @name PalletInflationCall */1596export interface PalletInflationCall extends Enum {1597  readonly isStartInflation: boolean;1598  readonly asStartInflation: {1599    readonly inflationStartRelayBlock: u32;1600  } & Struct;1601  readonly type: 'StartInflation';1602}16031604/** @name PalletMaintenanceCall */1605export interface PalletMaintenanceCall extends Enum {1606  readonly isEnable: boolean;1607  readonly isDisable: boolean;1608  readonly type: 'Enable' | 'Disable';1609}16101611/** @name PalletMaintenanceError */1612export interface PalletMaintenanceError extends Null {}16131614/** @name PalletMaintenanceEvent */1615export interface PalletMaintenanceEvent extends Enum {1616  readonly isMaintenanceEnabled: boolean;1617  readonly isMaintenanceDisabled: boolean;1618  readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';1619}16201621/** @name PalletNonfungibleError */1622export interface PalletNonfungibleError extends Enum {1623  readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;1624  readonly isNonfungibleItemsHaveNoAmount: boolean;1625  readonly isCantBurnNftWithChildren: boolean;1626  readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';1627}16281629/** @name PalletNonfungibleItemData */1630export interface PalletNonfungibleItemData extends Struct {1631  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;1632}16331634/** @name PalletRefungibleError */1635export interface PalletRefungibleError extends Enum {1636  readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;1637  readonly isWrongRefungiblePieces: boolean;1638  readonly isRepartitionWhileNotOwningAllPieces: boolean;1639  readonly isRefungibleDisallowsNesting: boolean;1640  readonly isSettingPropertiesNotAllowed: boolean;1641  readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';1642}16431644/** @name PalletRefungibleItemData */1645export interface PalletRefungibleItemData extends Struct {1646  readonly constData: Bytes;1647}16481649/** @name PalletRmrkCoreCall */1650export interface PalletRmrkCoreCall extends Enum {1651  readonly isCreateCollection: boolean;1652  readonly asCreateCollection: {1653    readonly metadata: Bytes;1654    readonly max: Option<u32>;1655    readonly symbol: Bytes;1656  } & Struct;1657  readonly isDestroyCollection: boolean;1658  readonly asDestroyCollection: {1659    readonly collectionId: u32;1660  } & Struct;1661  readonly isChangeCollectionIssuer: boolean;1662  readonly asChangeCollectionIssuer: {1663    readonly collectionId: u32;1664    readonly newIssuer: MultiAddress;1665  } & Struct;1666  readonly isLockCollection: boolean;1667  readonly asLockCollection: {1668    readonly collectionId: u32;1669  } & Struct;1670  readonly isMintNft: boolean;1671  readonly asMintNft: {1672    readonly owner: Option<AccountId32>;1673    readonly collectionId: u32;1674    readonly recipient: Option<AccountId32>;1675    readonly royaltyAmount: Option<Permill>;1676    readonly metadata: Bytes;1677    readonly transferable: bool;1678    readonly resources: Option<Vec<RmrkTraitsResourceResourceTypes>>;1679  } & Struct;1680  readonly isBurnNft: boolean;1681  readonly asBurnNft: {1682    readonly collectionId: u32;1683    readonly nftId: u32;1684    readonly maxBurns: u32;1685  } & Struct;1686  readonly isSend: boolean;1687  readonly asSend: {1688    readonly rmrkCollectionId: u32;1689    readonly rmrkNftId: u32;1690    readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1691  } & Struct;1692  readonly isAcceptNft: boolean;1693  readonly asAcceptNft: {1694    readonly rmrkCollectionId: u32;1695    readonly rmrkNftId: u32;1696    readonly newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple;1697  } & Struct;1698  readonly isRejectNft: boolean;1699  readonly asRejectNft: {1700    readonly rmrkCollectionId: u32;1701    readonly rmrkNftId: u32;1702  } & Struct;1703  readonly isAcceptResource: boolean;1704  readonly asAcceptResource: {1705    readonly rmrkCollectionId: u32;1706    readonly rmrkNftId: u32;1707    readonly resourceId: u32;1708  } & Struct;1709  readonly isAcceptResourceRemoval: boolean;1710  readonly asAcceptResourceRemoval: {1711    readonly rmrkCollectionId: u32;1712    readonly rmrkNftId: u32;1713    readonly resourceId: u32;1714  } & Struct;1715  readonly isSetProperty: boolean;1716  readonly asSetProperty: {1717    readonly rmrkCollectionId: Compact<u32>;1718    readonly maybeNftId: Option<u32>;1719    readonly key: Bytes;1720    readonly value: Bytes;1721  } & Struct;1722  readonly isSetPriority: boolean;1723  readonly asSetPriority: {1724    readonly rmrkCollectionId: u32;1725    readonly rmrkNftId: u32;1726    readonly priorities: Vec<u32>;1727  } & Struct;1728  readonly isAddBasicResource: boolean;1729  readonly asAddBasicResource: {1730    readonly rmrkCollectionId: u32;1731    readonly nftId: u32;1732    readonly resource: RmrkTraitsResourceBasicResource;1733  } & Struct;1734  readonly isAddComposableResource: boolean;1735  readonly asAddComposableResource: {1736    readonly rmrkCollectionId: u32;1737    readonly nftId: u32;1738    readonly resource: RmrkTraitsResourceComposableResource;1739  } & Struct;1740  readonly isAddSlotResource: boolean;1741  readonly asAddSlotResource: {1742    readonly rmrkCollectionId: u32;1743    readonly nftId: u32;1744    readonly resource: RmrkTraitsResourceSlotResource;1745  } & Struct;1746  readonly isRemoveResource: boolean;1747  readonly asRemoveResource: {1748    readonly rmrkCollectionId: u32;1749    readonly nftId: u32;1750    readonly resourceId: u32;1751  } & Struct;1752  readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';1753}17541755/** @name PalletRmrkCoreError */1756export interface PalletRmrkCoreError extends Enum {1757  readonly isCorruptedCollectionType: boolean;1758  readonly isRmrkPropertyKeyIsTooLong: boolean;1759  readonly isRmrkPropertyValueIsTooLong: boolean;1760  readonly isRmrkPropertyIsNotFound: boolean;1761  readonly isUnableToDecodeRmrkData: boolean;1762  readonly isCollectionNotEmpty: boolean;1763  readonly isNoAvailableCollectionId: boolean;1764  readonly isNoAvailableNftId: boolean;1765  readonly isCollectionUnknown: boolean;1766  readonly isNoPermission: boolean;1767  readonly isNonTransferable: boolean;1768  readonly isCollectionFullOrLocked: boolean;1769  readonly isResourceDoesntExist: boolean;1770  readonly isCannotSendToDescendentOrSelf: boolean;1771  readonly isCannotAcceptNonOwnedNft: boolean;1772  readonly isCannotRejectNonOwnedNft: boolean;1773  readonly isCannotRejectNonPendingNft: boolean;1774  readonly isResourceNotPending: boolean;1775  readonly isNoAvailableResourceId: boolean;1776  readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';1777}17781779/** @name PalletRmrkCoreEvent */1780export interface PalletRmrkCoreEvent extends Enum {1781  readonly isCollectionCreated: boolean;1782  readonly asCollectionCreated: {1783    readonly issuer: AccountId32;1784    readonly collectionId: u32;1785  } & Struct;1786  readonly isCollectionDestroyed: boolean;1787  readonly asCollectionDestroyed: {1788    readonly issuer: AccountId32;1789    readonly collectionId: u32;1790  } & Struct;1791  readonly isIssuerChanged: boolean;1792  readonly asIssuerChanged: {1793    readonly oldIssuer: AccountId32;1794    readonly newIssuer: AccountId32;1795    readonly collectionId: u32;1796  } & Struct;1797  readonly isCollectionLocked: boolean;1798  readonly asCollectionLocked: {1799    readonly issuer: AccountId32;1800    readonly collectionId: u32;1801  } & Struct;1802  readonly isNftMinted: boolean;1803  readonly asNftMinted: {1804    readonly owner: AccountId32;1805    readonly collectionId: u32;1806    readonly nftId: u32;1807  } & Struct;1808  readonly isNftBurned: boolean;1809  readonly asNftBurned: {1810    readonly owner: AccountId32;1811    readonly nftId: u32;1812  } & Struct;1813  readonly isNftSent: boolean;1814  readonly asNftSent: {1815    readonly sender: AccountId32;1816    readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1817    readonly collectionId: u32;1818    readonly nftId: u32;1819    readonly approvalRequired: bool;1820  } & Struct;1821  readonly isNftAccepted: boolean;1822  readonly asNftAccepted: {1823    readonly sender: AccountId32;1824    readonly recipient: RmrkTraitsNftAccountIdOrCollectionNftTuple;1825    readonly collectionId: u32;1826    readonly nftId: u32;1827  } & Struct;1828  readonly isNftRejected: boolean;1829  readonly asNftRejected: {1830    readonly sender: AccountId32;1831    readonly collectionId: u32;1832    readonly nftId: u32;1833  } & Struct;1834  readonly isPropertySet: boolean;1835  readonly asPropertySet: {1836    readonly collectionId: u32;1837    readonly maybeNftId: Option<u32>;1838    readonly key: Bytes;1839    readonly value: Bytes;1840  } & Struct;1841  readonly isResourceAdded: boolean;1842  readonly asResourceAdded: {1843    readonly nftId: u32;1844    readonly resourceId: u32;1845  } & Struct;1846  readonly isResourceRemoval: boolean;1847  readonly asResourceRemoval: {1848    readonly nftId: u32;1849    readonly resourceId: u32;1850  } & Struct;1851  readonly isResourceAccepted: boolean;1852  readonly asResourceAccepted: {1853    readonly nftId: u32;1854    readonly resourceId: u32;1855  } & Struct;1856  readonly isResourceRemovalAccepted: boolean;1857  readonly asResourceRemovalAccepted: {1858    readonly nftId: u32;1859    readonly resourceId: u32;1860  } & Struct;1861  readonly isPrioritySet: boolean;1862  readonly asPrioritySet: {1863    readonly collectionId: u32;1864    readonly nftId: u32;1865  } & Struct;1866  readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';1867}18681869/** @name PalletRmrkEquipCall */1870export interface PalletRmrkEquipCall extends Enum {1871  readonly isCreateBase: boolean;1872  readonly asCreateBase: {1873    readonly baseType: Bytes;1874    readonly symbol: Bytes;1875    readonly parts: Vec<RmrkTraitsPartPartType>;1876  } & Struct;1877  readonly isThemeAdd: boolean;1878  readonly asThemeAdd: {1879    readonly baseId: u32;1880    readonly theme: RmrkTraitsTheme;1881  } & Struct;1882  readonly isEquippable: boolean;1883  readonly asEquippable: {1884    readonly baseId: u32;1885    readonly slotId: u32;1886    readonly equippables: RmrkTraitsPartEquippableList;1887  } & Struct;1888  readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';1889}18901891/** @name PalletRmrkEquipError */1892export interface PalletRmrkEquipError extends Enum {1893  readonly isPermissionError: boolean;1894  readonly isNoAvailableBaseId: boolean;1895  readonly isNoAvailablePartId: boolean;1896  readonly isBaseDoesntExist: boolean;1897  readonly isNeedsDefaultThemeFirst: boolean;1898  readonly isPartDoesntExist: boolean;1899  readonly isNoEquippableOnFixedPart: boolean;1900  readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';1901}19021903/** @name PalletRmrkEquipEvent */1904export interface PalletRmrkEquipEvent extends Enum {1905  readonly isBaseCreated: boolean;1906  readonly asBaseCreated: {1907    readonly issuer: AccountId32;1908    readonly baseId: u32;1909  } & Struct;1910  readonly isEquippablesUpdated: boolean;1911  readonly asEquippablesUpdated: {1912    readonly baseId: u32;1913    readonly slotId: u32;1914  } & Struct;1915  readonly type: 'BaseCreated' | 'EquippablesUpdated';1916}19171918/** @name PalletStructureCall */1919export interface PalletStructureCall extends Null {}19201921/** @name PalletStructureError */1922export interface PalletStructureError extends Enum {1923  readonly isOuroborosDetected: boolean;1924  readonly isDepthLimit: boolean;1925  readonly isBreadthLimit: boolean;1926  readonly isTokenNotFound: boolean;1927  readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';1928}19291930/** @name PalletStructureEvent */1931export interface PalletStructureEvent extends Enum {1932  readonly isExecuted: boolean;1933  readonly asExecuted: Result<Null, SpRuntimeDispatchError>;1934  readonly type: 'Executed';1935}19361937/** @name PalletSudoCall */1938export interface PalletSudoCall extends Enum {1939  readonly isSudo: boolean;1940  readonly asSudo: {1941    readonly call: Call;1942  } & Struct;1943  readonly isSudoUncheckedWeight: boolean;1944  readonly asSudoUncheckedWeight: {1945    readonly call: Call;1946    readonly weight: Weight;1947  } & Struct;1948  readonly isSetKey: boolean;1949  readonly asSetKey: {1950    readonly new_: MultiAddress;1951  } & Struct;1952  readonly isSudoAs: boolean;1953  readonly asSudoAs: {1954    readonly who: MultiAddress;1955    readonly call: Call;1956  } & Struct;1957  readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';1958}19591960/** @name PalletSudoError */1961export interface PalletSudoError extends Enum {1962  readonly isRequireSudo: boolean;1963  readonly type: 'RequireSudo';1964}19651966/** @name PalletSudoEvent */1967export interface PalletSudoEvent extends Enum {1968  readonly isSudid: boolean;1969  readonly asSudid: {1970    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1971  } & Struct;1972  readonly isKeyChanged: boolean;1973  readonly asKeyChanged: {1974    readonly oldSudoer: Option<AccountId32>;1975  } & Struct;1976  readonly isSudoAsDone: boolean;1977  readonly asSudoAsDone: {1978    readonly sudoResult: Result<Null, SpRuntimeDispatchError>;1979  } & Struct;1980  readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';1981}19821983/** @name PalletTemplateTransactionPaymentCall */1984export interface PalletTemplateTransactionPaymentCall extends Null {}19851986/** @name PalletTemplateTransactionPaymentChargeTransactionPayment */1987export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}19881989/** @name PalletTestUtilsCall */1990export interface PalletTestUtilsCall extends Enum {1991  readonly isEnable: boolean;1992  readonly isSetTestValue: boolean;1993  readonly asSetTestValue: {1994    readonly value: u32;1995  } & Struct;1996  readonly isSetTestValueAndRollback: boolean;1997  readonly asSetTestValueAndRollback: {1998    readonly value: u32;1999  } & Struct;2000  readonly isIncTestValue: boolean;2001  readonly isSelfCancelingInc: boolean;2002  readonly asSelfCancelingInc: {2003    readonly id: U8aFixed;2004    readonly maxTestValue: u32;2005  } & Struct;2006  readonly isJustTakeFee: boolean;2007  readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'SelfCancelingInc' | 'JustTakeFee';2008}20092010/** @name PalletTestUtilsError */2011export interface PalletTestUtilsError extends Enum {2012  readonly isTestPalletDisabled: boolean;2013  readonly isTriggerRollback: boolean;2014  readonly type: 'TestPalletDisabled' | 'TriggerRollback';2015}20162017/** @name PalletTestUtilsEvent */2018export interface PalletTestUtilsEvent extends Enum {2019  readonly isValueIsSet: boolean;2020  readonly isShouldRollback: boolean;2021  readonly type: 'ValueIsSet' | 'ShouldRollback';2022}20232024/** @name PalletTimestampCall */2025export interface PalletTimestampCall extends Enum {2026  readonly isSet: boolean;2027  readonly asSet: {2028    readonly now: Compact<u64>;2029  } & Struct;2030  readonly type: 'Set';2031}20322033/** @name PalletTransactionPaymentEvent */2034export interface PalletTransactionPaymentEvent extends Enum {2035  readonly isTransactionFeePaid: boolean;2036  readonly asTransactionFeePaid: {2037    readonly who: AccountId32;2038    readonly actualFee: u128;2039    readonly tip: u128;2040  } & Struct;2041  readonly type: 'TransactionFeePaid';2042}20432044/** @name PalletTransactionPaymentReleases */2045export interface PalletTransactionPaymentReleases extends Enum {2046  readonly isV1Ancient: boolean;2047  readonly isV2: boolean;2048  readonly type: 'V1Ancient' | 'V2';2049}20502051/** @name PalletTreasuryCall */2052export interface PalletTreasuryCall extends Enum {2053  readonly isProposeSpend: boolean;2054  readonly asProposeSpend: {2055    readonly value: Compact<u128>;2056    readonly beneficiary: MultiAddress;2057  } & Struct;2058  readonly isRejectProposal: boolean;2059  readonly asRejectProposal: {2060    readonly proposalId: Compact<u32>;2061  } & Struct;2062  readonly isApproveProposal: boolean;2063  readonly asApproveProposal: {2064    readonly proposalId: Compact<u32>;2065  } & Struct;2066  readonly isSpend: boolean;2067  readonly asSpend: {2068    readonly amount: Compact<u128>;2069    readonly beneficiary: MultiAddress;2070  } & Struct;2071  readonly isRemoveApproval: boolean;2072  readonly asRemoveApproval: {2073    readonly proposalId: Compact<u32>;2074  } & Struct;2075  readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';2076}20772078/** @name PalletTreasuryError */2079export interface PalletTreasuryError extends Enum {2080  readonly isInsufficientProposersBalance: boolean;2081  readonly isInvalidIndex: boolean;2082  readonly isTooManyApprovals: boolean;2083  readonly isInsufficientPermission: boolean;2084  readonly isProposalNotApproved: boolean;2085  readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';2086}20872088/** @name PalletTreasuryEvent */2089export interface PalletTreasuryEvent extends Enum {2090  readonly isProposed: boolean;2091  readonly asProposed: {2092    readonly proposalIndex: u32;2093  } & Struct;2094  readonly isSpending: boolean;2095  readonly asSpending: {2096    readonly budgetRemaining: u128;2097  } & Struct;2098  readonly isAwarded: boolean;2099  readonly asAwarded: {2100    readonly proposalIndex: u32;2101    readonly award: u128;2102    readonly account: AccountId32;2103  } & Struct;2104  readonly isRejected: boolean;2105  readonly asRejected: {2106    readonly proposalIndex: u32;2107    readonly slashed: u128;2108  } & Struct;2109  readonly isBurnt: boolean;2110  readonly asBurnt: {2111    readonly burntFunds: u128;2112  } & Struct;2113  readonly isRollover: boolean;2114  readonly asRollover: {2115    readonly rolloverBalance: u128;2116  } & Struct;2117  readonly isDeposit: boolean;2118  readonly asDeposit: {2119    readonly value: u128;2120  } & Struct;2121  readonly isSpendApproved: boolean;2122  readonly asSpendApproved: {2123    readonly proposalIndex: u32;2124    readonly amount: u128;2125    readonly beneficiary: AccountId32;2126  } & Struct;2127  readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit' | 'SpendApproved';2128}21292130/** @name PalletTreasuryProposal */2131export interface PalletTreasuryProposal extends Struct {2132  readonly proposer: AccountId32;2133  readonly value: u128;2134  readonly beneficiary: AccountId32;2135  readonly bond: u128;2136}21372138/** @name PalletUniqueCall */2139export interface PalletUniqueCall extends Enum {2140  readonly isCreateCollection: boolean;2141  readonly asCreateCollection: {2142    readonly collectionName: Vec<u16>;2143    readonly collectionDescription: Vec<u16>;2144    readonly tokenPrefix: Bytes;2145    readonly mode: UpDataStructsCollectionMode;2146  } & Struct;2147  readonly isCreateCollectionEx: boolean;2148  readonly asCreateCollectionEx: {2149    readonly data: UpDataStructsCreateCollectionData;2150  } & Struct;2151  readonly isDestroyCollection: boolean;2152  readonly asDestroyCollection: {2153    readonly collectionId: u32;2154  } & Struct;2155  readonly isAddToAllowList: boolean;2156  readonly asAddToAllowList: {2157    readonly collectionId: u32;2158    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2159  } & Struct;2160  readonly isRemoveFromAllowList: boolean;2161  readonly asRemoveFromAllowList: {2162    readonly collectionId: u32;2163    readonly address: PalletEvmAccountBasicCrossAccountIdRepr;2164  } & Struct;2165  readonly isChangeCollectionOwner: boolean;2166  readonly asChangeCollectionOwner: {2167    readonly collectionId: u32;2168    readonly newOwner: AccountId32;2169  } & Struct;2170  readonly isAddCollectionAdmin: boolean;2171  readonly asAddCollectionAdmin: {2172    readonly collectionId: u32;2173    readonly newAdminId: PalletEvmAccountBasicCrossAccountIdRepr;2174  } & Struct;2175  readonly isRemoveCollectionAdmin: boolean;2176  readonly asRemoveCollectionAdmin: {2177    readonly collectionId: u32;2178    readonly accountId: PalletEvmAccountBasicCrossAccountIdRepr;2179  } & Struct;2180  readonly isSetCollectionSponsor: boolean;2181  readonly asSetCollectionSponsor: {2182    readonly collectionId: u32;2183    readonly newSponsor: AccountId32;2184  } & Struct;2185  readonly isConfirmSponsorship: boolean;2186  readonly asConfirmSponsorship: {2187    readonly collectionId: u32;2188  } & Struct;2189  readonly isRemoveCollectionSponsor: boolean;2190  readonly asRemoveCollectionSponsor: {2191    readonly collectionId: u32;2192  } & Struct;2193  readonly isCreateItem: boolean;2194  readonly asCreateItem: {2195    readonly collectionId: u32;2196    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2197    readonly data: UpDataStructsCreateItemData;2198  } & Struct;2199  readonly isCreateMultipleItems: boolean;2200  readonly asCreateMultipleItems: {2201    readonly collectionId: u32;2202    readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2203    readonly itemsData: Vec<UpDataStructsCreateItemData>;2204  } & Struct;2205  readonly isSetCollectionProperties: boolean;2206  readonly asSetCollectionProperties: {2207    readonly collectionId: u32;2208    readonly properties: Vec<UpDataStructsProperty>;2209  } & Struct;2210  readonly isDeleteCollectionProperties: boolean;2211  readonly asDeleteCollectionProperties: {2212    readonly collectionId: u32;2213    readonly propertyKeys: Vec<Bytes>;2214  } & Struct;2215  readonly isSetTokenProperties: boolean;2216  readonly asSetTokenProperties: {2217    readonly collectionId: u32;2218    readonly tokenId: u32;2219    readonly properties: Vec<UpDataStructsProperty>;2220  } & Struct;2221  readonly isDeleteTokenProperties: boolean;2222  readonly asDeleteTokenProperties: {2223    readonly collectionId: u32;2224    readonly tokenId: u32;2225    readonly propertyKeys: Vec<Bytes>;2226  } & Struct;2227  readonly isSetTokenPropertyPermissions: boolean;2228  readonly asSetTokenPropertyPermissions: {2229    readonly collectionId: u32;2230    readonly propertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2231  } & Struct;2232  readonly isCreateMultipleItemsEx: boolean;2233  readonly asCreateMultipleItemsEx: {2234    readonly collectionId: u32;2235    readonly data: UpDataStructsCreateItemExData;2236  } & Struct;2237  readonly isSetTransfersEnabledFlag: boolean;2238  readonly asSetTransfersEnabledFlag: {2239    readonly collectionId: u32;2240    readonly value: bool;2241  } & Struct;2242  readonly isBurnItem: boolean;2243  readonly asBurnItem: {2244    readonly collectionId: u32;2245    readonly itemId: u32;2246    readonly value: u128;2247  } & Struct;2248  readonly isBurnFrom: boolean;2249  readonly asBurnFrom: {2250    readonly collectionId: u32;2251    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2252    readonly itemId: u32;2253    readonly value: u128;2254  } & Struct;2255  readonly isTransfer: boolean;2256  readonly asTransfer: {2257    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2258    readonly collectionId: u32;2259    readonly itemId: u32;2260    readonly value: u128;2261  } & Struct;2262  readonly isApprove: boolean;2263  readonly asApprove: {2264    readonly spender: PalletEvmAccountBasicCrossAccountIdRepr;2265    readonly collectionId: u32;2266    readonly itemId: u32;2267    readonly amount: u128;2268  } & Struct;2269  readonly isTransferFrom: boolean;2270  readonly asTransferFrom: {2271    readonly from: PalletEvmAccountBasicCrossAccountIdRepr;2272    readonly recipient: PalletEvmAccountBasicCrossAccountIdRepr;2273    readonly collectionId: u32;2274    readonly itemId: u32;2275    readonly value: u128;2276  } & Struct;2277  readonly isSetCollectionLimits: boolean;2278  readonly asSetCollectionLimits: {2279    readonly collectionId: u32;2280    readonly newLimit: UpDataStructsCollectionLimits;2281  } & Struct;2282  readonly isSetCollectionPermissions: boolean;2283  readonly asSetCollectionPermissions: {2284    readonly collectionId: u32;2285    readonly newPermission: UpDataStructsCollectionPermissions;2286  } & Struct;2287  readonly isRepartition: boolean;2288  readonly asRepartition: {2289    readonly collectionId: u32;2290    readonly tokenId: u32;2291    readonly amount: u128;2292  } & Struct;2293  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';2294}22952296/** @name PalletUniqueError */2297export interface PalletUniqueError extends Enum {2298  readonly isCollectionDecimalPointLimitExceeded: boolean;2299  readonly isConfirmUnsetSponsorFail: boolean;2300  readonly isEmptyArgument: boolean;2301  readonly isRepartitionCalledOnNonRefungibleCollection: boolean;2302  readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';2303}23042305/** @name PalletUniqueRawEvent */2306export interface PalletUniqueRawEvent extends Enum {2307  readonly isCollectionSponsorRemoved: boolean;2308  readonly asCollectionSponsorRemoved: u32;2309  readonly isCollectionAdminAdded: boolean;2310  readonly asCollectionAdminAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2311  readonly isCollectionOwnedChanged: boolean;2312  readonly asCollectionOwnedChanged: ITuple<[u32, AccountId32]>;2313  readonly isCollectionSponsorSet: boolean;2314  readonly asCollectionSponsorSet: ITuple<[u32, AccountId32]>;2315  readonly isSponsorshipConfirmed: boolean;2316  readonly asSponsorshipConfirmed: ITuple<[u32, AccountId32]>;2317  readonly isCollectionAdminRemoved: boolean;2318  readonly asCollectionAdminRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2319  readonly isAllowListAddressRemoved: boolean;2320  readonly asAllowListAddressRemoved: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2321  readonly isAllowListAddressAdded: boolean;2322  readonly asAllowListAddressAdded: ITuple<[u32, PalletEvmAccountBasicCrossAccountIdRepr]>;2323  readonly isCollectionLimitSet: boolean;2324  readonly asCollectionLimitSet: u32;2325  readonly isCollectionPermissionSet: boolean;2326  readonly asCollectionPermissionSet: u32;2327  readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';2328}23292330/** @name PalletUniqueSchedulerCall */2331export interface PalletUniqueSchedulerCall extends Enum {2332  readonly isScheduleNamed: boolean;2333  readonly asScheduleNamed: {2334    readonly id: U8aFixed;2335    readonly when: u32;2336    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2337    readonly priority: Option<u8>;2338    readonly call: FrameSupportScheduleMaybeHashed;2339  } & Struct;2340  readonly isCancelNamed: boolean;2341  readonly asCancelNamed: {2342    readonly id: U8aFixed;2343  } & Struct;2344  readonly isScheduleNamedAfter: boolean;2345  readonly asScheduleNamedAfter: {2346    readonly id: U8aFixed;2347    readonly after: u32;2348    readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2349    readonly priority: Option<u8>;2350    readonly call: FrameSupportScheduleMaybeHashed;2351  } & Struct;2352  readonly isChangeNamedPriority: boolean;2353  readonly asChangeNamedPriority: {2354    readonly id: U8aFixed;2355    readonly priority: u8;2356  } & Struct;2357  readonly type: 'ScheduleNamed' | 'CancelNamed' | 'ScheduleNamedAfter' | 'ChangeNamedPriority';2358}23592360/** @name PalletUniqueSchedulerError */2361export interface PalletUniqueSchedulerError extends Enum {2362  readonly isFailedToSchedule: boolean;2363  readonly isNotFound: boolean;2364  readonly isTargetBlockNumberInPast: boolean;2365  readonly isRescheduleNoChange: boolean;2366  readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';2367}23682369/** @name PalletUniqueSchedulerEvent */2370export interface PalletUniqueSchedulerEvent extends Enum {2371  readonly isScheduled: boolean;2372  readonly asScheduled: {2373    readonly when: u32;2374    readonly index: u32;2375  } & Struct;2376  readonly isCanceled: boolean;2377  readonly asCanceled: {2378    readonly when: u32;2379    readonly index: u32;2380  } & Struct;2381  readonly isPriorityChanged: boolean;2382  readonly asPriorityChanged: {2383    readonly when: u32;2384    readonly index: u32;2385    readonly priority: u8;2386  } & Struct;2387  readonly isDispatched: boolean;2388  readonly asDispatched: {2389    readonly task: ITuple<[u32, u32]>;2390    readonly id: Option<U8aFixed>;2391    readonly result: Result<Null, SpRuntimeDispatchError>;2392  } & Struct;2393  readonly isCallLookupFailed: boolean;2394  readonly asCallLookupFailed: {2395    readonly task: ITuple<[u32, u32]>;2396    readonly id: Option<U8aFixed>;2397    readonly error: FrameSupportScheduleLookupError;2398  } & Struct;2399  readonly type: 'Scheduled' | 'Canceled' | 'PriorityChanged' | 'Dispatched' | 'CallLookupFailed';2400}24012402/** @name PalletUniqueSchedulerScheduledV3 */2403export interface PalletUniqueSchedulerScheduledV3 extends Struct {2404  readonly maybeId: Option<U8aFixed>;2405  readonly priority: u8;2406  readonly call: FrameSupportScheduleMaybeHashed;2407  readonly maybePeriodic: Option<ITuple<[u32, u32]>>;2408  readonly origin: OpalRuntimeOriginCaller;2409}24102411/** @name PalletXcmCall */2412export interface PalletXcmCall extends Enum {2413  readonly isSend: boolean;2414  readonly asSend: {2415    readonly dest: XcmVersionedMultiLocation;2416    readonly message: XcmVersionedXcm;2417  } & Struct;2418  readonly isTeleportAssets: boolean;2419  readonly asTeleportAssets: {2420    readonly dest: XcmVersionedMultiLocation;2421    readonly beneficiary: XcmVersionedMultiLocation;2422    readonly assets: XcmVersionedMultiAssets;2423    readonly feeAssetItem: u32;2424  } & Struct;2425  readonly isReserveTransferAssets: boolean;2426  readonly asReserveTransferAssets: {2427    readonly dest: XcmVersionedMultiLocation;2428    readonly beneficiary: XcmVersionedMultiLocation;2429    readonly assets: XcmVersionedMultiAssets;2430    readonly feeAssetItem: u32;2431  } & Struct;2432  readonly isExecute: boolean;2433  readonly asExecute: {2434    readonly message: XcmVersionedXcm;2435    readonly maxWeight: Weight;2436  } & Struct;2437  readonly isForceXcmVersion: boolean;2438  readonly asForceXcmVersion: {2439    readonly location: XcmV1MultiLocation;2440    readonly xcmVersion: u32;2441  } & Struct;2442  readonly isForceDefaultXcmVersion: boolean;2443  readonly asForceDefaultXcmVersion: {2444    readonly maybeXcmVersion: Option<u32>;2445  } & Struct;2446  readonly isForceSubscribeVersionNotify: boolean;2447  readonly asForceSubscribeVersionNotify: {2448    readonly location: XcmVersionedMultiLocation;2449  } & Struct;2450  readonly isForceUnsubscribeVersionNotify: boolean;2451  readonly asForceUnsubscribeVersionNotify: {2452    readonly location: XcmVersionedMultiLocation;2453  } & Struct;2454  readonly isLimitedReserveTransferAssets: boolean;2455  readonly asLimitedReserveTransferAssets: {2456    readonly dest: XcmVersionedMultiLocation;2457    readonly beneficiary: XcmVersionedMultiLocation;2458    readonly assets: XcmVersionedMultiAssets;2459    readonly feeAssetItem: u32;2460    readonly weightLimit: XcmV2WeightLimit;2461  } & Struct;2462  readonly isLimitedTeleportAssets: boolean;2463  readonly asLimitedTeleportAssets: {2464    readonly dest: XcmVersionedMultiLocation;2465    readonly beneficiary: XcmVersionedMultiLocation;2466    readonly assets: XcmVersionedMultiAssets;2467    readonly feeAssetItem: u32;2468    readonly weightLimit: XcmV2WeightLimit;2469  } & Struct;2470  readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';2471}24722473/** @name PalletXcmError */2474export interface PalletXcmError extends Enum {2475  readonly isUnreachable: boolean;2476  readonly isSendFailure: boolean;2477  readonly isFiltered: boolean;2478  readonly isUnweighableMessage: boolean;2479  readonly isDestinationNotInvertible: boolean;2480  readonly isEmpty: boolean;2481  readonly isCannotReanchor: boolean;2482  readonly isTooManyAssets: boolean;2483  readonly isInvalidOrigin: boolean;2484  readonly isBadVersion: boolean;2485  readonly isBadLocation: boolean;2486  readonly isNoSubscription: boolean;2487  readonly isAlreadySubscribed: boolean;2488  readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';2489}24902491/** @name PalletXcmEvent */2492export interface PalletXcmEvent extends Enum {2493  readonly isAttempted: boolean;2494  readonly asAttempted: XcmV2TraitsOutcome;2495  readonly isSent: boolean;2496  readonly asSent: ITuple<[XcmV1MultiLocation, XcmV1MultiLocation, XcmV2Xcm]>;2497  readonly isUnexpectedResponse: boolean;2498  readonly asUnexpectedResponse: ITuple<[XcmV1MultiLocation, u64]>;2499  readonly isResponseReady: boolean;2500  readonly asResponseReady: ITuple<[u64, XcmV2Response]>;2501  readonly isNotified: boolean;2502  readonly asNotified: ITuple<[u64, u8, u8]>;2503  readonly isNotifyOverweight: boolean;2504  readonly asNotifyOverweight: ITuple<[u64, u8, u8, Weight, Weight]>;2505  readonly isNotifyDispatchError: boolean;2506  readonly asNotifyDispatchError: ITuple<[u64, u8, u8]>;2507  readonly isNotifyDecodeFailed: boolean;2508  readonly asNotifyDecodeFailed: ITuple<[u64, u8, u8]>;2509  readonly isInvalidResponder: boolean;2510  readonly asInvalidResponder: ITuple<[XcmV1MultiLocation, u64, Option<XcmV1MultiLocation>]>;2511  readonly isInvalidResponderVersion: boolean;2512  readonly asInvalidResponderVersion: ITuple<[XcmV1MultiLocation, u64]>;2513  readonly isResponseTaken: boolean;2514  readonly asResponseTaken: u64;2515  readonly isAssetsTrapped: boolean;2516  readonly asAssetsTrapped: ITuple<[H256, XcmV1MultiLocation, XcmVersionedMultiAssets]>;2517  readonly isVersionChangeNotified: boolean;2518  readonly asVersionChangeNotified: ITuple<[XcmV1MultiLocation, u32]>;2519  readonly isSupportedVersionChanged: boolean;2520  readonly asSupportedVersionChanged: ITuple<[XcmV1MultiLocation, u32]>;2521  readonly isNotifyTargetSendFail: boolean;2522  readonly asNotifyTargetSendFail: ITuple<[XcmV1MultiLocation, u64, XcmV2TraitsError]>;2523  readonly isNotifyTargetMigrationFail: boolean;2524  readonly asNotifyTargetMigrationFail: ITuple<[XcmVersionedMultiLocation, u64]>;2525  readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';2526}25272528/** @name PalletXcmOrigin */2529export interface PalletXcmOrigin extends Enum {2530  readonly isXcm: boolean;2531  readonly asXcm: XcmV1MultiLocation;2532  readonly isResponse: boolean;2533  readonly asResponse: XcmV1MultiLocation;2534  readonly type: 'Xcm' | 'Response';2535}25362537/** @name PhantomTypeUpDataStructs */2538export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}25392540/** @name PolkadotCorePrimitivesInboundDownwardMessage */2541export interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {2542  readonly sentAt: u32;2543  readonly msg: Bytes;2544}25452546/** @name PolkadotCorePrimitivesInboundHrmpMessage */2547export interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {2548  readonly sentAt: u32;2549  readonly data: Bytes;2550}25512552/** @name PolkadotCorePrimitivesOutboundHrmpMessage */2553export interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {2554  readonly recipient: u32;2555  readonly data: Bytes;2556}25572558/** @name PolkadotParachainPrimitivesXcmpMessageFormat */2559export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {2560  readonly isConcatenatedVersionedXcm: boolean;2561  readonly isConcatenatedEncodedBlob: boolean;2562  readonly isSignals: boolean;2563  readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';2564}25652566/** @name PolkadotPrimitivesV2AbridgedHostConfiguration */2567export interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {2568  readonly maxCodeSize: u32;2569  readonly maxHeadDataSize: u32;2570  readonly maxUpwardQueueCount: u32;2571  readonly maxUpwardQueueSize: u32;2572  readonly maxUpwardMessageSize: u32;2573  readonly maxUpwardMessageNumPerCandidate: u32;2574  readonly hrmpMaxMessageNumPerCandidate: u32;2575  readonly validationUpgradeCooldown: u32;2576  readonly validationUpgradeDelay: u32;2577}25782579/** @name PolkadotPrimitivesV2AbridgedHrmpChannel */2580export interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {2581  readonly maxCapacity: u32;2582  readonly maxTotalSize: u32;2583  readonly maxMessageSize: u32;2584  readonly msgCount: u32;2585  readonly totalSize: u32;2586  readonly mqcHead: Option<H256>;2587}25882589/** @name PolkadotPrimitivesV2PersistedValidationData */2590export interface PolkadotPrimitivesV2PersistedValidationData extends Struct {2591  readonly parentHead: Bytes;2592  readonly relayParentNumber: u32;2593  readonly relayParentStorageRoot: H256;2594  readonly maxPovSize: u32;2595}25962597/** @name PolkadotPrimitivesV2UpgradeRestriction */2598export interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {2599  readonly isPresent: boolean;2600  readonly type: 'Present';2601}26022603/** @name RmrkTraitsBaseBaseInfo */2604export interface RmrkTraitsBaseBaseInfo extends Struct {2605  readonly issuer: AccountId32;2606  readonly baseType: Bytes;2607  readonly symbol: Bytes;2608}26092610/** @name RmrkTraitsCollectionCollectionInfo */2611export interface RmrkTraitsCollectionCollectionInfo extends Struct {2612  readonly issuer: AccountId32;2613  readonly metadata: Bytes;2614  readonly max: Option<u32>;2615  readonly symbol: Bytes;2616  readonly nftsCount: u32;2617}26182619/** @name RmrkTraitsNftAccountIdOrCollectionNftTuple */2620export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {2621  readonly isAccountId: boolean;2622  readonly asAccountId: AccountId32;2623  readonly isCollectionAndNftTuple: boolean;2624  readonly asCollectionAndNftTuple: ITuple<[u32, u32]>;2625  readonly type: 'AccountId' | 'CollectionAndNftTuple';2626}26272628/** @name RmrkTraitsNftNftChild */2629export interface RmrkTraitsNftNftChild extends Struct {2630  readonly collectionId: u32;2631  readonly nftId: u32;2632}26332634/** @name RmrkTraitsNftNftInfo */2635export interface RmrkTraitsNftNftInfo extends Struct {2636  readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;2637  readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;2638  readonly metadata: Bytes;2639  readonly equipped: bool;2640  readonly pending: bool;2641}26422643/** @name RmrkTraitsNftRoyaltyInfo */2644export interface RmrkTraitsNftRoyaltyInfo extends Struct {2645  readonly recipient: AccountId32;2646  readonly amount: Permill;2647}26482649/** @name RmrkTraitsPartEquippableList */2650export interface RmrkTraitsPartEquippableList extends Enum {2651  readonly isAll: boolean;2652  readonly isEmpty: boolean;2653  readonly isCustom: boolean;2654  readonly asCustom: Vec<u32>;2655  readonly type: 'All' | 'Empty' | 'Custom';2656}26572658/** @name RmrkTraitsPartFixedPart */2659export interface RmrkTraitsPartFixedPart extends Struct {2660  readonly id: u32;2661  readonly z: u32;2662  readonly src: Bytes;2663}26642665/** @name RmrkTraitsPartPartType */2666export interface RmrkTraitsPartPartType extends Enum {2667  readonly isFixedPart: boolean;2668  readonly asFixedPart: RmrkTraitsPartFixedPart;2669  readonly isSlotPart: boolean;2670  readonly asSlotPart: RmrkTraitsPartSlotPart;2671  readonly type: 'FixedPart' | 'SlotPart';2672}26732674/** @name RmrkTraitsPartSlotPart */2675export interface RmrkTraitsPartSlotPart extends Struct {2676  readonly id: u32;2677  readonly equippable: RmrkTraitsPartEquippableList;2678  readonly src: Bytes;2679  readonly z: u32;2680}26812682/** @name RmrkTraitsPropertyPropertyInfo */2683export interface RmrkTraitsPropertyPropertyInfo extends Struct {2684  readonly key: Bytes;2685  readonly value: Bytes;2686}26872688/** @name RmrkTraitsResourceBasicResource */2689export interface RmrkTraitsResourceBasicResource extends Struct {2690  readonly src: Option<Bytes>;2691  readonly metadata: Option<Bytes>;2692  readonly license: Option<Bytes>;2693  readonly thumb: Option<Bytes>;2694}26952696/** @name RmrkTraitsResourceComposableResource */2697export interface RmrkTraitsResourceComposableResource extends Struct {2698  readonly parts: Vec<u32>;2699  readonly base: u32;2700  readonly src: Option<Bytes>;2701  readonly metadata: Option<Bytes>;2702  readonly license: Option<Bytes>;2703  readonly thumb: Option<Bytes>;2704}27052706/** @name RmrkTraitsResourceResourceInfo */2707export interface RmrkTraitsResourceResourceInfo extends Struct {2708  readonly id: u32;2709  readonly resource: RmrkTraitsResourceResourceTypes;2710  readonly pending: bool;2711  readonly pendingRemoval: bool;2712}27132714/** @name RmrkTraitsResourceResourceTypes */2715export interface RmrkTraitsResourceResourceTypes extends Enum {2716  readonly isBasic: boolean;2717  readonly asBasic: RmrkTraitsResourceBasicResource;2718  readonly isComposable: boolean;2719  readonly asComposable: RmrkTraitsResourceComposableResource;2720  readonly isSlot: boolean;2721  readonly asSlot: RmrkTraitsResourceSlotResource;2722  readonly type: 'Basic' | 'Composable' | 'Slot';2723}27242725/** @name RmrkTraitsResourceSlotResource */2726export interface RmrkTraitsResourceSlotResource extends Struct {2727  readonly base: u32;2728  readonly src: Option<Bytes>;2729  readonly metadata: Option<Bytes>;2730  readonly slot: u32;2731  readonly license: Option<Bytes>;2732  readonly thumb: Option<Bytes>;2733}27342735/** @name RmrkTraitsTheme */2736export interface RmrkTraitsTheme extends Struct {2737  readonly name: Bytes;2738  readonly properties: Vec<RmrkTraitsThemeThemeProperty>;2739  readonly inherit: bool;2740}27412742/** @name RmrkTraitsThemeThemeProperty */2743export interface RmrkTraitsThemeThemeProperty extends Struct {2744  readonly key: Bytes;2745  readonly value: Bytes;2746}27472748/** @name SpCoreEcdsaSignature */2749export interface SpCoreEcdsaSignature extends U8aFixed {}27502751/** @name SpCoreEd25519Signature */2752export interface SpCoreEd25519Signature extends U8aFixed {}27532754/** @name SpCoreSr25519Signature */2755export interface SpCoreSr25519Signature extends U8aFixed {}27562757/** @name SpCoreVoid */2758export interface SpCoreVoid extends Null {}27592760/** @name SpRuntimeArithmeticError */2761export interface SpRuntimeArithmeticError extends Enum {2762  readonly isUnderflow: boolean;2763  readonly isOverflow: boolean;2764  readonly isDivisionByZero: boolean;2765  readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';2766}27672768/** @name SpRuntimeDigest */2769export interface SpRuntimeDigest extends Struct {2770  readonly logs: Vec<SpRuntimeDigestDigestItem>;2771}27722773/** @name SpRuntimeDigestDigestItem */2774export interface SpRuntimeDigestDigestItem extends Enum {2775  readonly isOther: boolean;2776  readonly asOther: Bytes;2777  readonly isConsensus: boolean;2778  readonly asConsensus: ITuple<[U8aFixed, Bytes]>;2779  readonly isSeal: boolean;2780  readonly asSeal: ITuple<[U8aFixed, Bytes]>;2781  readonly isPreRuntime: boolean;2782  readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>;2783  readonly isRuntimeEnvironmentUpdated: boolean;2784  readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';2785}27862787/** @name SpRuntimeDispatchError */2788export interface SpRuntimeDispatchError extends Enum {2789  readonly isOther: boolean;2790  readonly isCannotLookup: boolean;2791  readonly isBadOrigin: boolean;2792  readonly isModule: boolean;2793  readonly asModule: SpRuntimeModuleError;2794  readonly isConsumerRemaining: boolean;2795  readonly isNoProviders: boolean;2796  readonly isTooManyConsumers: boolean;2797  readonly isToken: boolean;2798  readonly asToken: SpRuntimeTokenError;2799  readonly isArithmetic: boolean;2800  readonly asArithmetic: SpRuntimeArithmeticError;2801  readonly isTransactional: boolean;2802  readonly asTransactional: SpRuntimeTransactionalError;2803  readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';2804}28052806/** @name SpRuntimeModuleError */2807export interface SpRuntimeModuleError extends Struct {2808  readonly index: u8;2809  readonly error: U8aFixed;2810}28112812/** @name SpRuntimeMultiSignature */2813export interface SpRuntimeMultiSignature extends Enum {2814  readonly isEd25519: boolean;2815  readonly asEd25519: SpCoreEd25519Signature;2816  readonly isSr25519: boolean;2817  readonly asSr25519: SpCoreSr25519Signature;2818  readonly isEcdsa: boolean;2819  readonly asEcdsa: SpCoreEcdsaSignature;2820  readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';2821}28222823/** @name SpRuntimeTokenError */2824export interface SpRuntimeTokenError extends Enum {2825  readonly isNoFunds: boolean;2826  readonly isWouldDie: boolean;2827  readonly isBelowMinimum: boolean;2828  readonly isCannotCreate: boolean;2829  readonly isUnknownAsset: boolean;2830  readonly isFrozen: boolean;2831  readonly isUnsupported: boolean;2832  readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';2833}28342835/** @name SpRuntimeTransactionalError */2836export interface SpRuntimeTransactionalError extends Enum {2837  readonly isLimitReached: boolean;2838  readonly isNoLayer: boolean;2839  readonly type: 'LimitReached' | 'NoLayer';2840}28412842/** @name SpTrieStorageProof */2843export interface SpTrieStorageProof extends Struct {2844  readonly trieNodes: BTreeSet<Bytes>;2845}28462847/** @name SpVersionRuntimeVersion */2848export interface SpVersionRuntimeVersion extends Struct {2849  readonly specName: Text;2850  readonly implName: Text;2851  readonly authoringVersion: u32;2852  readonly specVersion: u32;2853  readonly implVersion: u32;2854  readonly apis: Vec<ITuple<[U8aFixed, u32]>>;2855  readonly transactionVersion: u32;2856  readonly stateVersion: u8;2857}28582859/** @name SpWeightsRuntimeDbWeight */2860export interface SpWeightsRuntimeDbWeight extends Struct {2861  readonly read: u64;2862  readonly write: u64;2863}28642865/** @name UpDataStructsAccessMode */2866export interface UpDataStructsAccessMode extends Enum {2867  readonly isNormal: boolean;2868  readonly isAllowList: boolean;2869  readonly type: 'Normal' | 'AllowList';2870}28712872/** @name UpDataStructsCollection */2873export interface UpDataStructsCollection extends Struct {2874  readonly owner: AccountId32;2875  readonly mode: UpDataStructsCollectionMode;2876  readonly name: Vec<u16>;2877  readonly description: Vec<u16>;2878  readonly tokenPrefix: Bytes;2879  readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;2880  readonly limits: UpDataStructsCollectionLimits;2881  readonly permissions: UpDataStructsCollectionPermissions;2882  readonly flags: U8aFixed;2883}28842885/** @name UpDataStructsCollectionLimits */2886export interface UpDataStructsCollectionLimits extends Struct {2887  readonly accountTokenOwnershipLimit: Option<u32>;2888  readonly sponsoredDataSize: Option<u32>;2889  readonly sponsoredDataRateLimit: Option<UpDataStructsSponsoringRateLimit>;2890  readonly tokenLimit: Option<u32>;2891  readonly sponsorTransferTimeout: Option<u32>;2892  readonly sponsorApproveTimeout: Option<u32>;2893  readonly ownerCanTransfer: Option<bool>;2894  readonly ownerCanDestroy: Option<bool>;2895  readonly transfersEnabled: Option<bool>;2896}28972898/** @name UpDataStructsCollectionMode */2899export interface UpDataStructsCollectionMode extends Enum {2900  readonly isNft: boolean;2901  readonly isFungible: boolean;2902  readonly asFungible: u8;2903  readonly isReFungible: boolean;2904  readonly type: 'Nft' | 'Fungible' | 'ReFungible';2905}29062907/** @name UpDataStructsCollectionPermissions */2908export interface UpDataStructsCollectionPermissions extends Struct {2909  readonly access: Option<UpDataStructsAccessMode>;2910  readonly mintMode: Option<bool>;2911  readonly nesting: Option<UpDataStructsNestingPermissions>;2912}29132914/** @name UpDataStructsCollectionStats */2915export interface UpDataStructsCollectionStats extends Struct {2916  readonly created: u32;2917  readonly destroyed: u32;2918  readonly alive: u32;2919}29202921/** @name UpDataStructsCreateCollectionData */2922export interface UpDataStructsCreateCollectionData extends Struct {2923  readonly mode: UpDataStructsCollectionMode;2924  readonly access: Option<UpDataStructsAccessMode>;2925  readonly name: Vec<u16>;2926  readonly description: Vec<u16>;2927  readonly tokenPrefix: Bytes;2928  readonly pendingSponsor: Option<AccountId32>;2929  readonly limits: Option<UpDataStructsCollectionLimits>;2930  readonly permissions: Option<UpDataStructsCollectionPermissions>;2931  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;2932  readonly properties: Vec<UpDataStructsProperty>;2933}29342935/** @name UpDataStructsCreateFungibleData */2936export interface UpDataStructsCreateFungibleData extends Struct {2937  readonly value: u128;2938}29392940/** @name UpDataStructsCreateItemData */2941export interface UpDataStructsCreateItemData extends Enum {2942  readonly isNft: boolean;2943  readonly asNft: UpDataStructsCreateNftData;2944  readonly isFungible: boolean;2945  readonly asFungible: UpDataStructsCreateFungibleData;2946  readonly isReFungible: boolean;2947  readonly asReFungible: UpDataStructsCreateReFungibleData;2948  readonly type: 'Nft' | 'Fungible' | 'ReFungible';2949}29502951/** @name UpDataStructsCreateItemExData */2952export interface UpDataStructsCreateItemExData extends Enum {2953  readonly isNft: boolean;2954  readonly asNft: Vec<UpDataStructsCreateNftExData>;2955  readonly isFungible: boolean;2956  readonly asFungible: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr,u128>;2957  readonly isRefungibleMultipleItems: boolean;2958  readonly asRefungibleMultipleItems: Vec<UpDataStructsCreateRefungibleExSingleOwner>;2959  readonly isRefungibleMultipleOwners: boolean;2960  readonly asRefungibleMultipleOwners: UpDataStructsCreateRefungibleExMultipleOwners;2961  readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';2962}29632964/** @name UpDataStructsCreateNftData */2965export interface UpDataStructsCreateNftData extends Struct {2966  readonly properties: Vec<UpDataStructsProperty>;2967}29682969/** @name UpDataStructsCreateNftExData */2970export interface UpDataStructsCreateNftExData extends Struct {2971  readonly properties: Vec<UpDataStructsProperty>;2972  readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;2973}29742975/** @name UpDataStructsCreateReFungibleData */2976export interface UpDataStructsCreateReFungibleData extends Struct {2977  readonly pieces: u128;2978  readonly properties: Vec<UpDataStructsProperty>;2979}29802981/** @name UpDataStructsCreateRefungibleExMultipleOwners */2982export interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {2983  readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;2984  readonly properties: Vec<UpDataStructsProperty>;2985}29862987/** @name UpDataStructsCreateRefungibleExSingleOwner */2988export interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {2989  readonly user: PalletEvmAccountBasicCrossAccountIdRepr;2990  readonly pieces: u128;2991  readonly properties: Vec<UpDataStructsProperty>;2992}29932994/** @name UpDataStructsNestingPermissions */2995export interface UpDataStructsNestingPermissions extends Struct {2996  readonly tokenOwner: bool;2997  readonly collectionAdmin: bool;2998  readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;2999}30003001/** @name UpDataStructsOwnerRestrictedSet */3002export interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}30033004/** @name UpDataStructsProperties */3005export interface UpDataStructsProperties extends Struct {3006  readonly map: UpDataStructsPropertiesMapBoundedVec;3007  readonly consumedSpace: u32;3008  readonly spaceLimit: u32;3009}30103011/** @name UpDataStructsPropertiesMapBoundedVec */3012export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}30133014/** @name UpDataStructsPropertiesMapPropertyPermission */3015export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}30163017/** @name UpDataStructsProperty */3018export interface UpDataStructsProperty extends Struct {3019  readonly key: Bytes;3020  readonly value: Bytes;3021}30223023/** @name UpDataStructsPropertyKeyPermission */3024export interface UpDataStructsPropertyKeyPermission extends Struct {3025  readonly key: Bytes;3026  readonly permission: UpDataStructsPropertyPermission;3027}30283029/** @name UpDataStructsPropertyPermission */3030export interface UpDataStructsPropertyPermission extends Struct {3031  readonly mutable: bool;3032  readonly collectionAdmin: bool;3033  readonly tokenOwner: bool;3034}30353036/** @name UpDataStructsPropertyScope */3037export interface UpDataStructsPropertyScope extends Enum {3038  readonly isNone: boolean;3039  readonly isRmrk: boolean;3040  readonly type: 'None' | 'Rmrk';3041}30423043/** @name UpDataStructsRpcCollection */3044export interface UpDataStructsRpcCollection extends Struct {3045  readonly owner: AccountId32;3046  readonly mode: UpDataStructsCollectionMode;3047  readonly name: Vec<u16>;3048  readonly description: Vec<u16>;3049  readonly tokenPrefix: Bytes;3050  readonly sponsorship: UpDataStructsSponsorshipStateAccountId32;3051  readonly limits: UpDataStructsCollectionLimits;3052  readonly permissions: UpDataStructsCollectionPermissions;3053  readonly tokenPropertyPermissions: Vec<UpDataStructsPropertyKeyPermission>;3054  readonly properties: Vec<UpDataStructsProperty>;3055  readonly readOnly: bool;3056  readonly flags: UpDataStructsRpcCollectionFlags;3057}30583059/** @name UpDataStructsRpcCollectionFlags */3060export interface UpDataStructsRpcCollectionFlags extends Struct {3061  readonly foreign: bool;3062  readonly erc721metadata: bool;3063}30643065/** @name UpDataStructsSponsoringRateLimit */3066export interface UpDataStructsSponsoringRateLimit extends Enum {3067  readonly isSponsoringDisabled: boolean;3068  readonly isBlocks: boolean;3069  readonly asBlocks: u32;3070  readonly type: 'SponsoringDisabled' | 'Blocks';3071}30723073/** @name UpDataStructsSponsorshipStateAccountId32 */3074export interface UpDataStructsSponsorshipStateAccountId32 extends Enum {3075  readonly isDisabled: boolean;3076  readonly isUnconfirmed: boolean;3077  readonly asUnconfirmed: AccountId32;3078  readonly isConfirmed: boolean;3079  readonly asConfirmed: AccountId32;3080  readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3081}30823083/** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr */3084export interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {3085  readonly isDisabled: boolean;3086  readonly isUnconfirmed: boolean;3087  readonly asUnconfirmed: PalletEvmAccountBasicCrossAccountIdRepr;3088  readonly isConfirmed: boolean;3089  readonly asConfirmed: PalletEvmAccountBasicCrossAccountIdRepr;3090  readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';3091}30923093/** @name UpDataStructsTokenChild */3094export interface UpDataStructsTokenChild extends Struct {3095  readonly token: u32;3096  readonly collection: u32;3097}30983099/** @name UpDataStructsTokenData */3100export interface UpDataStructsTokenData extends Struct {3101  readonly properties: Vec<UpDataStructsProperty>;3102  readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;3103  readonly pieces: u128;3104}31053106/** @name XcmDoubleEncoded */3107export interface XcmDoubleEncoded extends Struct {3108  readonly encoded: Bytes;3109}31103111/** @name XcmV0Junction */3112export interface XcmV0Junction extends Enum {3113  readonly isParent: boolean;3114  readonly isParachain: boolean;3115  readonly asParachain: Compact<u32>;3116  readonly isAccountId32: boolean;3117  readonly asAccountId32: {3118    readonly network: XcmV0JunctionNetworkId;3119    readonly id: U8aFixed;3120  } & Struct;3121  readonly isAccountIndex64: boolean;3122  readonly asAccountIndex64: {3123    readonly network: XcmV0JunctionNetworkId;3124    readonly index: Compact<u64>;3125  } & Struct;3126  readonly isAccountKey20: boolean;3127  readonly asAccountKey20: {3128    readonly network: XcmV0JunctionNetworkId;3129    readonly key: U8aFixed;3130  } & Struct;3131  readonly isPalletInstance: boolean;3132  readonly asPalletInstance: u8;3133  readonly isGeneralIndex: boolean;3134  readonly asGeneralIndex: Compact<u128>;3135  readonly isGeneralKey: boolean;3136  readonly asGeneralKey: Bytes;3137  readonly isOnlyChild: boolean;3138  readonly isPlurality: boolean;3139  readonly asPlurality: {3140    readonly id: XcmV0JunctionBodyId;3141    readonly part: XcmV0JunctionBodyPart;3142  } & Struct;3143  readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';3144}31453146/** @name XcmV0JunctionBodyId */3147export interface XcmV0JunctionBodyId extends Enum {3148  readonly isUnit: boolean;3149  readonly isNamed: boolean;3150  readonly asNamed: Bytes;3151  readonly isIndex: boolean;3152  readonly asIndex: Compact<u32>;3153  readonly isExecutive: boolean;3154  readonly isTechnical: boolean;3155  readonly isLegislative: boolean;3156  readonly isJudicial: boolean;3157  readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';3158}31593160/** @name XcmV0JunctionBodyPart */3161export interface XcmV0JunctionBodyPart extends Enum {3162  readonly isVoice: boolean;3163  readonly isMembers: boolean;3164  readonly asMembers: {3165    readonly count: Compact<u32>;3166  } & Struct;3167  readonly isFraction: boolean;3168  readonly asFraction: {3169    readonly nom: Compact<u32>;3170    readonly denom: Compact<u32>;3171  } & Struct;3172  readonly isAtLeastProportion: boolean;3173  readonly asAtLeastProportion: {3174    readonly nom: Compact<u32>;3175    readonly denom: Compact<u32>;3176  } & Struct;3177  readonly isMoreThanProportion: boolean;3178  readonly asMoreThanProportion: {3179    readonly nom: Compact<u32>;3180    readonly denom: Compact<u32>;3181  } & Struct;3182  readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';3183}31843185/** @name XcmV0JunctionNetworkId */3186export interface XcmV0JunctionNetworkId extends Enum {3187  readonly isAny: boolean;3188  readonly isNamed: boolean;3189  readonly asNamed: Bytes;3190  readonly isPolkadot: boolean;3191  readonly isKusama: boolean;3192  readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';3193}31943195/** @name XcmV0MultiAsset */3196export interface XcmV0MultiAsset extends Enum {3197  readonly isNone: boolean;3198  readonly isAll: boolean;3199  readonly isAllFungible: boolean;3200  readonly isAllNonFungible: boolean;3201  readonly isAllAbstractFungible: boolean;3202  readonly asAllAbstractFungible: {3203    readonly id: Bytes;3204  } & Struct;3205  readonly isAllAbstractNonFungible: boolean;3206  readonly asAllAbstractNonFungible: {3207    readonly class: Bytes;3208  } & Struct;3209  readonly isAllConcreteFungible: boolean;3210  readonly asAllConcreteFungible: {3211    readonly id: XcmV0MultiLocation;3212  } & Struct;3213  readonly isAllConcreteNonFungible: boolean;3214  readonly asAllConcreteNonFungible: {3215    readonly class: XcmV0MultiLocation;3216  } & Struct;3217  readonly isAbstractFungible: boolean;3218  readonly asAbstractFungible: {3219    readonly id: Bytes;3220    readonly amount: Compact<u128>;3221  } & Struct;3222  readonly isAbstractNonFungible: boolean;3223  readonly asAbstractNonFungible: {3224    readonly class: Bytes;3225    readonly instance: XcmV1MultiassetAssetInstance;3226  } & Struct;3227  readonly isConcreteFungible: boolean;3228  readonly asConcreteFungible: {3229    readonly id: XcmV0MultiLocation;3230    readonly amount: Compact<u128>;3231  } & Struct;3232  readonly isConcreteNonFungible: boolean;3233  readonly asConcreteNonFungible: {3234    readonly class: XcmV0MultiLocation;3235    readonly instance: XcmV1MultiassetAssetInstance;3236  } & Struct;3237  readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';3238}32393240/** @name XcmV0MultiLocation */3241export interface XcmV0MultiLocation extends Enum {3242  readonly isNull: boolean;3243  readonly isX1: boolean;3244  readonly asX1: XcmV0Junction;3245  readonly isX2: boolean;3246  readonly asX2: ITuple<[XcmV0Junction, XcmV0Junction]>;3247  readonly isX3: boolean;3248  readonly asX3: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3249  readonly isX4: boolean;3250  readonly asX4: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3251  readonly isX5: boolean;3252  readonly asX5: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3253  readonly isX6: boolean;3254  readonly asX6: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3255  readonly isX7: boolean;3256  readonly asX7: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3257  readonly isX8: boolean;3258  readonly asX8: ITuple<[XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction, XcmV0Junction]>;3259  readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';3260}32613262/** @name XcmV0Order */3263export interface XcmV0Order extends Enum {3264  readonly isNull: boolean;3265  readonly isDepositAsset: boolean;3266  readonly asDepositAsset: {3267    readonly assets: Vec<XcmV0MultiAsset>;3268    readonly dest: XcmV0MultiLocation;3269  } & Struct;3270  readonly isDepositReserveAsset: boolean;3271  readonly asDepositReserveAsset: {3272    readonly assets: Vec<XcmV0MultiAsset>;3273    readonly dest: XcmV0MultiLocation;3274    readonly effects: Vec<XcmV0Order>;3275  } & Struct;3276  readonly isExchangeAsset: boolean;3277  readonly asExchangeAsset: {3278    readonly give: Vec<XcmV0MultiAsset>;3279    readonly receive: Vec<XcmV0MultiAsset>;3280  } & Struct;3281  readonly isInitiateReserveWithdraw: boolean;3282  readonly asInitiateReserveWithdraw: {3283    readonly assets: Vec<XcmV0MultiAsset>;3284    readonly reserve: XcmV0MultiLocation;3285    readonly effects: Vec<XcmV0Order>;3286  } & Struct;3287  readonly isInitiateTeleport: boolean;3288  readonly asInitiateTeleport: {3289    readonly assets: Vec<XcmV0MultiAsset>;3290    readonly dest: XcmV0MultiLocation;3291    readonly effects: Vec<XcmV0Order>;3292  } & Struct;3293  readonly isQueryHolding: boolean;3294  readonly asQueryHolding: {3295    readonly queryId: Compact<u64>;3296    readonly dest: XcmV0MultiLocation;3297    readonly assets: Vec<XcmV0MultiAsset>;3298  } & Struct;3299  readonly isBuyExecution: boolean;3300  readonly asBuyExecution: {3301    readonly fees: XcmV0MultiAsset;3302    readonly weight: u64;3303    readonly debt: u64;3304    readonly haltOnError: bool;3305    readonly xcm: Vec<XcmV0Xcm>;3306  } & Struct;3307  readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';3308}33093310/** @name XcmV0OriginKind */3311export interface XcmV0OriginKind extends Enum {3312  readonly isNative: boolean;3313  readonly isSovereignAccount: boolean;3314  readonly isSuperuser: boolean;3315  readonly isXcm: boolean;3316  readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';3317}33183319/** @name XcmV0Response */3320export interface XcmV0Response extends Enum {3321  readonly isAssets: boolean;3322  readonly asAssets: Vec<XcmV0MultiAsset>;3323  readonly type: 'Assets';3324}33253326/** @name XcmV0Xcm */3327export interface XcmV0Xcm extends Enum {3328  readonly isWithdrawAsset: boolean;3329  readonly asWithdrawAsset: {3330    readonly assets: Vec<XcmV0MultiAsset>;3331    readonly effects: Vec<XcmV0Order>;3332  } & Struct;3333  readonly isReserveAssetDeposit: boolean;3334  readonly asReserveAssetDeposit: {3335    readonly assets: Vec<XcmV0MultiAsset>;3336    readonly effects: Vec<XcmV0Order>;3337  } & Struct;3338  readonly isTeleportAsset: boolean;3339  readonly asTeleportAsset: {3340    readonly assets: Vec<XcmV0MultiAsset>;3341    readonly effects: Vec<XcmV0Order>;3342  } & Struct;3343  readonly isQueryResponse: boolean;3344  readonly asQueryResponse: {3345    readonly queryId: Compact<u64>;3346    readonly response: XcmV0Response;3347  } & Struct;3348  readonly isTransferAsset: boolean;3349  readonly asTransferAsset: {3350    readonly assets: Vec<XcmV0MultiAsset>;3351    readonly dest: XcmV0MultiLocation;3352  } & Struct;3353  readonly isTransferReserveAsset: boolean;3354  readonly asTransferReserveAsset: {3355    readonly assets: Vec<XcmV0MultiAsset>;3356    readonly dest: XcmV0MultiLocation;3357    readonly effects: Vec<XcmV0Order>;3358  } & Struct;3359  readonly isTransact: boolean;3360  readonly asTransact: {3361    readonly originType: XcmV0OriginKind;3362    readonly requireWeightAtMost: u64;3363    readonly call: XcmDoubleEncoded;3364  } & Struct;3365  readonly isHrmpNewChannelOpenRequest: boolean;3366  readonly asHrmpNewChannelOpenRequest: {3367    readonly sender: Compact<u32>;3368    readonly maxMessageSize: Compact<u32>;3369    readonly maxCapacity: Compact<u32>;3370  } & Struct;3371  readonly isHrmpChannelAccepted: boolean;3372  readonly asHrmpChannelAccepted: {3373    readonly recipient: Compact<u32>;3374  } & Struct;3375  readonly isHrmpChannelClosing: boolean;3376  readonly asHrmpChannelClosing: {3377    readonly initiator: Compact<u32>;3378    readonly sender: Compact<u32>;3379    readonly recipient: Compact<u32>;3380  } & Struct;3381  readonly isRelayedFrom: boolean;3382  readonly asRelayedFrom: {3383    readonly who: XcmV0MultiLocation;3384    readonly message: XcmV0Xcm;3385  } & Struct;3386  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';3387}33883389/** @name XcmV1Junction */3390export interface XcmV1Junction extends Enum {3391  readonly isParachain: boolean;3392  readonly asParachain: Compact<u32>;3393  readonly isAccountId32: boolean;3394  readonly asAccountId32: {3395    readonly network: XcmV0JunctionNetworkId;3396    readonly id: U8aFixed;3397  } & Struct;3398  readonly isAccountIndex64: boolean;3399  readonly asAccountIndex64: {3400    readonly network: XcmV0JunctionNetworkId;3401    readonly index: Compact<u64>;3402  } & Struct;3403  readonly isAccountKey20: boolean;3404  readonly asAccountKey20: {3405    readonly network: XcmV0JunctionNetworkId;3406    readonly key: U8aFixed;3407  } & Struct;3408  readonly isPalletInstance: boolean;3409  readonly asPalletInstance: u8;3410  readonly isGeneralIndex: boolean;3411  readonly asGeneralIndex: Compact<u128>;3412  readonly isGeneralKey: boolean;3413  readonly asGeneralKey: Bytes;3414  readonly isOnlyChild: boolean;3415  readonly isPlurality: boolean;3416  readonly asPlurality: {3417    readonly id: XcmV0JunctionBodyId;3418    readonly part: XcmV0JunctionBodyPart;3419  } & Struct;3420  readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';3421}34223423/** @name XcmV1MultiAsset */3424export interface XcmV1MultiAsset extends Struct {3425  readonly id: XcmV1MultiassetAssetId;3426  readonly fun: XcmV1MultiassetFungibility;3427}34283429/** @name XcmV1MultiassetAssetId */3430export interface XcmV1MultiassetAssetId extends Enum {3431  readonly isConcrete: boolean;3432  readonly asConcrete: XcmV1MultiLocation;3433  readonly isAbstract: boolean;3434  readonly asAbstract: Bytes;3435  readonly type: 'Concrete' | 'Abstract';3436}34373438/** @name XcmV1MultiassetAssetInstance */3439export interface XcmV1MultiassetAssetInstance extends Enum {3440  readonly isUndefined: boolean;3441  readonly isIndex: boolean;3442  readonly asIndex: Compact<u128>;3443  readonly isArray4: boolean;3444  readonly asArray4: U8aFixed;3445  readonly isArray8: boolean;3446  readonly asArray8: U8aFixed;3447  readonly isArray16: boolean;3448  readonly asArray16: U8aFixed;3449  readonly isArray32: boolean;3450  readonly asArray32: U8aFixed;3451  readonly isBlob: boolean;3452  readonly asBlob: Bytes;3453  readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';3454}34553456/** @name XcmV1MultiassetFungibility */3457export interface XcmV1MultiassetFungibility extends Enum {3458  readonly isFungible: boolean;3459  readonly asFungible: Compact<u128>;3460  readonly isNonFungible: boolean;3461  readonly asNonFungible: XcmV1MultiassetAssetInstance;3462  readonly type: 'Fungible' | 'NonFungible';3463}34643465/** @name XcmV1MultiassetMultiAssetFilter */3466export interface XcmV1MultiassetMultiAssetFilter extends Enum {3467  readonly isDefinite: boolean;3468  readonly asDefinite: XcmV1MultiassetMultiAssets;3469  readonly isWild: boolean;3470  readonly asWild: XcmV1MultiassetWildMultiAsset;3471  readonly type: 'Definite' | 'Wild';3472}34733474/** @name XcmV1MultiassetMultiAssets */3475export interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}34763477/** @name XcmV1MultiassetWildFungibility */3478export interface XcmV1MultiassetWildFungibility extends Enum {3479  readonly isFungible: boolean;3480  readonly isNonFungible: boolean;3481  readonly type: 'Fungible' | 'NonFungible';3482}34833484/** @name XcmV1MultiassetWildMultiAsset */3485export interface XcmV1MultiassetWildMultiAsset extends Enum {3486  readonly isAll: boolean;3487  readonly isAllOf: boolean;3488  readonly asAllOf: {3489    readonly id: XcmV1MultiassetAssetId;3490    readonly fun: XcmV1MultiassetWildFungibility;3491  } & Struct;3492  readonly type: 'All' | 'AllOf';3493}34943495/** @name XcmV1MultiLocation */3496export interface XcmV1MultiLocation extends Struct {3497  readonly parents: u8;3498  readonly interior: XcmV1MultilocationJunctions;3499}35003501/** @name XcmV1MultilocationJunctions */3502export interface XcmV1MultilocationJunctions extends Enum {3503  readonly isHere: boolean;3504  readonly isX1: boolean;3505  readonly asX1: XcmV1Junction;3506  readonly isX2: boolean;3507  readonly asX2: ITuple<[XcmV1Junction, XcmV1Junction]>;3508  readonly isX3: boolean;3509  readonly asX3: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3510  readonly isX4: boolean;3511  readonly asX4: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3512  readonly isX5: boolean;3513  readonly asX5: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3514  readonly isX6: boolean;3515  readonly asX6: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3516  readonly isX7: boolean;3517  readonly asX7: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3518  readonly isX8: boolean;3519  readonly asX8: ITuple<[XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction, XcmV1Junction]>;3520  readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';3521}35223523/** @name XcmV1Order */3524export interface XcmV1Order extends Enum {3525  readonly isNoop: boolean;3526  readonly isDepositAsset: boolean;3527  readonly asDepositAsset: {3528    readonly assets: XcmV1MultiassetMultiAssetFilter;3529    readonly maxAssets: u32;3530    readonly beneficiary: XcmV1MultiLocation;3531  } & Struct;3532  readonly isDepositReserveAsset: boolean;3533  readonly asDepositReserveAsset: {3534    readonly assets: XcmV1MultiassetMultiAssetFilter;3535    readonly maxAssets: u32;3536    readonly dest: XcmV1MultiLocation;3537    readonly effects: Vec<XcmV1Order>;3538  } & Struct;3539  readonly isExchangeAsset: boolean;3540  readonly asExchangeAsset: {3541    readonly give: XcmV1MultiassetMultiAssetFilter;3542    readonly receive: XcmV1MultiassetMultiAssets;3543  } & Struct;3544  readonly isInitiateReserveWithdraw: boolean;3545  readonly asInitiateReserveWithdraw: {3546    readonly assets: XcmV1MultiassetMultiAssetFilter;3547    readonly reserve: XcmV1MultiLocation;3548    readonly effects: Vec<XcmV1Order>;3549  } & Struct;3550  readonly isInitiateTeleport: boolean;3551  readonly asInitiateTeleport: {3552    readonly assets: XcmV1MultiassetMultiAssetFilter;3553    readonly dest: XcmV1MultiLocation;3554    readonly effects: Vec<XcmV1Order>;3555  } & Struct;3556  readonly isQueryHolding: boolean;3557  readonly asQueryHolding: {3558    readonly queryId: Compact<u64>;3559    readonly dest: XcmV1MultiLocation;3560    readonly assets: XcmV1MultiassetMultiAssetFilter;3561  } & Struct;3562  readonly isBuyExecution: boolean;3563  readonly asBuyExecution: {3564    readonly fees: XcmV1MultiAsset;3565    readonly weight: u64;3566    readonly debt: u64;3567    readonly haltOnError: bool;3568    readonly instructions: Vec<XcmV1Xcm>;3569  } & Struct;3570  readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';3571}35723573/** @name XcmV1Response */3574export interface XcmV1Response extends Enum {3575  readonly isAssets: boolean;3576  readonly asAssets: XcmV1MultiassetMultiAssets;3577  readonly isVersion: boolean;3578  readonly asVersion: u32;3579  readonly type: 'Assets' | 'Version';3580}35813582/** @name XcmV1Xcm */3583export interface XcmV1Xcm extends Enum {3584  readonly isWithdrawAsset: boolean;3585  readonly asWithdrawAsset: {3586    readonly assets: XcmV1MultiassetMultiAssets;3587    readonly effects: Vec<XcmV1Order>;3588  } & Struct;3589  readonly isReserveAssetDeposited: boolean;3590  readonly asReserveAssetDeposited: {3591    readonly assets: XcmV1MultiassetMultiAssets;3592    readonly effects: Vec<XcmV1Order>;3593  } & Struct;3594  readonly isReceiveTeleportedAsset: boolean;3595  readonly asReceiveTeleportedAsset: {3596    readonly assets: XcmV1MultiassetMultiAssets;3597    readonly effects: Vec<XcmV1Order>;3598  } & Struct;3599  readonly isQueryResponse: boolean;3600  readonly asQueryResponse: {3601    readonly queryId: Compact<u64>;3602    readonly response: XcmV1Response;3603  } & Struct;3604  readonly isTransferAsset: boolean;3605  readonly asTransferAsset: {3606    readonly assets: XcmV1MultiassetMultiAssets;3607    readonly beneficiary: XcmV1MultiLocation;3608  } & Struct;3609  readonly isTransferReserveAsset: boolean;3610  readonly asTransferReserveAsset: {3611    readonly assets: XcmV1MultiassetMultiAssets;3612    readonly dest: XcmV1MultiLocation;3613    readonly effects: Vec<XcmV1Order>;3614  } & Struct;3615  readonly isTransact: boolean;3616  readonly asTransact: {3617    readonly originType: XcmV0OriginKind;3618    readonly requireWeightAtMost: u64;3619    readonly call: XcmDoubleEncoded;3620  } & Struct;3621  readonly isHrmpNewChannelOpenRequest: boolean;3622  readonly asHrmpNewChannelOpenRequest: {3623    readonly sender: Compact<u32>;3624    readonly maxMessageSize: Compact<u32>;3625    readonly maxCapacity: Compact<u32>;3626  } & Struct;3627  readonly isHrmpChannelAccepted: boolean;3628  readonly asHrmpChannelAccepted: {3629    readonly recipient: Compact<u32>;3630  } & Struct;3631  readonly isHrmpChannelClosing: boolean;3632  readonly asHrmpChannelClosing: {3633    readonly initiator: Compact<u32>;3634    readonly sender: Compact<u32>;3635    readonly recipient: Compact<u32>;3636  } & Struct;3637  readonly isRelayedFrom: boolean;3638  readonly asRelayedFrom: {3639    readonly who: XcmV1MultilocationJunctions;3640    readonly message: XcmV1Xcm;3641  } & Struct;3642  readonly isSubscribeVersion: boolean;3643  readonly asSubscribeVersion: {3644    readonly queryId: Compact<u64>;3645    readonly maxResponseWeight: Compact<u64>;3646  } & Struct;3647  readonly isUnsubscribeVersion: boolean;3648  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';3649}36503651/** @name XcmV2Instruction */3652export interface XcmV2Instruction extends Enum {3653  readonly isWithdrawAsset: boolean;3654  readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;3655  readonly isReserveAssetDeposited: boolean;3656  readonly asReserveAssetDeposited: XcmV1MultiassetMultiAssets;3657  readonly isReceiveTeleportedAsset: boolean;3658  readonly asReceiveTeleportedAsset: XcmV1MultiassetMultiAssets;3659  readonly isQueryResponse: boolean;3660  readonly asQueryResponse: {3661    readonly queryId: Compact<u64>;3662    readonly response: XcmV2Response;3663    readonly maxWeight: Compact<u64>;3664  } & Struct;3665  readonly isTransferAsset: boolean;3666  readonly asTransferAsset: {3667    readonly assets: XcmV1MultiassetMultiAssets;3668    readonly beneficiary: XcmV1MultiLocation;3669  } & Struct;3670  readonly isTransferReserveAsset: boolean;3671  readonly asTransferReserveAsset: {3672    readonly assets: XcmV1MultiassetMultiAssets;3673    readonly dest: XcmV1MultiLocation;3674    readonly xcm: XcmV2Xcm;3675  } & Struct;3676  readonly isTransact: boolean;3677  readonly asTransact: {3678    readonly originType: XcmV0OriginKind;3679    readonly requireWeightAtMost: Compact<u64>;3680    readonly call: XcmDoubleEncoded;3681  } & Struct;3682  readonly isHrmpNewChannelOpenRequest: boolean;3683  readonly asHrmpNewChannelOpenRequest: {3684    readonly sender: Compact<u32>;3685    readonly maxMessageSize: Compact<u32>;3686    readonly maxCapacity: Compact<u32>;3687  } & Struct;3688  readonly isHrmpChannelAccepted: boolean;3689  readonly asHrmpChannelAccepted: {3690    readonly recipient: Compact<u32>;3691  } & Struct;3692  readonly isHrmpChannelClosing: boolean;3693  readonly asHrmpChannelClosing: {3694    readonly initiator: Compact<u32>;3695    readonly sender: Compact<u32>;3696    readonly recipient: Compact<u32>;3697  } & Struct;3698  readonly isClearOrigin: boolean;3699  readonly isDescendOrigin: boolean;3700  readonly asDescendOrigin: XcmV1MultilocationJunctions;3701  readonly isReportError: boolean;3702  readonly asReportError: {3703    readonly queryId: Compact<u64>;3704    readonly dest: XcmV1MultiLocation;3705    readonly maxResponseWeight: Compact<u64>;3706  } & Struct;3707  readonly isDepositAsset: boolean;3708  readonly asDepositAsset: {3709    readonly assets: XcmV1MultiassetMultiAssetFilter;3710    readonly maxAssets: Compact<u32>;3711    readonly beneficiary: XcmV1MultiLocation;3712  } & Struct;3713  readonly isDepositReserveAsset: boolean;3714  readonly asDepositReserveAsset: {3715    readonly assets: XcmV1MultiassetMultiAssetFilter;3716    readonly maxAssets: Compact<u32>;3717    readonly dest: XcmV1MultiLocation;3718    readonly xcm: XcmV2Xcm;3719  } & Struct;3720  readonly isExchangeAsset: boolean;3721  readonly asExchangeAsset: {3722    readonly give: XcmV1MultiassetMultiAssetFilter;3723    readonly receive: XcmV1MultiassetMultiAssets;3724  } & Struct;3725  readonly isInitiateReserveWithdraw: boolean;3726  readonly asInitiateReserveWithdraw: {3727    readonly assets: XcmV1MultiassetMultiAssetFilter;3728    readonly reserve: XcmV1MultiLocation;3729    readonly xcm: XcmV2Xcm;3730  } & Struct;3731  readonly isInitiateTeleport: boolean;3732  readonly asInitiateTeleport: {3733    readonly assets: XcmV1MultiassetMultiAssetFilter;3734    readonly dest: XcmV1MultiLocation;3735    readonly xcm: XcmV2Xcm;3736  } & Struct;3737  readonly isQueryHolding: boolean;3738  readonly asQueryHolding: {3739    readonly queryId: Compact<u64>;3740    readonly dest: XcmV1MultiLocation;3741    readonly assets: XcmV1MultiassetMultiAssetFilter;3742    readonly maxResponseWeight: Compact<u64>;3743  } & Struct;3744  readonly isBuyExecution: boolean;3745  readonly asBuyExecution: {3746    readonly fees: XcmV1MultiAsset;3747    readonly weightLimit: XcmV2WeightLimit;3748  } & Struct;3749  readonly isRefundSurplus: boolean;3750  readonly isSetErrorHandler: boolean;3751  readonly asSetErrorHandler: XcmV2Xcm;3752  readonly isSetAppendix: boolean;3753  readonly asSetAppendix: XcmV2Xcm;3754  readonly isClearError: boolean;3755  readonly isClaimAsset: boolean;3756  readonly asClaimAsset: {3757    readonly assets: XcmV1MultiassetMultiAssets;3758    readonly ticket: XcmV1MultiLocation;3759  } & Struct;3760  readonly isTrap: boolean;3761  readonly asTrap: Compact<u64>;3762  readonly isSubscribeVersion: boolean;3763  readonly asSubscribeVersion: {3764    readonly queryId: Compact<u64>;3765    readonly maxResponseWeight: Compact<u64>;3766  } & Struct;3767  readonly isUnsubscribeVersion: boolean;3768  readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';3769}37703771/** @name XcmV2Response */3772export interface XcmV2Response extends Enum {3773  readonly isNull: boolean;3774  readonly isAssets: boolean;3775  readonly asAssets: XcmV1MultiassetMultiAssets;3776  readonly isExecutionResult: boolean;3777  readonly asExecutionResult: Option<ITuple<[u32, XcmV2TraitsError]>>;3778  readonly isVersion: boolean;3779  readonly asVersion: u32;3780  readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';3781}37823783/** @name XcmV2TraitsError */3784export interface XcmV2TraitsError extends Enum {3785  readonly isOverflow: boolean;3786  readonly isUnimplemented: boolean;3787  readonly isUntrustedReserveLocation: boolean;3788  readonly isUntrustedTeleportLocation: boolean;3789  readonly isMultiLocationFull: boolean;3790  readonly isMultiLocationNotInvertible: boolean;3791  readonly isBadOrigin: boolean;3792  readonly isInvalidLocation: boolean;3793  readonly isAssetNotFound: boolean;3794  readonly isFailedToTransactAsset: boolean;3795  readonly isNotWithdrawable: boolean;3796  readonly isLocationCannotHold: boolean;3797  readonly isExceedsMaxMessageSize: boolean;3798  readonly isDestinationUnsupported: boolean;3799  readonly isTransport: boolean;3800  readonly isUnroutable: boolean;3801  readonly isUnknownClaim: boolean;3802  readonly isFailedToDecode: boolean;3803  readonly isMaxWeightInvalid: boolean;3804  readonly isNotHoldingFees: boolean;3805  readonly isTooExpensive: boolean;3806  readonly isTrap: boolean;3807  readonly asTrap: u64;3808  readonly isUnhandledXcmVersion: boolean;3809  readonly isWeightLimitReached: boolean;3810  readonly asWeightLimitReached: u64;3811  readonly isBarrier: boolean;3812  readonly isWeightNotComputable: boolean;3813  readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';3814}38153816/** @name XcmV2TraitsOutcome */3817export interface XcmV2TraitsOutcome extends Enum {3818  readonly isComplete: boolean;3819  readonly asComplete: u64;3820  readonly isIncomplete: boolean;3821  readonly asIncomplete: ITuple<[u64, XcmV2TraitsError]>;3822  readonly isError: boolean;3823  readonly asError: XcmV2TraitsError;3824  readonly type: 'Complete' | 'Incomplete' | 'Error';3825}38263827/** @name XcmV2WeightLimit */3828export interface XcmV2WeightLimit extends Enum {3829  readonly isUnlimited: boolean;3830  readonly isLimited: boolean;3831  readonly asLimited: Compact<u64>;3832  readonly type: 'Unlimited' | 'Limited';3833}38343835/** @name XcmV2Xcm */3836export interface XcmV2Xcm extends Vec<XcmV2Instruction> {}38373838/** @name XcmVersionedMultiAsset */3839export interface XcmVersionedMultiAsset extends Enum {3840  readonly isV0: boolean;3841  readonly asV0: XcmV0MultiAsset;3842  readonly isV1: boolean;3843  readonly asV1: XcmV1MultiAsset;3844  readonly type: 'V0' | 'V1';3845}38463847/** @name XcmVersionedMultiAssets */3848export interface XcmVersionedMultiAssets extends Enum {3849  readonly isV0: boolean;3850  readonly asV0: Vec<XcmV0MultiAsset>;3851  readonly isV1: boolean;3852  readonly asV1: XcmV1MultiassetMultiAssets;3853  readonly type: 'V0' | 'V1';3854}38553856/** @name XcmVersionedMultiLocation */3857export interface XcmVersionedMultiLocation extends Enum {3858  readonly isV0: boolean;3859  readonly asV0: XcmV0MultiLocation;3860  readonly isV1: boolean;3861  readonly asV1: XcmV1MultiLocation;3862  readonly type: 'V0' | 'V1';3863}38643865/** @name XcmVersionedXcm */3866export interface XcmVersionedXcm extends Enum {3867  readonly isV0: boolean;3868  readonly asV0: XcmV0Xcm;3869  readonly isV1: boolean;3870  readonly asV1: XcmV1Xcm;3871  readonly isV2: boolean;3872  readonly asV2: XcmV2Xcm;3873  readonly type: 'V0' | 'V1' | 'V2';3874}38753876export type PHANTOM_DEFAULT = 'default';
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1004,8 +1004,44 @@
     }
   },
   /**
-   * Lookup93: pallet_common::pallet::Event<T>
+   * Lookup93: pallet_unique_scheduler::pallet::Event<T>
    **/
+  PalletUniqueSchedulerEvent: {
+    _enum: {
+      Scheduled: {
+        when: 'u32',
+        index: 'u32',
+      },
+      Canceled: {
+        when: 'u32',
+        index: 'u32',
+      },
+      PriorityChanged: {
+        when: 'u32',
+        index: 'u32',
+        priority: 'u8',
+      },
+      Dispatched: {
+        task: '(u32,u32)',
+        id: 'Option<[u8;16]>',
+        result: 'Result<Null, SpRuntimeDispatchError>',
+      },
+      CallLookupFailed: {
+        task: '(u32,u32)',
+        id: 'Option<[u8;16]>',
+        error: 'FrameSupportScheduleLookupError'
+      }
+    }
+  },
+  /**
+   * Lookup96: frame_support::traits::schedule::LookupError
+   **/
+  FrameSupportScheduleLookupError: {
+    _enum: ['Unknown', 'BadFormat']
+  },
+  /**
+   * Lookup97: pallet_common::pallet::Event<T>
+   **/
   PalletCommonEvent: {
     _enum: {
       CollectionCreated: '(u32,u8,AccountId32)',
@@ -1022,7 +1058,7 @@
     }
   },
   /**
-   * Lookup96: pallet_structure::pallet::Event<T>
+   * Lookup100: pallet_structure::pallet::Event<T>
    **/
   PalletStructureEvent: {
     _enum: {
@@ -1030,7 +1066,7 @@
     }
   },
   /**
-   * Lookup97: pallet_rmrk_core::pallet::Event<T>
+   * Lookup101: pallet_rmrk_core::pallet::Event<T>
    **/
   PalletRmrkCoreEvent: {
     _enum: {
@@ -1107,7 +1143,7 @@
     }
   },
   /**
-   * Lookup98: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+   * Lookup102: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
    **/
   RmrkTraitsNftAccountIdOrCollectionNftTuple: {
     _enum: {
@@ -1116,7 +1152,7 @@
     }
   },
   /**
-   * Lookup103: pallet_rmrk_equip::pallet::Event<T>
+   * Lookup107: pallet_rmrk_equip::pallet::Event<T>
    **/
   PalletRmrkEquipEvent: {
     _enum: {
@@ -1131,7 +1167,7 @@
     }
   },
   /**
-   * Lookup104: pallet_app_promotion::pallet::Event<T>
+   * Lookup108: pallet_app_promotion::pallet::Event<T>
    **/
   PalletAppPromotionEvent: {
     _enum: {
@@ -1142,7 +1178,7 @@
     }
   },
   /**
-   * Lookup105: pallet_foreign_assets::module::Event<T>
+   * Lookup109: pallet_foreign_assets::module::Event<T>
    **/
   PalletForeignAssetsModuleEvent: {
     _enum: {
@@ -1167,7 +1203,7 @@
     }
   },
   /**
-   * Lookup106: pallet_foreign_assets::module::AssetMetadata<Balance>
+   * Lookup110: pallet_foreign_assets::module::AssetMetadata<Balance>
    **/
   PalletForeignAssetsModuleAssetMetadata: {
     name: 'Bytes',
@@ -1176,7 +1212,7 @@
     minimalBalance: 'u128'
   },
   /**
-   * Lookup107: pallet_evm::pallet::Event<T>
+   * Lookup111: pallet_evm::pallet::Event<T>
    **/
   PalletEvmEvent: {
     _enum: {
@@ -1190,7 +1226,7 @@
     }
   },
   /**
-   * Lookup108: ethereum::log::Log
+   * Lookup112: ethereum::log::Log
    **/
   EthereumLog: {
     address: 'H160',
@@ -1198,7 +1234,7 @@
     data: 'Bytes'
   },
   /**
-   * Lookup112: pallet_ethereum::pallet::Event
+   * Lookup116: pallet_ethereum::pallet::Event
    **/
   PalletEthereumEvent: {
     _enum: {
@@ -1206,7 +1242,7 @@
     }
   },
   /**
-   * Lookup113: evm_core::error::ExitReason
+   * Lookup117: evm_core::error::ExitReason
    **/
   EvmCoreErrorExitReason: {
     _enum: {
@@ -1217,13 +1253,13 @@
     }
   },
   /**
-   * Lookup114: evm_core::error::ExitSucceed
+   * Lookup118: evm_core::error::ExitSucceed
    **/
   EvmCoreErrorExitSucceed: {
     _enum: ['Stopped', 'Returned', 'Suicided']
   },
   /**
-   * Lookup115: evm_core::error::ExitError
+   * Lookup119: evm_core::error::ExitError
    **/
   EvmCoreErrorExitError: {
     _enum: {
@@ -1245,13 +1281,13 @@
     }
   },
   /**
-   * Lookup118: evm_core::error::ExitRevert
+   * Lookup122: evm_core::error::ExitRevert
    **/
   EvmCoreErrorExitRevert: {
     _enum: ['Reverted']
   },
   /**
-   * Lookup119: evm_core::error::ExitFatal
+   * Lookup123: evm_core::error::ExitFatal
    **/
   EvmCoreErrorExitFatal: {
     _enum: {
@@ -1262,7 +1298,7 @@
     }
   },
   /**
-   * Lookup120: pallet_evm_contract_helpers::pallet::Event<T>
+   * Lookup124: pallet_evm_contract_helpers::pallet::Event<T>
    **/
   PalletEvmContractHelpersEvent: {
     _enum: {
@@ -1272,8 +1308,20 @@
     }
   },
   /**
-   * Lookup121: frame_system::Phase
+   * Lookup125: pallet_maintenance::pallet::Event<T>
    **/
+  PalletMaintenanceEvent: {
+    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']
+  },
+  /**
+   * Lookup126: pallet_test_utils::pallet::Event<T>
+   **/
+  PalletTestUtilsEvent: {
+    _enum: ['ValueIsSet', 'ShouldRollback']
+  },
+  /**
+   * Lookup127: frame_system::Phase
+   **/
   FrameSystemPhase: {
     _enum: {
       ApplyExtrinsic: 'u32',
@@ -1282,14 +1330,14 @@
     }
   },
   /**
-   * Lookup124: frame_system::LastRuntimeUpgradeInfo
+   * Lookup129: frame_system::LastRuntimeUpgradeInfo
    **/
   FrameSystemLastRuntimeUpgradeInfo: {
     specVersion: 'Compact<u32>',
     specName: 'Text'
   },
   /**
-   * Lookup125: frame_system::pallet::Call<T>
+   * Lookup130: frame_system::pallet::Call<T>
    **/
   FrameSystemCall: {
     _enum: {
@@ -1327,7 +1375,7 @@
     }
   },
   /**
-   * Lookup130: frame_system::limits::BlockWeights
+   * Lookup135: frame_system::limits::BlockWeights
    **/
   FrameSystemLimitsBlockWeights: {
     baseBlock: 'Weight',
@@ -1335,7 +1383,7 @@
     perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'
   },
   /**
-   * Lookup131: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>
+   * Lookup136: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>
    **/
   FrameSupportDispatchPerDispatchClassWeightsPerClass: {
     normal: 'FrameSystemLimitsWeightsPerClass',
@@ -1343,7 +1391,7 @@
     mandatory: 'FrameSystemLimitsWeightsPerClass'
   },
   /**
-   * Lookup132: frame_system::limits::WeightsPerClass
+   * Lookup137: frame_system::limits::WeightsPerClass
    **/
   FrameSystemLimitsWeightsPerClass: {
     baseExtrinsic: 'Weight',
@@ -1352,13 +1400,13 @@
     reserved: 'Option<Weight>'
   },
   /**
-   * Lookup134: frame_system::limits::BlockLength
+   * Lookup139: frame_system::limits::BlockLength
    **/
   FrameSystemLimitsBlockLength: {
     max: 'FrameSupportDispatchPerDispatchClassU32'
   },
   /**
-   * Lookup135: frame_support::dispatch::PerDispatchClass<T>
+   * Lookup140: frame_support::dispatch::PerDispatchClass<T>
    **/
   FrameSupportDispatchPerDispatchClassU32: {
     normal: 'u32',
@@ -1366,14 +1414,14 @@
     mandatory: 'u32'
   },
   /**
-   * Lookup136: sp_weights::RuntimeDbWeight
+   * Lookup141: sp_weights::RuntimeDbWeight
    **/
   SpWeightsRuntimeDbWeight: {
     read: 'u64',
     write: 'u64'
   },
   /**
-   * Lookup137: sp_version::RuntimeVersion
+   * Lookup142: sp_version::RuntimeVersion
    **/
   SpVersionRuntimeVersion: {
     specName: 'Text',
@@ -1386,13 +1434,13 @@
     stateVersion: 'u8'
   },
   /**
-   * Lookup142: frame_system::pallet::Error<T>
+   * Lookup147: frame_system::pallet::Error<T>
    **/
   FrameSystemError: {
     _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
   },
   /**
-   * Lookup143: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>
+   * Lookup148: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>
    **/
   PolkadotPrimitivesV2PersistedValidationData: {
     parentHead: 'Bytes',
@@ -1401,19 +1449,19 @@
     maxPovSize: 'u32'
   },
   /**
-   * Lookup146: polkadot_primitives::v2::UpgradeRestriction
+   * Lookup151: polkadot_primitives::v2::UpgradeRestriction
    **/
   PolkadotPrimitivesV2UpgradeRestriction: {
     _enum: ['Present']
   },
   /**
-   * Lookup147: sp_trie::storage_proof::StorageProof
+   * Lookup152: sp_trie::storage_proof::StorageProof
    **/
   SpTrieStorageProof: {
     trieNodes: 'BTreeSet<Bytes>'
   },
   /**
-   * Lookup149: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot
+   * Lookup154: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot
    **/
   CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {
     dmqMqcHead: 'H256',
@@ -1422,7 +1470,7 @@
     egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'
   },
   /**
-   * Lookup152: polkadot_primitives::v2::AbridgedHrmpChannel
+   * Lookup157: polkadot_primitives::v2::AbridgedHrmpChannel
    **/
   PolkadotPrimitivesV2AbridgedHrmpChannel: {
     maxCapacity: 'u32',
@@ -1433,7 +1481,7 @@
     mqcHead: 'Option<H256>'
   },
   /**
-   * Lookup153: polkadot_primitives::v2::AbridgedHostConfiguration
+   * Lookup158: polkadot_primitives::v2::AbridgedHostConfiguration
    **/
   PolkadotPrimitivesV2AbridgedHostConfiguration: {
     maxCodeSize: 'u32',
@@ -1447,14 +1495,14 @@
     validationUpgradeDelay: 'u32'
   },
   /**
-   * Lookup159: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>
+   * Lookup164: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>
    **/
   PolkadotCorePrimitivesOutboundHrmpMessage: {
     recipient: 'u32',
     data: 'Bytes'
   },
   /**
-   * Lookup160: cumulus_pallet_parachain_system::pallet::Call<T>
+   * Lookup165: cumulus_pallet_parachain_system::pallet::Call<T>
    **/
   CumulusPalletParachainSystemCall: {
     _enum: {
@@ -1473,7 +1521,7 @@
     }
   },
   /**
-   * Lookup161: cumulus_primitives_parachain_inherent::ParachainInherentData
+   * Lookup166: cumulus_primitives_parachain_inherent::ParachainInherentData
    **/
   CumulusPrimitivesParachainInherentParachainInherentData: {
     validationData: 'PolkadotPrimitivesV2PersistedValidationData',
@@ -1482,27 +1530,27 @@
     horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'
   },
   /**
-   * Lookup163: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>
+   * Lookup168: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>
    **/
   PolkadotCorePrimitivesInboundDownwardMessage: {
     sentAt: 'u32',
     msg: 'Bytes'
   },
   /**
-   * Lookup166: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>
+   * Lookup171: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>
    **/
   PolkadotCorePrimitivesInboundHrmpMessage: {
     sentAt: 'u32',
     data: 'Bytes'
   },
   /**
-   * Lookup169: cumulus_pallet_parachain_system::pallet::Error<T>
+   * Lookup174: cumulus_pallet_parachain_system::pallet::Error<T>
    **/
   CumulusPalletParachainSystemError: {
     _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']
   },
   /**
-   * Lookup171: pallet_balances::BalanceLock<Balance>
+   * Lookup176: pallet_balances::BalanceLock<Balance>
    **/
   PalletBalancesBalanceLock: {
     id: '[u8;8]',
@@ -1510,26 +1558,26 @@
     reasons: 'PalletBalancesReasons'
   },
   /**
-   * Lookup172: pallet_balances::Reasons
+   * Lookup177: pallet_balances::Reasons
    **/
   PalletBalancesReasons: {
     _enum: ['Fee', 'Misc', 'All']
   },
   /**
-   * Lookup175: pallet_balances::ReserveData<ReserveIdentifier, Balance>
+   * Lookup180: pallet_balances::ReserveData<ReserveIdentifier, Balance>
    **/
   PalletBalancesReserveData: {
     id: '[u8;16]',
     amount: 'u128'
   },
   /**
-   * Lookup177: pallet_balances::Releases
+   * Lookup182: pallet_balances::Releases
    **/
   PalletBalancesReleases: {
     _enum: ['V1_0_0', 'V2_0_0']
   },
   /**
-   * Lookup178: pallet_balances::pallet::Call<T, I>
+   * Lookup183: pallet_balances::pallet::Call<T, I>
    **/
   PalletBalancesCall: {
     _enum: {
@@ -1562,13 +1610,13 @@
     }
   },
   /**
-   * Lookup181: pallet_balances::pallet::Error<T, I>
+   * Lookup186: pallet_balances::pallet::Error<T, I>
    **/
   PalletBalancesError: {
     _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']
   },
   /**
-   * Lookup183: pallet_timestamp::pallet::Call<T>
+   * Lookup188: pallet_timestamp::pallet::Call<T>
    **/
   PalletTimestampCall: {
     _enum: {
@@ -1578,13 +1626,13 @@
     }
   },
   /**
-   * Lookup185: pallet_transaction_payment::Releases
+   * Lookup190: pallet_transaction_payment::Releases
    **/
   PalletTransactionPaymentReleases: {
     _enum: ['V1Ancient', 'V2']
   },
   /**
-   * Lookup186: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>
+   * Lookup191: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>
    **/
   PalletTreasuryProposal: {
     proposer: 'AccountId32',
@@ -1593,7 +1641,7 @@
     bond: 'u128'
   },
   /**
-   * Lookup189: pallet_treasury::pallet::Call<T, I>
+   * Lookup194: pallet_treasury::pallet::Call<T, I>
    **/
   PalletTreasuryCall: {
     _enum: {
@@ -1617,17 +1665,17 @@
     }
   },
   /**
-   * Lookup192: frame_support::PalletId
+   * Lookup197: frame_support::PalletId
    **/
   FrameSupportPalletId: '[u8;8]',
   /**
-   * Lookup193: pallet_treasury::pallet::Error<T, I>
+   * Lookup198: pallet_treasury::pallet::Error<T, I>
    **/
   PalletTreasuryError: {
     _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']
   },
   /**
-   * Lookup194: pallet_sudo::pallet::Call<T>
+   * Lookup199: pallet_sudo::pallet::Call<T>
    **/
   PalletSudoCall: {
     _enum: {
@@ -1651,7 +1699,7 @@
     }
   },
   /**
-   * Lookup196: orml_vesting::module::Call<T>
+   * Lookup201: orml_vesting::module::Call<T>
    **/
   OrmlVestingModuleCall: {
     _enum: {
@@ -1670,7 +1718,7 @@
     }
   },
   /**
-   * Lookup198: orml_xtokens::module::Call<T>
+   * Lookup203: orml_xtokens::module::Call<T>
    **/
   OrmlXtokensModuleCall: {
     _enum: {
@@ -1713,7 +1761,7 @@
     }
   },
   /**
-   * Lookup199: xcm::VersionedMultiAsset
+   * Lookup204: xcm::VersionedMultiAsset
    **/
   XcmVersionedMultiAsset: {
     _enum: {
@@ -1722,7 +1770,7 @@
     }
   },
   /**
-   * Lookup202: orml_tokens::module::Call<T>
+   * Lookup207: orml_tokens::module::Call<T>
    **/
   OrmlTokensModuleCall: {
     _enum: {
@@ -1756,7 +1804,7 @@
     }
   },
   /**
-   * Lookup203: cumulus_pallet_xcmp_queue::pallet::Call<T>
+   * Lookup208: cumulus_pallet_xcmp_queue::pallet::Call<T>
    **/
   CumulusPalletXcmpQueueCall: {
     _enum: {
@@ -1805,7 +1853,7 @@
     }
   },
   /**
-   * Lookup204: pallet_xcm::pallet::Call<T>
+   * Lookup209: pallet_xcm::pallet::Call<T>
    **/
   PalletXcmCall: {
     _enum: {
@@ -1859,7 +1907,7 @@
     }
   },
   /**
-   * Lookup205: xcm::VersionedXcm<RuntimeCall>
+   * Lookup210: xcm::VersionedXcm<RuntimeCall>
    **/
   XcmVersionedXcm: {
     _enum: {
@@ -1869,7 +1917,7 @@
     }
   },
   /**
-   * Lookup206: xcm::v0::Xcm<RuntimeCall>
+   * Lookup211: xcm::v0::Xcm<RuntimeCall>
    **/
   XcmV0Xcm: {
     _enum: {
@@ -1923,7 +1971,7 @@
     }
   },
   /**
-   * Lookup208: xcm::v0::order::Order<RuntimeCall>
+   * Lookup213: xcm::v0::order::Order<RuntimeCall>
    **/
   XcmV0Order: {
     _enum: {
@@ -1966,7 +2014,7 @@
     }
   },
   /**
-   * Lookup210: xcm::v0::Response
+   * Lookup215: xcm::v0::Response
    **/
   XcmV0Response: {
     _enum: {
@@ -1974,7 +2022,7 @@
     }
   },
   /**
-   * Lookup211: xcm::v1::Xcm<RuntimeCall>
+   * Lookup216: xcm::v1::Xcm<RuntimeCall>
    **/
   XcmV1Xcm: {
     _enum: {
@@ -2033,7 +2081,7 @@
     }
   },
   /**
-   * Lookup213: xcm::v1::order::Order<RuntimeCall>
+   * Lookup218: xcm::v1::order::Order<RuntimeCall>
    **/
   XcmV1Order: {
     _enum: {
@@ -2078,7 +2126,7 @@
     }
   },
   /**
-   * Lookup215: xcm::v1::Response
+   * Lookup220: xcm::v1::Response
    **/
   XcmV1Response: {
     _enum: {
@@ -2087,11 +2135,11 @@
     }
   },
   /**
-   * Lookup229: cumulus_pallet_xcm::pallet::Call<T>
+   * Lookup234: cumulus_pallet_xcm::pallet::Call<T>
    **/
   CumulusPalletXcmCall: 'Null',
   /**
-   * Lookup230: cumulus_pallet_dmp_queue::pallet::Call<T>
+   * Lookup235: cumulus_pallet_dmp_queue::pallet::Call<T>
    **/
   CumulusPalletDmpQueueCall: {
     _enum: {
@@ -2102,7 +2150,7 @@
     }
   },
   /**
-   * Lookup231: pallet_inflation::pallet::Call<T>
+   * Lookup236: pallet_inflation::pallet::Call<T>
    **/
   PalletInflationCall: {
     _enum: {
@@ -2112,7 +2160,7 @@
     }
   },
   /**
-   * Lookup232: pallet_unique::Call<T>
+   * Lookup237: pallet_unique::Call<T>
    **/
   PalletUniqueCall: {
     _enum: {
@@ -2244,7 +2292,7 @@
     }
   },
   /**
-   * Lookup237: up_data_structs::CollectionMode
+   * Lookup242: up_data_structs::CollectionMode
    **/
   UpDataStructsCollectionMode: {
     _enum: {
@@ -2254,7 +2302,7 @@
     }
   },
   /**
-   * Lookup238: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>
+   * Lookup243: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>
    **/
   UpDataStructsCreateCollectionData: {
     mode: 'UpDataStructsCollectionMode',
@@ -2269,13 +2317,13 @@
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup240: up_data_structs::AccessMode
+   * Lookup245: up_data_structs::AccessMode
    **/
   UpDataStructsAccessMode: {
     _enum: ['Normal', 'AllowList']
   },
   /**
-   * Lookup242: up_data_structs::CollectionLimits
+   * Lookup247: up_data_structs::CollectionLimits
    **/
   UpDataStructsCollectionLimits: {
     accountTokenOwnershipLimit: 'Option<u32>',
@@ -2289,7 +2337,7 @@
     transfersEnabled: 'Option<bool>'
   },
   /**
-   * Lookup244: up_data_structs::SponsoringRateLimit
+   * Lookup249: up_data_structs::SponsoringRateLimit
    **/
   UpDataStructsSponsoringRateLimit: {
     _enum: {
@@ -2298,7 +2346,7 @@
     }
   },
   /**
-   * Lookup247: up_data_structs::CollectionPermissions
+   * Lookup252: up_data_structs::CollectionPermissions
    **/
   UpDataStructsCollectionPermissions: {
     access: 'Option<UpDataStructsAccessMode>',
@@ -2306,7 +2354,7 @@
     nesting: 'Option<UpDataStructsNestingPermissions>'
   },
   /**
-   * Lookup249: up_data_structs::NestingPermissions
+   * Lookup254: up_data_structs::NestingPermissions
    **/
   UpDataStructsNestingPermissions: {
     tokenOwner: 'bool',
@@ -2314,18 +2362,18 @@
     restricted: 'Option<UpDataStructsOwnerRestrictedSet>'
   },
   /**
-   * Lookup251: up_data_structs::OwnerRestrictedSet
+   * Lookup256: up_data_structs::OwnerRestrictedSet
    **/
   UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',
   /**
-   * Lookup256: up_data_structs::PropertyKeyPermission
+   * Lookup261: up_data_structs::PropertyKeyPermission
    **/
   UpDataStructsPropertyKeyPermission: {
     key: 'Bytes',
     permission: 'UpDataStructsPropertyPermission'
   },
   /**
-   * Lookup257: up_data_structs::PropertyPermission
+   * Lookup262: up_data_structs::PropertyPermission
    **/
   UpDataStructsPropertyPermission: {
     mutable: 'bool',
@@ -2333,14 +2381,14 @@
     tokenOwner: 'bool'
   },
   /**
-   * Lookup260: up_data_structs::Property
+   * Lookup265: up_data_structs::Property
    **/
   UpDataStructsProperty: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup263: up_data_structs::CreateItemData
+   * Lookup268: up_data_structs::CreateItemData
    **/
   UpDataStructsCreateItemData: {
     _enum: {
@@ -2350,26 +2398,26 @@
     }
   },
   /**
-   * Lookup264: up_data_structs::CreateNftData
+   * Lookup269: up_data_structs::CreateNftData
    **/
   UpDataStructsCreateNftData: {
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup265: up_data_structs::CreateFungibleData
+   * Lookup270: up_data_structs::CreateFungibleData
    **/
   UpDataStructsCreateFungibleData: {
     value: 'u128'
   },
   /**
-   * Lookup266: up_data_structs::CreateReFungibleData
+   * Lookup271: up_data_structs::CreateReFungibleData
    **/
   UpDataStructsCreateReFungibleData: {
     pieces: 'u128',
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup269: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup274: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateItemExData: {
     _enum: {
@@ -2380,14 +2428,14 @@
     }
   },
   /**
-   * Lookup271: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup276: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateNftExData: {
     properties: 'Vec<UpDataStructsProperty>',
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup278: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup283: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateRefungibleExSingleOwner: {
     user: 'PalletEvmAccountBasicCrossAccountIdRepr',
@@ -2395,15 +2443,52 @@
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup280: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup285: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsCreateRefungibleExMultipleOwners: {
     users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',
     properties: 'Vec<UpDataStructsProperty>'
   },
   /**
-   * Lookup281: pallet_configuration::pallet::Call<T>
+   * Lookup286: pallet_unique_scheduler::pallet::Call<T>
+   **/
+  PalletUniqueSchedulerCall: {
+    _enum: {
+      schedule_named: {
+        id: '[u8;16]',
+        when: 'u32',
+        maybePeriodic: 'Option<(u32,u32)>',
+        priority: 'Option<u8>',
+        call: 'FrameSupportScheduleMaybeHashed',
+      },
+      cancel_named: {
+        id: '[u8;16]',
+      },
+      schedule_named_after: {
+        id: '[u8;16]',
+        after: 'u32',
+        maybePeriodic: 'Option<(u32,u32)>',
+        priority: 'Option<u8>',
+        call: 'FrameSupportScheduleMaybeHashed',
+      },
+      change_named_priority: {
+        id: '[u8;16]',
+        priority: 'u8'
+      }
+    }
+  },
+  /**
+   * Lookup289: frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>
    **/
+  FrameSupportScheduleMaybeHashed: {
+    _enum: {
+      Value: 'Call',
+      Hash: 'H256'
+    }
+  },
+  /**
+   * Lookup290: pallet_configuration::pallet::Call<T>
+   **/
   PalletConfigurationCall: {
     _enum: {
       set_weight_to_fee_coefficient_override: {
@@ -2415,15 +2500,15 @@
     }
   },
   /**
-   * Lookup283: pallet_template_transaction_payment::Call<T>
+   * Lookup292: pallet_template_transaction_payment::Call<T>
    **/
   PalletTemplateTransactionPaymentCall: 'Null',
   /**
-   * Lookup284: pallet_structure::pallet::Call<T>
+   * Lookup293: pallet_structure::pallet::Call<T>
    **/
   PalletStructureCall: 'Null',
   /**
-   * Lookup285: pallet_rmrk_core::pallet::Call<T>
+   * Lookup294: pallet_rmrk_core::pallet::Call<T>
    **/
   PalletRmrkCoreCall: {
     _enum: {
@@ -2514,7 +2599,7 @@
     }
   },
   /**
-   * Lookup291: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup300: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceTypes: {
     _enum: {
@@ -2524,7 +2609,7 @@
     }
   },
   /**
-   * Lookup293: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup302: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceBasicResource: {
     src: 'Option<Bytes>',
@@ -2533,7 +2618,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup295: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup304: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceComposableResource: {
     parts: 'Vec<u32>',
@@ -2544,7 +2629,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup296: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup305: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceSlotResource: {
     base: 'u32',
@@ -2555,7 +2640,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup299: pallet_rmrk_equip::pallet::Call<T>
+   * Lookup308: pallet_rmrk_equip::pallet::Call<T>
    **/
   PalletRmrkEquipCall: {
     _enum: {
@@ -2576,7 +2661,7 @@
     }
   },
   /**
-   * Lookup302: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup311: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartPartType: {
     _enum: {
@@ -2585,7 +2670,7 @@
     }
   },
   /**
-   * Lookup304: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup313: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartFixedPart: {
     id: 'u32',
@@ -2593,7 +2678,7 @@
     src: 'Bytes'
   },
   /**
-   * Lookup305: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup314: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartSlotPart: {
     id: 'u32',
@@ -2602,7 +2687,7 @@
     z: 'u32'
   },
   /**
-   * Lookup306: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup315: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartEquippableList: {
     _enum: {
@@ -2612,7 +2697,7 @@
     }
   },
   /**
-   * 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>>
+   * 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>>
    **/
   RmrkTraitsTheme: {
     name: 'Bytes',
@@ -2620,14 +2705,14 @@
     inherit: 'bool'
   },
   /**
-   * Lookup310: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup319: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsThemeThemeProperty: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup312: pallet_app_promotion::pallet::Call<T>
+   * Lookup321: pallet_app_promotion::pallet::Call<T>
    **/
   PalletAppPromotionCall: {
     _enum: {
@@ -2656,7 +2741,7 @@
     }
   },
   /**
-   * Lookup314: pallet_foreign_assets::module::Call<T>
+   * Lookup322: pallet_foreign_assets::module::Call<T>
    **/
   PalletForeignAssetsModuleCall: {
     _enum: {
@@ -2673,7 +2758,7 @@
     }
   },
   /**
-   * Lookup315: pallet_evm::pallet::Call<T>
+   * Lookup323: pallet_evm::pallet::Call<T>
    **/
   PalletEvmCall: {
     _enum: {
@@ -2716,7 +2801,7 @@
     }
   },
   /**
-   * Lookup319: pallet_ethereum::pallet::Call<T>
+   * Lookup327: pallet_ethereum::pallet::Call<T>
    **/
   PalletEthereumCall: {
     _enum: {
@@ -2726,7 +2811,7 @@
     }
   },
   /**
-   * Lookup320: ethereum::transaction::TransactionV2
+   * Lookup328: ethereum::transaction::TransactionV2
    **/
   EthereumTransactionTransactionV2: {
     _enum: {
@@ -2736,7 +2821,7 @@
     }
   },
   /**
-   * Lookup321: ethereum::transaction::LegacyTransaction
+   * Lookup329: ethereum::transaction::LegacyTransaction
    **/
   EthereumTransactionLegacyTransaction: {
     nonce: 'U256',
@@ -2748,7 +2833,7 @@
     signature: 'EthereumTransactionTransactionSignature'
   },
   /**
-   * Lookup322: ethereum::transaction::TransactionAction
+   * Lookup330: ethereum::transaction::TransactionAction
    **/
   EthereumTransactionTransactionAction: {
     _enum: {
@@ -2757,7 +2842,7 @@
     }
   },
   /**
-   * Lookup323: ethereum::transaction::TransactionSignature
+   * Lookup331: ethereum::transaction::TransactionSignature
    **/
   EthereumTransactionTransactionSignature: {
     v: 'u64',
@@ -2765,7 +2850,7 @@
     s: 'H256'
   },
   /**
-   * Lookup325: ethereum::transaction::EIP2930Transaction
+   * Lookup333: ethereum::transaction::EIP2930Transaction
    **/
   EthereumTransactionEip2930Transaction: {
     chainId: 'u64',
@@ -2781,14 +2866,14 @@
     s: 'H256'
   },
   /**
-   * Lookup327: ethereum::transaction::AccessListItem
+   * Lookup335: ethereum::transaction::AccessListItem
    **/
   EthereumTransactionAccessListItem: {
     address: 'H160',
     storageKeys: 'Vec<H256>'
   },
   /**
-   * Lookup328: ethereum::transaction::EIP1559Transaction
+   * Lookup336: ethereum::transaction::EIP1559Transaction
    **/
   EthereumTransactionEip1559Transaction: {
     chainId: 'u64',
@@ -2805,7 +2890,7 @@
     s: 'H256'
   },
   /**
-   * Lookup329: pallet_evm_migration::pallet::Call<T>
+   * Lookup337: pallet_evm_migration::pallet::Call<T>
    **/
   PalletEvmMigrationCall: {
     _enum: {
@@ -2823,32 +2908,58 @@
     }
   },
   /**
-   * Lookup332: pallet_sudo::pallet::Error<T>
+   * Lookup340: pallet_maintenance::pallet::Call<T>
+   **/
+  PalletMaintenanceCall: {
+    _enum: ['enable', 'disable']
+  },
+  /**
+   * Lookup341: pallet_test_utils::pallet::Call<T>
+   **/
+  PalletTestUtilsCall: {
+    _enum: {
+      enable: 'Null',
+      set_test_value: {
+        value: 'u32',
+      },
+      set_test_value_and_rollback: {
+        value: 'u32',
+      },
+      inc_test_value: 'Null',
+      self_canceling_inc: {
+        id: '[u8;16]',
+        maxTestValue: 'u32',
+      },
+      just_take_fee: 'Null'
+    }
+  },
+  /**
+   * Lookup342: pallet_sudo::pallet::Error<T>
    **/
   PalletSudoError: {
     _enum: ['RequireSudo']
   },
   /**
-   * Lookup334: orml_vesting::module::Error<T>
+   * Lookup344: orml_vesting::module::Error<T>
    **/
   OrmlVestingModuleError: {
     _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
   },
   /**
-   * Lookup335: orml_xtokens::module::Error<T>
+   * Lookup345: orml_xtokens::module::Error<T>
    **/
   OrmlXtokensModuleError: {
     _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']
   },
   /**
-   * Lookup338: orml_tokens::BalanceLock<Balance>
+   * Lookup348: orml_tokens::BalanceLock<Balance>
    **/
   OrmlTokensBalanceLock: {
     id: '[u8;8]',
     amount: 'u128'
   },
   /**
-   * Lookup340: orml_tokens::AccountData<Balance>
+   * Lookup350: orml_tokens::AccountData<Balance>
    **/
   OrmlTokensAccountData: {
     free: 'u128',
@@ -2856,20 +2967,20 @@
     frozen: 'u128'
   },
   /**
-   * Lookup342: orml_tokens::ReserveData<ReserveIdentifier, Balance>
+   * Lookup352: orml_tokens::ReserveData<ReserveIdentifier, Balance>
    **/
   OrmlTokensReserveData: {
     id: 'Null',
     amount: 'u128'
   },
   /**
-   * Lookup344: orml_tokens::module::Error<T>
+   * Lookup354: orml_tokens::module::Error<T>
    **/
   OrmlTokensModuleError: {
     _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']
   },
   /**
-   * Lookup346: cumulus_pallet_xcmp_queue::InboundChannelDetails
+   * Lookup356: cumulus_pallet_xcmp_queue::InboundChannelDetails
    **/
   CumulusPalletXcmpQueueInboundChannelDetails: {
     sender: 'u32',
@@ -2877,19 +2988,19 @@
     messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
   },
   /**
-   * Lookup347: cumulus_pallet_xcmp_queue::InboundState
+   * Lookup357: cumulus_pallet_xcmp_queue::InboundState
    **/
   CumulusPalletXcmpQueueInboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup350: polkadot_parachain::primitives::XcmpMessageFormat
+   * Lookup360: polkadot_parachain::primitives::XcmpMessageFormat
    **/
   PolkadotParachainPrimitivesXcmpMessageFormat: {
     _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
   },
   /**
-   * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+   * Lookup363: cumulus_pallet_xcmp_queue::OutboundChannelDetails
    **/
   CumulusPalletXcmpQueueOutboundChannelDetails: {
     recipient: 'u32',
@@ -2899,13 +3010,13 @@
     lastIndex: 'u16'
   },
   /**
-   * Lookup354: cumulus_pallet_xcmp_queue::OutboundState
+   * Lookup364: cumulus_pallet_xcmp_queue::OutboundState
    **/
   CumulusPalletXcmpQueueOutboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData
+   * Lookup366: cumulus_pallet_xcmp_queue::QueueConfigData
    **/
   CumulusPalletXcmpQueueQueueConfigData: {
     suspendThreshold: 'u32',
@@ -2916,29 +3027,29 @@
     xcmpMaxIndividualWeight: 'Weight'
   },
   /**
-   * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error<T>
+   * Lookup368: cumulus_pallet_xcmp_queue::pallet::Error<T>
    **/
   CumulusPalletXcmpQueueError: {
     _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
   },
   /**
-   * Lookup359: pallet_xcm::pallet::Error<T>
+   * Lookup369: pallet_xcm::pallet::Error<T>
    **/
   PalletXcmError: {
     _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
   },
   /**
-   * Lookup360: cumulus_pallet_xcm::pallet::Error<T>
+   * Lookup370: cumulus_pallet_xcm::pallet::Error<T>
    **/
   CumulusPalletXcmError: 'Null',
   /**
-   * Lookup361: cumulus_pallet_dmp_queue::ConfigData
+   * Lookup371: cumulus_pallet_dmp_queue::ConfigData
    **/
   CumulusPalletDmpQueueConfigData: {
     maxIndividual: 'Weight'
   },
   /**
-   * Lookup362: cumulus_pallet_dmp_queue::PageIndexData
+   * Lookup372: cumulus_pallet_dmp_queue::PageIndexData
    **/
   CumulusPalletDmpQueuePageIndexData: {
     beginUsed: 'u32',
@@ -2946,20 +3057,185 @@
     overweightCount: 'u64'
   },
   /**
-   * Lookup365: cumulus_pallet_dmp_queue::pallet::Error<T>
+   * Lookup375: cumulus_pallet_dmp_queue::pallet::Error<T>
    **/
   CumulusPalletDmpQueueError: {
     _enum: ['Unknown', 'OverLimit']
   },
   /**
-   * Lookup369: pallet_unique::Error<T>
+   * Lookup379: pallet_unique::Error<T>
    **/
   PalletUniqueError: {
     _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
   },
   /**
-   * Lookup370: up_data_structs::Collection<sp_core::crypto::AccountId32>
+   * Lookup382: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::RuntimeCall, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
    **/
+  PalletUniqueSchedulerScheduledV3: {
+    maybeId: 'Option<[u8;16]>',
+    priority: 'u8',
+    call: 'FrameSupportScheduleMaybeHashed',
+    maybePeriodic: 'Option<(u32,u32)>',
+    origin: 'OpalRuntimeOriginCaller'
+  },
+  /**
+   * Lookup383: opal_runtime::OriginCaller
+   **/
+  OpalRuntimeOriginCaller: {
+    _enum: {
+      system: 'FrameSupportDispatchRawOrigin',
+      __Unused1: 'Null',
+      __Unused2: 'Null',
+      __Unused3: 'Null',
+      Void: 'SpCoreVoid',
+      __Unused5: 'Null',
+      __Unused6: 'Null',
+      __Unused7: 'Null',
+      __Unused8: 'Null',
+      __Unused9: 'Null',
+      __Unused10: 'Null',
+      __Unused11: 'Null',
+      __Unused12: 'Null',
+      __Unused13: 'Null',
+      __Unused14: 'Null',
+      __Unused15: 'Null',
+      __Unused16: 'Null',
+      __Unused17: 'Null',
+      __Unused18: 'Null',
+      __Unused19: 'Null',
+      __Unused20: 'Null',
+      __Unused21: 'Null',
+      __Unused22: 'Null',
+      __Unused23: 'Null',
+      __Unused24: 'Null',
+      __Unused25: 'Null',
+      __Unused26: 'Null',
+      __Unused27: 'Null',
+      __Unused28: 'Null',
+      __Unused29: 'Null',
+      __Unused30: 'Null',
+      __Unused31: 'Null',
+      __Unused32: 'Null',
+      __Unused33: 'Null',
+      __Unused34: 'Null',
+      __Unused35: 'Null',
+      __Unused36: 'Null',
+      __Unused37: 'Null',
+      __Unused38: 'Null',
+      __Unused39: 'Null',
+      __Unused40: 'Null',
+      __Unused41: 'Null',
+      __Unused42: 'Null',
+      __Unused43: 'Null',
+      __Unused44: 'Null',
+      __Unused45: 'Null',
+      __Unused46: 'Null',
+      __Unused47: 'Null',
+      __Unused48: 'Null',
+      __Unused49: 'Null',
+      __Unused50: 'Null',
+      PolkadotXcm: 'PalletXcmOrigin',
+      CumulusXcm: 'CumulusPalletXcmOrigin',
+      __Unused53: 'Null',
+      __Unused54: 'Null',
+      __Unused55: 'Null',
+      __Unused56: 'Null',
+      __Unused57: 'Null',
+      __Unused58: 'Null',
+      __Unused59: 'Null',
+      __Unused60: 'Null',
+      __Unused61: 'Null',
+      __Unused62: 'Null',
+      __Unused63: 'Null',
+      __Unused64: 'Null',
+      __Unused65: 'Null',
+      __Unused66: 'Null',
+      __Unused67: 'Null',
+      __Unused68: 'Null',
+      __Unused69: 'Null',
+      __Unused70: 'Null',
+      __Unused71: 'Null',
+      __Unused72: 'Null',
+      __Unused73: 'Null',
+      __Unused74: 'Null',
+      __Unused75: 'Null',
+      __Unused76: 'Null',
+      __Unused77: 'Null',
+      __Unused78: 'Null',
+      __Unused79: 'Null',
+      __Unused80: 'Null',
+      __Unused81: 'Null',
+      __Unused82: 'Null',
+      __Unused83: 'Null',
+      __Unused84: 'Null',
+      __Unused85: 'Null',
+      __Unused86: 'Null',
+      __Unused87: 'Null',
+      __Unused88: 'Null',
+      __Unused89: 'Null',
+      __Unused90: 'Null',
+      __Unused91: 'Null',
+      __Unused92: 'Null',
+      __Unused93: 'Null',
+      __Unused94: 'Null',
+      __Unused95: 'Null',
+      __Unused96: 'Null',
+      __Unused97: 'Null',
+      __Unused98: 'Null',
+      __Unused99: 'Null',
+      __Unused100: 'Null',
+      Ethereum: 'PalletEthereumRawOrigin'
+    }
+  },
+  /**
+   * Lookup384: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+   **/
+  FrameSupportDispatchRawOrigin: {
+    _enum: {
+      Root: 'Null',
+      Signed: 'AccountId32',
+      None: 'Null'
+    }
+  },
+  /**
+   * Lookup385: pallet_xcm::pallet::Origin
+   **/
+  PalletXcmOrigin: {
+    _enum: {
+      Xcm: 'XcmV1MultiLocation',
+      Response: 'XcmV1MultiLocation'
+    }
+  },
+  /**
+   * Lookup386: cumulus_pallet_xcm::pallet::Origin
+   **/
+  CumulusPalletXcmOrigin: {
+    _enum: {
+      Relay: 'Null',
+      SiblingParachain: 'u32'
+    }
+  },
+  /**
+   * Lookup387: pallet_ethereum::RawOrigin
+   **/
+  PalletEthereumRawOrigin: {
+    _enum: {
+      EthereumTransaction: 'H160'
+    }
+  },
+  /**
+   * Lookup388: sp_core::Void
+   **/
+  SpCoreVoid: 'Null',
+  /**
+   * Lookup389: pallet_unique_scheduler::pallet::Error<T>
+   **/
+  PalletUniqueSchedulerError: {
+    _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
+  },
+  /**
+   * Lookup390: up_data_structs::Collection<sp_core::crypto::AccountId32>
+   **/
   UpDataStructsCollection: {
     owner: 'AccountId32',
     mode: 'UpDataStructsCollectionMode',
@@ -2972,7 +3248,7 @@
     flags: '[u8;1]'
   },
   /**
-   * Lookup371: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+   * Lookup391: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
    **/
   UpDataStructsSponsorshipStateAccountId32: {
     _enum: {
@@ -2982,7 +3258,7 @@
     }
   },
   /**
-   * Lookup373: up_data_structs::Properties
+   * Lookup393: up_data_structs::Properties
    **/
   UpDataStructsProperties: {
     map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2990,15 +3266,15 @@
     spaceLimit: 'u32'
   },
   /**
-   * Lookup374: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup394: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
   /**
-   * Lookup379: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+   * Lookup399: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
    **/
   UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
   /**
-   * Lookup386: up_data_structs::CollectionStats
+   * Lookup406: up_data_structs::CollectionStats
    **/
   UpDataStructsCollectionStats: {
     created: 'u32',
@@ -3006,18 +3282,18 @@
     alive: 'u32'
   },
   /**
-   * Lookup387: up_data_structs::TokenChild
+   * Lookup407: up_data_structs::TokenChild
    **/
   UpDataStructsTokenChild: {
     token: 'u32',
     collection: 'u32'
   },
   /**
-   * Lookup388: PhantomType::up_data_structs<T>
+   * Lookup408: PhantomType::up_data_structs<T>
    **/
   PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
   /**
-   * Lookup390: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup410: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsTokenData: {
     properties: 'Vec<UpDataStructsProperty>',
@@ -3025,7 +3301,7 @@
     pieces: 'u128'
   },
   /**
-   * Lookup392: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+   * Lookup412: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsRpcCollection: {
     owner: 'AccountId32',
@@ -3042,14 +3318,14 @@
     flags: 'UpDataStructsRpcCollectionFlags'
   },
   /**
-   * Lookup393: up_data_structs::RpcCollectionFlags
+   * Lookup413: up_data_structs::RpcCollectionFlags
    **/
   UpDataStructsRpcCollectionFlags: {
     foreign: 'bool',
     erc721metadata: 'bool'
   },
   /**
-   * 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>
+   * 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>
    **/
   RmrkTraitsCollectionCollectionInfo: {
     issuer: 'AccountId32',
@@ -3059,7 +3335,7 @@
     nftsCount: 'u32'
   },
   /**
-   * Lookup395: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup415: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsNftNftInfo: {
     owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -3069,14 +3345,14 @@
     pending: 'bool'
   },
   /**
-   * Lookup397: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+   * Lookup417: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
    **/
   RmrkTraitsNftRoyaltyInfo: {
     recipient: 'AccountId32',
     amount: 'Permill'
   },
   /**
-   * Lookup398: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup418: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceInfo: {
     id: 'u32',
@@ -3085,14 +3361,14 @@
     pendingRemoval: 'bool'
   },
   /**
-   * Lookup399: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup419: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPropertyPropertyInfo: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup400: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup420: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsBaseBaseInfo: {
     issuer: 'AccountId32',
@@ -3100,92 +3376,92 @@
     symbol: 'Bytes'
   },
   /**
-   * Lookup401: rmrk_traits::nft::NftChild
+   * Lookup421: rmrk_traits::nft::NftChild
    **/
   RmrkTraitsNftNftChild: {
     collectionId: 'u32',
     nftId: 'u32'
   },
   /**
-   * Lookup403: pallet_common::pallet::Error<T>
+   * Lookup423: pallet_common::pallet::Error<T>
    **/
   PalletCommonError: {
     _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']
   },
   /**
-   * Lookup405: pallet_fungible::pallet::Error<T>
+   * Lookup425: pallet_fungible::pallet::Error<T>
    **/
   PalletFungibleError: {
     _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup406: pallet_refungible::ItemData
+   * Lookup426: pallet_refungible::ItemData
    **/
   PalletRefungibleItemData: {
     constData: 'Bytes'
   },
   /**
-   * Lookup411: pallet_refungible::pallet::Error<T>
+   * Lookup431: pallet_refungible::pallet::Error<T>
    **/
   PalletRefungibleError: {
     _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup412: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup432: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletNonfungibleItemData: {
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup414: up_data_structs::PropertyScope
+   * Lookup434: up_data_structs::PropertyScope
    **/
   UpDataStructsPropertyScope: {
     _enum: ['None', 'Rmrk']
   },
   /**
-   * Lookup416: pallet_nonfungible::pallet::Error<T>
+   * Lookup436: pallet_nonfungible::pallet::Error<T>
    **/
   PalletNonfungibleError: {
     _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
   },
   /**
-   * Lookup417: pallet_structure::pallet::Error<T>
+   * Lookup437: pallet_structure::pallet::Error<T>
    **/
   PalletStructureError: {
     _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
   },
   /**
-   * Lookup418: pallet_rmrk_core::pallet::Error<T>
+   * Lookup438: pallet_rmrk_core::pallet::Error<T>
    **/
   PalletRmrkCoreError: {
     _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
   },
   /**
-   * Lookup420: pallet_rmrk_equip::pallet::Error<T>
+   * Lookup440: pallet_rmrk_equip::pallet::Error<T>
    **/
   PalletRmrkEquipError: {
     _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
   },
   /**
-   * Lookup426: pallet_app_promotion::pallet::Error<T>
+   * Lookup446: pallet_app_promotion::pallet::Error<T>
    **/
   PalletAppPromotionError: {
     _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']
   },
   /**
-   * Lookup427: pallet_foreign_assets::module::Error<T>
+   * Lookup447: pallet_foreign_assets::module::Error<T>
    **/
   PalletForeignAssetsModuleError: {
     _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']
   },
   /**
-   * Lookup430: pallet_evm::pallet::Error<T>
+   * Lookup450: pallet_evm::pallet::Error<T>
    **/
   PalletEvmError: {
     _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
   },
   /**
-   * Lookup433: fp_rpc::TransactionStatus
+   * Lookup453: fp_rpc::TransactionStatus
    **/
   FpRpcTransactionStatus: {
     transactionHash: 'H256',
@@ -3197,11 +3473,11 @@
     logsBloom: 'EthbloomBloom'
   },
   /**
-   * Lookup435: ethbloom::Bloom
+   * Lookup455: ethbloom::Bloom
    **/
   EthbloomBloom: '[u8;256]',
   /**
-   * Lookup437: ethereum::receipt::ReceiptV3
+   * Lookup457: ethereum::receipt::ReceiptV3
    **/
   EthereumReceiptReceiptV3: {
     _enum: {
@@ -3211,7 +3487,7 @@
     }
   },
   /**
-   * Lookup438: ethereum::receipt::EIP658ReceiptData
+   * Lookup458: ethereum::receipt::EIP658ReceiptData
    **/
   EthereumReceiptEip658ReceiptData: {
     statusCode: 'u8',
@@ -3220,7 +3496,7 @@
     logs: 'Vec<EthereumLog>'
   },
   /**
-   * Lookup439: ethereum::block::Block<ethereum::transaction::TransactionV2>
+   * Lookup459: ethereum::block::Block<ethereum::transaction::TransactionV2>
    **/
   EthereumBlock: {
     header: 'EthereumHeader',
@@ -3228,7 +3504,7 @@
     ommers: 'Vec<EthereumHeader>'
   },
   /**
-   * Lookup440: ethereum::header::Header
+   * Lookup460: ethereum::header::Header
    **/
   EthereumHeader: {
     parentHash: 'H256',
@@ -3248,23 +3524,23 @@
     nonce: 'EthereumTypesHashH64'
   },
   /**
-   * Lookup441: ethereum_types::hash::H64
+   * Lookup461: ethereum_types::hash::H64
    **/
   EthereumTypesHashH64: '[u8;8]',
   /**
-   * Lookup446: pallet_ethereum::pallet::Error<T>
+   * Lookup466: pallet_ethereum::pallet::Error<T>
    **/
   PalletEthereumError: {
     _enum: ['InvalidSignature', 'PreLogExists']
   },
   /**
-   * Lookup447: pallet_evm_coder_substrate::pallet::Error<T>
+   * Lookup467: pallet_evm_coder_substrate::pallet::Error<T>
    **/
   PalletEvmCoderSubstrateError: {
     _enum: ['OutOfGas', 'OutOfFund']
   },
   /**
-   * Lookup448: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup468: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {
     _enum: {
@@ -3274,26 +3550,36 @@
     }
   },
   /**
-   * Lookup449: pallet_evm_contract_helpers::SponsoringModeT
+   * Lookup469: pallet_evm_contract_helpers::SponsoringModeT
    **/
   PalletEvmContractHelpersSponsoringModeT: {
     _enum: ['Disabled', 'Allowlisted', 'Generous']
   },
   /**
-   * Lookup455: pallet_evm_contract_helpers::pallet::Error<T>
+   * Lookup475: pallet_evm_contract_helpers::pallet::Error<T>
    **/
   PalletEvmContractHelpersError: {
     _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']
   },
   /**
-   * Lookup456: pallet_evm_migration::pallet::Error<T>
+   * Lookup476: pallet_evm_migration::pallet::Error<T>
    **/
   PalletEvmMigrationError: {
     _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
   },
   /**
-   * Lookup458: sp_runtime::MultiSignature
+   * Lookup477: pallet_maintenance::pallet::Error<T>
    **/
+  PalletMaintenanceError: 'Null',
+  /**
+   * Lookup478: pallet_test_utils::pallet::Error<T>
+   **/
+  PalletTestUtilsError: {
+    _enum: ['TestPalletDisabled', 'TriggerRollback']
+  },
+  /**
+   * Lookup480: sp_runtime::MultiSignature
+   **/
   SpRuntimeMultiSignature: {
     _enum: {
       Ed25519: 'SpCoreEd25519Signature',
@@ -3302,47 +3588,51 @@
     }
   },
   /**
-   * Lookup459: sp_core::ed25519::Signature
+   * Lookup481: sp_core::ed25519::Signature
    **/
   SpCoreEd25519Signature: '[u8;64]',
   /**
-   * Lookup461: sp_core::sr25519::Signature
+   * Lookup483: sp_core::sr25519::Signature
    **/
   SpCoreSr25519Signature: '[u8;64]',
   /**
-   * Lookup462: sp_core::ecdsa::Signature
+   * Lookup484: sp_core::ecdsa::Signature
    **/
   SpCoreEcdsaSignature: '[u8;65]',
   /**
-   * Lookup465: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+   * Lookup487: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
    **/
   FrameSystemExtensionsCheckSpecVersion: 'Null',
   /**
-   * Lookup466: frame_system::extensions::check_tx_version::CheckTxVersion<T>
+   * Lookup488: frame_system::extensions::check_tx_version::CheckTxVersion<T>
    **/
   FrameSystemExtensionsCheckTxVersion: 'Null',
   /**
-   * Lookup467: frame_system::extensions::check_genesis::CheckGenesis<T>
+   * Lookup489: frame_system::extensions::check_genesis::CheckGenesis<T>
    **/
   FrameSystemExtensionsCheckGenesis: 'Null',
   /**
-   * Lookup470: frame_system::extensions::check_nonce::CheckNonce<T>
+   * Lookup492: frame_system::extensions::check_nonce::CheckNonce<T>
    **/
   FrameSystemExtensionsCheckNonce: 'Compact<u32>',
   /**
-   * Lookup471: frame_system::extensions::check_weight::CheckWeight<T>
+   * Lookup493: frame_system::extensions::check_weight::CheckWeight<T>
    **/
   FrameSystemExtensionsCheckWeight: 'Null',
   /**
-   * Lookup472: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+   * Lookup494: opal_runtime::runtime_common::maintenance::CheckMaintenance
+   **/
+  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',
+  /**
+   * Lookup495: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
    **/
   PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
   /**
-   * Lookup473: opal_runtime::Runtime
+   * Lookup496: opal_runtime::Runtime
    **/
   OpalRuntimeRuntime: 'Null',
   /**
-   * Lookup474: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+   * Lookup497: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
    **/
   PalletEthereumFakeTransactionFinalizer: 'Null'
 };
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: {},