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

difftreelog

feat(collator-selection) benchmarks for collator-selection and data-management + cargo fmt

Fahrrader2022-12-27parent: #9206f91.patch.diff
in: master

21 files changed

modifiedMakefilediffbeforeafterboth
--- a/Makefile
+++ b/Makefile
@@ -127,16 +127,16 @@
 
 .PHONY: bench-foreign-assets
 bench-foreign-assets:
-	make _bench PALLET=foreign-assets	
+	make _bench PALLET=foreign-assets
+
+.PHONY: bench-collator-selection
+bench-collator-selection:
+	make _bench PALLET=collator-selection
 
 .PHONY: bench-app-promotion
 bench-app-promotion:
 	make _bench PALLET=app-promotion PALLET_DIR=app-promotion
 	
 .PHONY: bench
-<<<<<<< HEAD
-bench: bench-data-management bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-scheduler bench-rmrk-core bench-rmrk-equip bench-foreign-assets
-=======
 # Disabled: bench-scheduler, bench-rmrk-core, bench-rmrk-equip
-bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-foreign-assets
->>>>>>> develop
+bench: bench-data-management bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible bench-foreign-assets
modifiedpallets/collator-selection/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/benchmarking.rs
+++ b/pallets/collator-selection/src/benchmarking.rs
@@ -45,10 +45,15 @@
 use frame_system::{EventRecord, RawOrigin};
 use pallet_authorship::EventHandler;
 use pallet_session::{self as session, SessionManager};
+use pallet_configuration::{
+	self as configuration, BalanceOf,
+	CollatorSelectionDesiredCollatorsOverride as DesiredCollators,
+	CollatorSelectionLicenseBondOverride as LicenseBond,
+};
 use sp_std::prelude::*;
 
-pub type BalanceOf<T> =
-	<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;
+/*pub type BalanceOf<T> =
+<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;*/
 
 const SEED: u32 = 0;
 
@@ -111,7 +116,7 @@
 	validators.into_iter().map(|(who, _)| who).collect()
 }
 
-fn register_candidates<T: Config>(count: u32) {
+fn register_candidates<T: Config + configuration::Config>(count: u32) {
 	let candidates = (0..count)
 		.map(|c| account("candidate", c, SEED))
 		.collect::<Vec<_>>();
@@ -122,27 +127,44 @@
 
 	for who in candidates {
 		T::Currency::make_free_balance_be(&who, <LicenseBond<T>>::get() * 2u32.into());
-		<CollatorSelection<T>>::register_as_candidate(RawOrigin::Signed(who).into()).unwrap();
+		<CollatorSelection<T>>::get_license(RawOrigin::Signed(who.clone()).into()).unwrap();
+		<CollatorSelection<T>>::onboard(RawOrigin::Signed(who).into()).unwrap();
 	}
 }
 
 benchmarks! {
-	where_clause { where T: pallet_authorship::Config + session::Config }
+	where_clause { where T: pallet_authorship::Config + session::Config + configuration::Config }
+
+	add_invulnerable {
+		let b in 1 .. T::MaxCollators::get();
+		let new_invulnerable = register_validators::<T>(b)[0].clone();
+		let origin = T::UpdateOrigin::successful_origin();
+	}: {
+		assert_ok!(
+			<CollatorSelection<T>>::add_invulnerable(origin, new_invulnerable.clone())
+		);
+	}
+	verify {
+		assert_last_event::<T>(Event::InvulnerableAdded{invulnerable: new_invulnerable}.into());
+	}
 
-	set_invulnerables {
+	remove_invulnerable {
 		let b in 1 .. T::MaxCollators::get();
-		let new_invulnerables = register_validators::<T>(b);
+		let new_invulnerable = register_validators::<T>(b)[0].clone();
 		let origin = T::UpdateOrigin::successful_origin();
+		assert_ok!(
+			<CollatorSelection<T>>::add_invulnerable(origin.clone(), new_invulnerable.clone())
+		);
 	}: {
 		assert_ok!(
-			<CollatorSelection<T>>::set_invulnerables(origin, new_invulnerables.clone())
+			<CollatorSelection<T>>::remove_invulnerable(origin, new_invulnerable.clone())
 		);
 	}
 	verify {
-		assert_last_event::<T>(Event::NewInvulnerables{invulnerables: new_invulnerables}.into());
+		assert_last_event::<T>(Event::InvulnerableRemoved{invulnerable: new_invulnerable}.into());
 	}
 
-	set_desired_collators {
+	/*set_desired_collators {
 		let max: u32 = 999;
 		let origin = T::UpdateOrigin::successful_origin();
 	}: {
@@ -164,11 +186,9 @@
 	}
 	verify {
 		assert_last_event::<T>(Event::NewLicenseBond{bond_amount}.into());
-	}
+	}*/
 
-	// worse case is when we have all the max-candidate slots filled except one, and we fill that
-	// one.
-	register_as_candidate {
+	get_license {
 		let c in 1 .. T::MaxCollators::get();
 
 		<LicenseBond<T>>::put(T::Currency::minimum_balance());
@@ -189,27 +209,96 @@
 
 	}: _(RawOrigin::Signed(caller.clone()))
 	verify {
-		assert_last_event::<T>(Event::CandidateAdded{account_id: caller, deposit: bond / 2u32.into()}.into());
+		assert_last_event::<T>(Event::LicenseObtained{account_id: caller, deposit: bond / 2u32.into()}.into());
 	}
 
-	// worse case is the last candidate leaving.
-	leave_intent {
-		let c in (T::MinCandidates::get() + 1) .. T::MaxCollators::get();
+	// worst case is when we have all the max-candidate slots filled except one, and we fill that
+	// one.
+	onboard {
+		let c in 1 .. T::MaxCollators::get();
+
 		<LicenseBond<T>>::put(T::Currency::minimum_balance());
+		<DesiredCollators<T>>::put(c + 1);
+
+		register_validators::<T>(c);
+		register_candidates::<T>(c);
+
+		let caller: T::AccountId = whitelisted_caller();
+		let bond: BalanceOf<T> = T::Currency::minimum_balance() * 2u32.into();
+		T::Currency::make_free_balance_be(&caller, bond.clone());
+
+		let origin = RawOrigin::Signed(caller.clone());
+
+		<session::Pallet<T>>::set_keys(
+			origin.clone().into(),
+			keys::<T>(c + 1),
+			Vec::new()
+		).unwrap();
+
+		assert_ok!(
+			<CollatorSelection<T>>::get_license(origin.clone().into())
+		);
+	}: _(origin)
+	verify {
+		assert_last_event::<T>(Event::CandidateAdded{account_id: caller}.into());
+	}
+
+	// worst case is the last candidate leaving.
+	offboard {
+		let c in 1 .. T::MaxCollators::get();
+		<LicenseBond<T>>::put(T::Currency::minimum_balance());
 		<DesiredCollators<T>>::put(c);
 
 		register_validators::<T>(c);
 		register_candidates::<T>(c);
 
-		let leaving = <Candidates<T>>::get().last().unwrap().who.clone();
+		let leaving = <Candidates<T>>::get().last().unwrap().clone();
 		whitelist!(leaving);
 	}: _(RawOrigin::Signed(leaving.clone()))
 	verify {
-		// todo:collator verify these
-		assert_last_event::<T>(Event::CandidateRemoved{account_id: leaving, deposit_returned: bond / 2u32.into() }.into());
+		assert_last_event::<T>(Event::CandidateRemoved{account_id: leaving}.into());
 	}
 
-	// worse case is paying a non-existing candidate account.
+	// worst case is the last candidate leaving.
+	release_license {
+		let c in 1 .. T::MaxCollators::get();
+		let bond = T::Currency::minimum_balance();
+		<LicenseBond<T>>::put(bond);
+		<DesiredCollators<T>>::put(c);
+
+		register_validators::<T>(c);
+		register_candidates::<T>(c);
+
+		let leaving = <Candidates<T>>::get().last().unwrap().clone();
+		whitelist!(leaving);
+	}: _(RawOrigin::Signed(leaving.clone()))
+	verify {
+		assert_last_event::<T>(Event::LicenseReleased{account_id: leaving, deposit_returned: bond}.into());
+	}
+
+	// worst case is the last candidate leaving.
+	force_release_license {
+		let c in 1 .. T::MaxCollators::get();
+		let bond = T::Currency::minimum_balance();
+		<LicenseBond<T>>::put(bond);
+		<DesiredCollators<T>>::put(c);
+
+		register_validators::<T>(c);
+		register_candidates::<T>(c);
+
+		let leaving = <Candidates<T>>::get().last().unwrap().clone();
+		whitelist!(leaving);
+		let origin = T::UpdateOrigin::successful_origin();
+	}: {
+		assert_ok!(
+			<CollatorSelection<T>>::force_release_license(origin, leaving.clone())
+		);
+	}
+	verify {
+		assert_last_event::<T>(Event::LicenseReleased{account_id: leaving, deposit_returned: bond}.into());
+	}
+
+	// worst case is paying a non-existing candidate account.
 	note_author {
 		<LicenseBond<T>>::put(T::Currency::minimum_balance());
 		T::Currency::make_free_balance_be(
@@ -247,16 +336,16 @@
 		let non_removals = c.saturating_sub(r);
 
 		for i in 0..c {
-			<LastAuthoredBlock<T>>::insert(candidates[i as usize].who.clone(), zero_block);
+			<LastAuthoredBlock<T>>::insert(candidates[i as usize].clone(), zero_block);
 		}
 
 		if non_removals > 0 {
 			for i in 0..non_removals {
-				<LastAuthoredBlock<T>>::insert(candidates[i as usize].who.clone(), new_block);
+				<LastAuthoredBlock<T>>::insert(candidates[i as usize].clone(), new_block);
 			}
 		} else {
 			for i in 0..c {
-				<LastAuthoredBlock<T>>::insert(candidates[i as usize].who.clone(), new_block);
+				<LastAuthoredBlock<T>>::insert(candidates[i as usize].clone(), new_block);
 			}
 		}
 
@@ -268,10 +357,8 @@
 	}: {
 		<CollatorSelection<T> as SessionManager<_>>::new_session(0)
 	} verify {
-		if c > r && non_removals >= T::MinCandidates::get() {
+		if c > r {
 			assert!(<Candidates<T>>::get().len() < pre_length);
-		} else if c > r && non_removals < T::MinCandidates::get() {
-			assert!(<Candidates<T>>::get().len() == T::MinCandidates::get() as usize);
 		} else {
 			assert!(<Candidates<T>>::get().len() == pre_length);
 		}
modifiedpallets/collator-selection/src/lib.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/lib.rs
+++ b/pallets/collator-selection/src/lib.rs
@@ -235,7 +235,7 @@
 			account_id: T::AccountId,
 			deposit: BalanceOf<T>,
 		},
-		LicenseForfeited {
+		LicenseReleased {
 			account_id: T::AccountId,
 			deposit_returned: BalanceOf<T>,
 		},
@@ -285,7 +285,7 @@
 	impl<T: Config> Pallet<T> {
 		/// Add a collator to the list of invulnerable (fixed) collators.
 		#[pallet::call_index(0)]
-		#[pallet::weight(T::WeightInfo::set_invulnerables(1u32))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::add_invulnerable(T::MaxCollators::get()))] // todo:collator weight
 		pub fn add_invulnerable(
 			origin: OriginFor<T>,
 			new: T::AccountId,
@@ -315,7 +315,7 @@
 
 		/// Remove a collator from the list of invulnerable (fixed) collators.
 		#[pallet::call_index(1)]
-		#[pallet::weight(T::WeightInfo::set_invulnerables(1))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::remove_invulnerable(T::MaxCollators::get()))] // todo:collator weight
 		pub fn remove_invulnerable(
 			origin: OriginFor<T>,
 			who: T::AccountId,
@@ -344,7 +344,7 @@
 		///
 		/// This call is not available to `Invulnerable` collators.
 		#[pallet::call_index(2)]
-		#[pallet::weight(T::WeightInfo::register_as_candidate(T::MaxCollators::get()))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::get_license(T::MaxCollators::get()))] // todo:collator weight
 		pub fn get_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
 			// register_as_candidate
 			let who = ensure_signed(origin)?;
@@ -377,7 +377,7 @@
 		///
 		/// This call is not available to `Invulnerable` collators.
 		#[pallet::call_index(3)]
-		#[pallet::weight(T::WeightInfo::register_as_candidate(T::MaxCollators::get()))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::onboard(T::MaxCollators::get()))] // todo:collator weight
 		pub fn onboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
 			// register_as_candidate
 			let who = ensure_signed(origin)?;
@@ -417,33 +417,33 @@
 				})?;
 
 			Self::deposit_event(Event::CandidateAdded { account_id: who });
-			Ok(Some(T::WeightInfo::register_as_candidate(current_count as u32)).into())
+			Ok(Some(T::WeightInfo::onboard(current_count as u32)).into())
 		}
 
 		/// Deregister `origin` as a collator candidate. Note that the collator can only leave on
 		/// session change. The license to `onboard` later at any other time will remain.
 		#[pallet::call_index(4)]
-		#[pallet::weight(T::WeightInfo::leave_intent(T::MaxCollators::get()))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::offboard(T::MaxCollators::get()))] // todo:collator weight
 		pub fn offboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
 			// leave_intent
 			let who = ensure_signed(origin)?;
 			let current_count = Self::try_remove_candidate(&who)?;
 
-			Ok(Some(T::WeightInfo::leave_intent(current_count as u32)).into()) // todo:collator weight
+			Ok(Some(T::WeightInfo::offboard(current_count as u32)).into()) // todo:collator weight
 		}
 
 		/// Forfeit `origin`'s own license. The `LicenseBond` will be unreserved immediately.
 		///
 		/// This call is not available to `Invulnerable` collators.
 		#[pallet::call_index(5)]
-		#[pallet::weight(T::WeightInfo::leave_intent(T::MaxCollators::get()))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::release_license(T::MaxCollators::get()))] // todo:collator weight
 		pub fn release_license(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
 			// leave_intent
 			let who = ensure_signed(origin)?;
 
 			let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;
 
-			Ok(Some(T::WeightInfo::leave_intent(current_count as u32)).into()) // todo:collator weight
+			Ok(Some(T::WeightInfo::release_license(current_count as u32)).into()) // todo:collator weight
 		}
 
 		/// Force deregister `origin` as a collator candidate as a governing authority, and revoke its license.
@@ -452,7 +452,7 @@
 		///
 		/// This call is, of course, not applicable to `Invulnerable` collators.
 		#[pallet::call_index(6)]
-		#[pallet::weight(T::WeightInfo::leave_intent(T::MaxCollators::get()))] // todo:collator weight
+		#[pallet::weight(T::WeightInfo::force_release_license(T::MaxCollators::get()))] // todo:collator weight
 		pub fn force_release_license(
 			origin: OriginFor<T>,
 			who: T::AccountId,
@@ -462,7 +462,7 @@
 
 			let current_count = Self::try_remove_candidate_and_release_license(&who, false, true)?;
 
-			Ok(Some(T::WeightInfo::leave_intent(current_count as u32)).into()) // todo:collator weight
+			Ok(Some(T::WeightInfo::force_release_license(current_count as u32)).into()) // todo:collator weight
 		}
 	}
 
@@ -534,7 +534,7 @@
 					Err(Error::<T>::NoLicense.into())
 				}
 			})?;
-			Self::deposit_event(Event::LicenseForfeited {
+			Self::deposit_event(Event::LicenseReleased {
 				account_id: who.clone(),
 				deposit_returned,
 			});
modifiedpallets/collator-selection/src/weights.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/weights.rs
+++ b/pallets/collator-selection/src/weights.rs
@@ -44,11 +44,13 @@
 // todo:collator re-generate weights
 // The weight info trait for `pallet_collator_selection`.
 pub trait WeightInfo {
-	fn set_invulnerables(_b: u32) -> Weight;
-	fn set_desired_collators() -> Weight;
-	fn set_license_bond() -> Weight;
-	fn register_as_candidate(_c: u32) -> Weight;
-	fn leave_intent(_c: u32) -> Weight;
+	fn add_invulnerable(_b: u32) -> Weight;
+	fn remove_invulnerable(_b: u32) -> Weight;
+	fn get_license(_c: u32) -> Weight;
+	fn onboard(_c: u32) -> Weight;
+	fn offboard(_c: u32) -> Weight;
+	fn release_license(_c: u32) -> Weight;
+	fn force_release_license(_c: u32) -> Weight;
 	fn note_author() -> Weight;
 	fn new_session(_c: u32, _r: u32) -> Weight;
 }
@@ -56,26 +58,47 @@
 /// Weights for pallet_collator_selection using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	fn set_invulnerables(b: u32) -> Weight {
+	fn add_invulnerable(b: u32) -> Weight {
 		Weight::from_ref_time(18_563_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64))
 			.saturating_add(T::DbWeight::get().writes(1 as u64))
 	}
-	fn set_desired_collators() -> Weight {
-		Weight::from_ref_time(16_363_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64))
+	fn remove_invulnerable(b: u32) -> Weight {
+		Weight::from_ref_time(18_563_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64))
+			.saturating_add(T::DbWeight::get().writes(1 as u64))
 	}
-	fn set_license_bond() -> Weight {
-		Weight::from_ref_time(16_840_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64))
+	fn get_license(c: u32) -> Weight {
+		Weight::from_ref_time(71_196_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64))
+			.saturating_add(T::DbWeight::get().reads(4 as u64))
+			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
-	fn register_as_candidate(c: u32) -> Weight {
+	fn onboard(c: u32) -> Weight {
 		Weight::from_ref_time(71_196_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64))
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
-	fn leave_intent(c: u32) -> Weight {
+	fn offboard(c: u32) -> Weight {
+		Weight::from_ref_time(55_336_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
+			.saturating_add(T::DbWeight::get().reads(1 as u64))
+			.saturating_add(T::DbWeight::get().writes(2 as u64))
+	}
+	fn release_license(c: u32) -> Weight {
+		Weight::from_ref_time(55_336_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
+			.saturating_add(T::DbWeight::get().reads(1 as u64))
+			.saturating_add(T::DbWeight::get().writes(2 as u64))
+	}
+	fn force_release_license(c: u32) -> Weight {
 		Weight::from_ref_time(55_336_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
@@ -102,28 +125,47 @@
 
 // For backwards compatibility and tests
 impl WeightInfo for () {
-	fn set_invulnerables(b: u32) -> Weight {
+	fn add_invulnerable(b: u32) -> Weight {
 		Weight::from_ref_time(18_563_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64))
 			.saturating_add(RocksDbWeight::get().writes(1 as u64))
 	}
-	fn set_desired_collators() -> Weight {
-		Weight::from_ref_time(16_363_000 as u64)
+	fn remove_invulnerable(b: u32) -> Weight {
+		Weight::from_ref_time(18_563_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64))
 			.saturating_add(RocksDbWeight::get().writes(1 as u64))
 	}
-	fn set_license_bond() -> Weight {
-		Weight::from_ref_time(16_840_000 as u64)
-			.saturating_add(RocksDbWeight::get().writes(1 as u64))
+	fn get_license(c: u32) -> Weight {
+		Weight::from_ref_time(71_196_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64))
+			.saturating_add(RocksDbWeight::get().reads(4 as u64))
+			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
-	fn register_as_candidate(c: u32) -> Weight {
+	fn onboard(c: u32) -> Weight {
 		Weight::from_ref_time(71_196_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64))
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
-	fn leave_intent(c: u32) -> Weight {
+	fn offboard(c: u32) -> Weight {
+		Weight::from_ref_time(55_336_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
+			.saturating_add(RocksDbWeight::get().reads(1 as u64))
+			.saturating_add(RocksDbWeight::get().writes(2 as u64))
+	}
+	fn release_license(c: u32) -> Weight {
+		Weight::from_ref_time(55_336_000 as u64)
+			// Standard Error: 0
+			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
+			.saturating_add(RocksDbWeight::get().reads(1 as u64))
+			.saturating_add(RocksDbWeight::get().writes(2 as u64))
+	}
+	fn force_release_license(c: u32) -> Weight {
 		Weight::from_ref_time(55_336_000 as u64)
 			// Standard Error: 0
 			.saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64))
modifiedpallets/data-management/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/data-management/src/benchmarking.rs
+++ b/pallets/data-management/src/benchmarking.rs
@@ -63,4 +63,28 @@
 		use codec::Encode;
 		let logs = (0..b).map(|_| <T as Config>::RuntimeEvent::from(crate::Event::<T>::TestEvent).encode()).collect::<Vec<_>>();
 	}: _(RawOrigin::Root, logs)
+
+	set_identities {
+		let b in 0..600;
+		use frame_benchmarking::account;
+		use pallet_identity::{BalanceOf, Registration, IdentityInfo};
+		let identities = (0..b).map(|i| (
+			account("caller", i, 0),
+			Some(Registration::<BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields> {
+				judgements: Default::default(),
+				deposit: Default::default(),
+				info: IdentityInfo {
+					additional: Default::default(),
+					display: Default::default(),
+					legal: Default::default(),
+					web: Default::default(),
+					riot: Default::default(),
+					email: Default::default(),
+					pgp_fingerprint: None,
+					image: Default::default(),
+					twitter: Default::default(),
+				},
+			}),
+		)).collect::<Vec<_>>();
+	}: _(RawOrigin::Root, identities)
 }
modifiedpallets/data-management/src/lib.rsdiffbeforeafterboth
--- a/pallets/data-management/src/lib.rs
+++ b/pallets/data-management/src/lib.rs
@@ -153,12 +153,18 @@
 
 		/// Insert or remove identities.
 		#[pallet::call_index(5)]
-		#[pallet::weight(<SelfWeightOf<T>>::insert_events(identities.len() as u32))] // todo:collator weight
+		#[pallet::weight(<SelfWeightOf<T>>::set_identities(identities.len() as u32))] // todo:collator weight
 		pub fn set_identities(
 			origin: OriginFor<T>,
 			identities: Vec<(
 				T::AccountId,
-				Option<Registration<pallet_identity::BalanceOf<T>, T::MaxRegistrars, T::MaxAdditionalFields>>,
+				Option<
+					Registration<
+						pallet_identity::BalanceOf<T>,
+						T::MaxRegistrars,
+						T::MaxAdditionalFields,
+					>,
+				>,
 			)>,
 		) -> DispatchResult {
 			ensure_root(origin)?;
modifiedpallets/data-management/src/weights.rsdiffbeforeafterboth
--- a/pallets/data-management/src/weights.rs
+++ b/pallets/data-management/src/weights.rs
@@ -39,6 +39,7 @@
 	fn finish(b: u32, ) -> Weight;
 	fn insert_eth_logs(b: u32, ) -> Weight;
 	fn insert_events(b: u32, ) -> Weight;
+	fn set_identities(b: u32, ) -> Weight;
 }
 
 /// Weights for pallet_data_management using the Substrate node and recommended hardware.
@@ -80,6 +81,11 @@
 			// Standard Error: 1_227
 			.saturating_add(Weight::from_ref_time(1_311_481 as u64).saturating_mul(b as u64))
 	}
+	fn set_identities(b: u32, ) -> Weight {
+		Weight::from_ref_time(10_936_376 as u64)
+			// Standard Error: 1_227
+			.saturating_add(Weight::from_ref_time(1_311_481 as u64).saturating_mul(b as u64))
+	}
 }
 
 // For backwards compatibility and tests
@@ -120,4 +126,9 @@
 			// Standard Error: 1_227
 			.saturating_add(Weight::from_ref_time(1_311_481 as u64).saturating_mul(b as u64))
 	}
+	fn set_identities(b: u32, ) -> Weight {
+		Weight::from_ref_time(10_936_376 as u64)
+			// Standard Error: 1_227
+			.saturating_add(Weight::from_ref_time(1_311_481 as u64).saturating_mul(b as u64))
+	}
 }
modifiedpallets/identity/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/identity/src/benchmarking.rs
+++ b/pallets/identity/src/benchmarking.rs
@@ -62,14 +62,16 @@
 		let registrar_origin = T::RegistrarOrigin::successful_origin();
 		Identity::<T>::add_registrar(registrar_origin, registrar_lookup)?;
 		Identity::<T>::set_fee(RawOrigin::Signed(registrar.clone()).into(), i, 10u32.into())?;
-		let fields =
-			IdentityFields(
-				IdentityField::Display |
-					IdentityField::Legal | IdentityField::Web |
-					IdentityField::Riot | IdentityField::Email |
-					IdentityField::PgpFingerprint |
-					IdentityField::Image | IdentityField::Twitter,
-			);
+		let fields = IdentityFields(
+			IdentityField::Display
+				| IdentityField::Legal
+				| IdentityField::Web
+				| IdentityField::Riot
+				| IdentityField::Email
+				| IdentityField::PgpFingerprint
+				| IdentityField::Image
+				| IdentityField::Twitter,
+		);
 		Identity::<T>::set_fields(RawOrigin::Signed(registrar.clone()).into(), i, fields)?;
 	}
 
@@ -122,7 +124,9 @@
 	let data = Data::Raw(vec![0; 32].try_into().unwrap());
 
 	IdentityInfo {
-		additional: vec![(data.clone(), data.clone()); num_fields as usize].try_into().unwrap(),
+		additional: vec![(data.clone(), data.clone()); num_fields as usize]
+			.try_into()
+			.unwrap(),
 		display: data.clone(),
 		legal: data.clone(),
 		web: data.clone(),
modifiedpallets/identity/src/lib.rsdiffbeforeafterboth
--- a/pallets/identity/src/lib.rs
+++ b/pallets/identity/src/lib.rs
@@ -265,24 +265,51 @@
 		/// A name was set or reset (which will remove all judgements).
 		IdentitySet { who: T::AccountId },
 		/// A name was cleared, and the given balance returned.
-		IdentityCleared { who: T::AccountId, deposit: BalanceOf<T> },
+		IdentityCleared {
+			who: T::AccountId,
+			deposit: BalanceOf<T>,
+		},
 		/// A name was removed and the given balance slashed.
-		IdentityKilled { who: T::AccountId, deposit: BalanceOf<T> },
+		IdentityKilled {
+			who: T::AccountId,
+			deposit: BalanceOf<T>,
+		},
 		/// A judgement was asked from a registrar.
-		JudgementRequested { who: T::AccountId, registrar_index: RegistrarIndex },
+		JudgementRequested {
+			who: T::AccountId,
+			registrar_index: RegistrarIndex,
+		},
 		/// A judgement request was retracted.
-		JudgementUnrequested { who: T::AccountId, registrar_index: RegistrarIndex },
+		JudgementUnrequested {
+			who: T::AccountId,
+			registrar_index: RegistrarIndex,
+		},
 		/// A judgement was given by a registrar.
-		JudgementGiven { target: T::AccountId, registrar_index: RegistrarIndex },
+		JudgementGiven {
+			target: T::AccountId,
+			registrar_index: RegistrarIndex,
+		},
 		/// A registrar was added.
 		RegistrarAdded { registrar_index: RegistrarIndex },
 		/// A sub-identity was added to an identity and the deposit paid.
-		SubIdentityAdded { sub: T::AccountId, main: T::AccountId, deposit: BalanceOf<T> },
+		SubIdentityAdded {
+			sub: T::AccountId,
+			main: T::AccountId,
+			deposit: BalanceOf<T>,
+		},
 		/// A sub-identity was removed from an identity and the deposit freed.
-		SubIdentityRemoved { sub: T::AccountId, main: T::AccountId, deposit: BalanceOf<T> },
+		SubIdentityRemoved {
+			sub: T::AccountId,
+			main: T::AccountId,
+			deposit: BalanceOf<T>,
+		},
 		/// A sub-identity was cleared, and the given deposit repatriated from the
 		/// main identity account to the sub-identity account.
-		SubIdentityRevoked { sub: T::AccountId, main: T::AccountId, deposit: BalanceOf<T> },
+		SubIdentityRevoked {
+			sub: T::AccountId,
+			main: T::AccountId,
+			deposit: BalanceOf<T>,
+		},
 	}
 
 	#[pallet::call]
@@ -358,7 +385,10 @@
 		) -> DispatchResultWithPostInfo {
 			let sender = ensure_signed(origin)?;
 			let extra_fields = info.additional.len() as u32;
-			ensure!(extra_fields <= T::MaxAdditionalFields::get(), Error::<T>::TooManyFields);
+			ensure!(
+				extra_fields <= T::MaxAdditionalFields::get(),
+				Error::<T>::TooManyFields
+			);
 			let fd = <BalanceOf<T>>::from(extra_fields) * T::FieldDeposit::get();
 
 			let mut id = match <IdentityOf<T>>::get(&sender) {
@@ -367,7 +397,7 @@
 					id.judgements.retain(|j| j.1.is_sticky());
 					id.info = *info;
 					id
-				},
+				}
 				None => Registration {
 					info: *info,
 					judgements: BoundedVec::default(),
@@ -441,8 +471,10 @@
 			let (old_deposit, old_ids) = <SubsOf<T>>::get(&sender);
 			let new_deposit = T::SubAccountDeposit::get() * <BalanceOf<T>>::from(subs.len() as u32);
 
-			let not_other_sub =
-				subs.iter().filter_map(|i| SuperOf::<T>::get(&i.0)).all(|i| i.0 == sender);
+			let not_other_sub = subs
+				.iter()
+				.filter_map(|i| SuperOf::<T>::get(&i.0))
+				.all(|i| i.0 == sender);
 			ensure!(not_other_sub, Error::<T>::AlreadyClaimed);
 
 			if old_deposit < new_deposit {
@@ -459,7 +491,8 @@
 			let mut ids = BoundedVec::<T::AccountId, T::MaxSubAccounts>::default();
 			for (id, name) in subs {
 				<SuperOf<T>>::insert(&id, (sender.clone(), name));
-				ids.try_push(id).expect("subs length is less than T::MaxSubAccounts; qed");
+				ids.try_push(id)
+					.expect("subs length is less than T::MaxSubAccounts; qed");
 			}
 			let new_subs = ids.len();
 
@@ -514,7 +547,10 @@
 			let err_amount = T::Currency::unreserve(&sender, deposit);
 			debug_assert!(err_amount.is_zero());
 
-			Self::deposit_event(Event::IdentityCleared { who: sender, deposit });
+			Self::deposit_event(Event::IdentityCleared {
+				who: sender,
+				deposit,
+			});
 
 			Ok(Some(T::WeightInfo::clear_identity(
 				id.judgements.len() as u32,      // R
@@ -568,14 +604,17 @@
 
 			let item = (reg_index, Judgement::FeePaid(registrar.fee));
 			match id.judgements.binary_search_by_key(&reg_index, |x| x.0) {
-				Ok(i) =>
+				Ok(i) => {
 					if id.judgements[i].1.is_sticky() {
-						return Err(Error::<T>::StickyJudgement.into())
+						return Err(Error::<T>::StickyJudgement.into());
 					} else {
 						id.judgements[i] = item
-					},
-				Err(i) =>
-					id.judgements.try_insert(i, item).map_err(|_| Error::<T>::TooManyRegistrars)?,
+					}
+				}
+				Err(i) => id
+					.judgements
+					.try_insert(i, item)
+					.map_err(|_| Error::<T>::TooManyRegistrars)?,
 			}
 
 			T::Currency::reserve(&sender, registrar.fee)?;
@@ -589,8 +628,11 @@
 				registrar_index: reg_index,
 			});
 
-			Ok(Some(T::WeightInfo::request_judgement(judgements as u32, extra_fields as u32))
-				.into())
+			Ok(Some(T::WeightInfo::request_judgement(
+				judgements as u32,
+				extra_fields as u32,
+			))
+			.into())
 		}
 
 		/// Cancel a previous request.
@@ -629,7 +671,7 @@
 			let fee = if let Judgement::FeePaid(fee) = id.judgements.remove(pos).1 {
 				fee
 			} else {
-				return Err(Error::<T>::JudgementGiven.into())
+				return Err(Error::<T>::JudgementGiven.into());
 			};
 
 			let err_amount = T::Currency::unreserve(&sender, fee);
@@ -643,7 +685,11 @@
 				registrar_index: reg_index,
 			});
 
-			Ok(Some(T::WeightInfo::cancel_request(judgements as u32, extra_fields as u32)).into())
+			Ok(Some(T::WeightInfo::cancel_request(
+				judgements as u32,
+				extra_fields as u32,
+			))
+			.into())
 		}
 
 		/// Set the fee required for a judgement to be requested from a registrar.
@@ -810,7 +856,7 @@
 			let mut id = <IdentityOf<T>>::get(&target).ok_or(Error::<T>::InvalidTarget)?;
 
 			if T::Hashing::hash_of(&id.info) != identity {
-				return Err(Error::<T>::JudgementForDifferentIdentity.into())
+				return Err(Error::<T>::JudgementForDifferentIdentity.into());
 			}
 
 			let item = (reg_index, judgement);
@@ -826,7 +872,7 @@
 						.map_err(|_| Error::<T>::JudgementPaymentFailed)?;
 					}
 					id.judgements[position] = item
-				},
+				}
 				Err(position) => id
 					.judgements
 					.try_insert(position, item)
@@ -836,10 +882,16 @@
 			let judgements = id.judgements.len();
 			let extra_fields = id.info.additional.len();
 			<IdentityOf<T>>::insert(&target, id);
-			Self::deposit_event(Event::JudgementGiven { target, registrar_index: reg_index });
+			Self::deposit_event(Event::JudgementGiven {
+				target,
+				registrar_index: reg_index,
+			});
 
-			Ok(Some(T::WeightInfo::provide_judgement(judgements as u32, extra_fields as u32))
-				.into())
+			Ok(Some(T::WeightInfo::provide_judgement(
+				judgements as u32,
+				extra_fields as u32,
+			))
+			.into())
 		}
 
 		/// Remove an account's identity and sub-account information and slash the deposits.
@@ -885,7 +937,10 @@
 			// Slash their deposit from them.
 			T::Slashed::on_unbalanced(T::Currency::slash_reserved(&target, deposit).0);
 
-			Self::deposit_event(Event::IdentityKilled { who: target, deposit });
+			Self::deposit_event(Event::IdentityKilled {
+				who: target,
+				deposit,
+			});
 
 			Ok(Some(T::WeightInfo::kill_identity(
 				id.judgements.len() as u32,      // R
@@ -911,10 +966,16 @@
 		) -> DispatchResult {
 			let sender = ensure_signed(origin)?;
 			let sub = T::Lookup::lookup(sub)?;
-			ensure!(IdentityOf::<T>::contains_key(&sender), Error::<T>::NoIdentity);
+			ensure!(
+				IdentityOf::<T>::contains_key(&sender),
+				Error::<T>::NoIdentity
+			);
 
 			// Check if it's already claimed as sub-identity.
-			ensure!(!SuperOf::<T>::contains_key(&sub), Error::<T>::AlreadyClaimed);
+			ensure!(
+				!SuperOf::<T>::contains_key(&sub),
+				Error::<T>::AlreadyClaimed
+			);
 
 			SubsOf::<T>::try_mutate(&sender, |(ref mut subs_deposit, ref mut sub_ids)| {
 				// Ensure there is space and that the deposit is paid.
@@ -926,10 +987,16 @@
 				T::Currency::reserve(&sender, deposit)?;
 
 				SuperOf::<T>::insert(&sub, (sender.clone(), data));
-				sub_ids.try_push(sub.clone()).expect("sub ids length checked above; qed");
+				sub_ids
+					.try_push(sub.clone())
+					.expect("sub ids length checked above; qed");
 				*subs_deposit = subs_deposit.saturating_add(deposit);
 
-				Self::deposit_event(Event::SubIdentityAdded { sub, main: sender.clone(), deposit });
+				Self::deposit_event(Event::SubIdentityAdded {
+					sub,
+					main: sender.clone(),
+					deposit,
+				});
 				Ok(())
 			})
 		}
@@ -947,8 +1014,14 @@
 		) -> DispatchResult {
 			let sender = ensure_signed(origin)?;
 			let sub = T::Lookup::lookup(sub)?;
-			ensure!(IdentityOf::<T>::contains_key(&sender), Error::<T>::NoIdentity);
-			ensure!(SuperOf::<T>::get(&sub).map_or(false, |x| x.0 == sender), Error::<T>::NotOwned);
+			ensure!(
+				IdentityOf::<T>::contains_key(&sender),
+				Error::<T>::NoIdentity
+			);
+			ensure!(
+				SuperOf::<T>::get(&sub).map_or(false, |x| x.0 == sender),
+				Error::<T>::NotOwned
+			);
 			SuperOf::<T>::insert(&sub, (sender, data));
 			Ok(())
 		}
@@ -964,7 +1037,10 @@
 		#[pallet::weight(T::WeightInfo::remove_sub(T::MaxSubAccounts::get()))]
 		pub fn remove_sub(origin: OriginFor<T>, sub: AccountIdLookupOf<T>) -> DispatchResult {
 			let sender = ensure_signed(origin)?;
-			ensure!(IdentityOf::<T>::contains_key(&sender), Error::<T>::NoIdentity);
+			ensure!(
+				IdentityOf::<T>::contains_key(&sender),
+				Error::<T>::NoIdentity
+			);
 			let sub = T::Lookup::lookup(sub)?;
 			let (sup, _) = SuperOf::<T>::get(&sub).ok_or(Error::<T>::NotSub)?;
 			ensure!(sup == sender, Error::<T>::NotOwned);
@@ -975,7 +1051,11 @@
 				*subs_deposit -= deposit;
 				let err_amount = T::Currency::unreserve(&sender, deposit);
 				debug_assert!(err_amount.is_zero());
-				Self::deposit_event(Event::SubIdentityRemoved { sub, main: sender, deposit });
+				Self::deposit_event(Event::SubIdentityRemoved {
+					sub,
+					main: sender,
+					deposit,
+				});
 			});
 			Ok(())
 		}
@@ -1024,7 +1104,8 @@
 
 	/// Check if the account has corresponding identity information by the identity field.
 	pub fn has_identity(who: &T::AccountId, fields: u64) -> bool {
-		IdentityOf::<T>::get(who)
-			.map_or(false, |registration| (registration.info.fields().0.bits() & fields) == fields)
+		IdentityOf::<T>::get(who).map_or(false, |registration| {
+			(registration.info.fields().0.bits() & fields) == fields
+		})
 	}
 }
modifiedpallets/identity/src/tests.rsdiffbeforeafterboth
--- a/pallets/identity/src/tests.rs
+++ b/pallets/identity/src/tests.rs
@@ -135,7 +135,9 @@
 }
 
 pub fn new_test_ext() -> sp_io::TestExternalities {
-	let mut t = frame_system::GenesisConfig::default().build_storage::<Test>().unwrap();
+	let mut t = frame_system::GenesisConfig::default()
+		.build_storage::<Test>()
+		.unwrap();
 	pallet_balances::GenesisConfig::<Test> {
 		balances: vec![(1, 10), (2, 10), (3, 10), (10, 100), (20, 100), (30, 100)],
 	}
@@ -155,7 +157,12 @@
 fn twenty() -> IdentityInfo<MaxAdditionalFields> {
 	IdentityInfo {
 		display: Data::Raw(b"twenty".to_vec().try_into().unwrap()),
-		legal: Data::Raw(b"The Right Ordinal Twenty, Esq.".to_vec().try_into().unwrap()),
+		legal: Data::Raw(
+			b"The Right Ordinal Twenty, Esq."
+				.to_vec()
+				.try_into()
+				.unwrap(),
+		),
 		..Default::default()
 	}
 }
@@ -170,7 +177,10 @@
 			Error::<Test>::NoIdentity
 		);
 
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 
 		// first sub account
 		assert_ok!(Identity::add_sub(RuntimeOrigin::signed(10), 1, data(1)));
@@ -215,8 +225,14 @@
 	new_test_ext().execute_with(|| {
 		let data = |x| Data::Raw(vec![x; 1].try_into().unwrap());
 
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(20), Box::new(twenty())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(20),
+			Box::new(twenty())
+		));
 
 		// 10 claims 1 as a subaccount
 		assert_ok!(Identity::add_sub(RuntimeOrigin::signed(10), 1, data(1)));
@@ -258,7 +274,11 @@
 		assert_ok!(Identity::set_fields(RuntimeOrigin::signed(3), 0, fields));
 		assert_eq!(
 			Identity::registrars(),
-			vec![Some(RegistrarInfo { account: 3, fee: 10, fields })]
+			vec![Some(RegistrarInfo {
+				account: 3,
+				fee: 10,
+				fields
+			})]
 		);
 	});
 }
@@ -283,15 +303,30 @@
 		assert_ok!(Identity::add_registrar(RuntimeOrigin::signed(1), 3));
 		assert_ok!(Identity::set_fee(RuntimeOrigin::signed(3), 0, 10));
 		let mut three_fields = ten();
-		three_fields.additional.try_push(Default::default()).unwrap();
-		three_fields.additional.try_push(Default::default()).unwrap();
-		assert!(three_fields.additional.try_push(Default::default()).is_err());
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		three_fields
+			.additional
+			.try_push(Default::default())
+			.unwrap();
+		three_fields
+			.additional
+			.try_push(Default::default())
+			.unwrap();
+		assert!(three_fields
+			.additional
+			.try_push(Default::default())
+			.is_err());
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_eq!(Identity::identity(10).unwrap().info, ten());
 		assert_eq!(Balances::free_balance(10), 90);
 		assert_ok!(Identity::clear_identity(RuntimeOrigin::signed(10)));
 		assert_eq!(Balances::free_balance(10), 100);
-		assert_noop!(Identity::clear_identity(RuntimeOrigin::signed(10)), Error::<Test>::NotNamed);
+		assert_noop!(
+			Identity::clear_identity(RuntimeOrigin::signed(10)),
+			Error::<Test>::NotNamed
+		);
 	});
 }
 
@@ -321,7 +356,10 @@
 			Error::<Test>::InvalidTarget
 		);
 
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_noop!(
 			Identity::provide_judgement(
 				RuntimeOrigin::signed(3),
@@ -363,7 +401,10 @@
 			Judgement::Reasonable,
 			identity_hash
 		));
-		assert_eq!(Identity::identity(10).unwrap().judgements, vec![(0, Judgement::Reasonable)]);
+		assert_eq!(
+			Identity::identity(10).unwrap().judgements,
+			vec![(0, Judgement::Reasonable)]
+		);
 	});
 }
 
@@ -371,7 +412,10 @@
 fn clearing_judgement_should_work() {
 	new_test_ext().execute_with(|| {
 		assert_ok!(Identity::add_registrar(RuntimeOrigin::signed(1), 3));
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_ok!(Identity::provide_judgement(
 			RuntimeOrigin::signed(3),
 			0,
@@ -387,8 +431,14 @@
 #[test]
 fn killing_slashing_should_work() {
 	new_test_ext().execute_with(|| {
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
-		assert_noop!(Identity::kill_identity(RuntimeOrigin::signed(1), 10), BadOrigin);
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
+		assert_noop!(
+			Identity::kill_identity(RuntimeOrigin::signed(1), 10),
+			BadOrigin
+		);
 		assert_ok!(Identity::kill_identity(RuntimeOrigin::signed(2), 10));
 		assert_eq!(Identity::identity(10), None);
 		assert_eq!(Balances::free_balance(10), 90);
@@ -408,28 +458,52 @@
 			Error::<Test>::NotFound
 		);
 
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_ok!(Identity::set_subs(RuntimeOrigin::signed(10), subs.clone()));
 		assert_eq!(Balances::free_balance(10), 80);
 		assert_eq!(Identity::subs_of(10), (10, vec![20].try_into().unwrap()));
-		assert_eq!(Identity::super_of(20), Some((10, Data::Raw(vec![40; 1].try_into().unwrap()))));
+		assert_eq!(
+			Identity::super_of(20),
+			Some((10, Data::Raw(vec![40; 1].try_into().unwrap())))
+		);
 
 		// push another item and re-set it.
 		subs.push((30, Data::Raw(vec![50; 1].try_into().unwrap())));
 		assert_ok!(Identity::set_subs(RuntimeOrigin::signed(10), subs.clone()));
 		assert_eq!(Balances::free_balance(10), 70);
-		assert_eq!(Identity::subs_of(10), (20, vec![20, 30].try_into().unwrap()));
-		assert_eq!(Identity::super_of(20), Some((10, Data::Raw(vec![40; 1].try_into().unwrap()))));
-		assert_eq!(Identity::super_of(30), Some((10, Data::Raw(vec![50; 1].try_into().unwrap()))));
+		assert_eq!(
+			Identity::subs_of(10),
+			(20, vec![20, 30].try_into().unwrap())
+		);
+		assert_eq!(
+			Identity::super_of(20),
+			Some((10, Data::Raw(vec![40; 1].try_into().unwrap())))
+		);
+		assert_eq!(
+			Identity::super_of(30),
+			Some((10, Data::Raw(vec![50; 1].try_into().unwrap())))
+		);
 
 		// switch out one of the items and re-set.
 		subs[0] = (40, Data::Raw(vec![60; 1].try_into().unwrap()));
 		assert_ok!(Identity::set_subs(RuntimeOrigin::signed(10), subs.clone()));
 		assert_eq!(Balances::free_balance(10), 70); // no change in the balance
-		assert_eq!(Identity::subs_of(10), (20, vec![40, 30].try_into().unwrap()));
+		assert_eq!(
+			Identity::subs_of(10),
+			(20, vec![40, 30].try_into().unwrap())
+		);
 		assert_eq!(Identity::super_of(20), None);
-		assert_eq!(Identity::super_of(30), Some((10, Data::Raw(vec![50; 1].try_into().unwrap()))));
-		assert_eq!(Identity::super_of(40), Some((10, Data::Raw(vec![60; 1].try_into().unwrap()))));
+		assert_eq!(
+			Identity::super_of(30),
+			Some((10, Data::Raw(vec![50; 1].try_into().unwrap())))
+		);
+		assert_eq!(
+			Identity::super_of(40),
+			Some((10, Data::Raw(vec![60; 1].try_into().unwrap())))
+		);
 
 		// clear
 		assert_ok!(Identity::set_subs(RuntimeOrigin::signed(10), vec![]));
@@ -449,7 +523,10 @@
 #[test]
 fn clearing_account_should_remove_subaccounts_and_refund() {
 	new_test_ext().execute_with(|| {
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_ok!(Identity::set_subs(
 			RuntimeOrigin::signed(10),
 			vec![(20, Data::Raw(vec![40; 1].try_into().unwrap()))]
@@ -463,7 +540,10 @@
 #[test]
 fn killing_account_should_remove_subaccounts_and_not_refund() {
 	new_test_ext().execute_with(|| {
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_ok!(Identity::set_subs(
 			RuntimeOrigin::signed(10),
 			vec![(20, Data::Raw(vec![40; 1].try_into().unwrap()))]
@@ -483,8 +563,15 @@
 			Identity::cancel_request(RuntimeOrigin::signed(10), 0),
 			Error::<Test>::NoIdentity
 		);
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
-		assert_ok!(Identity::request_judgement(RuntimeOrigin::signed(10), 0, 10));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
+		assert_ok!(Identity::request_judgement(
+			RuntimeOrigin::signed(10),
+			0,
+			10
+		));
 		assert_ok!(Identity::cancel_request(RuntimeOrigin::signed(10), 0));
 		assert_eq!(Balances::free_balance(10), 90);
 		assert_noop!(
@@ -511,12 +598,19 @@
 	new_test_ext().execute_with(|| {
 		assert_ok!(Identity::add_registrar(RuntimeOrigin::signed(1), 3));
 		assert_ok!(Identity::set_fee(RuntimeOrigin::signed(3), 0, 10));
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert_noop!(
 			Identity::request_judgement(RuntimeOrigin::signed(10), 0, 9),
 			Error::<Test>::FeeChanged
 		);
-		assert_ok!(Identity::request_judgement(RuntimeOrigin::signed(10), 0, 10));
+		assert_ok!(Identity::request_judgement(
+			RuntimeOrigin::signed(10),
+			0,
+			10
+		));
 		// 10 for the judgement request, 10 for the identity.
 		assert_eq!(Balances::free_balance(10), 80);
 
@@ -543,7 +637,11 @@
 
 		// Requesting from a second registrar still works.
 		assert_ok!(Identity::add_registrar(RuntimeOrigin::signed(1), 4));
-		assert_ok!(Identity::request_judgement(RuntimeOrigin::signed(10), 1, 10));
+		assert_ok!(Identity::request_judgement(
+			RuntimeOrigin::signed(10),
+			1,
+			10
+		));
 
 		// Re-requesting after the judgement has been reduced works.
 		assert_ok!(Identity::provide_judgement(
@@ -553,7 +651,11 @@
 			Judgement::OutOfDate,
 			BlakeTwo256::hash_of(&ten())
 		));
-		assert_ok!(Identity::request_judgement(RuntimeOrigin::signed(10), 0, 10));
+		assert_ok!(Identity::request_judgement(
+			RuntimeOrigin::signed(10),
+			0,
+			10
+		));
 	});
 }
 
@@ -562,8 +664,15 @@
 	new_test_ext().execute_with(|| {
 		assert_ok!(Identity::add_registrar(RuntimeOrigin::signed(1), 3));
 		assert_ok!(Identity::set_fee(RuntimeOrigin::signed(3), 0, 10));
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
-		assert_ok!(Identity::request_judgement(RuntimeOrigin::signed(10), 0, 10));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
+		assert_ok!(Identity::request_judgement(
+			RuntimeOrigin::signed(10),
+			0,
+			10
+		));
 		// 10 for the judgement request, 10 for the identity.
 		assert_eq!(Balances::free_balance(10), 80);
 
@@ -628,7 +737,10 @@
 #[test]
 fn test_has_identity() {
 	new_test_ext().execute_with(|| {
-		assert_ok!(Identity::set_identity(RuntimeOrigin::signed(10), Box::new(ten())));
+		assert_ok!(Identity::set_identity(
+			RuntimeOrigin::signed(10),
+			Box::new(ten())
+		));
 		assert!(Identity::has_identity(&10, IdentityField::Display as u64));
 		assert!(Identity::has_identity(&10, IdentityField::Legal as u64));
 		assert!(Identity::has_identity(
modifiedpallets/identity/src/types.rsdiffbeforeafterboth
--- a/pallets/identity/src/types.rs
+++ b/pallets/identity/src/types.rs
@@ -87,7 +87,7 @@
 					.expect("bound checked in match arm condition; qed");
 				input.read(&mut r[..])?;
 				Data::Raw(r)
-			},
+			}
 			34 => Data::BlakeTwo256(<[u8; 32]>::decode(input)?),
 			35 => Data::Sha256(<[u8; 32]>::decode(input)?),
 			36 => Data::Keccak256(<[u8; 32]>::decode(input)?),
@@ -106,7 +106,7 @@
 				let mut r = vec![l as u8 + 1; l + 1];
 				r[1..].copy_from_slice(&x[..l as usize]);
 				r
-			},
+			}
 			Data::BlakeTwo256(ref h) => once(34u8).chain(h.iter().cloned()).collect(),
 			Data::Sha256(ref h) => once(35u8).chain(h.iter().cloned()).collect(),
 			Data::Keccak256(ref h) => once(36u8).chain(h.iter().cloned()).collect(),
@@ -175,19 +175,25 @@
 
 		let variants = variants
 			.variant("BlakeTwo256", |v| {
-				v.index(34).fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
+				v.index(34)
+					.fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
 			})
 			.variant("Sha256", |v| {
-				v.index(35).fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
+				v.index(35)
+					.fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
 			})
 			.variant("Keccak256", |v| {
-				v.index(36).fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
+				v.index(36)
+					.fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
 			})
 			.variant("ShaThree256", |v| {
-				v.index(37).fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
+				v.index(37)
+					.fields(Fields::unnamed().field(|f| f.ty::<[u8; 32]>()))
 			});
 
-		Type::builder().path(Path::new("Data", module_path!())).variant(variants)
+		Type::builder()
+			.path(Path::new("Data", module_path!()))
+			.variant(variants)
 	}
 }
 
@@ -280,7 +286,9 @@
 impl Decode for IdentityFields {
 	fn decode<I: codec::Input>(input: &mut I) -> sp_std::result::Result<Self, codec::Error> {
 		let field = u64::decode(input)?;
-		Ok(Self(<BitFlags<IdentityField>>::from_bits(field as u64).map_err(|_| "invalid value")?))
+		Ok(Self(
+			<BitFlags<IdentityField>>::from_bits(field as u64).map_err(|_| "invalid value")?,
+		))
 	}
 }
 impl TypeInfo for IdentityFields {
@@ -289,7 +297,10 @@
 	fn type_info() -> Type {
 		Type::builder()
 			.path(Path::new("BitFlags", module_path!()))
-			.type_params(vec![TypeParameter::new("T", Some(meta_type::<IdentityField>()))])
+			.type_params(vec![TypeParameter::new(
+				"T",
+				Some(meta_type::<IdentityField>()),
+			)])
 			.composite(Fields::unnamed().field(|f| f.ty::<u64>().type_name("IdentityField")))
 	}
 }
@@ -413,10 +424,17 @@
 	> Registration<Balance, MaxJudgements, MaxAdditionalFields>
 {
 	pub(crate) fn total_deposit(&self) -> Balance {
-		self.deposit +
-			self.judgements
+		self.deposit
+			+ self
+				.judgements
 				.iter()
-				.map(|(_, ref j)| if let Judgement::FeePaid(fee) = j { *fee } else { Zero::zero() })
+				.map(|(_, ref j)| {
+					if let Judgement::FeePaid(fee) = j {
+						*fee
+					} else {
+						Zero::zero()
+					}
+				})
 				.fold(Zero::zero(), |a, i| a + i)
 	}
 }
@@ -429,7 +447,11 @@
 {
 	fn decode<I: codec::Input>(input: &mut I) -> sp_std::result::Result<Self, codec::Error> {
 		let (judgements, deposit, info) = Decode::decode(&mut AppendZerosInput::new(input))?;
-		Ok(Self { judgements, deposit, info })
+		Ok(Self {
+			judgements,
+			deposit,
+			info,
+		})
 	}
 }
 
modifiedruntime/common/config/pallets/collator_selection.rsdiffbeforeafterboth
--- a/runtime/common/config/pallets/collator_selection.rs
+++ b/runtime/common/config/pallets/collator_selection.rs
@@ -54,9 +54,10 @@
 }
 
 parameter_types! {
-	pub const BasicDeposit: Balance = 10 * UNIQUE; // todo:collator
+	// These do not matter as we forbid non-sudo operations with the identity pallet
+	pub const BasicDeposit: Balance = 10 * UNIQUE;
 	pub const FieldDeposit: Balance = 25 * MILLIUNIQUE;
-	pub const SubAccountDeposit: Balance = 2 * UNIQUE; // end todo
+	pub const SubAccountDeposit: Balance = 2 * UNIQUE;
 	pub const MaxSubAccounts: u32 = 100;
 	pub const MaxAdditionalFields: u32 = 100;
 	pub const MaxRegistrars: u32 = 20;
@@ -89,7 +90,6 @@
 	type TreasuryAccountId = TreasuryAccountId;
 	type PotId = PotId;
 	type MaxCollators = MaxCollators;
-	// todo:collator kick threshold should be in storage and configured only by root -- or rather UpdateOrigin
 	type SlashRatio = SlashRatio;
 	type ValidatorId = <Self as frame_system::Config>::AccountId;
 	type ValidatorIdOf = pallet_collator_selection::IdentityCollator;
modifiedruntime/common/runtime_apis.rsdiffbeforeafterboth
--- a/runtime/common/runtime_apis.rs
+++ b/runtime/common/runtime_apis.rs
@@ -705,7 +705,6 @@
                     #[cfg(feature = "rmrk")]
                     list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);
 
-                    // todo:collator check benchmarks
                     #[cfg(feature = "collator-selection")]
                     list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection);
 
@@ -772,7 +771,6 @@
                     #[cfg(feature = "rmrk")]
                     add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);
 
-                    // todo:collator check benchmarks
                     #[cfg(feature = "collator-selection")]
                     add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection);
 
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -39,6 +39,7 @@
     'pallet-unique/runtime-benchmarks',
     'pallet-inflation/runtime-benchmarks',
     'pallet-app-promotion/runtime-benchmarks',
+    'pallet-collator-selection/runtime-benchmarks',
     'pallet-unique-scheduler-v2/runtime-benchmarks',
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -38,6 +38,7 @@
     'pallet-unique/runtime-benchmarks',
     'pallet-foreign-assets/runtime-benchmarks',
     'pallet-inflation/runtime-benchmarks',
+    'pallet-collator-selection/runtime-benchmarks',
     'pallet-app-promotion/runtime-benchmarks',
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -38,6 +38,7 @@
     'pallet-unique/runtime-benchmarks',
     'pallet-foreign-assets/runtime-benchmarks',
     'pallet-inflation/runtime-benchmarks',
+    'pallet-collator-selection/runtime-benchmarks',
     'pallet-app-promotion/runtime-benchmarks',
     'pallet-xcm/runtime-benchmarks',
     'sp-runtime/runtime-benchmarks',
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -105,8 +105,8 @@
       CandidateRemoved: AugmentedEvent<ApiType, [accountId: AccountId32], { accountId: AccountId32 }>;
       InvulnerableAdded: AugmentedEvent<ApiType, [invulnerable: AccountId32], { invulnerable: AccountId32 }>;
       InvulnerableRemoved: AugmentedEvent<ApiType, [invulnerable: AccountId32], { invulnerable: AccountId32 }>;
-      LicenseForfeited: AugmentedEvent<ApiType, [accountId: AccountId32, depositReturned: u128], { accountId: AccountId32, depositReturned: u128 }>;
       LicenseObtained: AugmentedEvent<ApiType, [accountId: AccountId32, deposit: u128], { accountId: AccountId32, deposit: u128 }>;
+      LicenseReleased: AugmentedEvent<ApiType, [accountId: AccountId32, depositReturned: u128], { accountId: AccountId32, depositReturned: u128 }>;
       /**
        * Generic event
        **/
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -313,15 +313,15 @@
        **/
       insertEvents: AugmentedSubmittable<(events: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;
       /**
-       * Insert or remove identities.
-       **/
-      insertIdentities: AugmentedSubmittable<(identities: Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>> | ([AccountId32 | string | Uint8Array, Option<PalletIdentityRegistration> | null | Uint8Array | PalletIdentityRegistration | { judgements?: any; deposit?: any; info?: any } | string])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>>]>;
-      /**
        * Insert items into contract storage, this method can be called
        * multiple times
        **/
       setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;
       /**
+       * Insert or remove identities.
+       **/
+      setIdentities: AugmentedSubmittable<(identities: Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>> | ([AccountId32 | string | Uint8Array, Option<PalletIdentityRegistration> | null | Uint8Array | PalletIdentityRegistration | { judgements?: any; deposit?: any; info?: any } | string])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>>]>;
+      /**
        * Generic tx
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -1283,8 +1283,8 @@
     readonly accountId: AccountId32;
     readonly deposit: u128;
   } & Struct;
-  readonly isLicenseForfeited: boolean;
-  readonly asLicenseForfeited: {
+  readonly isLicenseReleased: boolean;
+  readonly asLicenseReleased: {
     readonly accountId: AccountId32;
     readonly depositReturned: u128;
   } & Struct;
@@ -1296,7 +1296,7 @@
   readonly asCandidateRemoved: {
     readonly accountId: AccountId32;
   } & Struct;
-  readonly type: 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseForfeited' | 'CandidateAdded' | 'CandidateRemoved';
+  readonly type: 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseReleased' | 'CandidateAdded' | 'CandidateRemoved';
 }
 
 /** @name PalletCommonError */
@@ -1477,11 +1477,11 @@
   readonly asInsertEvents: {
     readonly events: Vec<Bytes>;
   } & Struct;
-  readonly isInsertIdentities: boolean;
-  readonly asInsertIdentities: {
+  readonly isSetIdentities: boolean;
+  readonly asSetIdentities: {
     readonly identities: Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>>;
   } & Struct;
-  readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents' | 'InsertIdentities';
+  readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents' | 'SetIdentities';
 }
 
 /** @name PalletDataManagementError */
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
before · tests/src/interfaces/lookup.ts
1// Auto-generated via `yarn polkadot-types-from-defs`, do not edit2/* eslint-disable */34/* eslint-disable sort-keys */56export default {7  /**8   * Lookup3: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>9   **/10  FrameSystemAccountInfo: {11    nonce: 'u32',12    consumers: 'u32',13    providers: 'u32',14    sufficients: 'u32',15    data: 'PalletBalancesAccountData'16  },17  /**18   * Lookup5: pallet_balances::AccountData<Balance>19   **/20  PalletBalancesAccountData: {21    free: 'u128',22    reserved: 'u128',23    miscFrozen: 'u128',24    feeFrozen: 'u128'25  },26  /**27   * Lookup7: frame_support::dispatch::PerDispatchClass<sp_weights::weight_v2::Weight>28   **/29  FrameSupportDispatchPerDispatchClassWeight: {30    normal: 'SpWeightsWeightV2Weight',31    operational: 'SpWeightsWeightV2Weight',32    mandatory: 'SpWeightsWeightV2Weight'33  },34  /**35   * Lookup8: sp_weights::weight_v2::Weight36   **/37  SpWeightsWeightV2Weight: {38    refTime: 'Compact<u64>',39    proofSize: 'Compact<u64>'40  },41  /**42   * Lookup13: sp_runtime::generic::digest::Digest43   **/44  SpRuntimeDigest: {45    logs: 'Vec<SpRuntimeDigestDigestItem>'46  },47  /**48   * Lookup15: sp_runtime::generic::digest::DigestItem49   **/50  SpRuntimeDigestDigestItem: {51    _enum: {52      Other: 'Bytes',53      __Unused1: 'Null',54      __Unused2: 'Null',55      __Unused3: 'Null',56      Consensus: '([u8;4],Bytes)',57      Seal: '([u8;4],Bytes)',58      PreRuntime: '([u8;4],Bytes)',59      __Unused7: 'Null',60      RuntimeEnvironmentUpdated: 'Null'61    }62  },63  /**64   * Lookup18: frame_system::EventRecord<opal_runtime::RuntimeEvent, primitive_types::H256>65   **/66  FrameSystemEventRecord: {67    phase: 'FrameSystemPhase',68    event: 'Event',69    topics: 'Vec<H256>'70  },71  /**72   * Lookup20: frame_system::pallet::Event<T>73   **/74  FrameSystemEvent: {75    _enum: {76      ExtrinsicSuccess: {77        dispatchInfo: 'FrameSupportDispatchDispatchInfo',78      },79      ExtrinsicFailed: {80        dispatchError: 'SpRuntimeDispatchError',81        dispatchInfo: 'FrameSupportDispatchDispatchInfo',82      },83      CodeUpdated: 'Null',84      NewAccount: {85        account: 'AccountId32',86      },87      KilledAccount: {88        account: 'AccountId32',89      },90      Remarked: {91        _alias: {92          hash_: 'hash',93        },94        sender: 'AccountId32',95        hash_: 'H256'96      }97    }98  },99  /**100   * Lookup21: frame_support::dispatch::DispatchInfo101   **/102  FrameSupportDispatchDispatchInfo: {103    weight: 'SpWeightsWeightV2Weight',104    class: 'FrameSupportDispatchDispatchClass',105    paysFee: 'FrameSupportDispatchPays'106  },107  /**108   * Lookup22: frame_support::dispatch::DispatchClass109   **/110  FrameSupportDispatchDispatchClass: {111    _enum: ['Normal', 'Operational', 'Mandatory']112  },113  /**114   * Lookup23: frame_support::dispatch::Pays115   **/116  FrameSupportDispatchPays: {117    _enum: ['Yes', 'No']118  },119  /**120   * Lookup24: sp_runtime::DispatchError121   **/122  SpRuntimeDispatchError: {123    _enum: {124      Other: 'Null',125      CannotLookup: 'Null',126      BadOrigin: 'Null',127      Module: 'SpRuntimeModuleError',128      ConsumerRemaining: 'Null',129      NoProviders: 'Null',130      TooManyConsumers: 'Null',131      Token: 'SpRuntimeTokenError',132      Arithmetic: 'SpRuntimeArithmeticError',133      Transactional: 'SpRuntimeTransactionalError',134      Exhausted: 'Null',135      Corruption: 'Null',136      Unavailable: 'Null'137    }138  },139  /**140   * Lookup25: sp_runtime::ModuleError141   **/142  SpRuntimeModuleError: {143    index: 'u8',144    error: '[u8;4]'145  },146  /**147   * Lookup26: sp_runtime::TokenError148   **/149  SpRuntimeTokenError: {150    _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']151  },152  /**153   * Lookup27: sp_runtime::ArithmeticError154   **/155  SpRuntimeArithmeticError: {156    _enum: ['Underflow', 'Overflow', 'DivisionByZero']157  },158  /**159   * Lookup28: sp_runtime::TransactionalError160   **/161  SpRuntimeTransactionalError: {162    _enum: ['LimitReached', 'NoLayer']163  },164  /**165   * Lookup29: cumulus_pallet_parachain_system::pallet::Event<T>166   **/167  CumulusPalletParachainSystemEvent: {168    _enum: {169      ValidationFunctionStored: 'Null',170      ValidationFunctionApplied: {171        relayChainBlockNum: 'u32',172      },173      ValidationFunctionDiscarded: 'Null',174      UpgradeAuthorized: {175        codeHash: 'H256',176      },177      DownwardMessagesReceived: {178        count: 'u32',179      },180      DownwardMessagesProcessed: {181        weightUsed: 'SpWeightsWeightV2Weight',182        dmqHead: 'H256'183      }184    }185  },186  /**187   * Lookup30: pallet_collator_selection::pallet::Event<T>188   **/189  PalletCollatorSelectionEvent: {190    _enum: {191      InvulnerableAdded: {192        invulnerable: 'AccountId32',193      },194      InvulnerableRemoved: {195        invulnerable: 'AccountId32',196      },197      LicenseObtained: {198        accountId: 'AccountId32',199        deposit: 'u128',200      },201      LicenseForfeited: {202        accountId: 'AccountId32',203        depositReturned: 'u128',204      },205      CandidateAdded: {206        accountId: 'AccountId32',207      },208      CandidateRemoved: {209        accountId: 'AccountId32'210      }211    }212  },213  /**214   * Lookup31: pallet_session::pallet::Event215   **/216  PalletSessionEvent: {217    _enum: {218      NewSession: {219        sessionIndex: 'u32'220      }221    }222  },223  /**224   * Lookup32: pallet_identity::pallet::Event<T>225   **/226  PalletIdentityEvent: {227    _enum: {228      IdentitySet: {229        who: 'AccountId32',230      },231      IdentityCleared: {232        who: 'AccountId32',233        deposit: 'u128',234      },235      IdentityKilled: {236        who: 'AccountId32',237        deposit: 'u128',238      },239      JudgementRequested: {240        who: 'AccountId32',241        registrarIndex: 'u32',242      },243      JudgementUnrequested: {244        who: 'AccountId32',245        registrarIndex: 'u32',246      },247      JudgementGiven: {248        target: 'AccountId32',249        registrarIndex: 'u32',250      },251      RegistrarAdded: {252        registrarIndex: 'u32',253      },254      SubIdentityAdded: {255        sub: 'AccountId32',256        main: 'AccountId32',257        deposit: 'u128',258      },259      SubIdentityRemoved: {260        sub: 'AccountId32',261        main: 'AccountId32',262        deposit: 'u128',263      },264      SubIdentityRevoked: {265        sub: 'AccountId32',266        main: 'AccountId32',267        deposit: 'u128'268      }269    }270  },271  /**272   * Lookup33: pallet_balances::pallet::Event<T, I>273   **/274  PalletBalancesEvent: {275    _enum: {276      Endowed: {277        account: 'AccountId32',278        freeBalance: 'u128',279      },280      DustLost: {281        account: 'AccountId32',282        amount: 'u128',283      },284      Transfer: {285        from: 'AccountId32',286        to: 'AccountId32',287        amount: 'u128',288      },289      BalanceSet: {290        who: 'AccountId32',291        free: 'u128',292        reserved: 'u128',293      },294      Reserved: {295        who: 'AccountId32',296        amount: 'u128',297      },298      Unreserved: {299        who: 'AccountId32',300        amount: 'u128',301      },302      ReserveRepatriated: {303        from: 'AccountId32',304        to: 'AccountId32',305        amount: 'u128',306        destinationStatus: 'FrameSupportTokensMiscBalanceStatus',307      },308      Deposit: {309        who: 'AccountId32',310        amount: 'u128',311      },312      Withdraw: {313        who: 'AccountId32',314        amount: 'u128',315      },316      Slashed: {317        who: 'AccountId32',318        amount: 'u128'319      }320    }321  },322  /**323   * Lookup34: frame_support::traits::tokens::misc::BalanceStatus324   **/325  FrameSupportTokensMiscBalanceStatus: {326    _enum: ['Free', 'Reserved']327  },328  /**329   * Lookup35: pallet_transaction_payment::pallet::Event<T>330   **/331  PalletTransactionPaymentEvent: {332    _enum: {333      TransactionFeePaid: {334        who: 'AccountId32',335        actualFee: 'u128',336        tip: 'u128'337      }338    }339  },340  /**341   * Lookup36: pallet_treasury::pallet::Event<T, I>342   **/343  PalletTreasuryEvent: {344    _enum: {345      Proposed: {346        proposalIndex: 'u32',347      },348      Spending: {349        budgetRemaining: 'u128',350      },351      Awarded: {352        proposalIndex: 'u32',353        award: 'u128',354        account: 'AccountId32',355      },356      Rejected: {357        proposalIndex: 'u32',358        slashed: 'u128',359      },360      Burnt: {361        burntFunds: 'u128',362      },363      Rollover: {364        rolloverBalance: 'u128',365      },366      Deposit: {367        value: 'u128',368      },369      SpendApproved: {370        proposalIndex: 'u32',371        amount: 'u128',372        beneficiary: 'AccountId32'373      }374    }375  },376  /**377   * Lookup37: pallet_sudo::pallet::Event<T>378   **/379  PalletSudoEvent: {380    _enum: {381      Sudid: {382        sudoResult: 'Result<Null, SpRuntimeDispatchError>',383      },384      KeyChanged: {385        oldSudoer: 'Option<AccountId32>',386      },387      SudoAsDone: {388        sudoResult: 'Result<Null, SpRuntimeDispatchError>'389      }390    }391  },392  /**393   * Lookup41: orml_vesting::module::Event<T>394   **/395  OrmlVestingModuleEvent: {396    _enum: {397      VestingScheduleAdded: {398        from: 'AccountId32',399        to: 'AccountId32',400        vestingSchedule: 'OrmlVestingVestingSchedule',401      },402      Claimed: {403        who: 'AccountId32',404        amount: 'u128',405      },406      VestingSchedulesUpdated: {407        who: 'AccountId32'408      }409    }410  },411  /**412   * Lookup42: orml_vesting::VestingSchedule<BlockNumber, Balance>413   **/414  OrmlVestingVestingSchedule: {415    start: 'u32',416    period: 'u32',417    periodCount: 'u32',418    perPeriod: 'Compact<u128>'419  },420  /**421   * Lookup44: orml_xtokens::module::Event<T>422   **/423  OrmlXtokensModuleEvent: {424    _enum: {425      TransferredMultiAssets: {426        sender: 'AccountId32',427        assets: 'XcmV1MultiassetMultiAssets',428        fee: 'XcmV1MultiAsset',429        dest: 'XcmV1MultiLocation'430      }431    }432  },433  /**434   * Lookup45: xcm::v1::multiasset::MultiAssets435   **/436  XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',437  /**438   * Lookup47: xcm::v1::multiasset::MultiAsset439   **/440  XcmV1MultiAsset: {441    id: 'XcmV1MultiassetAssetId',442    fun: 'XcmV1MultiassetFungibility'443  },444  /**445   * Lookup48: xcm::v1::multiasset::AssetId446   **/447  XcmV1MultiassetAssetId: {448    _enum: {449      Concrete: 'XcmV1MultiLocation',450      Abstract: 'Bytes'451    }452  },453  /**454   * Lookup49: xcm::v1::multilocation::MultiLocation455   **/456  XcmV1MultiLocation: {457    parents: 'u8',458    interior: 'XcmV1MultilocationJunctions'459  },460  /**461   * Lookup50: xcm::v1::multilocation::Junctions462   **/463  XcmV1MultilocationJunctions: {464    _enum: {465      Here: 'Null',466      X1: 'XcmV1Junction',467      X2: '(XcmV1Junction,XcmV1Junction)',468      X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',469      X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',470      X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',471      X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',472      X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',473      X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'474    }475  },476  /**477   * Lookup51: xcm::v1::junction::Junction478   **/479  XcmV1Junction: {480    _enum: {481      Parachain: 'Compact<u32>',482      AccountId32: {483        network: 'XcmV0JunctionNetworkId',484        id: '[u8;32]',485      },486      AccountIndex64: {487        network: 'XcmV0JunctionNetworkId',488        index: 'Compact<u64>',489      },490      AccountKey20: {491        network: 'XcmV0JunctionNetworkId',492        key: '[u8;20]',493      },494      PalletInstance: 'u8',495      GeneralIndex: 'Compact<u128>',496      GeneralKey: 'Bytes',497      OnlyChild: 'Null',498      Plurality: {499        id: 'XcmV0JunctionBodyId',500        part: 'XcmV0JunctionBodyPart'501      }502    }503  },504  /**505   * Lookup53: xcm::v0::junction::NetworkId506   **/507  XcmV0JunctionNetworkId: {508    _enum: {509      Any: 'Null',510      Named: 'Bytes',511      Polkadot: 'Null',512      Kusama: 'Null'513    }514  },515  /**516   * Lookup56: xcm::v0::junction::BodyId517   **/518  XcmV0JunctionBodyId: {519    _enum: {520      Unit: 'Null',521      Named: 'Bytes',522      Index: 'Compact<u32>',523      Executive: 'Null',524      Technical: 'Null',525      Legislative: 'Null',526      Judicial: 'Null'527    }528  },529  /**530   * Lookup57: xcm::v0::junction::BodyPart531   **/532  XcmV0JunctionBodyPart: {533    _enum: {534      Voice: 'Null',535      Members: {536        count: 'Compact<u32>',537      },538      Fraction: {539        nom: 'Compact<u32>',540        denom: 'Compact<u32>',541      },542      AtLeastProportion: {543        nom: 'Compact<u32>',544        denom: 'Compact<u32>',545      },546      MoreThanProportion: {547        nom: 'Compact<u32>',548        denom: 'Compact<u32>'549      }550    }551  },552  /**553   * Lookup58: xcm::v1::multiasset::Fungibility554   **/555  XcmV1MultiassetFungibility: {556    _enum: {557      Fungible: 'Compact<u128>',558      NonFungible: 'XcmV1MultiassetAssetInstance'559    }560  },561  /**562   * Lookup59: xcm::v1::multiasset::AssetInstance563   **/564  XcmV1MultiassetAssetInstance: {565    _enum: {566      Undefined: 'Null',567      Index: 'Compact<u128>',568      Array4: '[u8;4]',569      Array8: '[u8;8]',570      Array16: '[u8;16]',571      Array32: '[u8;32]',572      Blob: 'Bytes'573    }574  },575  /**576   * Lookup62: orml_tokens::module::Event<T>577   **/578  OrmlTokensModuleEvent: {579    _enum: {580      Endowed: {581        currencyId: 'PalletForeignAssetsAssetIds',582        who: 'AccountId32',583        amount: 'u128',584      },585      DustLost: {586        currencyId: 'PalletForeignAssetsAssetIds',587        who: 'AccountId32',588        amount: 'u128',589      },590      Transfer: {591        currencyId: 'PalletForeignAssetsAssetIds',592        from: 'AccountId32',593        to: 'AccountId32',594        amount: 'u128',595      },596      Reserved: {597        currencyId: 'PalletForeignAssetsAssetIds',598        who: 'AccountId32',599        amount: 'u128',600      },601      Unreserved: {602        currencyId: 'PalletForeignAssetsAssetIds',603        who: 'AccountId32',604        amount: 'u128',605      },606      ReserveRepatriated: {607        currencyId: 'PalletForeignAssetsAssetIds',608        from: 'AccountId32',609        to: 'AccountId32',610        amount: 'u128',611        status: 'FrameSupportTokensMiscBalanceStatus',612      },613      BalanceSet: {614        currencyId: 'PalletForeignAssetsAssetIds',615        who: 'AccountId32',616        free: 'u128',617        reserved: 'u128',618      },619      TotalIssuanceSet: {620        currencyId: 'PalletForeignAssetsAssetIds',621        amount: 'u128',622      },623      Withdrawn: {624        currencyId: 'PalletForeignAssetsAssetIds',625        who: 'AccountId32',626        amount: 'u128',627      },628      Slashed: {629        currencyId: 'PalletForeignAssetsAssetIds',630        who: 'AccountId32',631        freeAmount: 'u128',632        reservedAmount: 'u128',633      },634      Deposited: {635        currencyId: 'PalletForeignAssetsAssetIds',636        who: 'AccountId32',637        amount: 'u128',638      },639      LockSet: {640        lockId: '[u8;8]',641        currencyId: 'PalletForeignAssetsAssetIds',642        who: 'AccountId32',643        amount: 'u128',644      },645      LockRemoved: {646        lockId: '[u8;8]',647        currencyId: 'PalletForeignAssetsAssetIds',648        who: 'AccountId32'649      }650    }651  },652  /**653   * Lookup63: pallet_foreign_assets::AssetIds654   **/655  PalletForeignAssetsAssetIds: {656    _enum: {657      ForeignAssetId: 'u32',658      NativeAssetId: 'PalletForeignAssetsNativeCurrency'659    }660  },661  /**662   * Lookup64: pallet_foreign_assets::NativeCurrency663   **/664  PalletForeignAssetsNativeCurrency: {665    _enum: ['Here', 'Parent']666  },667  /**668   * Lookup65: cumulus_pallet_xcmp_queue::pallet::Event<T>669   **/670  CumulusPalletXcmpQueueEvent: {671    _enum: {672      Success: {673        messageHash: 'Option<H256>',674        weight: 'SpWeightsWeightV2Weight',675      },676      Fail: {677        messageHash: 'Option<H256>',678        error: 'XcmV2TraitsError',679        weight: 'SpWeightsWeightV2Weight',680      },681      BadVersion: {682        messageHash: 'Option<H256>',683      },684      BadFormat: {685        messageHash: 'Option<H256>',686      },687      UpwardMessageSent: {688        messageHash: 'Option<H256>',689      },690      XcmpMessageSent: {691        messageHash: 'Option<H256>',692      },693      OverweightEnqueued: {694        sender: 'u32',695        sentAt: 'u32',696        index: 'u64',697        required: 'SpWeightsWeightV2Weight',698      },699      OverweightServiced: {700        index: 'u64',701        used: 'SpWeightsWeightV2Weight'702      }703    }704  },705  /**706   * Lookup67: xcm::v2::traits::Error707   **/708  XcmV2TraitsError: {709    _enum: {710      Overflow: 'Null',711      Unimplemented: 'Null',712      UntrustedReserveLocation: 'Null',713      UntrustedTeleportLocation: 'Null',714      MultiLocationFull: 'Null',715      MultiLocationNotInvertible: 'Null',716      BadOrigin: 'Null',717      InvalidLocation: 'Null',718      AssetNotFound: 'Null',719      FailedToTransactAsset: 'Null',720      NotWithdrawable: 'Null',721      LocationCannotHold: 'Null',722      ExceedsMaxMessageSize: 'Null',723      DestinationUnsupported: 'Null',724      Transport: 'Null',725      Unroutable: 'Null',726      UnknownClaim: 'Null',727      FailedToDecode: 'Null',728      MaxWeightInvalid: 'Null',729      NotHoldingFees: 'Null',730      TooExpensive: 'Null',731      Trap: 'u64',732      UnhandledXcmVersion: 'Null',733      WeightLimitReached: 'u64',734      Barrier: 'Null',735      WeightNotComputable: 'Null'736    }737  },738  /**739   * Lookup69: pallet_xcm::pallet::Event<T>740   **/741  PalletXcmEvent: {742    _enum: {743      Attempted: 'XcmV2TraitsOutcome',744      Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',745      UnexpectedResponse: '(XcmV1MultiLocation,u64)',746      ResponseReady: '(u64,XcmV2Response)',747      Notified: '(u64,u8,u8)',748      NotifyOverweight: '(u64,u8,u8,SpWeightsWeightV2Weight,SpWeightsWeightV2Weight)',749      NotifyDispatchError: '(u64,u8,u8)',750      NotifyDecodeFailed: '(u64,u8,u8)',751      InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',752      InvalidResponderVersion: '(XcmV1MultiLocation,u64)',753      ResponseTaken: 'u64',754      AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',755      VersionChangeNotified: '(XcmV1MultiLocation,u32)',756      SupportedVersionChanged: '(XcmV1MultiLocation,u32)',757      NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',758      NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)',759      AssetsClaimed: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)'760    }761  },762  /**763   * Lookup70: xcm::v2::traits::Outcome764   **/765  XcmV2TraitsOutcome: {766    _enum: {767      Complete: 'u64',768      Incomplete: '(u64,XcmV2TraitsError)',769      Error: 'XcmV2TraitsError'770    }771  },772  /**773   * Lookup71: xcm::v2::Xcm<RuntimeCall>774   **/775  XcmV2Xcm: 'Vec<XcmV2Instruction>',776  /**777   * Lookup73: xcm::v2::Instruction<RuntimeCall>778   **/779  XcmV2Instruction: {780    _enum: {781      WithdrawAsset: 'XcmV1MultiassetMultiAssets',782      ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',783      ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',784      QueryResponse: {785        queryId: 'Compact<u64>',786        response: 'XcmV2Response',787        maxWeight: 'Compact<u64>',788      },789      TransferAsset: {790        assets: 'XcmV1MultiassetMultiAssets',791        beneficiary: 'XcmV1MultiLocation',792      },793      TransferReserveAsset: {794        assets: 'XcmV1MultiassetMultiAssets',795        dest: 'XcmV1MultiLocation',796        xcm: 'XcmV2Xcm',797      },798      Transact: {799        originType: 'XcmV0OriginKind',800        requireWeightAtMost: 'Compact<u64>',801        call: 'XcmDoubleEncoded',802      },803      HrmpNewChannelOpenRequest: {804        sender: 'Compact<u32>',805        maxMessageSize: 'Compact<u32>',806        maxCapacity: 'Compact<u32>',807      },808      HrmpChannelAccepted: {809        recipient: 'Compact<u32>',810      },811      HrmpChannelClosing: {812        initiator: 'Compact<u32>',813        sender: 'Compact<u32>',814        recipient: 'Compact<u32>',815      },816      ClearOrigin: 'Null',817      DescendOrigin: 'XcmV1MultilocationJunctions',818      ReportError: {819        queryId: 'Compact<u64>',820        dest: 'XcmV1MultiLocation',821        maxResponseWeight: 'Compact<u64>',822      },823      DepositAsset: {824        assets: 'XcmV1MultiassetMultiAssetFilter',825        maxAssets: 'Compact<u32>',826        beneficiary: 'XcmV1MultiLocation',827      },828      DepositReserveAsset: {829        assets: 'XcmV1MultiassetMultiAssetFilter',830        maxAssets: 'Compact<u32>',831        dest: 'XcmV1MultiLocation',832        xcm: 'XcmV2Xcm',833      },834      ExchangeAsset: {835        give: 'XcmV1MultiassetMultiAssetFilter',836        receive: 'XcmV1MultiassetMultiAssets',837      },838      InitiateReserveWithdraw: {839        assets: 'XcmV1MultiassetMultiAssetFilter',840        reserve: 'XcmV1MultiLocation',841        xcm: 'XcmV2Xcm',842      },843      InitiateTeleport: {844        assets: 'XcmV1MultiassetMultiAssetFilter',845        dest: 'XcmV1MultiLocation',846        xcm: 'XcmV2Xcm',847      },848      QueryHolding: {849        queryId: 'Compact<u64>',850        dest: 'XcmV1MultiLocation',851        assets: 'XcmV1MultiassetMultiAssetFilter',852        maxResponseWeight: 'Compact<u64>',853      },854      BuyExecution: {855        fees: 'XcmV1MultiAsset',856        weightLimit: 'XcmV2WeightLimit',857      },858      RefundSurplus: 'Null',859      SetErrorHandler: 'XcmV2Xcm',860      SetAppendix: 'XcmV2Xcm',861      ClearError: 'Null',862      ClaimAsset: {863        assets: 'XcmV1MultiassetMultiAssets',864        ticket: 'XcmV1MultiLocation',865      },866      Trap: 'Compact<u64>',867      SubscribeVersion: {868        queryId: 'Compact<u64>',869        maxResponseWeight: 'Compact<u64>',870      },871      UnsubscribeVersion: 'Null'872    }873  },874  /**875   * Lookup74: xcm::v2::Response876   **/877  XcmV2Response: {878    _enum: {879      Null: 'Null',880      Assets: 'XcmV1MultiassetMultiAssets',881      ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',882      Version: 'u32'883    }884  },885  /**886   * Lookup77: xcm::v0::OriginKind887   **/888  XcmV0OriginKind: {889    _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']890  },891  /**892   * Lookup78: xcm::double_encoded::DoubleEncoded<T>893   **/894  XcmDoubleEncoded: {895    encoded: 'Bytes'896  },897  /**898   * Lookup79: xcm::v1::multiasset::MultiAssetFilter899   **/900  XcmV1MultiassetMultiAssetFilter: {901    _enum: {902      Definite: 'XcmV1MultiassetMultiAssets',903      Wild: 'XcmV1MultiassetWildMultiAsset'904    }905  },906  /**907   * Lookup80: xcm::v1::multiasset::WildMultiAsset908   **/909  XcmV1MultiassetWildMultiAsset: {910    _enum: {911      All: 'Null',912      AllOf: {913        id: 'XcmV1MultiassetAssetId',914        fun: 'XcmV1MultiassetWildFungibility'915      }916    }917  },918  /**919   * Lookup81: xcm::v1::multiasset::WildFungibility920   **/921  XcmV1MultiassetWildFungibility: {922    _enum: ['Fungible', 'NonFungible']923  },924  /**925   * Lookup82: xcm::v2::WeightLimit926   **/927  XcmV2WeightLimit: {928    _enum: {929      Unlimited: 'Null',930      Limited: 'Compact<u64>'931    }932  },933  /**934   * Lookup84: xcm::VersionedMultiAssets935   **/936  XcmVersionedMultiAssets: {937    _enum: {938      V0: 'Vec<XcmV0MultiAsset>',939      V1: 'XcmV1MultiassetMultiAssets'940    }941  },942  /**943   * Lookup86: xcm::v0::multi_asset::MultiAsset944   **/945  XcmV0MultiAsset: {946    _enum: {947      None: 'Null',948      All: 'Null',949      AllFungible: 'Null',950      AllNonFungible: 'Null',951      AllAbstractFungible: {952        id: 'Bytes',953      },954      AllAbstractNonFungible: {955        class: 'Bytes',956      },957      AllConcreteFungible: {958        id: 'XcmV0MultiLocation',959      },960      AllConcreteNonFungible: {961        class: 'XcmV0MultiLocation',962      },963      AbstractFungible: {964        id: 'Bytes',965        amount: 'Compact<u128>',966      },967      AbstractNonFungible: {968        class: 'Bytes',969        instance: 'XcmV1MultiassetAssetInstance',970      },971      ConcreteFungible: {972        id: 'XcmV0MultiLocation',973        amount: 'Compact<u128>',974      },975      ConcreteNonFungible: {976        class: 'XcmV0MultiLocation',977        instance: 'XcmV1MultiassetAssetInstance'978      }979    }980  },981  /**982   * Lookup87: xcm::v0::multi_location::MultiLocation983   **/984  XcmV0MultiLocation: {985    _enum: {986      Null: 'Null',987      X1: 'XcmV0Junction',988      X2: '(XcmV0Junction,XcmV0Junction)',989      X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',990      X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',991      X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',992      X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',993      X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',994      X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'995    }996  },997  /**998   * Lookup88: xcm::v0::junction::Junction999   **/1000  XcmV0Junction: {1001    _enum: {1002      Parent: 'Null',1003      Parachain: 'Compact<u32>',1004      AccountId32: {1005        network: 'XcmV0JunctionNetworkId',1006        id: '[u8;32]',1007      },1008      AccountIndex64: {1009        network: 'XcmV0JunctionNetworkId',1010        index: 'Compact<u64>',1011      },1012      AccountKey20: {1013        network: 'XcmV0JunctionNetworkId',1014        key: '[u8;20]',1015      },1016      PalletInstance: 'u8',1017      GeneralIndex: 'Compact<u128>',1018      GeneralKey: 'Bytes',1019      OnlyChild: 'Null',1020      Plurality: {1021        id: 'XcmV0JunctionBodyId',1022        part: 'XcmV0JunctionBodyPart'1023      }1024    }1025  },1026  /**1027   * Lookup89: xcm::VersionedMultiLocation1028   **/1029  XcmVersionedMultiLocation: {1030    _enum: {1031      V0: 'XcmV0MultiLocation',1032      V1: 'XcmV1MultiLocation'1033    }1034  },1035  /**1036   * Lookup90: cumulus_pallet_xcm::pallet::Event<T>1037   **/1038  CumulusPalletXcmEvent: {1039    _enum: {1040      InvalidFormat: '[u8;8]',1041      UnsupportedVersion: '[u8;8]',1042      ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'1043    }1044  },1045  /**1046   * Lookup91: cumulus_pallet_dmp_queue::pallet::Event<T>1047   **/1048  CumulusPalletDmpQueueEvent: {1049    _enum: {1050      InvalidFormat: {1051        messageId: '[u8;32]',1052      },1053      UnsupportedVersion: {1054        messageId: '[u8;32]',1055      },1056      ExecutedDownward: {1057        messageId: '[u8;32]',1058        outcome: 'XcmV2TraitsOutcome',1059      },1060      WeightExhausted: {1061        messageId: '[u8;32]',1062        remainingWeight: 'SpWeightsWeightV2Weight',1063        requiredWeight: 'SpWeightsWeightV2Weight',1064      },1065      OverweightEnqueued: {1066        messageId: '[u8;32]',1067        overweightIndex: 'u64',1068        requiredWeight: 'SpWeightsWeightV2Weight',1069      },1070      OverweightServiced: {1071        overweightIndex: 'u64',1072        weightUsed: 'SpWeightsWeightV2Weight'1073      }1074    }1075  },1076  /**1077   * Lookup92: pallet_configuration::pallet::Event<T>1078   **/1079  PalletConfigurationEvent: {1080    _enum: {1081      NewDesiredCollators: {1082        desiredCollators: 'Option<u32>',1083      },1084      NewCollatorLicenseBond: {1085        bondCost: 'Option<u128>',1086      },1087      NewCollatorKickThreshold: {1088        lengthInBlocks: 'Option<u32>'1089      }1090    }1091  },1092  /**1093   * Lookup95: pallet_common::pallet::Event<T>1094   **/1095  PalletCommonEvent: {1096    _enum: {1097      CollectionCreated: '(u32,u8,AccountId32)',1098      CollectionDestroyed: 'u32',1099      ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1100      ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1101      Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1102      Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1103      ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)',1104      CollectionPropertySet: '(u32,Bytes)',1105      CollectionPropertyDeleted: '(u32,Bytes)',1106      TokenPropertySet: '(u32,u32,Bytes)',1107      TokenPropertyDeleted: '(u32,u32,Bytes)',1108      PropertyPermissionSet: '(u32,Bytes)',1109      AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1110      AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1111      CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1112      CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1113      CollectionLimitSet: 'u32',1114      CollectionOwnerChanged: '(u32,AccountId32)',1115      CollectionPermissionSet: 'u32',1116      CollectionSponsorSet: '(u32,AccountId32)',1117      SponsorshipConfirmed: '(u32,AccountId32)',1118      CollectionSponsorRemoved: 'u32'1119    }1120  },1121  /**1122   * Lookup98: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1123   **/1124  PalletEvmAccountBasicCrossAccountIdRepr: {1125    _enum: {1126      Substrate: 'AccountId32',1127      Ethereum: 'H160'1128    }1129  },1130  /**1131   * Lookup102: pallet_structure::pallet::Event<T>1132   **/1133  PalletStructureEvent: {1134    _enum: {1135      Executed: 'Result<Null, SpRuntimeDispatchError>'1136    }1137  },1138  /**1139   * Lookup103: pallet_rmrk_core::pallet::Event<T>1140   **/1141  PalletRmrkCoreEvent: {1142    _enum: {1143      CollectionCreated: {1144        issuer: 'AccountId32',1145        collectionId: 'u32',1146      },1147      CollectionDestroyed: {1148        issuer: 'AccountId32',1149        collectionId: 'u32',1150      },1151      IssuerChanged: {1152        oldIssuer: 'AccountId32',1153        newIssuer: 'AccountId32',1154        collectionId: 'u32',1155      },1156      CollectionLocked: {1157        issuer: 'AccountId32',1158        collectionId: 'u32',1159      },1160      NftMinted: {1161        owner: 'AccountId32',1162        collectionId: 'u32',1163        nftId: 'u32',1164      },1165      NFTBurned: {1166        owner: 'AccountId32',1167        nftId: 'u32',1168      },1169      NFTSent: {1170        sender: 'AccountId32',1171        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1172        collectionId: 'u32',1173        nftId: 'u32',1174        approvalRequired: 'bool',1175      },1176      NFTAccepted: {1177        sender: 'AccountId32',1178        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1179        collectionId: 'u32',1180        nftId: 'u32',1181      },1182      NFTRejected: {1183        sender: 'AccountId32',1184        collectionId: 'u32',1185        nftId: 'u32',1186      },1187      PropertySet: {1188        collectionId: 'u32',1189        maybeNftId: 'Option<u32>',1190        key: 'Bytes',1191        value: 'Bytes',1192      },1193      ResourceAdded: {1194        nftId: 'u32',1195        resourceId: 'u32',1196      },1197      ResourceRemoval: {1198        nftId: 'u32',1199        resourceId: 'u32',1200      },1201      ResourceAccepted: {1202        nftId: 'u32',1203        resourceId: 'u32',1204      },1205      ResourceRemovalAccepted: {1206        nftId: 'u32',1207        resourceId: 'u32',1208      },1209      PrioritySet: {1210        collectionId: 'u32',1211        nftId: 'u32'1212      }1213    }1214  },1215  /**1216   * Lookup104: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1217   **/1218  RmrkTraitsNftAccountIdOrCollectionNftTuple: {1219    _enum: {1220      AccountId: 'AccountId32',1221      CollectionAndNftTuple: '(u32,u32)'1222    }1223  },1224  /**1225   * Lookup107: pallet_rmrk_equip::pallet::Event<T>1226   **/1227  PalletRmrkEquipEvent: {1228    _enum: {1229      BaseCreated: {1230        issuer: 'AccountId32',1231        baseId: 'u32',1232      },1233      EquippablesUpdated: {1234        baseId: 'u32',1235        slotId: 'u32'1236      }1237    }1238  },1239  /**1240   * Lookup108: pallet_app_promotion::pallet::Event<T>1241   **/1242  PalletAppPromotionEvent: {1243    _enum: {1244      StakingRecalculation: '(AccountId32,u128,u128)',1245      Stake: '(AccountId32,u128)',1246      Unstake: '(AccountId32,u128)',1247      SetAdmin: 'AccountId32'1248    }1249  },1250  /**1251   * Lookup109: pallet_foreign_assets::module::Event<T>1252   **/1253  PalletForeignAssetsModuleEvent: {1254    _enum: {1255      ForeignAssetRegistered: {1256        assetId: 'u32',1257        assetAddress: 'XcmV1MultiLocation',1258        metadata: 'PalletForeignAssetsModuleAssetMetadata',1259      },1260      ForeignAssetUpdated: {1261        assetId: 'u32',1262        assetAddress: 'XcmV1MultiLocation',1263        metadata: 'PalletForeignAssetsModuleAssetMetadata',1264      },1265      AssetRegistered: {1266        assetId: 'PalletForeignAssetsAssetIds',1267        metadata: 'PalletForeignAssetsModuleAssetMetadata',1268      },1269      AssetUpdated: {1270        assetId: 'PalletForeignAssetsAssetIds',1271        metadata: 'PalletForeignAssetsModuleAssetMetadata'1272      }1273    }1274  },1275  /**1276   * Lookup110: pallet_foreign_assets::module::AssetMetadata<Balance>1277   **/1278  PalletForeignAssetsModuleAssetMetadata: {1279    name: 'Bytes',1280    symbol: 'Bytes',1281    decimals: 'u8',1282    minimalBalance: 'u128'1283  },1284  /**1285   * Lookup111: pallet_evm::pallet::Event<T>1286   **/1287  PalletEvmEvent: {1288    _enum: {1289      Log: {1290        log: 'EthereumLog',1291      },1292      Created: {1293        address: 'H160',1294      },1295      CreatedFailed: {1296        address: 'H160',1297      },1298      Executed: {1299        address: 'H160',1300      },1301      ExecutedFailed: {1302        address: 'H160'1303      }1304    }1305  },1306  /**1307   * Lookup112: ethereum::log::Log1308   **/1309  EthereumLog: {1310    address: 'H160',1311    topics: 'Vec<H256>',1312    data: 'Bytes'1313  },1314  /**1315   * Lookup114: pallet_ethereum::pallet::Event1316   **/1317  PalletEthereumEvent: {1318    _enum: {1319      Executed: {1320        from: 'H160',1321        to: 'H160',1322        transactionHash: 'H256',1323        exitReason: 'EvmCoreErrorExitReason'1324      }1325    }1326  },1327  /**1328   * Lookup115: evm_core::error::ExitReason1329   **/1330  EvmCoreErrorExitReason: {1331    _enum: {1332      Succeed: 'EvmCoreErrorExitSucceed',1333      Error: 'EvmCoreErrorExitError',1334      Revert: 'EvmCoreErrorExitRevert',1335      Fatal: 'EvmCoreErrorExitFatal'1336    }1337  },1338  /**1339   * Lookup116: evm_core::error::ExitSucceed1340   **/1341  EvmCoreErrorExitSucceed: {1342    _enum: ['Stopped', 'Returned', 'Suicided']1343  },1344  /**1345   * Lookup117: evm_core::error::ExitError1346   **/1347  EvmCoreErrorExitError: {1348    _enum: {1349      StackUnderflow: 'Null',1350      StackOverflow: 'Null',1351      InvalidJump: 'Null',1352      InvalidRange: 'Null',1353      DesignatedInvalid: 'Null',1354      CallTooDeep: 'Null',1355      CreateCollision: 'Null',1356      CreateContractLimit: 'Null',1357      OutOfOffset: 'Null',1358      OutOfGas: 'Null',1359      OutOfFund: 'Null',1360      PCUnderflow: 'Null',1361      CreateEmpty: 'Null',1362      Other: 'Text',1363      InvalidCode: 'Null'1364    }1365  },1366  /**1367   * Lookup120: evm_core::error::ExitRevert1368   **/1369  EvmCoreErrorExitRevert: {1370    _enum: ['Reverted']1371  },1372  /**1373   * Lookup121: evm_core::error::ExitFatal1374   **/1375  EvmCoreErrorExitFatal: {1376    _enum: {1377      NotSupported: 'Null',1378      UnhandledInterrupt: 'Null',1379      CallErrorAsFatal: 'EvmCoreErrorExitError',1380      Other: 'Text'1381    }1382  },1383  /**1384   * Lookup122: pallet_evm_contract_helpers::pallet::Event<T>1385   **/1386  PalletEvmContractHelpersEvent: {1387    _enum: {1388      ContractSponsorSet: '(H160,AccountId32)',1389      ContractSponsorshipConfirmed: '(H160,AccountId32)',1390      ContractSponsorRemoved: 'H160'1391    }1392  },1393  /**1394   * Lookup123: pallet_data_management::pallet::Event<T>1395   **/1396  PalletDataManagementEvent: {1397    _enum: ['TestEvent']1398  },1399  /**1400   * Lookup124: pallet_maintenance::pallet::Event<T>1401   **/1402  PalletMaintenanceEvent: {1403    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1404  },1405  /**1406   * Lookup125: pallet_test_utils::pallet::Event<T>1407   **/1408  PalletTestUtilsEvent: {1409    _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1410  },1411  /**1412   * Lookup126: frame_system::Phase1413   **/1414  FrameSystemPhase: {1415    _enum: {1416      ApplyExtrinsic: 'u32',1417      Finalization: 'Null',1418      Initialization: 'Null'1419    }1420  },1421  /**1422   * Lookup129: frame_system::LastRuntimeUpgradeInfo1423   **/1424  FrameSystemLastRuntimeUpgradeInfo: {1425    specVersion: 'Compact<u32>',1426    specName: 'Text'1427  },1428  /**1429   * Lookup130: frame_system::pallet::Call<T>1430   **/1431  FrameSystemCall: {1432    _enum: {1433      remark: {1434        remark: 'Bytes',1435      },1436      set_heap_pages: {1437        pages: 'u64',1438      },1439      set_code: {1440        code: 'Bytes',1441      },1442      set_code_without_checks: {1443        code: 'Bytes',1444      },1445      set_storage: {1446        items: 'Vec<(Bytes,Bytes)>',1447      },1448      kill_storage: {1449        _alias: {1450          keys_: 'keys',1451        },1452        keys_: 'Vec<Bytes>',1453      },1454      kill_prefix: {1455        prefix: 'Bytes',1456        subkeys: 'u32',1457      },1458      remark_with_event: {1459        remark: 'Bytes'1460      }1461    }1462  },1463  /**1464   * Lookup134: frame_system::limits::BlockWeights1465   **/1466  FrameSystemLimitsBlockWeights: {1467    baseBlock: 'SpWeightsWeightV2Weight',1468    maxBlock: 'SpWeightsWeightV2Weight',1469    perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1470  },1471  /**1472   * Lookup135: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1473   **/1474  FrameSupportDispatchPerDispatchClassWeightsPerClass: {1475    normal: 'FrameSystemLimitsWeightsPerClass',1476    operational: 'FrameSystemLimitsWeightsPerClass',1477    mandatory: 'FrameSystemLimitsWeightsPerClass'1478  },1479  /**1480   * Lookup136: frame_system::limits::WeightsPerClass1481   **/1482  FrameSystemLimitsWeightsPerClass: {1483    baseExtrinsic: 'SpWeightsWeightV2Weight',1484    maxExtrinsic: 'Option<SpWeightsWeightV2Weight>',1485    maxTotal: 'Option<SpWeightsWeightV2Weight>',1486    reserved: 'Option<SpWeightsWeightV2Weight>'1487  },1488  /**1489   * Lookup138: frame_system::limits::BlockLength1490   **/1491  FrameSystemLimitsBlockLength: {1492    max: 'FrameSupportDispatchPerDispatchClassU32'1493  },1494  /**1495   * Lookup139: frame_support::dispatch::PerDispatchClass<T>1496   **/1497  FrameSupportDispatchPerDispatchClassU32: {1498    normal: 'u32',1499    operational: 'u32',1500    mandatory: 'u32'1501  },1502  /**1503   * Lookup140: sp_weights::RuntimeDbWeight1504   **/1505  SpWeightsRuntimeDbWeight: {1506    read: 'u64',1507    write: 'u64'1508  },1509  /**1510   * Lookup141: sp_version::RuntimeVersion1511   **/1512  SpVersionRuntimeVersion: {1513    specName: 'Text',1514    implName: 'Text',1515    authoringVersion: 'u32',1516    specVersion: 'u32',1517    implVersion: 'u32',1518    apis: 'Vec<([u8;8],u32)>',1519    transactionVersion: 'u32',1520    stateVersion: 'u8'1521  },1522  /**1523   * Lookup146: frame_system::pallet::Error<T>1524   **/1525  FrameSystemError: {1526    _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1527  },1528  /**1529   * Lookup147: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1530   **/1531  PolkadotPrimitivesV2PersistedValidationData: {1532    parentHead: 'Bytes',1533    relayParentNumber: 'u32',1534    relayParentStorageRoot: 'H256',1535    maxPovSize: 'u32'1536  },1537  /**1538   * Lookup150: polkadot_primitives::v2::UpgradeRestriction1539   **/1540  PolkadotPrimitivesV2UpgradeRestriction: {1541    _enum: ['Present']1542  },1543  /**1544   * Lookup151: sp_trie::storage_proof::StorageProof1545   **/1546  SpTrieStorageProof: {1547    trieNodes: 'BTreeSet<Bytes>'1548  },1549  /**1550   * Lookup153: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1551   **/1552  CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1553    dmqMqcHead: 'H256',1554    relayDispatchQueueSize: '(u32,u32)',1555    ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1556    egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1557  },1558  /**1559   * Lookup156: polkadot_primitives::v2::AbridgedHrmpChannel1560   **/1561  PolkadotPrimitivesV2AbridgedHrmpChannel: {1562    maxCapacity: 'u32',1563    maxTotalSize: 'u32',1564    maxMessageSize: 'u32',1565    msgCount: 'u32',1566    totalSize: 'u32',1567    mqcHead: 'Option<H256>'1568  },1569  /**1570   * Lookup157: polkadot_primitives::v2::AbridgedHostConfiguration1571   **/1572  PolkadotPrimitivesV2AbridgedHostConfiguration: {1573    maxCodeSize: 'u32',1574    maxHeadDataSize: 'u32',1575    maxUpwardQueueCount: 'u32',1576    maxUpwardQueueSize: 'u32',1577    maxUpwardMessageSize: 'u32',1578    maxUpwardMessageNumPerCandidate: 'u32',1579    hrmpMaxMessageNumPerCandidate: 'u32',1580    validationUpgradeCooldown: 'u32',1581    validationUpgradeDelay: 'u32'1582  },1583  /**1584   * Lookup163: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1585   **/1586  PolkadotCorePrimitivesOutboundHrmpMessage: {1587    recipient: 'u32',1588    data: 'Bytes'1589  },1590  /**1591   * Lookup164: cumulus_pallet_parachain_system::pallet::Call<T>1592   **/1593  CumulusPalletParachainSystemCall: {1594    _enum: {1595      set_validation_data: {1596        data: 'CumulusPrimitivesParachainInherentParachainInherentData',1597      },1598      sudo_send_upward_message: {1599        message: 'Bytes',1600      },1601      authorize_upgrade: {1602        codeHash: 'H256',1603      },1604      enact_authorized_upgrade: {1605        code: 'Bytes'1606      }1607    }1608  },1609  /**1610   * Lookup165: cumulus_primitives_parachain_inherent::ParachainInherentData1611   **/1612  CumulusPrimitivesParachainInherentParachainInherentData: {1613    validationData: 'PolkadotPrimitivesV2PersistedValidationData',1614    relayChainState: 'SpTrieStorageProof',1615    downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1616    horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1617  },1618  /**1619   * Lookup167: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1620   **/1621  PolkadotCorePrimitivesInboundDownwardMessage: {1622    sentAt: 'u32',1623    msg: 'Bytes'1624  },1625  /**1626   * Lookup170: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1627   **/1628  PolkadotCorePrimitivesInboundHrmpMessage: {1629    sentAt: 'u32',1630    data: 'Bytes'1631  },1632  /**1633   * Lookup173: cumulus_pallet_parachain_system::pallet::Error<T>1634   **/1635  CumulusPalletParachainSystemError: {1636    _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1637  },1638  /**1639   * Lookup175: pallet_authorship::UncleEntryItem<BlockNumber, primitive_types::H256, sp_core::crypto::AccountId32>1640   **/1641  PalletAuthorshipUncleEntryItem: {1642    _enum: {1643      InclusionHeight: 'u32',1644      Uncle: '(H256,Option<AccountId32>)'1645    }1646  },1647  /**1648   * Lookup177: pallet_authorship::pallet::Call<T>1649   **/1650  PalletAuthorshipCall: {1651    _enum: {1652      set_uncles: {1653        newUncles: 'Vec<SpRuntimeHeader>'1654      }1655    }1656  },1657  /**1658   * Lookup179: sp_runtime::generic::header::Header<Number, sp_runtime::traits::BlakeTwo256>1659   **/1660  SpRuntimeHeader: {1661    parentHash: 'H256',1662    number: 'Compact<u32>',1663    stateRoot: 'H256',1664    extrinsicsRoot: 'H256',1665    digest: 'SpRuntimeDigest'1666  },1667  /**1668   * Lookup180: sp_runtime::traits::BlakeTwo2561669   **/1670  SpRuntimeBlakeTwo256: 'Null',1671  /**1672   * Lookup181: pallet_authorship::pallet::Error<T>1673   **/1674  PalletAuthorshipError: {1675    _enum: ['InvalidUncleParent', 'UnclesAlreadySet', 'TooManyUncles', 'GenesisUncle', 'TooHighUncle', 'UncleAlreadyIncluded', 'OldUncle']1676  },1677  /**1678   * Lookup184: pallet_collator_selection::pallet::Call<T>1679   **/1680  PalletCollatorSelectionCall: {1681    _enum: {1682      add_invulnerable: {1683        _alias: {1684          new_: 'new',1685        },1686        new_: 'AccountId32',1687      },1688      remove_invulnerable: {1689        who: 'AccountId32',1690      },1691      get_license: 'Null',1692      onboard: 'Null',1693      offboard: 'Null',1694      release_license: 'Null',1695      force_release_license: {1696        who: 'AccountId32'1697      }1698    }1699  },1700  /**1701   * Lookup185: pallet_collator_selection::pallet::Error<T>1702   **/1703  PalletCollatorSelectionError: {1704    _enum: ['TooManyCandidates', 'Unknown', 'Permission', 'AlreadyHoldingLicense', 'NoLicense', 'AlreadyCandidate', 'NotCandidate', 'TooManyInvulnerables', 'TooFewInvulnerables', 'AlreadyInvulnerable', 'NotInvulnerable', 'NoAssociatedValidatorId', 'ValidatorNotRegistered']1705  },1706  /**1707   * Lookup188: opal_runtime::runtime_common::SessionKeys1708   **/1709  OpalRuntimeRuntimeCommonSessionKeys: {1710    aura: 'SpConsensusAuraSr25519AppSr25519Public'1711  },1712  /**1713   * Lookup189: sp_consensus_aura::sr25519::app_sr25519::Public1714   **/1715  SpConsensusAuraSr25519AppSr25519Public: 'SpCoreSr25519Public',1716  /**1717   * Lookup190: sp_core::sr25519::Public1718   **/1719  SpCoreSr25519Public: '[u8;32]',1720  /**1721   * Lookup193: sp_core::crypto::KeyTypeId1722   **/1723  SpCoreCryptoKeyTypeId: '[u8;4]',1724  /**1725   * Lookup194: pallet_session::pallet::Call<T>1726   **/1727  PalletSessionCall: {1728    _enum: {1729      set_keys: {1730        _alias: {1731          keys_: 'keys',1732        },1733        keys_: 'OpalRuntimeRuntimeCommonSessionKeys',1734        proof: 'Bytes',1735      },1736      purge_keys: 'Null'1737    }1738  },1739  /**1740   * Lookup195: pallet_session::pallet::Error<T>1741   **/1742  PalletSessionError: {1743    _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount']1744  },1745  /**1746   * Lookup196: pallet_identity::types::Registration<Balance, MaxJudgements, MaxAdditionalFields>1747   **/1748  PalletIdentityRegistration: {1749    judgements: 'Vec<(u32,PalletIdentityJudgement)>',1750    deposit: 'u128',1751    info: 'PalletIdentityIdentityInfo'1752  },1753  /**1754   * Lookup199: pallet_identity::types::Judgement<Balance>1755   **/1756  PalletIdentityJudgement: {1757    _enum: {1758      Unknown: 'Null',1759      FeePaid: 'u128',1760      Reasonable: 'Null',1761      KnownGood: 'Null',1762      OutOfDate: 'Null',1763      LowQuality: 'Null',1764      Erroneous: 'Null'1765    }1766  },1767  /**1768   * Lookup201: pallet_identity::types::IdentityInfo<FieldLimit>1769   **/1770  PalletIdentityIdentityInfo: {1771    additional: 'Vec<(Data,Data)>',1772    display: 'Data',1773    legal: 'Data',1774    web: 'Data',1775    riot: 'Data',1776    email: 'Data',1777    pgpFingerprint: 'Option<[u8;20]>',1778    image: 'Data',1779    twitter: 'Data'1780  },1781  /**1782   * Lookup240: pallet_identity::types::RegistrarInfo<Balance, sp_core::crypto::AccountId32>1783   **/1784  PalletIdentityRegistrarInfo: {1785    account: 'AccountId32',1786    fee: 'u128',1787    fields: 'PalletIdentityBitFlags'1788  },1789  /**1790   * Lookup241: pallet_identity::types::BitFlags<pallet_identity::types::IdentityField>1791   **/1792  PalletIdentityBitFlags: {1793    _bitLength: 64,1794    Display: 1,1795    Legal: 2,1796    Web: 4,1797    Riot: 8,1798    Email: 16,1799    PgpFingerprint: 32,1800    Image: 64,1801    Twitter: 1281802  },1803  /**1804   * Lookup242: pallet_identity::types::IdentityField1805   **/1806  PalletIdentityIdentityField: {1807    _enum: ['__Unused0', 'Display', 'Legal', '__Unused3', 'Web', '__Unused5', '__Unused6', '__Unused7', 'Riot', '__Unused9', '__Unused10', '__Unused11', '__Unused12', '__Unused13', '__Unused14', '__Unused15', 'Email', '__Unused17', '__Unused18', '__Unused19', '__Unused20', '__Unused21', '__Unused22', '__Unused23', '__Unused24', '__Unused25', '__Unused26', '__Unused27', '__Unused28', '__Unused29', '__Unused30', '__Unused31', 'PgpFingerprint', '__Unused33', '__Unused34', '__Unused35', '__Unused36', '__Unused37', '__Unused38', '__Unused39', '__Unused40', '__Unused41', '__Unused42', '__Unused43', '__Unused44', '__Unused45', '__Unused46', '__Unused47', '__Unused48', '__Unused49', '__Unused50', '__Unused51', '__Unused52', '__Unused53', '__Unused54', '__Unused55', '__Unused56', '__Unused57', '__Unused58', '__Unused59', '__Unused60', '__Unused61', '__Unused62', '__Unused63', 'Image', '__Unused65', '__Unused66', '__Unused67', '__Unused68', '__Unused69', '__Unused70', '__Unused71', '__Unused72', '__Unused73', '__Unused74', '__Unused75', '__Unused76', '__Unused77', '__Unused78', '__Unused79', '__Unused80', '__Unused81', '__Unused82', '__Unused83', '__Unused84', '__Unused85', '__Unused86', '__Unused87', '__Unused88', '__Unused89', '__Unused90', '__Unused91', '__Unused92', '__Unused93', '__Unused94', '__Unused95', '__Unused96', '__Unused97', '__Unused98', '__Unused99', '__Unused100', '__Unused101', '__Unused102', '__Unused103', '__Unused104', '__Unused105', '__Unused106', '__Unused107', '__Unused108', '__Unused109', '__Unused110', '__Unused111', '__Unused112', '__Unused113', '__Unused114', '__Unused115', '__Unused116', '__Unused117', '__Unused118', '__Unused119', '__Unused120', '__Unused121', '__Unused122', '__Unused123', '__Unused124', '__Unused125', '__Unused126', '__Unused127', 'Twitter']1808  },1809  /**1810   * Lookup244: pallet_identity::pallet::Call<T>1811   **/1812  PalletIdentityCall: {1813    _enum: {1814      add_registrar: {1815        account: 'MultiAddress',1816      },1817      set_identity: {1818        info: 'PalletIdentityIdentityInfo',1819      },1820      set_subs: {1821        subs: 'Vec<(AccountId32,Data)>',1822      },1823      clear_identity: 'Null',1824      request_judgement: {1825        regIndex: 'Compact<u32>',1826        maxFee: 'Compact<u128>',1827      },1828      cancel_request: {1829        regIndex: 'u32',1830      },1831      set_fee: {1832        index: 'Compact<u32>',1833        fee: 'Compact<u128>',1834      },1835      set_account_id: {1836        _alias: {1837          new_: 'new',1838        },1839        index: 'Compact<u32>',1840        new_: 'MultiAddress',1841      },1842      set_fields: {1843        index: 'Compact<u32>',1844        fields: 'PalletIdentityBitFlags',1845      },1846      provide_judgement: {1847        regIndex: 'Compact<u32>',1848        target: 'MultiAddress',1849        judgement: 'PalletIdentityJudgement',1850        identity: 'H256',1851      },1852      kill_identity: {1853        target: 'MultiAddress',1854      },1855      add_sub: {1856        sub: 'MultiAddress',1857        data: 'Data',1858      },1859      rename_sub: {1860        sub: 'MultiAddress',1861        data: 'Data',1862      },1863      remove_sub: {1864        sub: 'MultiAddress',1865      },1866      quit_sub: 'Null'1867    }1868  },1869  /**1870   * Lookup248: pallet_identity::pallet::Error<T>1871   **/1872  PalletIdentityError: {1873    _enum: ['TooManySubAccounts', 'NotFound', 'NotNamed', 'EmptyIndex', 'FeeChanged', 'NoIdentity', 'StickyJudgement', 'JudgementGiven', 'InvalidJudgement', 'InvalidIndex', 'InvalidTarget', 'TooManyFields', 'TooManyRegistrars', 'AlreadyClaimed', 'NotSub', 'NotOwned', 'JudgementForDifferentIdentity', 'JudgementPaymentFailed']1874  },1875  /**1876   * Lookup250: pallet_balances::BalanceLock<Balance>1877   **/1878  PalletBalancesBalanceLock: {1879    id: '[u8;8]',1880    amount: 'u128',1881    reasons: 'PalletBalancesReasons'1882  },1883  /**1884   * Lookup251: pallet_balances::Reasons1885   **/1886  PalletBalancesReasons: {1887    _enum: ['Fee', 'Misc', 'All']1888  },1889  /**1890   * Lookup254: pallet_balances::ReserveData<ReserveIdentifier, Balance>1891   **/1892  PalletBalancesReserveData: {1893    id: '[u8;16]',1894    amount: 'u128'1895  },1896  /**1897   * Lookup256: pallet_balances::pallet::Call<T, I>1898   **/1899  PalletBalancesCall: {1900    _enum: {1901      transfer: {1902        dest: 'MultiAddress',1903        value: 'Compact<u128>',1904      },1905      set_balance: {1906        who: 'MultiAddress',1907        newFree: 'Compact<u128>',1908        newReserved: 'Compact<u128>',1909      },1910      force_transfer: {1911        source: 'MultiAddress',1912        dest: 'MultiAddress',1913        value: 'Compact<u128>',1914      },1915      transfer_keep_alive: {1916        dest: 'MultiAddress',1917        value: 'Compact<u128>',1918      },1919      transfer_all: {1920        dest: 'MultiAddress',1921        keepAlive: 'bool',1922      },1923      force_unreserve: {1924        who: 'MultiAddress',1925        amount: 'u128'1926      }1927    }1928  },1929  /**1930   * Lookup257: pallet_balances::pallet::Error<T, I>1931   **/1932  PalletBalancesError: {1933    _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1934  },1935  /**1936   * Lookup259: pallet_timestamp::pallet::Call<T>1937   **/1938  PalletTimestampCall: {1939    _enum: {1940      set: {1941        now: 'Compact<u64>'1942      }1943    }1944  },1945  /**1946   * Lookup261: pallet_transaction_payment::Releases1947   **/1948  PalletTransactionPaymentReleases: {1949    _enum: ['V1Ancient', 'V2']1950  },1951  /**1952   * Lookup262: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1953   **/1954  PalletTreasuryProposal: {1955    proposer: 'AccountId32',1956    value: 'u128',1957    beneficiary: 'AccountId32',1958    bond: 'u128'1959  },1960  /**1961   * Lookup264: pallet_treasury::pallet::Call<T, I>1962   **/1963  PalletTreasuryCall: {1964    _enum: {1965      propose_spend: {1966        value: 'Compact<u128>',1967        beneficiary: 'MultiAddress',1968      },1969      reject_proposal: {1970        proposalId: 'Compact<u32>',1971      },1972      approve_proposal: {1973        proposalId: 'Compact<u32>',1974      },1975      spend: {1976        amount: 'Compact<u128>',1977        beneficiary: 'MultiAddress',1978      },1979      remove_approval: {1980        proposalId: 'Compact<u32>'1981      }1982    }1983  },1984  /**1985   * Lookup266: frame_support::PalletId1986   **/1987  FrameSupportPalletId: '[u8;8]',1988  /**1989   * Lookup267: pallet_treasury::pallet::Error<T, I>1990   **/1991  PalletTreasuryError: {1992    _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1993  },1994  /**1995   * Lookup268: pallet_sudo::pallet::Call<T>1996   **/1997  PalletSudoCall: {1998    _enum: {1999      sudo: {2000        call: 'Call',2001      },2002      sudo_unchecked_weight: {2003        call: 'Call',2004        weight: 'SpWeightsWeightV2Weight',2005      },2006      set_key: {2007        _alias: {2008          new_: 'new',2009        },2010        new_: 'MultiAddress',2011      },2012      sudo_as: {2013        who: 'MultiAddress',2014        call: 'Call'2015      }2016    }2017  },2018  /**2019   * Lookup270: orml_vesting::module::Call<T>2020   **/2021  OrmlVestingModuleCall: {2022    _enum: {2023      claim: 'Null',2024      vested_transfer: {2025        dest: 'MultiAddress',2026        schedule: 'OrmlVestingVestingSchedule',2027      },2028      update_vesting_schedules: {2029        who: 'MultiAddress',2030        vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',2031      },2032      claim_for: {2033        dest: 'MultiAddress'2034      }2035    }2036  },2037  /**2038   * Lookup272: orml_xtokens::module::Call<T>2039   **/2040  OrmlXtokensModuleCall: {2041    _enum: {2042      transfer: {2043        currencyId: 'PalletForeignAssetsAssetIds',2044        amount: 'u128',2045        dest: 'XcmVersionedMultiLocation',2046        destWeightLimit: 'XcmV2WeightLimit',2047      },2048      transfer_multiasset: {2049        asset: 'XcmVersionedMultiAsset',2050        dest: 'XcmVersionedMultiLocation',2051        destWeightLimit: 'XcmV2WeightLimit',2052      },2053      transfer_with_fee: {2054        currencyId: 'PalletForeignAssetsAssetIds',2055        amount: 'u128',2056        fee: 'u128',2057        dest: 'XcmVersionedMultiLocation',2058        destWeightLimit: 'XcmV2WeightLimit',2059      },2060      transfer_multiasset_with_fee: {2061        asset: 'XcmVersionedMultiAsset',2062        fee: 'XcmVersionedMultiAsset',2063        dest: 'XcmVersionedMultiLocation',2064        destWeightLimit: 'XcmV2WeightLimit',2065      },2066      transfer_multicurrencies: {2067        currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',2068        feeItem: 'u32',2069        dest: 'XcmVersionedMultiLocation',2070        destWeightLimit: 'XcmV2WeightLimit',2071      },2072      transfer_multiassets: {2073        assets: 'XcmVersionedMultiAssets',2074        feeItem: 'u32',2075        dest: 'XcmVersionedMultiLocation',2076        destWeightLimit: 'XcmV2WeightLimit'2077      }2078    }2079  },2080  /**2081   * Lookup273: xcm::VersionedMultiAsset2082   **/2083  XcmVersionedMultiAsset: {2084    _enum: {2085      V0: 'XcmV0MultiAsset',2086      V1: 'XcmV1MultiAsset'2087    }2088  },2089  /**2090   * Lookup276: orml_tokens::module::Call<T>2091   **/2092  OrmlTokensModuleCall: {2093    _enum: {2094      transfer: {2095        dest: 'MultiAddress',2096        currencyId: 'PalletForeignAssetsAssetIds',2097        amount: 'Compact<u128>',2098      },2099      transfer_all: {2100        dest: 'MultiAddress',2101        currencyId: 'PalletForeignAssetsAssetIds',2102        keepAlive: 'bool',2103      },2104      transfer_keep_alive: {2105        dest: 'MultiAddress',2106        currencyId: 'PalletForeignAssetsAssetIds',2107        amount: 'Compact<u128>',2108      },2109      force_transfer: {2110        source: 'MultiAddress',2111        dest: 'MultiAddress',2112        currencyId: 'PalletForeignAssetsAssetIds',2113        amount: 'Compact<u128>',2114      },2115      set_balance: {2116        who: 'MultiAddress',2117        currencyId: 'PalletForeignAssetsAssetIds',2118        newFree: 'Compact<u128>',2119        newReserved: 'Compact<u128>'2120      }2121    }2122  },2123  /**2124   * Lookup277: cumulus_pallet_xcmp_queue::pallet::Call<T>2125   **/2126  CumulusPalletXcmpQueueCall: {2127    _enum: {2128      service_overweight: {2129        index: 'u64',2130        weightLimit: 'u64',2131      },2132      suspend_xcm_execution: 'Null',2133      resume_xcm_execution: 'Null',2134      update_suspend_threshold: {2135        _alias: {2136          new_: 'new',2137        },2138        new_: 'u32',2139      },2140      update_drop_threshold: {2141        _alias: {2142          new_: 'new',2143        },2144        new_: 'u32',2145      },2146      update_resume_threshold: {2147        _alias: {2148          new_: 'new',2149        },2150        new_: 'u32',2151      },2152      update_threshold_weight: {2153        _alias: {2154          new_: 'new',2155        },2156        new_: 'u64',2157      },2158      update_weight_restrict_decay: {2159        _alias: {2160          new_: 'new',2161        },2162        new_: 'u64',2163      },2164      update_xcmp_max_individual_weight: {2165        _alias: {2166          new_: 'new',2167        },2168        new_: 'u64'2169      }2170    }2171  },2172  /**2173   * Lookup278: pallet_xcm::pallet::Call<T>2174   **/2175  PalletXcmCall: {2176    _enum: {2177      send: {2178        dest: 'XcmVersionedMultiLocation',2179        message: 'XcmVersionedXcm',2180      },2181      teleport_assets: {2182        dest: 'XcmVersionedMultiLocation',2183        beneficiary: 'XcmVersionedMultiLocation',2184        assets: 'XcmVersionedMultiAssets',2185        feeAssetItem: 'u32',2186      },2187      reserve_transfer_assets: {2188        dest: 'XcmVersionedMultiLocation',2189        beneficiary: 'XcmVersionedMultiLocation',2190        assets: 'XcmVersionedMultiAssets',2191        feeAssetItem: 'u32',2192      },2193      execute: {2194        message: 'XcmVersionedXcm',2195        maxWeight: 'u64',2196      },2197      force_xcm_version: {2198        location: 'XcmV1MultiLocation',2199        xcmVersion: 'u32',2200      },2201      force_default_xcm_version: {2202        maybeXcmVersion: 'Option<u32>',2203      },2204      force_subscribe_version_notify: {2205        location: 'XcmVersionedMultiLocation',2206      },2207      force_unsubscribe_version_notify: {2208        location: 'XcmVersionedMultiLocation',2209      },2210      limited_reserve_transfer_assets: {2211        dest: 'XcmVersionedMultiLocation',2212        beneficiary: 'XcmVersionedMultiLocation',2213        assets: 'XcmVersionedMultiAssets',2214        feeAssetItem: 'u32',2215        weightLimit: 'XcmV2WeightLimit',2216      },2217      limited_teleport_assets: {2218        dest: 'XcmVersionedMultiLocation',2219        beneficiary: 'XcmVersionedMultiLocation',2220        assets: 'XcmVersionedMultiAssets',2221        feeAssetItem: 'u32',2222        weightLimit: 'XcmV2WeightLimit'2223      }2224    }2225  },2226  /**2227   * Lookup279: xcm::VersionedXcm<RuntimeCall>2228   **/2229  XcmVersionedXcm: {2230    _enum: {2231      V0: 'XcmV0Xcm',2232      V1: 'XcmV1Xcm',2233      V2: 'XcmV2Xcm'2234    }2235  },2236  /**2237   * Lookup280: xcm::v0::Xcm<RuntimeCall>2238   **/2239  XcmV0Xcm: {2240    _enum: {2241      WithdrawAsset: {2242        assets: 'Vec<XcmV0MultiAsset>',2243        effects: 'Vec<XcmV0Order>',2244      },2245      ReserveAssetDeposit: {2246        assets: 'Vec<XcmV0MultiAsset>',2247        effects: 'Vec<XcmV0Order>',2248      },2249      TeleportAsset: {2250        assets: 'Vec<XcmV0MultiAsset>',2251        effects: 'Vec<XcmV0Order>',2252      },2253      QueryResponse: {2254        queryId: 'Compact<u64>',2255        response: 'XcmV0Response',2256      },2257      TransferAsset: {2258        assets: 'Vec<XcmV0MultiAsset>',2259        dest: 'XcmV0MultiLocation',2260      },2261      TransferReserveAsset: {2262        assets: 'Vec<XcmV0MultiAsset>',2263        dest: 'XcmV0MultiLocation',2264        effects: 'Vec<XcmV0Order>',2265      },2266      Transact: {2267        originType: 'XcmV0OriginKind',2268        requireWeightAtMost: 'u64',2269        call: 'XcmDoubleEncoded',2270      },2271      HrmpNewChannelOpenRequest: {2272        sender: 'Compact<u32>',2273        maxMessageSize: 'Compact<u32>',2274        maxCapacity: 'Compact<u32>',2275      },2276      HrmpChannelAccepted: {2277        recipient: 'Compact<u32>',2278      },2279      HrmpChannelClosing: {2280        initiator: 'Compact<u32>',2281        sender: 'Compact<u32>',2282        recipient: 'Compact<u32>',2283      },2284      RelayedFrom: {2285        who: 'XcmV0MultiLocation',2286        message: 'XcmV0Xcm'2287      }2288    }2289  },2290  /**2291   * Lookup282: xcm::v0::order::Order<RuntimeCall>2292   **/2293  XcmV0Order: {2294    _enum: {2295      Null: 'Null',2296      DepositAsset: {2297        assets: 'Vec<XcmV0MultiAsset>',2298        dest: 'XcmV0MultiLocation',2299      },2300      DepositReserveAsset: {2301        assets: 'Vec<XcmV0MultiAsset>',2302        dest: 'XcmV0MultiLocation',2303        effects: 'Vec<XcmV0Order>',2304      },2305      ExchangeAsset: {2306        give: 'Vec<XcmV0MultiAsset>',2307        receive: 'Vec<XcmV0MultiAsset>',2308      },2309      InitiateReserveWithdraw: {2310        assets: 'Vec<XcmV0MultiAsset>',2311        reserve: 'XcmV0MultiLocation',2312        effects: 'Vec<XcmV0Order>',2313      },2314      InitiateTeleport: {2315        assets: 'Vec<XcmV0MultiAsset>',2316        dest: 'XcmV0MultiLocation',2317        effects: 'Vec<XcmV0Order>',2318      },2319      QueryHolding: {2320        queryId: 'Compact<u64>',2321        dest: 'XcmV0MultiLocation',2322        assets: 'Vec<XcmV0MultiAsset>',2323      },2324      BuyExecution: {2325        fees: 'XcmV0MultiAsset',2326        weight: 'u64',2327        debt: 'u64',2328        haltOnError: 'bool',2329        xcm: 'Vec<XcmV0Xcm>'2330      }2331    }2332  },2333  /**2334   * Lookup284: xcm::v0::Response2335   **/2336  XcmV0Response: {2337    _enum: {2338      Assets: 'Vec<XcmV0MultiAsset>'2339    }2340  },2341  /**2342   * Lookup285: xcm::v1::Xcm<RuntimeCall>2343   **/2344  XcmV1Xcm: {2345    _enum: {2346      WithdrawAsset: {2347        assets: 'XcmV1MultiassetMultiAssets',2348        effects: 'Vec<XcmV1Order>',2349      },2350      ReserveAssetDeposited: {2351        assets: 'XcmV1MultiassetMultiAssets',2352        effects: 'Vec<XcmV1Order>',2353      },2354      ReceiveTeleportedAsset: {2355        assets: 'XcmV1MultiassetMultiAssets',2356        effects: 'Vec<XcmV1Order>',2357      },2358      QueryResponse: {2359        queryId: 'Compact<u64>',2360        response: 'XcmV1Response',2361      },2362      TransferAsset: {2363        assets: 'XcmV1MultiassetMultiAssets',2364        beneficiary: 'XcmV1MultiLocation',2365      },2366      TransferReserveAsset: {2367        assets: 'XcmV1MultiassetMultiAssets',2368        dest: 'XcmV1MultiLocation',2369        effects: 'Vec<XcmV1Order>',2370      },2371      Transact: {2372        originType: 'XcmV0OriginKind',2373        requireWeightAtMost: 'u64',2374        call: 'XcmDoubleEncoded',2375      },2376      HrmpNewChannelOpenRequest: {2377        sender: 'Compact<u32>',2378        maxMessageSize: 'Compact<u32>',2379        maxCapacity: 'Compact<u32>',2380      },2381      HrmpChannelAccepted: {2382        recipient: 'Compact<u32>',2383      },2384      HrmpChannelClosing: {2385        initiator: 'Compact<u32>',2386        sender: 'Compact<u32>',2387        recipient: 'Compact<u32>',2388      },2389      RelayedFrom: {2390        who: 'XcmV1MultilocationJunctions',2391        message: 'XcmV1Xcm',2392      },2393      SubscribeVersion: {2394        queryId: 'Compact<u64>',2395        maxResponseWeight: 'Compact<u64>',2396      },2397      UnsubscribeVersion: 'Null'2398    }2399  },2400  /**2401   * Lookup287: xcm::v1::order::Order<RuntimeCall>2402   **/2403  XcmV1Order: {2404    _enum: {2405      Noop: 'Null',2406      DepositAsset: {2407        assets: 'XcmV1MultiassetMultiAssetFilter',2408        maxAssets: 'u32',2409        beneficiary: 'XcmV1MultiLocation',2410      },2411      DepositReserveAsset: {2412        assets: 'XcmV1MultiassetMultiAssetFilter',2413        maxAssets: 'u32',2414        dest: 'XcmV1MultiLocation',2415        effects: 'Vec<XcmV1Order>',2416      },2417      ExchangeAsset: {2418        give: 'XcmV1MultiassetMultiAssetFilter',2419        receive: 'XcmV1MultiassetMultiAssets',2420      },2421      InitiateReserveWithdraw: {2422        assets: 'XcmV1MultiassetMultiAssetFilter',2423        reserve: 'XcmV1MultiLocation',2424        effects: 'Vec<XcmV1Order>',2425      },2426      InitiateTeleport: {2427        assets: 'XcmV1MultiassetMultiAssetFilter',2428        dest: 'XcmV1MultiLocation',2429        effects: 'Vec<XcmV1Order>',2430      },2431      QueryHolding: {2432        queryId: 'Compact<u64>',2433        dest: 'XcmV1MultiLocation',2434        assets: 'XcmV1MultiassetMultiAssetFilter',2435      },2436      BuyExecution: {2437        fees: 'XcmV1MultiAsset',2438        weight: 'u64',2439        debt: 'u64',2440        haltOnError: 'bool',2441        instructions: 'Vec<XcmV1Xcm>'2442      }2443    }2444  },2445  /**2446   * Lookup289: xcm::v1::Response2447   **/2448  XcmV1Response: {2449    _enum: {2450      Assets: 'XcmV1MultiassetMultiAssets',2451      Version: 'u32'2452    }2453  },2454  /**2455   * Lookup303: cumulus_pallet_xcm::pallet::Call<T>2456   **/2457  CumulusPalletXcmCall: 'Null',2458  /**2459   * Lookup304: cumulus_pallet_dmp_queue::pallet::Call<T>2460   **/2461  CumulusPalletDmpQueueCall: {2462    _enum: {2463      service_overweight: {2464        index: 'u64',2465        weightLimit: 'u64'2466      }2467    }2468  },2469  /**2470   * Lookup305: pallet_inflation::pallet::Call<T>2471   **/2472  PalletInflationCall: {2473    _enum: {2474      start_inflation: {2475        inflationStartRelayBlock: 'u32'2476      }2477    }2478  },2479  /**2480   * Lookup306: pallet_unique::Call<T>2481   **/2482  PalletUniqueCall: {2483    _enum: {2484      create_collection: {2485        collectionName: 'Vec<u16>',2486        collectionDescription: 'Vec<u16>',2487        tokenPrefix: 'Bytes',2488        mode: 'UpDataStructsCollectionMode',2489      },2490      create_collection_ex: {2491        data: 'UpDataStructsCreateCollectionData',2492      },2493      destroy_collection: {2494        collectionId: 'u32',2495      },2496      add_to_allow_list: {2497        collectionId: 'u32',2498        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2499      },2500      remove_from_allow_list: {2501        collectionId: 'u32',2502        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2503      },2504      change_collection_owner: {2505        collectionId: 'u32',2506        newOwner: 'AccountId32',2507      },2508      add_collection_admin: {2509        collectionId: 'u32',2510        newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',2511      },2512      remove_collection_admin: {2513        collectionId: 'u32',2514        accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',2515      },2516      set_collection_sponsor: {2517        collectionId: 'u32',2518        newSponsor: 'AccountId32',2519      },2520      confirm_sponsorship: {2521        collectionId: 'u32',2522      },2523      remove_collection_sponsor: {2524        collectionId: 'u32',2525      },2526      create_item: {2527        collectionId: 'u32',2528        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2529        data: 'UpDataStructsCreateItemData',2530      },2531      create_multiple_items: {2532        collectionId: 'u32',2533        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2534        itemsData: 'Vec<UpDataStructsCreateItemData>',2535      },2536      set_collection_properties: {2537        collectionId: 'u32',2538        properties: 'Vec<UpDataStructsProperty>',2539      },2540      delete_collection_properties: {2541        collectionId: 'u32',2542        propertyKeys: 'Vec<Bytes>',2543      },2544      set_token_properties: {2545        collectionId: 'u32',2546        tokenId: 'u32',2547        properties: 'Vec<UpDataStructsProperty>',2548      },2549      delete_token_properties: {2550        collectionId: 'u32',2551        tokenId: 'u32',2552        propertyKeys: 'Vec<Bytes>',2553      },2554      set_token_property_permissions: {2555        collectionId: 'u32',2556        propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2557      },2558      create_multiple_items_ex: {2559        collectionId: 'u32',2560        data: 'UpDataStructsCreateItemExData',2561      },2562      set_transfers_enabled_flag: {2563        collectionId: 'u32',2564        value: 'bool',2565      },2566      burn_item: {2567        collectionId: 'u32',2568        itemId: 'u32',2569        value: 'u128',2570      },2571      burn_from: {2572        collectionId: 'u32',2573        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2574        itemId: 'u32',2575        value: 'u128',2576      },2577      transfer: {2578        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2579        collectionId: 'u32',2580        itemId: 'u32',2581        value: 'u128',2582      },2583      approve: {2584        spender: 'PalletEvmAccountBasicCrossAccountIdRepr',2585        collectionId: 'u32',2586        itemId: 'u32',2587        amount: 'u128',2588      },2589      transfer_from: {2590        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2591        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2592        collectionId: 'u32',2593        itemId: 'u32',2594        value: 'u128',2595      },2596      set_collection_limits: {2597        collectionId: 'u32',2598        newLimit: 'UpDataStructsCollectionLimits',2599      },2600      set_collection_permissions: {2601        collectionId: 'u32',2602        newPermission: 'UpDataStructsCollectionPermissions',2603      },2604      repartition: {2605        collectionId: 'u32',2606        tokenId: 'u32',2607        amount: 'u128',2608      },2609      set_allowance_for_all: {2610        collectionId: 'u32',2611        operator: 'PalletEvmAccountBasicCrossAccountIdRepr',2612        approve: 'bool',2613      },2614      force_repair_collection: {2615        collectionId: 'u32',2616      },2617      force_repair_item: {2618        collectionId: 'u32',2619        itemId: 'u32'2620      }2621    }2622  },2623  /**2624   * Lookup311: up_data_structs::CollectionMode2625   **/2626  UpDataStructsCollectionMode: {2627    _enum: {2628      NFT: 'Null',2629      Fungible: 'u8',2630      ReFungible: 'Null'2631    }2632  },2633  /**2634   * Lookup312: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2635   **/2636  UpDataStructsCreateCollectionData: {2637    mode: 'UpDataStructsCollectionMode',2638    access: 'Option<UpDataStructsAccessMode>',2639    name: 'Vec<u16>',2640    description: 'Vec<u16>',2641    tokenPrefix: 'Bytes',2642    pendingSponsor: 'Option<AccountId32>',2643    limits: 'Option<UpDataStructsCollectionLimits>',2644    permissions: 'Option<UpDataStructsCollectionPermissions>',2645    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2646    properties: 'Vec<UpDataStructsProperty>'2647  },2648  /**2649   * Lookup314: up_data_structs::AccessMode2650   **/2651  UpDataStructsAccessMode: {2652    _enum: ['Normal', 'AllowList']2653  },2654  /**2655   * Lookup316: up_data_structs::CollectionLimits2656   **/2657  UpDataStructsCollectionLimits: {2658    accountTokenOwnershipLimit: 'Option<u32>',2659    sponsoredDataSize: 'Option<u32>',2660    sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',2661    tokenLimit: 'Option<u32>',2662    sponsorTransferTimeout: 'Option<u32>',2663    sponsorApproveTimeout: 'Option<u32>',2664    ownerCanTransfer: 'Option<bool>',2665    ownerCanDestroy: 'Option<bool>',2666    transfersEnabled: 'Option<bool>'2667  },2668  /**2669   * Lookup318: up_data_structs::SponsoringRateLimit2670   **/2671  UpDataStructsSponsoringRateLimit: {2672    _enum: {2673      SponsoringDisabled: 'Null',2674      Blocks: 'u32'2675    }2676  },2677  /**2678   * Lookup321: up_data_structs::CollectionPermissions2679   **/2680  UpDataStructsCollectionPermissions: {2681    access: 'Option<UpDataStructsAccessMode>',2682    mintMode: 'Option<bool>',2683    nesting: 'Option<UpDataStructsNestingPermissions>'2684  },2685  /**2686   * Lookup323: up_data_structs::NestingPermissions2687   **/2688  UpDataStructsNestingPermissions: {2689    tokenOwner: 'bool',2690    collectionAdmin: 'bool',2691    restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2692  },2693  /**2694   * Lookup325: up_data_structs::OwnerRestrictedSet2695   **/2696  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2697  /**2698   * Lookup330: up_data_structs::PropertyKeyPermission2699   **/2700  UpDataStructsPropertyKeyPermission: {2701    key: 'Bytes',2702    permission: 'UpDataStructsPropertyPermission'2703  },2704  /**2705   * Lookup331: up_data_structs::PropertyPermission2706   **/2707  UpDataStructsPropertyPermission: {2708    mutable: 'bool',2709    collectionAdmin: 'bool',2710    tokenOwner: 'bool'2711  },2712  /**2713   * Lookup334: up_data_structs::Property2714   **/2715  UpDataStructsProperty: {2716    key: 'Bytes',2717    value: 'Bytes'2718  },2719  /**2720   * Lookup337: up_data_structs::CreateItemData2721   **/2722  UpDataStructsCreateItemData: {2723    _enum: {2724      NFT: 'UpDataStructsCreateNftData',2725      Fungible: 'UpDataStructsCreateFungibleData',2726      ReFungible: 'UpDataStructsCreateReFungibleData'2727    }2728  },2729  /**2730   * Lookup338: up_data_structs::CreateNftData2731   **/2732  UpDataStructsCreateNftData: {2733    properties: 'Vec<UpDataStructsProperty>'2734  },2735  /**2736   * Lookup339: up_data_structs::CreateFungibleData2737   **/2738  UpDataStructsCreateFungibleData: {2739    value: 'u128'2740  },2741  /**2742   * Lookup340: up_data_structs::CreateReFungibleData2743   **/2744  UpDataStructsCreateReFungibleData: {2745    pieces: 'u128',2746    properties: 'Vec<UpDataStructsProperty>'2747  },2748  /**2749   * Lookup343: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2750   **/2751  UpDataStructsCreateItemExData: {2752    _enum: {2753      NFT: 'Vec<UpDataStructsCreateNftExData>',2754      Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2755      RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExSingleOwner>',2756      RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2757    }2758  },2759  /**2760   * Lookup345: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2761   **/2762  UpDataStructsCreateNftExData: {2763    properties: 'Vec<UpDataStructsProperty>',2764    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2765  },2766  /**2767   * Lookup352: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2768   **/2769  UpDataStructsCreateRefungibleExSingleOwner: {2770    user: 'PalletEvmAccountBasicCrossAccountIdRepr',2771    pieces: 'u128',2772    properties: 'Vec<UpDataStructsProperty>'2773  },2774  /**2775   * Lookup354: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2776   **/2777  UpDataStructsCreateRefungibleExMultipleOwners: {2778    users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2779    properties: 'Vec<UpDataStructsProperty>'2780  },2781  /**2782   * Lookup355: pallet_configuration::pallet::Call<T>2783   **/2784  PalletConfigurationCall: {2785    _enum: {2786      set_weight_to_fee_coefficient_override: {2787        coeff: 'Option<u64>',2788      },2789      set_min_gas_price_override: {2790        coeff: 'Option<u64>',2791      },2792      set_xcm_allowed_locations: {2793        locations: 'Option<Vec<XcmV1MultiLocation>>',2794      },2795      set_app_promotion_configuration_override: {2796        configuration: 'PalletConfigurationAppPromotionConfiguration',2797      },2798      set_collator_selection_desired_collators: {2799        max: 'Option<u32>',2800      },2801      set_collator_selection_license_bond: {2802        amount: 'Option<u128>',2803      },2804      set_collator_selection_kick_threshold: {2805        threshold: 'Option<u32>'2806      }2807    }2808  },2809  /**2810   * Lookup360: pallet_configuration::AppPromotionConfiguration<BlockNumber>2811   **/2812  PalletConfigurationAppPromotionConfiguration: {2813    recalculationInterval: 'Option<u32>',2814    pendingInterval: 'Option<u32>',2815    intervalIncome: 'Option<Perbill>',2816    maxStakersPerCalculation: 'Option<u8>'2817  },2818  /**2819   * Lookup364: pallet_template_transaction_payment::Call<T>2820   **/2821  PalletTemplateTransactionPaymentCall: 'Null',2822  /**2823   * Lookup365: pallet_structure::pallet::Call<T>2824   **/2825  PalletStructureCall: 'Null',2826  /**2827   * Lookup366: pallet_rmrk_core::pallet::Call<T>2828   **/2829  PalletRmrkCoreCall: {2830    _enum: {2831      create_collection: {2832        metadata: 'Bytes',2833        max: 'Option<u32>',2834        symbol: 'Bytes',2835      },2836      destroy_collection: {2837        collectionId: 'u32',2838      },2839      change_collection_issuer: {2840        collectionId: 'u32',2841        newIssuer: 'MultiAddress',2842      },2843      lock_collection: {2844        collectionId: 'u32',2845      },2846      mint_nft: {2847        owner: 'Option<AccountId32>',2848        collectionId: 'u32',2849        recipient: 'Option<AccountId32>',2850        royaltyAmount: 'Option<Permill>',2851        metadata: 'Bytes',2852        transferable: 'bool',2853        resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',2854      },2855      burn_nft: {2856        collectionId: 'u32',2857        nftId: 'u32',2858        maxBurns: 'u32',2859      },2860      send: {2861        rmrkCollectionId: 'u32',2862        rmrkNftId: 'u32',2863        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2864      },2865      accept_nft: {2866        rmrkCollectionId: 'u32',2867        rmrkNftId: 'u32',2868        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2869      },2870      reject_nft: {2871        rmrkCollectionId: 'u32',2872        rmrkNftId: 'u32',2873      },2874      accept_resource: {2875        rmrkCollectionId: 'u32',2876        rmrkNftId: 'u32',2877        resourceId: 'u32',2878      },2879      accept_resource_removal: {2880        rmrkCollectionId: 'u32',2881        rmrkNftId: 'u32',2882        resourceId: 'u32',2883      },2884      set_property: {2885        rmrkCollectionId: 'Compact<u32>',2886        maybeNftId: 'Option<u32>',2887        key: 'Bytes',2888        value: 'Bytes',2889      },2890      set_priority: {2891        rmrkCollectionId: 'u32',2892        rmrkNftId: 'u32',2893        priorities: 'Vec<u32>',2894      },2895      add_basic_resource: {2896        rmrkCollectionId: 'u32',2897        nftId: 'u32',2898        resource: 'RmrkTraitsResourceBasicResource',2899      },2900      add_composable_resource: {2901        rmrkCollectionId: 'u32',2902        nftId: 'u32',2903        resource: 'RmrkTraitsResourceComposableResource',2904      },2905      add_slot_resource: {2906        rmrkCollectionId: 'u32',2907        nftId: 'u32',2908        resource: 'RmrkTraitsResourceSlotResource',2909      },2910      remove_resource: {2911        rmrkCollectionId: 'u32',2912        nftId: 'u32',2913        resourceId: 'u32'2914      }2915    }2916  },2917  /**2918   * Lookup372: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2919   **/2920  RmrkTraitsResourceResourceTypes: {2921    _enum: {2922      Basic: 'RmrkTraitsResourceBasicResource',2923      Composable: 'RmrkTraitsResourceComposableResource',2924      Slot: 'RmrkTraitsResourceSlotResource'2925    }2926  },2927  /**2928   * Lookup374: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2929   **/2930  RmrkTraitsResourceBasicResource: {2931    src: 'Option<Bytes>',2932    metadata: 'Option<Bytes>',2933    license: 'Option<Bytes>',2934    thumb: 'Option<Bytes>'2935  },2936  /**2937   * Lookup376: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2938   **/2939  RmrkTraitsResourceComposableResource: {2940    parts: 'Vec<u32>',2941    base: 'u32',2942    src: 'Option<Bytes>',2943    metadata: 'Option<Bytes>',2944    license: 'Option<Bytes>',2945    thumb: 'Option<Bytes>'2946  },2947  /**2948   * Lookup377: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2949   **/2950  RmrkTraitsResourceSlotResource: {2951    base: 'u32',2952    src: 'Option<Bytes>',2953    metadata: 'Option<Bytes>',2954    slot: 'u32',2955    license: 'Option<Bytes>',2956    thumb: 'Option<Bytes>'2957  },2958  /**2959   * Lookup380: pallet_rmrk_equip::pallet::Call<T>2960   **/2961  PalletRmrkEquipCall: {2962    _enum: {2963      create_base: {2964        baseType: 'Bytes',2965        symbol: 'Bytes',2966        parts: 'Vec<RmrkTraitsPartPartType>',2967      },2968      theme_add: {2969        baseId: 'u32',2970        theme: 'RmrkTraitsTheme',2971      },2972      equippable: {2973        baseId: 'u32',2974        slotId: 'u32',2975        equippables: 'RmrkTraitsPartEquippableList'2976      }2977    }2978  },2979  /**2980   * Lookup383: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2981   **/2982  RmrkTraitsPartPartType: {2983    _enum: {2984      FixedPart: 'RmrkTraitsPartFixedPart',2985      SlotPart: 'RmrkTraitsPartSlotPart'2986    }2987  },2988  /**2989   * Lookup385: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2990   **/2991  RmrkTraitsPartFixedPart: {2992    id: 'u32',2993    z: 'u32',2994    src: 'Bytes'2995  },2996  /**2997   * Lookup386: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2998   **/2999  RmrkTraitsPartSlotPart: {3000    id: 'u32',3001    equippable: 'RmrkTraitsPartEquippableList',3002    src: 'Bytes',3003    z: 'u32'3004  },3005  /**3006   * Lookup387: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3007   **/3008  RmrkTraitsPartEquippableList: {3009    _enum: {3010      All: 'Null',3011      Empty: 'Null',3012      Custom: 'Vec<u32>'3013    }3014  },3015  /**3016   * Lookup389: 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>>3017   **/3018  RmrkTraitsTheme: {3019    name: 'Bytes',3020    properties: 'Vec<RmrkTraitsThemeThemeProperty>',3021    inherit: 'bool'3022  },3023  /**3024   * Lookup391: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3025   **/3026  RmrkTraitsThemeThemeProperty: {3027    key: 'Bytes',3028    value: 'Bytes'3029  },3030  /**3031   * Lookup393: pallet_app_promotion::pallet::Call<T>3032   **/3033  PalletAppPromotionCall: {3034    _enum: {3035      set_admin_address: {3036        admin: 'PalletEvmAccountBasicCrossAccountIdRepr',3037      },3038      stake: {3039        amount: 'u128',3040      },3041      unstake: 'Null',3042      sponsor_collection: {3043        collectionId: 'u32',3044      },3045      stop_sponsoring_collection: {3046        collectionId: 'u32',3047      },3048      sponsor_contract: {3049        contractId: 'H160',3050      },3051      stop_sponsoring_contract: {3052        contractId: 'H160',3053      },3054      payout_stakers: {3055        stakersNumber: 'Option<u8>'3056      }3057    }3058  },3059  /**3060   * Lookup394: pallet_foreign_assets::module::Call<T>3061   **/3062  PalletForeignAssetsModuleCall: {3063    _enum: {3064      register_foreign_asset: {3065        owner: 'AccountId32',3066        location: 'XcmVersionedMultiLocation',3067        metadata: 'PalletForeignAssetsModuleAssetMetadata',3068      },3069      update_foreign_asset: {3070        foreignAssetId: 'u32',3071        location: 'XcmVersionedMultiLocation',3072        metadata: 'PalletForeignAssetsModuleAssetMetadata'3073      }3074    }3075  },3076  /**3077   * Lookup395: pallet_evm::pallet::Call<T>3078   **/3079  PalletEvmCall: {3080    _enum: {3081      withdraw: {3082        address: 'H160',3083        value: 'u128',3084      },3085      call: {3086        source: 'H160',3087        target: 'H160',3088        input: 'Bytes',3089        value: 'U256',3090        gasLimit: 'u64',3091        maxFeePerGas: 'U256',3092        maxPriorityFeePerGas: 'Option<U256>',3093        nonce: 'Option<U256>',3094        accessList: 'Vec<(H160,Vec<H256>)>',3095      },3096      create: {3097        source: 'H160',3098        init: 'Bytes',3099        value: 'U256',3100        gasLimit: 'u64',3101        maxFeePerGas: 'U256',3102        maxPriorityFeePerGas: 'Option<U256>',3103        nonce: 'Option<U256>',3104        accessList: 'Vec<(H160,Vec<H256>)>',3105      },3106      create2: {3107        source: 'H160',3108        init: 'Bytes',3109        salt: 'H256',3110        value: 'U256',3111        gasLimit: 'u64',3112        maxFeePerGas: 'U256',3113        maxPriorityFeePerGas: 'Option<U256>',3114        nonce: 'Option<U256>',3115        accessList: 'Vec<(H160,Vec<H256>)>'3116      }3117    }3118  },3119  /**3120   * Lookup401: pallet_ethereum::pallet::Call<T>3121   **/3122  PalletEthereumCall: {3123    _enum: {3124      transact: {3125        transaction: 'EthereumTransactionTransactionV2'3126      }3127    }3128  },3129  /**3130   * Lookup402: ethereum::transaction::TransactionV23131   **/3132  EthereumTransactionTransactionV2: {3133    _enum: {3134      Legacy: 'EthereumTransactionLegacyTransaction',3135      EIP2930: 'EthereumTransactionEip2930Transaction',3136      EIP1559: 'EthereumTransactionEip1559Transaction'3137    }3138  },3139  /**3140   * Lookup403: ethereum::transaction::LegacyTransaction3141   **/3142  EthereumTransactionLegacyTransaction: {3143    nonce: 'U256',3144    gasPrice: 'U256',3145    gasLimit: 'U256',3146    action: 'EthereumTransactionTransactionAction',3147    value: 'U256',3148    input: 'Bytes',3149    signature: 'EthereumTransactionTransactionSignature'3150  },3151  /**3152   * Lookup404: ethereum::transaction::TransactionAction3153   **/3154  EthereumTransactionTransactionAction: {3155    _enum: {3156      Call: 'H160',3157      Create: 'Null'3158    }3159  },3160  /**3161   * Lookup405: ethereum::transaction::TransactionSignature3162   **/3163  EthereumTransactionTransactionSignature: {3164    v: 'u64',3165    r: 'H256',3166    s: 'H256'3167  },3168  /**3169   * Lookup407: ethereum::transaction::EIP2930Transaction3170   **/3171  EthereumTransactionEip2930Transaction: {3172    chainId: 'u64',3173    nonce: 'U256',3174    gasPrice: 'U256',3175    gasLimit: 'U256',3176    action: 'EthereumTransactionTransactionAction',3177    value: 'U256',3178    input: 'Bytes',3179    accessList: 'Vec<EthereumTransactionAccessListItem>',3180    oddYParity: 'bool',3181    r: 'H256',3182    s: 'H256'3183  },3184  /**3185   * Lookup409: ethereum::transaction::AccessListItem3186   **/3187  EthereumTransactionAccessListItem: {3188    address: 'H160',3189    storageKeys: 'Vec<H256>'3190  },3191  /**3192   * Lookup410: ethereum::transaction::EIP1559Transaction3193   **/3194  EthereumTransactionEip1559Transaction: {3195    chainId: 'u64',3196    nonce: 'U256',3197    maxPriorityFeePerGas: 'U256',3198    maxFeePerGas: 'U256',3199    gasLimit: 'U256',3200    action: 'EthereumTransactionTransactionAction',3201    value: 'U256',3202    input: 'Bytes',3203    accessList: 'Vec<EthereumTransactionAccessListItem>',3204    oddYParity: 'bool',3205    r: 'H256',3206    s: 'H256'3207  },3208  /**3209   * Lookup411: pallet_data_management::pallet::Call<T>3210   **/3211  PalletDataManagementCall: {3212    _enum: {3213      begin: {3214        address: 'H160',3215      },3216      set_data: {3217        address: 'H160',3218        data: 'Vec<(H256,H256)>',3219      },3220      finish: {3221        address: 'H160',3222        code: 'Bytes',3223      },3224      insert_eth_logs: {3225        logs: 'Vec<EthereumLog>',3226      },3227      insert_events: {3228        events: 'Vec<Bytes>',3229      },3230      set_identities: {3231        identities: 'Vec<(AccountId32,Option<PalletIdentityRegistration>)>'3232      }3233    }3234  },3235  /**3236   * Lookup418: pallet_maintenance::pallet::Call<T>3237   **/3238  PalletMaintenanceCall: {3239    _enum: ['enable', 'disable']3240  },3241  /**3242   * Lookup419: pallet_test_utils::pallet::Call<T>3243   **/3244  PalletTestUtilsCall: {3245    _enum: {3246      enable: 'Null',3247      set_test_value: {3248        value: 'u32',3249      },3250      set_test_value_and_rollback: {3251        value: 'u32',3252      },3253      inc_test_value: 'Null',3254      just_take_fee: 'Null',3255      batch_all: {3256        calls: 'Vec<Call>'3257      }3258    }3259  },3260  /**3261   * Lookup421: pallet_sudo::pallet::Error<T>3262   **/3263  PalletSudoError: {3264    _enum: ['RequireSudo']3265  },3266  /**3267   * Lookup423: orml_vesting::module::Error<T>3268   **/3269  OrmlVestingModuleError: {3270    _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']3271  },3272  /**3273   * Lookup424: orml_xtokens::module::Error<T>3274   **/3275  OrmlXtokensModuleError: {3276    _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']3277  },3278  /**3279   * Lookup427: orml_tokens::BalanceLock<Balance>3280   **/3281  OrmlTokensBalanceLock: {3282    id: '[u8;8]',3283    amount: 'u128'3284  },3285  /**3286   * Lookup429: orml_tokens::AccountData<Balance>3287   **/3288  OrmlTokensAccountData: {3289    free: 'u128',3290    reserved: 'u128',3291    frozen: 'u128'3292  },3293  /**3294   * Lookup431: orml_tokens::ReserveData<ReserveIdentifier, Balance>3295   **/3296  OrmlTokensReserveData: {3297    id: 'Null',3298    amount: 'u128'3299  },3300  /**3301   * Lookup433: orml_tokens::module::Error<T>3302   **/3303  OrmlTokensModuleError: {3304    _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']3305  },3306  /**3307   * Lookup435: cumulus_pallet_xcmp_queue::InboundChannelDetails3308   **/3309  CumulusPalletXcmpQueueInboundChannelDetails: {3310    sender: 'u32',3311    state: 'CumulusPalletXcmpQueueInboundState',3312    messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'3313  },3314  /**3315   * Lookup436: cumulus_pallet_xcmp_queue::InboundState3316   **/3317  CumulusPalletXcmpQueueInboundState: {3318    _enum: ['Ok', 'Suspended']3319  },3320  /**3321   * Lookup439: polkadot_parachain::primitives::XcmpMessageFormat3322   **/3323  PolkadotParachainPrimitivesXcmpMessageFormat: {3324    _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3325  },3326  /**3327   * Lookup442: cumulus_pallet_xcmp_queue::OutboundChannelDetails3328   **/3329  CumulusPalletXcmpQueueOutboundChannelDetails: {3330    recipient: 'u32',3331    state: 'CumulusPalletXcmpQueueOutboundState',3332    signalsExist: 'bool',3333    firstIndex: 'u16',3334    lastIndex: 'u16'3335  },3336  /**3337   * Lookup443: cumulus_pallet_xcmp_queue::OutboundState3338   **/3339  CumulusPalletXcmpQueueOutboundState: {3340    _enum: ['Ok', 'Suspended']3341  },3342  /**3343   * Lookup445: cumulus_pallet_xcmp_queue::QueueConfigData3344   **/3345  CumulusPalletXcmpQueueQueueConfigData: {3346    suspendThreshold: 'u32',3347    dropThreshold: 'u32',3348    resumeThreshold: 'u32',3349    thresholdWeight: 'SpWeightsWeightV2Weight',3350    weightRestrictDecay: 'SpWeightsWeightV2Weight',3351    xcmpMaxIndividualWeight: 'SpWeightsWeightV2Weight'3352  },3353  /**3354   * Lookup447: cumulus_pallet_xcmp_queue::pallet::Error<T>3355   **/3356  CumulusPalletXcmpQueueError: {3357    _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3358  },3359  /**3360   * Lookup448: pallet_xcm::pallet::Error<T>3361   **/3362  PalletXcmError: {3363    _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3364  },3365  /**3366   * Lookup449: cumulus_pallet_xcm::pallet::Error<T>3367   **/3368  CumulusPalletXcmError: 'Null',3369  /**3370   * Lookup450: cumulus_pallet_dmp_queue::ConfigData3371   **/3372  CumulusPalletDmpQueueConfigData: {3373    maxIndividual: 'SpWeightsWeightV2Weight'3374  },3375  /**3376   * Lookup451: cumulus_pallet_dmp_queue::PageIndexData3377   **/3378  CumulusPalletDmpQueuePageIndexData: {3379    beginUsed: 'u32',3380    endUsed: 'u32',3381    overweightCount: 'u64'3382  },3383  /**3384   * Lookup454: cumulus_pallet_dmp_queue::pallet::Error<T>3385   **/3386  CumulusPalletDmpQueueError: {3387    _enum: ['Unknown', 'OverLimit']3388  },3389  /**3390   * Lookup458: pallet_unique::Error<T>3391   **/3392  PalletUniqueError: {3393    _enum: ['CollectionDecimalPointLimitExceeded', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3394  },3395  /**3396   * Lookup459: pallet_configuration::pallet::Error<T>3397   **/3398  PalletConfigurationError: {3399    _enum: ['InconsistentConfiguration']3400  },3401  /**3402   * Lookup460: up_data_structs::Collection<sp_core::crypto::AccountId32>3403   **/3404  UpDataStructsCollection: {3405    owner: 'AccountId32',3406    mode: 'UpDataStructsCollectionMode',3407    name: 'Vec<u16>',3408    description: 'Vec<u16>',3409    tokenPrefix: 'Bytes',3410    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3411    limits: 'UpDataStructsCollectionLimits',3412    permissions: 'UpDataStructsCollectionPermissions',3413    flags: '[u8;1]'3414  },3415  /**3416   * Lookup461: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3417   **/3418  UpDataStructsSponsorshipStateAccountId32: {3419    _enum: {3420      Disabled: 'Null',3421      Unconfirmed: 'AccountId32',3422      Confirmed: 'AccountId32'3423    }3424  },3425  /**3426   * Lookup462: up_data_structs::Properties3427   **/3428  UpDataStructsProperties: {3429    map: 'UpDataStructsPropertiesMapBoundedVec',3430    consumedSpace: 'u32',3431    spaceLimit: 'u32'3432  },3433  /**3434   * Lookup463: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3435   **/3436  UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3437  /**3438   * Lookup468: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3439   **/3440  UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3441  /**3442   * Lookup475: up_data_structs::CollectionStats3443   **/3444  UpDataStructsCollectionStats: {3445    created: 'u32',3446    destroyed: 'u32',3447    alive: 'u32'3448  },3449  /**3450   * Lookup476: up_data_structs::TokenChild3451   **/3452  UpDataStructsTokenChild: {3453    token: 'u32',3454    collection: 'u32'3455  },3456  /**3457   * Lookup477: PhantomType::up_data_structs<T>3458   **/3459  PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild,UpPovEstimateRpcPovInfo);0]',3460  /**3461   * Lookup479: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3462   **/3463  UpDataStructsTokenData: {3464    properties: 'Vec<UpDataStructsProperty>',3465    owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3466    pieces: 'u128'3467  },3468  /**3469   * Lookup481: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3470   **/3471  UpDataStructsRpcCollection: {3472    owner: 'AccountId32',3473    mode: 'UpDataStructsCollectionMode',3474    name: 'Vec<u16>',3475    description: 'Vec<u16>',3476    tokenPrefix: 'Bytes',3477    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3478    limits: 'UpDataStructsCollectionLimits',3479    permissions: 'UpDataStructsCollectionPermissions',3480    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3481    properties: 'Vec<UpDataStructsProperty>',3482    readOnly: 'bool',3483    flags: 'UpDataStructsRpcCollectionFlags'3484  },3485  /**3486   * Lookup482: up_data_structs::RpcCollectionFlags3487   **/3488  UpDataStructsRpcCollectionFlags: {3489    foreign: 'bool',3490    erc721metadata: 'bool'3491  },3492  /**3493   * Lookup483: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3494   **/3495  RmrkTraitsCollectionCollectionInfo: {3496    issuer: 'AccountId32',3497    metadata: 'Bytes',3498    max: 'Option<u32>',3499    symbol: 'Bytes',3500    nftsCount: 'u32'3501  },3502  /**3503   * Lookup484: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3504   **/3505  RmrkTraitsNftNftInfo: {3506    owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3507    royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3508    metadata: 'Bytes',3509    equipped: 'bool',3510    pending: 'bool'3511  },3512  /**3513   * Lookup486: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3514   **/3515  RmrkTraitsNftRoyaltyInfo: {3516    recipient: 'AccountId32',3517    amount: 'Permill'3518  },3519  /**3520   * Lookup487: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3521   **/3522  RmrkTraitsResourceResourceInfo: {3523    id: 'u32',3524    resource: 'RmrkTraitsResourceResourceTypes',3525    pending: 'bool',3526    pendingRemoval: 'bool'3527  },3528  /**3529   * Lookup488: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3530   **/3531  RmrkTraitsPropertyPropertyInfo: {3532    key: 'Bytes',3533    value: 'Bytes'3534  },3535  /**3536   * Lookup489: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3537   **/3538  RmrkTraitsBaseBaseInfo: {3539    issuer: 'AccountId32',3540    baseType: 'Bytes',3541    symbol: 'Bytes'3542  },3543  /**3544   * Lookup490: rmrk_traits::nft::NftChild3545   **/3546  RmrkTraitsNftNftChild: {3547    collectionId: 'u32',3548    nftId: 'u32'3549  },3550  /**3551   * Lookup491: up_pov_estimate_rpc::PovInfo3552   **/3553  UpPovEstimateRpcPovInfo: {3554    proofSize: 'u64',3555    compactProofSize: 'u64',3556    compressedProofSize: 'u64',3557    results: 'Vec<Result<Result<Null, SpRuntimeDispatchError>, SpRuntimeTransactionValidityTransactionValidityError>>',3558    keyValues: 'Vec<UpPovEstimateRpcTrieKeyValue>'3559  },3560  /**3561   * Lookup494: sp_runtime::transaction_validity::TransactionValidityError3562   **/3563  SpRuntimeTransactionValidityTransactionValidityError: {3564    _enum: {3565      Invalid: 'SpRuntimeTransactionValidityInvalidTransaction',3566      Unknown: 'SpRuntimeTransactionValidityUnknownTransaction'3567    }3568  },3569  /**3570   * Lookup495: sp_runtime::transaction_validity::InvalidTransaction3571   **/3572  SpRuntimeTransactionValidityInvalidTransaction: {3573    _enum: {3574      Call: 'Null',3575      Payment: 'Null',3576      Future: 'Null',3577      Stale: 'Null',3578      BadProof: 'Null',3579      AncientBirthBlock: 'Null',3580      ExhaustsResources: 'Null',3581      Custom: 'u8',3582      BadMandatory: 'Null',3583      MandatoryValidation: 'Null',3584      BadSigner: 'Null'3585    }3586  },3587  /**3588   * Lookup496: sp_runtime::transaction_validity::UnknownTransaction3589   **/3590  SpRuntimeTransactionValidityUnknownTransaction: {3591    _enum: {3592      CannotLookup: 'Null',3593      NoUnsignedValidator: 'Null',3594      Custom: 'u8'3595    }3596  },3597  /**3598   * Lookup498: up_pov_estimate_rpc::TrieKeyValue3599   **/3600  UpPovEstimateRpcTrieKeyValue: {3601    key: 'Bytes',3602    value: 'Bytes'3603  },3604  /**3605   * Lookup500: pallet_common::pallet::Error<T>3606   **/3607  PalletCommonError: {3608    _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', 'ConfirmSponsorshipFail', 'UserIsNotCollectionAdmin']3609  },3610  /**3611   * Lookup502: pallet_fungible::pallet::Error<T>3612   **/3613  PalletFungibleError: {3614    _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed', 'SettingAllowanceForAllNotAllowed', 'FungibleTokensAreAlwaysValid']3615  },3616  /**3617   * Lookup506: pallet_refungible::pallet::Error<T>3618   **/3619  PalletRefungibleError: {3620    _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3621  },3622  /**3623   * Lookup507: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3624   **/3625  PalletNonfungibleItemData: {3626    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3627  },3628  /**3629   * Lookup509: up_data_structs::PropertyScope3630   **/3631  UpDataStructsPropertyScope: {3632    _enum: ['None', 'Rmrk']3633  },3634  /**3635   * Lookup512: pallet_nonfungible::pallet::Error<T>3636   **/3637  PalletNonfungibleError: {3638    _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3639  },3640  /**3641   * Lookup513: pallet_structure::pallet::Error<T>3642   **/3643  PalletStructureError: {3644    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3645  },3646  /**3647   * Lookup514: pallet_rmrk_core::pallet::Error<T>3648   **/3649  PalletRmrkCoreError: {3650    _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3651  },3652  /**3653   * Lookup516: pallet_rmrk_equip::pallet::Error<T>3654   **/3655  PalletRmrkEquipError: {3656    _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3657  },3658  /**3659   * Lookup522: pallet_app_promotion::pallet::Error<T>3660   **/3661  PalletAppPromotionError: {3662    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3663  },3664  /**3665   * Lookup523: pallet_foreign_assets::module::Error<T>3666   **/3667  PalletForeignAssetsModuleError: {3668    _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3669  },3670  /**3671   * Lookup525: pallet_evm::pallet::Error<T>3672   **/3673  PalletEvmError: {3674    _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy', 'TransactionMustComeFromEOA']3675  },3676  /**3677   * Lookup528: fp_rpc::TransactionStatus3678   **/3679  FpRpcTransactionStatus: {3680    transactionHash: 'H256',3681    transactionIndex: 'u32',3682    from: 'H160',3683    to: 'Option<H160>',3684    contractAddress: 'Option<H160>',3685    logs: 'Vec<EthereumLog>',3686    logsBloom: 'EthbloomBloom'3687  },3688  /**3689   * Lookup530: ethbloom::Bloom3690   **/3691  EthbloomBloom: '[u8;256]',3692  /**3693   * Lookup532: ethereum::receipt::ReceiptV33694   **/3695  EthereumReceiptReceiptV3: {3696    _enum: {3697      Legacy: 'EthereumReceiptEip658ReceiptData',3698      EIP2930: 'EthereumReceiptEip658ReceiptData',3699      EIP1559: 'EthereumReceiptEip658ReceiptData'3700    }3701  },3702  /**3703   * Lookup533: ethereum::receipt::EIP658ReceiptData3704   **/3705  EthereumReceiptEip658ReceiptData: {3706    statusCode: 'u8',3707    usedGas: 'U256',3708    logsBloom: 'EthbloomBloom',3709    logs: 'Vec<EthereumLog>'3710  },3711  /**3712   * Lookup534: ethereum::block::Block<ethereum::transaction::TransactionV2>3713   **/3714  EthereumBlock: {3715    header: 'EthereumHeader',3716    transactions: 'Vec<EthereumTransactionTransactionV2>',3717    ommers: 'Vec<EthereumHeader>'3718  },3719  /**3720   * Lookup535: ethereum::header::Header3721   **/3722  EthereumHeader: {3723    parentHash: 'H256',3724    ommersHash: 'H256',3725    beneficiary: 'H160',3726    stateRoot: 'H256',3727    transactionsRoot: 'H256',3728    receiptsRoot: 'H256',3729    logsBloom: 'EthbloomBloom',3730    difficulty: 'U256',3731    number: 'U256',3732    gasLimit: 'U256',3733    gasUsed: 'U256',3734    timestamp: 'u64',3735    extraData: 'Bytes',3736    mixHash: 'H256',3737    nonce: 'EthereumTypesHashH64'3738  },3739  /**3740   * Lookup536: ethereum_types::hash::H643741   **/3742  EthereumTypesHashH64: '[u8;8]',3743  /**3744   * Lookup541: pallet_ethereum::pallet::Error<T>3745   **/3746  PalletEthereumError: {3747    _enum: ['InvalidSignature', 'PreLogExists']3748  },3749  /**3750   * Lookup542: pallet_evm_coder_substrate::pallet::Error<T>3751   **/3752  PalletEvmCoderSubstrateError: {3753    _enum: ['OutOfGas', 'OutOfFund']3754  },3755  /**3756   * Lookup543: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3757   **/3758  UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3759    _enum: {3760      Disabled: 'Null',3761      Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3762      Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3763    }3764  },3765  /**3766   * Lookup544: pallet_evm_contract_helpers::SponsoringModeT3767   **/3768  PalletEvmContractHelpersSponsoringModeT: {3769    _enum: ['Disabled', 'Allowlisted', 'Generous']3770  },3771  /**3772   * Lookup550: pallet_evm_contract_helpers::pallet::Error<T>3773   **/3774  PalletEvmContractHelpersError: {3775    _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3776  },3777  /**3778   * Lookup551: pallet_data_management::pallet::Error<T>3779   **/3780  PalletDataManagementError: {3781    _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3782  },3783  /**3784   * Lookup552: pallet_maintenance::pallet::Error<T>3785   **/3786  PalletMaintenanceError: 'Null',3787  /**3788   * Lookup553: pallet_test_utils::pallet::Error<T>3789   **/3790  PalletTestUtilsError: {3791    _enum: ['TestPalletDisabled', 'TriggerRollback']3792  },3793  /**3794   * Lookup555: sp_runtime::MultiSignature3795   **/3796  SpRuntimeMultiSignature: {3797    _enum: {3798      Ed25519: 'SpCoreEd25519Signature',3799      Sr25519: 'SpCoreSr25519Signature',3800      Ecdsa: 'SpCoreEcdsaSignature'3801    }3802  },3803  /**3804   * Lookup556: sp_core::ed25519::Signature3805   **/3806  SpCoreEd25519Signature: '[u8;64]',3807  /**3808   * Lookup558: sp_core::sr25519::Signature3809   **/3810  SpCoreSr25519Signature: '[u8;64]',3811  /**3812   * Lookup559: sp_core::ecdsa::Signature3813   **/3814  SpCoreEcdsaSignature: '[u8;65]',3815  /**3816   * Lookup562: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3817   **/3818  FrameSystemExtensionsCheckSpecVersion: 'Null',3819  /**3820   * Lookup563: frame_system::extensions::check_tx_version::CheckTxVersion<T>3821   **/3822  FrameSystemExtensionsCheckTxVersion: 'Null',3823  /**3824   * Lookup564: frame_system::extensions::check_genesis::CheckGenesis<T>3825   **/3826  FrameSystemExtensionsCheckGenesis: 'Null',3827  /**3828   * Lookup567: frame_system::extensions::check_nonce::CheckNonce<T>3829   **/3830  FrameSystemExtensionsCheckNonce: 'Compact<u32>',3831  /**3832   * Lookup568: frame_system::extensions::check_weight::CheckWeight<T>3833   **/3834  FrameSystemExtensionsCheckWeight: 'Null',3835  /**3836   * Lookup569: opal_runtime::runtime_common::maintenance::CheckMaintenance3837   **/3838  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3839  /**3840   * Lookup570: opal_runtime::runtime_common::data_management::FilterIdentity3841   **/3842  OpalRuntimeRuntimeCommonDataManagementFilterIdentity: 'Null',3843  /**3844   * Lookup571: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3845   **/3846  PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3847  /**3848   * Lookup572: opal_runtime::Runtime3849   **/3850  OpalRuntimeRuntime: 'Null',3851  /**3852   * Lookup573: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3853   **/3854  PalletEthereumFakeTransactionFinalizer: 'Null'3855};
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -212,8 +212,8 @@
       readonly accountId: AccountId32;
       readonly deposit: u128;
     } & Struct;
-    readonly isLicenseForfeited: boolean;
-    readonly asLicenseForfeited: {
+    readonly isLicenseReleased: boolean;
+    readonly asLicenseReleased: {
       readonly accountId: AccountId32;
       readonly depositReturned: u128;
     } & Struct;
@@ -225,7 +225,7 @@
     readonly asCandidateRemoved: {
       readonly accountId: AccountId32;
     } & Struct;
-    readonly type: 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseForfeited' | 'CandidateAdded' | 'CandidateRemoved';
+    readonly type: 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseReleased' | 'CandidateAdded' | 'CandidateRemoved';
   }
 
   /** @name PalletSessionEvent (31) */
@@ -3513,11 +3513,11 @@
     readonly asInsertEvents: {
       readonly events: Vec<Bytes>;
     } & Struct;
-    readonly isInsertIdentities: boolean;
-    readonly asInsertIdentities: {
+    readonly isSetIdentities: boolean;
+    readonly asSetIdentities: {
       readonly identities: Vec<ITuple<[AccountId32, Option<PalletIdentityRegistration>]>>;
     } & Struct;
-    readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents' | 'InsertIdentities';
+    readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents' | 'SetIdentities';
   }
 
   /** @name PalletMaintenanceCall (418) */