git.delta.rocks / unique-network / refs/commits / 70abe578b643

difftreelog

tests(collator-selection): integration tests + types + minor refactor of thee pallet

Fahrrader2022-12-23parent: #d41364f.patch.diff
in: master

20 files changed

modifiednode/cli/src/chain_spec.rsdiffbeforeafterboth
--- a/node/cli/src/chain_spec.rs
+++ b/node/cli/src/chain_spec.rs
@@ -196,9 +196,9 @@
 					.cloned()
 					.map(|(acc, _)| acc)
 					.collect(),
+				desired_collators: 10,
 				license_bond: GENESIS_LICENSE_BOND,
 				kick_threshold: SESSION_LENGTH,
-				..Default::default()
 			},
 			session: SessionConfig {
 				keys: $initial_invulnerables
modifiedpallets/collator-selection/src/lib.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/lib.rs
+++ b/pallets/collator-selection/src/lib.rs
@@ -183,11 +183,8 @@
 	/// The (community, limited) collation candidates.
 	#[pallet::storage]
 	#[pallet::getter(fn candidates)]
-	pub type Candidates<T: Config> = StorageValue<
-		_,
-		BoundedVec<T::AccountId, T::MaxCollators>, //LicenseInfo<T::AccountId, BalanceOf<T>>, T::MaxCollators>, // license ID?
-		ValueQuery,
-	>;
+	pub type Candidates<T: Config> =
+		StorageValue<_, BoundedVec<T::AccountId, T::MaxCollators>, ValueQuery>;
 
 	/// Collator will be kicked if it does not produce a block within the threshold (does not apply to invulnerables).
 	///
@@ -348,7 +345,6 @@
 				T::ValidatorRegistration::is_registered(&validator_key),
 				Error::<T>::ValidatorNotRegistered
 			);
-			// ensure!(!Self::invulnerables().contains(&new), Error::<T>::AlreadyInvulnerable);
 			if Self::invulnerables().contains(&new) {
 				return Ok(().into());
 			}
@@ -371,7 +367,6 @@
 		) -> DispatchResultWithPostInfo {
 			T::UpdateOrigin::ensure_origin(origin)?;
 
-			// let index = Self::invulnerables().into_iter().position(|r| r == who).ok_or(Error::<T>::NotInvulnerable)?;
 			<Invulnerables<T>>::try_mutate(|invulnerables| -> DispatchResult {
 				if invulnerables.len() <= 1 {
 					return Err(Error::<T>::TooFewInvulnerables.into());
@@ -384,10 +379,6 @@
 				invulnerables.remove(index);
 				Ok(())
 			})?;
-			/*let bounded_invulnerables = BoundedVec::<_, T::MaxInvulnerables>::try_from(new)
-				.map_err(|_| Error::<T>::TooManyInvulnerables)?;
-
-			<Invulnerables<T>>::put(&bounded_invulnerables);*/
 			Self::deposit_event(Event::InvulnerableRemoved { invulnerable: who });
 			Ok(().into())
 		}
@@ -451,11 +442,6 @@
 				return Err(Error::<T>::AlreadyHoldingLicense.into());
 			}
 
-			/*ensure!(
-				!Self::invulnerables().contains(&who),
-				Error::<T>::AlreadyInvulnerable
-			);*/
-
 			let validator_key = T::ValidatorIdOf::convert(who.clone())
 				.ok_or(Error::<T>::NoAssociatedValidatorId)?;
 			ensure!(
@@ -464,34 +450,9 @@
 			);
 
 			let deposit = Self::license_bond();
-			// First authored block is current block plus kick threshold to handle session delay
-			/*let incoming = LicenseInfo {
-				who: who.clone(),
-				deposit,
-			};*/
 
 			T::Currency::reserve(&who, deposit)?;
 			Licenses::<T>::insert(who.clone(), deposit);
-
-			/*let current_count =
-			<Licenses<T>>::try_mutate(|licenses| -> Result<usize, DispatchError> {
-				if T::OriginPrivilegeCmp::cmp_privilege(&origin, &scheduled.origin) {
-					return Err(BadOrigin.into());
-				}
-				if candidates.iter().any(|candidate| *candidate == who) {
-					Err(Error::<T>::AlreadyHoldingLicense)?
-				} else {
-					T::Currency::reserve(&who, deposit)?;
-					candidates
-						.try_push(incoming)
-						.map_err(|_| Error::<T>::TooManyCandidates)?;
-					<LastAuthoredBlock<T>>::insert(
-						who.clone(),
-						frame_system::Pallet::<T>::block_number() + Self::kick_threshold(),
-					);
-					Ok(candidates.len())
-				}
-			})?;*/
 
 			Self::deposit_event(Event::LicenseObtained {
 				account_id: who,
@@ -518,17 +479,11 @@
 				(length as u32) < Self::desired_collators(),
 				Error::<T>::TooManyCandidates
 			);
-			// todo:collator really need it?
 			ensure!(
 				!Self::invulnerables().contains(&who),
 				Error::<T>::AlreadyInvulnerable
 			);
 
-			/*let incoming = LicenseInfo {
-				who: who.clone(),
-				deposit,
-			};*/
-
 			let current_count =
 				<Candidates<T>>::try_mutate(|candidates| -> Result<usize, DispatchError> {
 					if candidates.iter().any(|candidate| *candidate == who) {
@@ -552,17 +507,10 @@
 
 		/// 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.
-		///
-		/// This call will fail if the total number of candidates would drop below `MinCandidates`. todo:collator maybe not
 		#[pallet::weight(T::WeightInfo::leave_intent(T::MaxCollators::get()))] // todo:collator weight
 		pub fn offboard(origin: OriginFor<T>) -> DispatchResultWithPostInfo {
 			// leave_intent
 			let who = ensure_signed(origin)?;
-			/* todo:collator invulnerables and candidates should count against min candidates together
-			ensure!(
-				Self::candidates().len() as u32 > T::MinCandidates::get(),
-				Error::<T>::TooFewCandidates
-			);*/
 			let current_count = Self::try_remove_candidate(&who)?;
 
 			Ok(Some(T::WeightInfo::leave_intent(current_count as u32)).into()) // todo:collator weight
@@ -585,7 +533,7 @@
 		/// Note that the collator can only leave on session change.
 		/// The `LicenseBond` will be unreserved and returned immediately.
 		///
-		/// This call is not available to `Invulnerable` collators.
+		/// This call is, of course, not applicable to `Invulnerable` collators.
 		#[pallet::weight(T::WeightInfo::leave_intent(T::MaxCollators::get()))] // todo:collator weight
 		pub fn force_revoke_license(
 			origin: OriginFor<T>,
@@ -606,6 +554,8 @@
 			T::PotId::get().into_account_truncating()
 		}
 
+		/// Removes a candidate and their license, optionally slashed and optionally ignoring,
+		/// whether or not they actually are a candidate.
 		fn try_remove_candidate_and_release_license(
 			who: &T::AccountId,
 			should_slash: bool,
@@ -687,7 +637,7 @@
 		/// Kicks out candidates that did not produce a block in the kick threshold
 		/// and **confiscates** their deposits to the treasury.
 		pub fn kick_stale_candidates(
-			candidates: BoundedVec<T::AccountId, T::MaxCollators>, //LicenseInfo<T::AccountId, BalanceOf<T>>
+			candidates: BoundedVec<T::AccountId, T::MaxCollators>,
 		) -> BoundedVec<T::AccountId, T::MaxCollators> {
 			let now = frame_system::Pallet::<T>::block_number();
 			let kick_threshold = Self::kick_threshold();
modifiedpallets/collator-selection/src/mock.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/mock.rs
+++ b/pallets/collator-selection/src/mock.rs
@@ -223,13 +223,11 @@
 }
 
 impl Config for Test {
-	// todo:collator mocks and stocks
 	type RuntimeEvent = RuntimeEvent;
 	type Currency = Balances;
 	type UpdateOrigin = EnsureSignedBy<RootAccount, u64>;
 	type PotId = PotId;
 	type MaxCollators = MaxCollators;
-	// type KickThreshold = Period;
 	type SlashRatio = SlashRatio;
 	type TreasuryAccountId = ();
 	type ValidatorId = <Self as frame_system::Config>::AccountId;
modifiedpallets/collator-selection/src/tests.rsdiffbeforeafterboth
--- a/pallets/collator-selection/src/tests.rs
+++ b/pallets/collator-selection/src/tests.rs
@@ -59,9 +59,6 @@
 	});
 }
 
-// todo:collator add more tests later
-// invulnerable after onboard + invulnerables can bypass desired_candidates
-
 #[test]
 fn it_should_add_invulnerables() {
 	new_test_ext().execute_with(|| {
modifiedruntime/common/mod.rsdiffbeforeafterboth
--- a/runtime/common/mod.rs
+++ b/runtime/common/mod.rs
@@ -191,7 +191,7 @@
 				RuntimeAppPublic,
 			};
 			use pallet_session::SessionManager;
-			use up_common::constants::GENESIS_LICENSE_BOND;
+			use up_common::constants::{GENESIS_LICENSE_BOND, SESSION_LENGTH};
 			use crate::config::pallets::collator_selection::MaxCollators;
 
 			let mut weight = <Runtime as frame_system::Config>::DbWeight::get().reads(1);
@@ -241,6 +241,7 @@
 				.expect("Existing collators/invulnerables are more than MaxCollators");
 
 				<pallet_collator_selection::Invulnerables<Runtime>>::put(bounded_invulnerables);
+				<pallet_collator_selection::KickThreshold<Runtime>>::put(SESSION_LENGTH);
 				<pallet_collator_selection::DesiredCollators<Runtime>>::put(MaxCollators::get());
 				<pallet_collator_selection::LicenseBond<Runtime>>::put(GENESIS_LICENSE_BOND);
 
modifiedtests/src/collatorSelection.seqtest.tsdiffbeforeafterboth
--- a/tests/src/collatorSelection.seqtest.ts
+++ b/tests/src/collatorSelection.seqtest.ts
@@ -17,6 +17,8 @@
 import {IKeyringPair} from '@polkadot/types/types';
 import {usingPlaygrounds, expect, itSub, Pallets, requirePalletsOrSkip} from './util';
 
+const MAX_INVULNERABLES = 10;
+
 async function resetInvulnerables() {
   await usingPlaygrounds(async (helper, privateKey) => {
     const superuser = await privateKey('//Alice');
@@ -28,6 +30,15 @@
         + 'Current invulnerables\' size: ' + invulnerables.length);
       
       let nonce = await helper.chain.getNonce(alice.address);
+      // In case there are too many invulnerables already, remove some of them, leaving space for Alice and Bob.
+      if (invulnerables.length + 2 >= MAX_INVULNERABLES) {
+        await Promise.all([
+          helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.removeInvulnerable', [invulnerables.pop()], true, {nonce: nonce++}),
+          helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.removeInvulnerable', [invulnerables.pop()], true, {nonce: nonce++}),
+        ]);
+      }
+
+      nonce = await helper.chain.getNonce(alice.address);
       await Promise.all([
         helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.addInvulnerable', [alice.address], true, {nonce: nonce++}),
         helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.addInvulnerable', [bob.address], true, {nonce: nonce++}),
@@ -43,14 +54,19 @@
 }
 
 // todo:collator Most preferable to launch this test in parallel somehow -- or change the session period (1 hr).
-// + 18 tests: 5 (1+4) on session change
 describe('Integration Test: Collator Selection', () => {
   let superuser: IKeyringPair;
+  let previousLicenseBond = 0n;
+  let licenseBond = 0n;
 
   before(async function() {  
     await usingPlaygrounds(async (helper, privateKey) => {
       requirePalletsOrSkip(this, helper, [Pallets.CollatorSelection]);
       superuser = await privateKey('//Alice');
+
+      previousLicenseBond = await helper.collatorSelection.getLicenseBond();
+      licenseBond = 10n * helper.balance.getOneTokenNominal();
+      await helper.getSudo().collatorSelection.setLicenseBond(superuser, licenseBond);
     });
   });
 
@@ -73,13 +89,11 @@
         charlie = await privateKey('//Charlie');
         dave = await privateKey('//Dave');
 
-        expect((await helper.collatorSelection.setOwnKeys(charlie))
+        expect((await helper.session.setOwnKeysFromAddress(charlie))
           .status.toLowerCase()).to.be.equal('success');
-        expect((await helper.collatorSelection.setOwnKeys(dave))
+        expect((await helper.session.setOwnKeysFromAddress(dave))
           .status.toLowerCase()).to.be.equal('success');
   
-        // todo:collator check necessity + add RPC for invulnerables / just improve in general
-        // validators = await helper.callRpc('api.query.session.validators');
         const invulnerables = await helper.collatorSelection.getInvulnerables();
         if (!invulnerables.includes(alice.address) || !invulnerables.includes(bob.address) || invulnerables.length != 2) {
           console.warn('Alice and Bob are not the invulnerables! Reinstating them back. ' 
@@ -116,19 +130,7 @@
       const newInvulnerables = await helper.collatorSelection.getInvulnerables();
       expect(newInvulnerables).to.contain(charlie.address).and.contain(dave.address).and.be.length(2);
   
-      const expectedSessionIndex = (await helper.callRpc('api.query.session.currentIndex')).toNumber() + 2;
-      let currentSessionIndex = -1;
-      console.log('Waiting for the session after the next.' 
-        + ' This might take a while -- check SessionPeriod in pallet_session::Config for session time.');
-  
-      while (currentSessionIndex < expectedSessionIndex) {
-        // eslint-disable-next-line no-async-promise-executor
-        currentSessionIndex = await expect(helper.wait.withTimeout(new Promise(async (resolve) => {
-          await helper.wait.newBlocks(1);
-          const res = (await helper.callRpc('api.query.session.currentIndex')).toNumber();
-          resolve(res);
-        }), 24000, 'The chain has stopped producing blocks!')).to.be.fulfilled;
-      }
+      await helper.wait.newSessions(2);
   
       const newValidators = await helper.callRpc('api.query.session.validators');
       expect(newValidators).to.contain(charlie.address).and.contain(dave.address).and.be.length(2);
@@ -140,9 +142,6 @@
       expect(lastCharlieBlock >= lastBlockNumber || lastDaveBlock >= lastBlockNumber).to.be.true;
     });
   
-    // todo:collator keyless invulnerables? will hang, so, a breaking test, eh
-    // register candidate without sudos and the like
-  
     after(async () => {
       await usingPlaygrounds(async (helper) => {
         if (await helper.arrange.isDevNode()) return;
@@ -162,9 +161,185 @@
     });
   });
 
-  // todo:collator make sure that there is enough session time for a set of tests
-  // 28 non-functioning collators, teehee.
+  describe('Getting and releasing licenses to collate', () => {
+    let charlie: IKeyringPair;
+    let dave: IKeyringPair;
+    let crowd: IKeyringPair[];
+    
+    before(async function() {  
+      await usingPlaygrounds(async (helper, privateKey) => {
+        charlie = await privateKey('//Charlie');
+        dave = await privateKey('//Dave');
+        crowd = await helper.arrange.createCrowd(20, 100n, superuser);
+
+        // set session keys for everyone
+        expect((await helper.session.setOwnKeysFromAddress(charlie))
+          .status.toLowerCase()).to.be.equal('success');
+        expect((await helper.session.setOwnKeysFromAddress(dave))
+          .status.toLowerCase()).to.be.equal('success');
+        await Promise.all(crowd.map(acc => helper.session.setOwnKeysFromAddress(acc)));
+      });
+    });
+
+    describe('Positive', () => {
+      itSub('Can lease and release a license', async ({helper}) => {
+        const account = crowd.pop()!;
+        
+        // make sure it does not have any reserved funds
+        expect((await helper.balance.getSubstrateFull(account.address)).reserved).to.be.equal(0n);
+
+        // getting a license reserves a license bond cost
+        await helper.collatorSelection.obtainLicense(account);
+        expect(await helper.collatorSelection.hasLicense(account.address)).to.be.equal(licenseBond);
+        expect((await helper.balance.getSubstrateFull(account.address)).reserved).to.be.equal(licenseBond);
+
+        // releasing a license un-reserves the license bond cost
+        await helper.collatorSelection.releaseLicense(account);
+        expect(await helper.collatorSelection.hasLicense(account.address)).to.be.equal(0n);
+        
+        const balance = await helper.balance.getSubstrateFull(account.address);
+        expect(balance.reserved).to.be.equal(0n);
+        expect(balance.free > 100n - licenseBond);
+      });
+
+      itSub('Can force revoke a license', async ({helper}) => {
+        const account = crowd.pop()!;
+
+        // getting a license reserves a license bond cost
+        const previousBalance = await helper.balance.getSubstrateFull(account.address);
+        await helper.collatorSelection.obtainLicense(account);
+        expect(await helper.collatorSelection.hasLicense(account.address)).to.be.equal(licenseBond);
+
+        // force-releasing a license un-reserves the license bond cost as well
+        await helper.getSudo().collatorSelection.forceRevokeLicense(superuser, account.address);
+        expect(await helper.collatorSelection.hasLicense(account.address)).to.be.equal(previousBalance.reserved);
+
+        const balance = await helper.balance.getSubstrateFull(account.address);
+        expect(balance.reserved).to.be.equal(previousBalance.reserved);
+        expect(balance.free > previousBalance.free - licenseBond);
+      });
+    });
 
+    describe('Negative', () => {
+      itSub('Cannot get a license without session keys set', async ({helper}) => {
+        const [account] = await helper.arrange.createAccounts([100n], superuser);
+        await expect(helper.collatorSelection.obtainLicense(account))
+          .to.be.rejectedWith(/collatorSelection.ValidatorNotRegistered/);
+      });
+
+      itSub('Cannot register a license twice', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await expect(helper.collatorSelection.obtainLicense(account))
+          .to.be.rejectedWith(/collatorSelection.AlreadyHoldingLicense/);
+      });
+
+      itSub('Cannot release a license twice', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await helper.collatorSelection.releaseLicense(account);
+        await expect(helper.collatorSelection.releaseLicense(account))
+          .to.be.rejectedWith(/collatorSelection.NoLicense/);
+      });
+
+      itSub('Cannot force revoke a license as non-sudo', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await expect(helper.collatorSelection.forceRevokeLicense(superuser, account.address))
+          .to.be.rejectedWith(/BadOrigin/);
+      });
+    });
+  });
+
+  describe('Onboarding, collating, and offboarding as collator candidates', () => {
+    // These two are the default invulnerables, and should return to be invulnerables after this suite.
+    let charlie: IKeyringPair;
+    let dave: IKeyringPair;
+    let crowd: IKeyringPair[];
+    
+    before(async function() {  
+      await usingPlaygrounds(async (helper, privateKey) => {
+        charlie = await privateKey('//Charlie');
+        dave = await privateKey('//Dave');
+        crowd = await helper.arrange.createCrowd(20, 100n, superuser);
+
+        // set session keys for everyone
+        expect((await helper.session.setOwnKeysFromAddress(charlie))
+          .status.toLowerCase()).to.be.equal('success');
+        expect((await helper.session.setOwnKeysFromAddress(dave))
+          .status.toLowerCase()).to.be.equal('success');
+        await Promise.all(crowd.map(acc => helper.session.setOwnKeysFromAddress(acc)));
+      });
+    });
+
+    describe('Positive', () => {
+      itSub('Can onboard and offboard repeatedly', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await helper.collatorSelection.onboard(account);
+        expect(await helper.collatorSelection.getCandidates()).to.be.deep.equal([account.address]);
+
+        await helper.collatorSelection.offboard(account);
+        expect(await helper.collatorSelection.getCandidates()).to.be.deep.equal([]);
+
+        await helper.collatorSelection.onboard(account);
+        expect(await helper.collatorSelection.getCandidates()).to.be.deep.equal([account.address]);
+
+        await helper.collatorSelection.offboard(account);
+        expect(await helper.collatorSelection.getCandidates()).to.be.deep.equal([]);
+      });
+
+      itSub('Dithmarschen', async ({helper}) => {
+        // This one shouldn't even be able to produce blocks.
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await helper.collatorSelection.onboard(account);
+        expect(await helper.collatorSelection.getCandidates()).to.contain(account.address);
+
+        // Wait for 3 new sessions before checking that the collator will be kicked:
+        // one to get collator onboarded, and another two for the collator to fail
+        await helper.wait.newSessions(3);
+
+        expect(await helper.collatorSelection.getCandidates()).to.not.contain(account.address);
+        expect(await helper.collatorSelection.hasLicense(account.address)).to.be.equal(0n);
+
+        // The account's reserved funds get slashed as a penalty
+        const balance = await helper.balance.getSubstrateFull(account.address);
+        expect(balance.reserved).to.be.equal(0n);
+        expect(balance.free < 100n - licenseBond);
+      });
+    });
+
+    describe('Negative', () => {
+      itSub('Cannot onboard without a license', async ({helper}) => {
+        const account = crowd.pop()!;
+        await expect(helper.collatorSelection.onboard(account))
+          .to.be.rejectedWith(/collatorSelection.NoLicense/);
+      });
+
+      itSub('Cannot offboard without a license', async ({helper}) => {
+        const account = crowd.pop()!;
+        await expect(helper.collatorSelection.offboard(account))
+          .to.be.rejectedWith(/collatorSelection.NotCandidate/);
+      });
+
+      itSub('Cannot offboard while not onboarded', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await expect(helper.collatorSelection.offboard(account))
+          .to.be.rejectedWith(/collatorSelection.NotCandidate/);
+      });
+
+      itSub('Cannot onboard while already onboarded', async ({helper}) => {
+        const account = crowd.pop()!;
+        await helper.collatorSelection.obtainLicense(account);
+        await helper.collatorSelection.onboard(account);
+        await expect(helper.collatorSelection.onboard(account))
+          .to.be.rejectedWith(/collatorSelection.AlreadyCandidate/);
+      });
+    });
+  });
+
   describe('Addition and removal of invulnerables', () => {
     before(async function() {
       await resetInvulnerables();
@@ -175,7 +350,7 @@
         const [account] = await helper.arrange.createAccounts([10n], superuser);
         const invulnerables = await helper.collatorSelection.getInvulnerables();
 
-        await helper.collatorSelection.setOwnKeys(account);
+        await helper.session.setOwnKeysFromAddress(account);
         await helper.getSudo().collatorSelection.addInvulnerable(superuser, account.address);
         
         const newInvulnerables = await helper.collatorSelection.getInvulnerables();
@@ -184,7 +359,7 @@
 
       itSub('Removes an invulnerable', async ({helper}) => {
         const invulnerables = await helper.collatorSelection.getInvulnerables();
-        const lastInvulnerable = invulnerables.pop();
+        const lastInvulnerable = invulnerables.pop()!;
 
         await helper.getSudo().collatorSelection.removeInvulnerable(superuser, lastInvulnerable);
         const newInvulnerables = await helper.collatorSelection.getInvulnerables();
@@ -203,16 +378,22 @@
         expect(newInvulnerables).to.have.all.members(invulnerables);
       });
 
+      itSub('Cannot remove a non-existent invulnerable', async ({helper}) => {
+        const [account] = await helper.arrange.createAccounts([0n], superuser);
+        await expect(helper.getSudo().collatorSelection.removeInvulnerable(superuser, account.address))
+          .to.be.rejectedWith(/collatorSelection.NotInvulnerable/);
+      });
+
       itSub('Cannot allow invulnerables to be empty', async ({helper}) => {
         const invulnerables = await helper.collatorSelection.getInvulnerables();
-        const lastInvulnerable = invulnerables.pop();
+        const lastInvulnerable = invulnerables.pop()!;
 
         let nonce = await helper.chain.getNonce(superuser.address);
         await Promise.all(invulnerables.map((i: any) => 
           helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.removeInvulnerable', [i], true, {nonce: nonce++})));
 
         await expect(helper.getSudo().collatorSelection.removeInvulnerable(superuser, lastInvulnerable))
-          .to.be.rejected;//todo:collator With(/collatorSelection.TooFewInvulnerables/);
+          .to.be.rejectedWith(/collatorSelection.TooFewInvulnerables/);
 
         const newInvulnerables = await helper.collatorSelection.getInvulnerables();
         expect(newInvulnerables).to.be.deep.equal([lastInvulnerable]);
@@ -224,21 +405,24 @@
       });
 
       itSub('Cannot have too many invulnerables', async ({helper}) => {
+        // todo:collator make sure that there is enough session time for a set of tests
+        // 28 non-functioning collators, teehee.
+        
         const invulnerablesLength = (await helper.collatorSelection.getInvulnerables()).length;
-        const invulnerablesUntilLimit = 30 - invulnerablesLength;
+        const invulnerablesUntilLimit = MAX_INVULNERABLES - invulnerablesLength;
         const newInvulnerables = await helper.arrange.createAccounts(Array(invulnerablesUntilLimit).fill(10n), superuser);
         const [lastInvulnerable] = await helper.arrange.createAccounts([10n], superuser);
 
         await Promise.all(newInvulnerables.map((i: IKeyringPair) => 
-          helper.collatorSelection.setOwnKeys(i)));
-        await helper.collatorSelection.setOwnKeys(lastInvulnerable);
+          helper.session.setOwnKeysFromAddress(i)));
+        await helper.session.setOwnKeysFromAddress(lastInvulnerable);
 
         let nonce = await helper.chain.getNonce(superuser.address);
         await Promise.all(newInvulnerables.map((i: IKeyringPair) => 
           helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.addInvulnerable', [i.address], true, {nonce: nonce++})));
 
         await expect(helper.getSudo().collatorSelection.addInvulnerable(superuser, lastInvulnerable.address))
-          .to.be.rejected; // todo:collator With(/collatorSelection.TooManyInvulnerables/);
+          .to.be.rejectedWith(/collatorSelection.TooManyInvulnerables/);
         
         // restore the invulnerables to the previous state
         nonce = await helper.chain.getNonce(superuser.address);
@@ -250,7 +434,7 @@
         const [account] = await helper.arrange.createAccounts([10n], superuser);
         const invulnerables = await helper.collatorSelection.getInvulnerables();
 
-        await helper.collatorSelection.setOwnKeys(account);
+        await helper.session.setOwnKeysFromAddress(account);
         await expect(helper.collatorSelection.addInvulnerable(superuser, account.address))
           .to.be.rejectedWith(/BadOrigin/);
 
@@ -265,14 +449,19 @@
         expect(await helper.collatorSelection.getInvulnerables()).to.have.all.members(invulnerables);
       });
     });
+  });
   
-    after(async () => {
-      // eslint-disable-next-line require-await
-      await usingPlaygrounds(async (helper) => {
-        if (helper.fetchMissingPalletNames([Pallets.CollatorSelection]).length != 0) return;
-    
-        // todo:collator after
-      });
+  after(async () => {
+    // eslint-disable-next-line require-await
+    await usingPlaygrounds(async (helper) => {
+      if (helper.fetchMissingPalletNames([Pallets.CollatorSelection]).length != 0) return;
+  
+      await helper.getSudo().collatorSelection.setLicenseBond(superuser, previousLicenseBond);
+      
+      const candidates = await helper.collatorSelection.getCandidates();
+      let nonce = await helper.chain.getNonce(superuser.address);
+      await Promise.all(candidates.map(candidate => 
+        helper.getSudo().executeExtrinsic(superuser, 'api.tx.collatorSelection.removeInvulnerable', [candidate], true, {nonce: nonce++})));
     });
   });
 });
\ No newline at end of file
modifiedtests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -41,6 +41,18 @@
        **/
       [key: string]: Codec;
     };
+    authorship: {
+      /**
+       * The number of blocks back we should accept uncles.
+       * This means that we will deal with uncle-parents that are
+       * `UncleGenerations + 1` before `now`.
+       **/
+      uncleGenerations: u32 & AugmentedConst<ApiType>;
+      /**
+       * Generic const
+       **/
+      [key: string]: Codec;
+    };
     balances: {
       /**
        * The minimum amount required to keep an account open.
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -41,6 +41,40 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    authorship: {
+      /**
+       * The uncle is genesis.
+       **/
+      GenesisUncle: AugmentedError<ApiType>;
+      /**
+       * The uncle parent not in the chain.
+       **/
+      InvalidUncleParent: AugmentedError<ApiType>;
+      /**
+       * The uncle isn't recent enough to be included.
+       **/
+      OldUncle: AugmentedError<ApiType>;
+      /**
+       * The uncle is too high in chain.
+       **/
+      TooHighUncle: AugmentedError<ApiType>;
+      /**
+       * Too many uncles.
+       **/
+      TooManyUncles: AugmentedError<ApiType>;
+      /**
+       * The uncle is already included.
+       **/
+      UncleAlreadyIncluded: AugmentedError<ApiType>;
+      /**
+       * Uncles already set in the block.
+       **/
+      UnclesAlreadySet: AugmentedError<ApiType>;
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     balances: {
       /**
        * Beneficiary account must pre-exist
@@ -79,6 +113,64 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    collatorSelection: {
+      /**
+       * User is already a candidate
+       **/
+      AlreadyCandidate: AugmentedError<ApiType>;
+      /**
+       * User already holds license to collate
+       **/
+      AlreadyHoldingLicense: AugmentedError<ApiType>;
+      /**
+       * User is already an Invulnerable
+       **/
+      AlreadyInvulnerable: AugmentedError<ApiType>;
+      /**
+       * Account has no associated validator ID
+       **/
+      NoAssociatedValidatorId: AugmentedError<ApiType>;
+      /**
+       * User does not hold a license to collate
+       **/
+      NoLicense: AugmentedError<ApiType>;
+      /**
+       * User is not a candidate
+       **/
+      NotCandidate: AugmentedError<ApiType>;
+      /**
+       * User is not an Invulnerable
+       **/
+      NotInvulnerable: AugmentedError<ApiType>;
+      /**
+       * Permission issue
+       **/
+      Permission: AugmentedError<ApiType>;
+      /**
+       * Too few invulnerables
+       **/
+      TooFewInvulnerables: AugmentedError<ApiType>;
+      /**
+       * Too many candidates
+       **/
+      TooManyCandidates: AugmentedError<ApiType>;
+      /**
+       * Too many invulnerables
+       **/
+      TooManyInvulnerables: AugmentedError<ApiType>;
+      /**
+       * Unknown error
+       **/
+      Unknown: AugmentedError<ApiType>;
+      /**
+       * Validator ID is not yet registered
+       **/
+      ValidatorNotRegistered: AugmentedError<ApiType>;
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     common: {
       /**
        * Account token limit exceeded per collection
@@ -685,6 +777,32 @@
        **/
       [key: string]: AugmentedError<ApiType>;
     };
+    session: {
+      /**
+       * Registered duplicate key.
+       **/
+      DuplicatedKey: AugmentedError<ApiType>;
+      /**
+       * Invalid ownership proof.
+       **/
+      InvalidProof: AugmentedError<ApiType>;
+      /**
+       * Key setting account is not live, so it's impossible to associate keys.
+       **/
+      NoAccount: AugmentedError<ApiType>;
+      /**
+       * No associated validator ID for account.
+       **/
+      NoAssociatedValidatorId: AugmentedError<ApiType>;
+      /**
+       * No keys are associated with this account.
+       **/
+      NoKeys: AugmentedError<ApiType>;
+      /**
+       * Generic error
+       **/
+      [key: string]: AugmentedError<ApiType>;
+    };
     structure: {
       /**
        * While nesting, reached the breadth limit of nesting, exceeding the provided budget.
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -100,6 +100,21 @@
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
+    collatorSelection: {
+      CandidateAdded: AugmentedEvent<ApiType, [accountId: AccountId32], { accountId: AccountId32 }>;
+      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 }>;
+      NewDesiredCollators: AugmentedEvent<ApiType, [desiredCollators: u32], { desiredCollators: u32 }>;
+      NewKickThreshold: AugmentedEvent<ApiType, [lengthInBlocks: u32], { lengthInBlocks: u32 }>;
+      NewLicenseBond: AugmentedEvent<ApiType, [bondAmount: u128], { bondAmount: u128 }>;
+      /**
+       * Generic event
+       **/
+      [key: string]: AugmentedEvent<ApiType>;
+    };
     common: {
       /**
        * Address was added to the allow list.
@@ -526,6 +541,17 @@
        **/
       [key: string]: AugmentedEvent<ApiType>;
     };
+    session: {
+      /**
+       * New session has happened. Note that the argument is the session index, not the
+       * block number as the type might suggest.
+       **/
+      NewSession: AugmentedEvent<ApiType, [sessionIndex: u32], { sessionIndex: u32 }>;
+      /**
+       * Generic event
+       **/
+      [key: string]: AugmentedEvent<ApiType>;
+    };
     structure: {
       /**
        * Executed call on behalf of the token.
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -9,7 +9,7 @@
 import type { BTreeMap, Bytes, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, H160, H256 } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueQueueConfigData, EthereumBlock, EthereumLog, EthereumReceiptReceiptV3, EthereumTransactionTransactionV2, FpRpcTransactionStatus, FrameSupportDispatchPerDispatchClassWeight, FrameSystemAccountInfo, FrameSystemEventRecord, FrameSystemLastRuntimeUpgradeInfo, FrameSystemPhase, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensReserveData, OrmlVestingVestingSchedule, PalletAuthorshipUncleEntryItem, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesReleases, PalletBalancesReserveData, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmContractHelpersSponsoringModeT, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletNonfungibleItemData, PalletRefungibleItemData, PalletTransactionPaymentReleases, PalletTreasuryProposal, PhantomTypeUpDataStructs, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, SpCoreCryptoKeyTypeId, SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, UpDataStructsCollection, UpDataStructsCollectionStats, UpDataStructsProperties, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, XcmV1MultiLocation } from '@polkadot/types/lookup';
 import type { Observable } from '@polkadot/types/types';
 
 export type __AugmentedQuery<ApiType extends ApiTypes> = AugmentedQuery<ApiType, () => unknown>;
@@ -59,6 +59,24 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    authorship: {
+      /**
+       * Author of current block.
+       **/
+      author: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Whether uncles were already set in this block.
+       **/
+      didSetUncles: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Uncles
+       **/
+      uncles: AugmentedQuery<ApiType, () => Observable<Vec<PalletAuthorshipUncleEntryItem>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     balances: {
       /**
        * The Balances pallet example of storing the balance of an account.
@@ -117,6 +135,46 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    collatorSelection: {
+      /**
+       * The (community, limited) collation candidates.
+       **/
+      candidates: AugmentedQuery<ApiType, () => Observable<Vec<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Desired number of candidates.
+       * 
+       * This should ideally always be less than [`Config::MaxCollators`] for weights to be correct.
+       **/
+      desiredCollators: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * The invulnerable, fixed collators.
+       **/
+      invulnerables: AugmentedQuery<ApiType, () => Observable<Vec<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Collator will be kicked if it does not produce a block within the threshold (does not apply to invulnerables).
+       * 
+       * Should be a multiple of session or things will get inconsistent. todo:collator reword?
+       **/
+      kickThreshold: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Last block authored by collator.
+       **/
+      lastAuthoredBlock: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u32>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+      /**
+       * Fixed amount to deposit to become a collator.
+       * 
+       * When a collator calls `leave_intent` they immediately receive the deposit back.
+       **/
+      licenseBond: AugmentedQuery<ApiType, () => Observable<u128>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * The (community) collation license holders.
+       **/
+      licenses: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<u128>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     common: {
       /**
        * Storage of the amount of collection admins.
@@ -687,6 +745,46 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    session: {
+      /**
+       * Current index of the session.
+       **/
+      currentIndex: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Indices of disabled validators.
+       * 
+       * The vec is always kept sorted so that we can find whether a given validator is
+       * disabled using binary search. It gets cleared when `on_session_ending` returns
+       * a new set of identities.
+       **/
+      disabledValidators: AugmentedQuery<ApiType, () => Observable<Vec<u32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * The owner of a key. The key is the `KeyTypeId` + the encoded key.
+       **/
+      keyOwner: AugmentedQuery<ApiType, (arg: ITuple<[SpCoreCryptoKeyTypeId, Bytes]> | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable<Option<AccountId32>>, [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry<ApiType, [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>]>;
+      /**
+       * The next session keys for a validator.
+       **/
+      nextKeys: AugmentedQuery<ApiType, (arg: AccountId32 | string | Uint8Array) => Observable<Option<OpalRuntimeRuntimeCommonSessionKeys>>, [AccountId32]> & QueryableStorageEntry<ApiType, [AccountId32]>;
+      /**
+       * True if the underlying economic identities or weighting behind the validators
+       * has changed in the queued validator set.
+       **/
+      queuedChanged: AugmentedQuery<ApiType, () => Observable<bool>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * The queued keys for the next session. When the next session begins, these keys
+       * will be used to determine the validator's session keys.
+       **/
+      queuedKeys: AugmentedQuery<ApiType, () => Observable<Vec<ITuple<[AccountId32, OpalRuntimeRuntimeCommonSessionKeys]>>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * The current set of validators.
+       **/
+      validators: AugmentedQuery<ApiType, () => Observable<Vec<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     structure: {
       /**
        * Generic query
modifiedtests/src/interfaces/augment-api-rpc.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-rpc.ts
+++ b/tests/src/interfaces/augment-api-rpc.ts
@@ -16,7 +16,7 @@
 import type { BlockHash } from '@polkadot/types/interfaces/chain';
 import type { PrefixedStorageKey } from '@polkadot/types/interfaces/childstate';
 import type { AuthorityId } from '@polkadot/types/interfaces/consensus';
-import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequest } from '@polkadot/types/interfaces/contracts';
+import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequestV1 } from '@polkadot/types/interfaces/contracts';
 import type { BlockStats } from '@polkadot/types/interfaces/dev';
 import type { CreatedBlock } from '@polkadot/types/interfaces/engine';
 import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@polkadot/types/interfaces/eth';
@@ -24,7 +24,7 @@
 import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@polkadot/types/interfaces/grandpa';
 import type { MmrLeafBatchProof, MmrLeafProof } from '@polkadot/types/interfaces/mmr';
 import type { StorageKind } from '@polkadot/types/interfaces/offchain';
-import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
+import type { FeeDetails, RuntimeDispatchInfoV1 } from '@polkadot/types/interfaces/payment';
 import type { RpcMethods } from '@polkadot/types/interfaces/rpc';
 import type { AccountId, AccountId32, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@polkadot/types/interfaces/runtime';
 import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@polkadot/types/interfaces/state';
@@ -174,7 +174,7 @@
        * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead
        * Instantiate a new contract
        **/
-      instantiate: AugmentedRpc<(request: InstantiateRequest | { origin?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>;
+      instantiate: AugmentedRpc<(request: InstantiateRequestV1 | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<ContractInstantiateResult>>;
       /**
        * @deprecated Not available in newer versions of the contracts interfaces
        * Returns the projected time a given contract will be able to sustain paying its rent
@@ -426,13 +426,15 @@
     };
     payment: {
       /**
+       * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead
        * Query the detailed fee of a given encoded extrinsic
        **/
       queryFeeDetails: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<FeeDetails>>;
       /**
+       * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead
        * Retrieves the fee information for an encoded extrinsic
        **/
-      queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfo>>;
+      queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable<RuntimeDispatchInfoV1>>;
     };
     rmrk: {
       /**
modifiedtests/src/interfaces/augment-api-runtime.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-runtime.ts
+++ b/tests/src/interfaces/augment-api-runtime.ts
@@ -6,7 +6,7 @@
 import '@polkadot/api-base/types/calls';
 
 import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@polkadot/api-base/types';
-import type { Bytes, Null, Option, Result, U256, Vec, bool, u256, u64 } from '@polkadot/types-codec';
+import type { Bytes, Null, Option, Result, U256, Vec, bool, u256, u32, u64 } from '@polkadot/types-codec';
 import type { AnyNumber, ITuple } from '@polkadot/types-codec/types';
 import type { CheckInherentsResult, InherentData } from '@polkadot/types/interfaces/blockbuilder';
 import type { BlockHash } from '@polkadot/types/interfaces/chain';
@@ -16,6 +16,7 @@
 import type { EvmAccount, EvmCallInfo, EvmCreateInfo } from '@polkadot/types/interfaces/evm';
 import type { Extrinsic } from '@polkadot/types/interfaces/extrinsics';
 import type { OpaqueMetadata } from '@polkadot/types/interfaces/metadata';
+import type { FeeDetails, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
 import type { AccountId, Block, H160, H256, Header, Index, KeyTypeId, Permill, SlotDuration } from '@polkadot/types/interfaces/runtime';
 import type { RuntimeVersion } from '@polkadot/types/interfaces/state';
 import type { ApplyExtrinsicResult, DispatchError } from '@polkadot/types/interfaces/system';
@@ -228,5 +229,20 @@
        **/
       [key: string]: DecoratedCallBase<ApiType>;
     };
+    /** 0x37c8bb1350a9a2a8/2 */
+    transactionPaymentApi: {
+      /**
+       * The transaction fee details
+       **/
+      queryFeeDetails: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<FeeDetails>>;
+      /**
+       * The transaction info
+       **/
+      queryInfo: AugmentedCall<ApiType, (uxt: Extrinsic | IExtrinsic | string | Uint8Array, len: u32 | AnyNumber | Uint8Array) => Observable<RuntimeDispatchInfo>>;
+      /**
+       * Generic call
+       **/
+      [key: string]: DecoratedCallBase<ApiType>;
+    };
   } // AugmentedCalls
 } // declare module
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-tx.ts
+++ b/tests/src/interfaces/augment-api-tx.ts
@@ -9,7 +9,7 @@
 import type { Bytes, Compact, Option, U256, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';
 import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';
 import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';
-import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, OrmlVestingVestingSchedule, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumLog, EthereumTransactionTransactionV2, OpalRuntimeRuntimeCommonSessionKeys, OrmlVestingVestingSchedule, PalletConfigurationAppPromotionConfiguration, PalletEvmAccountBasicCrossAccountIdRepr, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, SpRuntimeHeader, SpWeightsWeightV2Weight, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;
 export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;
@@ -119,6 +119,16 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    authorship: {
+      /**
+       * Provide a set of uncles.
+       **/
+      setUncles: AugmentedSubmittable<(newUncles: Vec<SpRuntimeHeader> | (SpRuntimeHeader | { parentHash?: any; number?: any; stateRoot?: any; extrinsicsRoot?: any; digest?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<SpRuntimeHeader>]>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     balances: {
       /**
        * Exactly as `transfer`, except the origin must be root and the source account may be
@@ -214,6 +224,71 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    collatorSelection: {
+      /**
+       * Add a collator to the list of invulnerable (fixed) collators.
+       **/
+      addInvulnerable: AugmentedSubmittable<(updated: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
+      /**
+       * Force deregister `origin` as a collator candidate as a governing authority, and revoke its license.
+       * Note that the collator can only leave on session change.
+       * The `LicenseBond` will be unreserved and returned immediately.
+       * 
+       * This call is not available to `Invulnerable` collators.
+       **/
+      forceRevokeLicense: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
+      /**
+       * Purchase a license on block collation for this account.
+       * It does not make it a collator candidate, use `onboard` afterward. The account must
+       * (a) already have registered session keys and (b) be able to reserve the `LicenseBond`.
+       * 
+       * This call is not available to `Invulnerable` collators.
+       **/
+      getLicense: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * 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.
+       * 
+       * This call will fail if the total number of candidates would drop below `MinCandidates`. todo:collator maybe not
+       **/
+      offboard: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * Register this account as a candidate for collators for next sessions.
+       * The account must already hold a license, and cannot offboard immediately during a session.
+       * 
+       * This call is not available to `Invulnerable` collators.
+       **/
+      onboard: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * Forfeit `origin`'s own license. The `LicenseBond` will be unreserved immediately.
+       * 
+       * This call is not available to `Invulnerable` collators.
+       **/
+      releaseLicense: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * Remove a collator from the list of invulnerable (fixed) collators.
+       **/
+      removeInvulnerable: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [AccountId32]>;
+      /**
+       * Set the ideal number of collators. If lowering this number,
+       * then the number of running collators could be higher than this figure.
+       * Aside from that edge case, there should be no other way to have more collators than the desired number.
+       **/
+      setDesiredCollators: AugmentedSubmittable<(max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * Set the length of the kick threshold.
+       * Note that if the length is not a multiple of the session period, it might get inconsistent.
+       **/
+      setKickThreshold: AugmentedSubmittable<(kickThreshold: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * Set the candidacy bond amount.
+       **/
+      setLicenseBond: AugmentedSubmittable<(bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     configuration: {
       setAppPromotionConfigurationOverride: AugmentedSubmittable<(configuration: PalletConfigurationAppPromotionConfiguration | { recalculationInterval?: any; pendingInterval?: any; intervalIncome?: any; maxStakersPerCalculation?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletConfigurationAppPromotionConfiguration]>;
       setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;
@@ -839,6 +914,48 @@
        **/
       [key: string]: SubmittableExtrinsicFunction<ApiType>;
     };
+    session: {
+      /**
+       * Removes any session key(s) of the function caller.
+       * 
+       * This doesn't take effect until the next session.
+       * 
+       * The dispatch origin of this function must be Signed and the account must be either be
+       * convertible to a validator ID using the chain's typical addressing system (this usually
+       * means being a controller account) or directly convertible into a validator ID (which
+       * usually means being a stash account).
+       * 
+       * # <weight>
+       * - Complexity: `O(1)` in number of key types. Actual cost depends on the number of length
+       * of `T::Keys::key_ids()` which is fixed.
+       * - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`
+       * - DbWrites: `NextKeys`, `origin account`
+       * - DbWrites per key id: `KeyOwner`
+       * # </weight>
+       **/
+      purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;
+      /**
+       * Sets the session key(s) of the function caller to `keys`.
+       * Allows an account to set its session key prior to becoming a validator.
+       * This doesn't take effect until the next session.
+       * 
+       * The dispatch origin of this function must be signed.
+       * 
+       * # <weight>
+       * - Complexity: `O(1)`. Actual cost depends on the number of length of
+       * `T::Keys::key_ids()` which is fixed.
+       * - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`
+       * - DbWrites: `origin account`, `NextKeys`
+       * - DbReads per key id: `KeyOwner`
+       * - DbWrites per key id: `KeyOwner`
+       * # </weight>
+       **/
+      setKeys: AugmentedSubmittable<(keys: OpalRuntimeRuntimeCommonSessionKeys | { aura?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [OpalRuntimeRuntimeCommonSessionKeys, Bytes]>;
+      /**
+       * Generic tx
+       **/
+      [key: string]: SubmittableExtrinsicFunction<ApiType>;
+    };
     structure: {
       /**
        * Generic tx
@@ -1432,6 +1549,23 @@
        **/
       destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
       /**
+       * Repairs a collection if the data was somehow corrupted.
+       * 
+       * # Arguments
+       * 
+       * * `collection_id`: ID of the collection to repair.
+       **/
+      forceRepairCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;
+      /**
+       * Repairs a token if the data was somehow corrupted.
+       * 
+       * # Arguments
+       * 
+       * * `collection_id`: ID of the collection the item belongs to.
+       * * `item_id`: ID of the item.
+       **/
+      forceRepairItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
+      /**
        * Remove admin of a collection.
        * 
        * An admin address can remove itself. List of admins may become empty,
@@ -1474,15 +1608,6 @@
        * * `address`: ID of the address to be removed from the allowlist.
        **/
       removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;
-      /**
-       * Repairs a broken item
-       * 
-       * # Arguments
-       * 
-       * * `collection_id`: ID of the collection the item belongs to.
-       * * `item_id`: ID of the item.
-       **/
-      repairItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;
       /**
        * Re-partition a refungible token, while owning all of its parts/pieces.
        * 
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -5,7 +5,7 @@
 // this is required to allow for ambient/previous definitions
 import '@polkadot/types/types/registry';
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletAuthorshipCall, PalletAuthorshipError, PalletAuthorshipUncleEntryItem, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -24,7 +24,7 @@
 import type { StatementKind } from '@polkadot/types/interfaces/claims';
 import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@polkadot/types/interfaces/collective';
 import type { AuthorityId, RawVRFOutput } from '@polkadot/types/interfaces/consensus';
-import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
+import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@polkadot/types/interfaces/contracts';
 import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@polkadot/types/interfaces/contractsAbi';
 import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot/types/interfaces/crowdloan';
 import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus';
@@ -47,7 +47,7 @@
 import type { StorageKind } from '@polkadot/types/interfaces/offchain';
 import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
 import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, AssignmentId, AssignmentKind, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, CoreAssignment, CoreIndex, CoreOccupied, CoreState, DisputeLocation, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DoubleVoteReport, DownwardMessage, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, GroupRotationInfo, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpMessage, InboundHrmpMessages, IncomingParachain, IncomingParachainDeploy, IncomingParachainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, OccupiedCore, OccupiedCoreAssumption, OldV1SessionInfo, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParachainDispatchOrigin, ParachainInherentData, ParachainProposal, ParachainsInherentData, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PersistedValidationData, PvfCheckStatement, QueuedParathread, RegisteredParachainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, ScheduledCore, Scheduling, ScrapedOnChainVotes, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@polkadot/types/interfaces/parachains';
-import type { FeeDetails, InclusionFee, RuntimeDispatchInfo } from '@polkadot/types/interfaces/payment';
+import type { FeeDetails, InclusionFee, RuntimeDispatchInfo, RuntimeDispatchInfoV1, RuntimeDispatchInfoV2 } from '@polkadot/types/interfaces/payment';
 import type { Approvals } from '@polkadot/types/interfaces/poll';
 import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@polkadot/types/interfaces/proxy';
 import type { AccountStatus, AccountValidity } from '@polkadot/types/interfaces/purchase';
@@ -273,10 +273,12 @@
     ContractExecResultTo255: ContractExecResultTo255;
     ContractExecResultTo260: ContractExecResultTo260;
     ContractExecResultTo267: ContractExecResultTo267;
+    ContractExecResultU64: ContractExecResultU64;
     ContractInfo: ContractInfo;
     ContractInstantiateResult: ContractInstantiateResult;
     ContractInstantiateResultTo267: ContractInstantiateResultTo267;
     ContractInstantiateResultTo299: ContractInstantiateResultTo299;
+    ContractInstantiateResultU64: ContractInstantiateResultU64;
     ContractLayoutArray: ContractLayoutArray;
     ContractLayoutCell: ContractLayoutCell;
     ContractLayoutEnum: ContractLayoutEnum;
@@ -771,6 +773,7 @@
     OldV1SessionInfo: OldV1SessionInfo;
     OpalRuntimeRuntime: OpalRuntimeRuntime;
     OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance;
+    OpalRuntimeRuntimeCommonSessionKeys: OpalRuntimeRuntimeCommonSessionKeys;
     OpaqueCall: OpaqueCall;
     OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof;
     OpaqueMetadata: OpaqueMetadata;
@@ -815,6 +818,9 @@
     PalletAppPromotionCall: PalletAppPromotionCall;
     PalletAppPromotionError: PalletAppPromotionError;
     PalletAppPromotionEvent: PalletAppPromotionEvent;
+    PalletAuthorshipCall: PalletAuthorshipCall;
+    PalletAuthorshipError: PalletAuthorshipError;
+    PalletAuthorshipUncleEntryItem: PalletAuthorshipUncleEntryItem;
     PalletBalancesAccountData: PalletBalancesAccountData;
     PalletBalancesBalanceLock: PalletBalancesBalanceLock;
     PalletBalancesCall: PalletBalancesCall;
@@ -825,6 +831,9 @@
     PalletBalancesReserveData: PalletBalancesReserveData;
     PalletCallMetadataLatest: PalletCallMetadataLatest;
     PalletCallMetadataV14: PalletCallMetadataV14;
+    PalletCollatorSelectionCall: PalletCollatorSelectionCall;
+    PalletCollatorSelectionError: PalletCollatorSelectionError;
+    PalletCollatorSelectionEvent: PalletCollatorSelectionEvent;
     PalletCommonError: PalletCommonError;
     PalletCommonEvent: PalletCommonEvent;
     PalletConfigurationAppPromotionConfiguration: PalletConfigurationAppPromotionConfiguration;
@@ -875,6 +884,9 @@
     PalletRmrkEquipCall: PalletRmrkEquipCall;
     PalletRmrkEquipError: PalletRmrkEquipError;
     PalletRmrkEquipEvent: PalletRmrkEquipEvent;
+    PalletSessionCall: PalletSessionCall;
+    PalletSessionError: PalletSessionError;
+    PalletSessionEvent: PalletSessionEvent;
     PalletsOrigin: PalletsOrigin;
     PalletStorageMetadataLatest: PalletStorageMetadataLatest;
     PalletStorageMetadataV14: PalletStorageMetadataV14;
@@ -1057,6 +1069,8 @@
     RpcMethods: RpcMethods;
     RuntimeDbWeight: RuntimeDbWeight;
     RuntimeDispatchInfo: RuntimeDispatchInfo;
+    RuntimeDispatchInfoV1: RuntimeDispatchInfoV1;
+    RuntimeDispatchInfoV2: RuntimeDispatchInfoV2;
     RuntimeVersion: RuntimeVersion;
     RuntimeVersionApi: RuntimeVersionApi;
     RuntimeVersionPartial: RuntimeVersionPartial;
@@ -1172,14 +1186,19 @@
     SolutionSupports: SolutionSupports;
     SpanIndex: SpanIndex;
     SpanRecord: SpanRecord;
+    SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public;
+    SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId;
     SpCoreEcdsaSignature: SpCoreEcdsaSignature;
     SpCoreEd25519Signature: SpCoreEd25519Signature;
+    SpCoreSr25519Public: SpCoreSr25519Public;
     SpCoreSr25519Signature: SpCoreSr25519Signature;
     SpecVersion: SpecVersion;
     SpRuntimeArithmeticError: SpRuntimeArithmeticError;
+    SpRuntimeBlakeTwo256: SpRuntimeBlakeTwo256;
     SpRuntimeDigest: SpRuntimeDigest;
     SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem;
     SpRuntimeDispatchError: SpRuntimeDispatchError;
+    SpRuntimeHeader: SpRuntimeHeader;
     SpRuntimeModuleError: SpRuntimeModuleError;
     SpRuntimeMultiSignature: SpRuntimeMultiSignature;
     SpRuntimeTokenError: SpRuntimeTokenError;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -699,6 +699,11 @@
 /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance */
 export interface OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance extends Null {}
 
+/** @name OpalRuntimeRuntimeCommonSessionKeys */
+export interface OpalRuntimeRuntimeCommonSessionKeys extends Struct {
+  readonly aura: SpConsensusAuraSr25519AppSr25519Public;
+}
+
 /** @name OrmlTokensAccountData */
 export interface OrmlTokensAccountData extends Struct {
   readonly free: u128;
@@ -1056,6 +1061,36 @@
   readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';
 }
 
+/** @name PalletAuthorshipCall */
+export interface PalletAuthorshipCall extends Enum {
+  readonly isSetUncles: boolean;
+  readonly asSetUncles: {
+    readonly newUncles: Vec<SpRuntimeHeader>;
+  } & Struct;
+  readonly type: 'SetUncles';
+}
+
+/** @name PalletAuthorshipError */
+export interface PalletAuthorshipError extends Enum {
+  readonly isInvalidUncleParent: boolean;
+  readonly isUnclesAlreadySet: boolean;
+  readonly isTooManyUncles: boolean;
+  readonly isGenesisUncle: boolean;
+  readonly isTooHighUncle: boolean;
+  readonly isUncleAlreadyIncluded: boolean;
+  readonly isOldUncle: boolean;
+  readonly type: 'InvalidUncleParent' | 'UnclesAlreadySet' | 'TooManyUncles' | 'GenesisUncle' | 'TooHighUncle' | 'UncleAlreadyIncluded' | 'OldUncle';
+}
+
+/** @name PalletAuthorshipUncleEntryItem */
+export interface PalletAuthorshipUncleEntryItem extends Enum {
+  readonly isInclusionHeight: boolean;
+  readonly asInclusionHeight: u32;
+  readonly isUncle: boolean;
+  readonly asUncle: ITuple<[H256, Option<AccountId32>]>;
+  readonly type: 'InclusionHeight' | 'Uncle';
+}
+
 /** @name PalletBalancesAccountData */
 export interface PalletBalancesAccountData extends Struct {
   readonly free: u128;
@@ -1201,6 +1236,100 @@
   readonly amount: u128;
 }
 
+/** @name PalletCollatorSelectionCall */
+export interface PalletCollatorSelectionCall extends Enum {
+  readonly isAddInvulnerable: boolean;
+  readonly asAddInvulnerable: {
+    readonly new_: AccountId32;
+  } & Struct;
+  readonly isRemoveInvulnerable: boolean;
+  readonly asRemoveInvulnerable: {
+    readonly who: AccountId32;
+  } & Struct;
+  readonly isSetDesiredCollators: boolean;
+  readonly asSetDesiredCollators: {
+    readonly max: u32;
+  } & Struct;
+  readonly isSetLicenseBond: boolean;
+  readonly asSetLicenseBond: {
+    readonly bond: u128;
+  } & Struct;
+  readonly isSetKickThreshold: boolean;
+  readonly asSetKickThreshold: {
+    readonly kickThreshold: u32;
+  } & Struct;
+  readonly isGetLicense: boolean;
+  readonly isOnboard: boolean;
+  readonly isOffboard: boolean;
+  readonly isReleaseLicense: boolean;
+  readonly isForceRevokeLicense: boolean;
+  readonly asForceRevokeLicense: {
+    readonly who: AccountId32;
+  } & Struct;
+  readonly type: 'AddInvulnerable' | 'RemoveInvulnerable' | 'SetDesiredCollators' | 'SetLicenseBond' | 'SetKickThreshold' | 'GetLicense' | 'Onboard' | 'Offboard' | 'ReleaseLicense' | 'ForceRevokeLicense';
+}
+
+/** @name PalletCollatorSelectionError */
+export interface PalletCollatorSelectionError extends Enum {
+  readonly isTooManyCandidates: boolean;
+  readonly isUnknown: boolean;
+  readonly isPermission: boolean;
+  readonly isAlreadyHoldingLicense: boolean;
+  readonly isNoLicense: boolean;
+  readonly isAlreadyCandidate: boolean;
+  readonly isNotCandidate: boolean;
+  readonly isTooManyInvulnerables: boolean;
+  readonly isTooFewInvulnerables: boolean;
+  readonly isAlreadyInvulnerable: boolean;
+  readonly isNotInvulnerable: boolean;
+  readonly isNoAssociatedValidatorId: boolean;
+  readonly isValidatorNotRegistered: boolean;
+  readonly type: 'TooManyCandidates' | 'Unknown' | 'Permission' | 'AlreadyHoldingLicense' | 'NoLicense' | 'AlreadyCandidate' | 'NotCandidate' | 'TooManyInvulnerables' | 'TooFewInvulnerables' | 'AlreadyInvulnerable' | 'NotInvulnerable' | 'NoAssociatedValidatorId' | 'ValidatorNotRegistered';
+}
+
+/** @name PalletCollatorSelectionEvent */
+export interface PalletCollatorSelectionEvent extends Enum {
+  readonly isNewDesiredCollators: boolean;
+  readonly asNewDesiredCollators: {
+    readonly desiredCollators: u32;
+  } & Struct;
+  readonly isNewLicenseBond: boolean;
+  readonly asNewLicenseBond: {
+    readonly bondAmount: u128;
+  } & Struct;
+  readonly isNewKickThreshold: boolean;
+  readonly asNewKickThreshold: {
+    readonly lengthInBlocks: u32;
+  } & Struct;
+  readonly isInvulnerableAdded: boolean;
+  readonly asInvulnerableAdded: {
+    readonly invulnerable: AccountId32;
+  } & Struct;
+  readonly isInvulnerableRemoved: boolean;
+  readonly asInvulnerableRemoved: {
+    readonly invulnerable: AccountId32;
+  } & Struct;
+  readonly isLicenseObtained: boolean;
+  readonly asLicenseObtained: {
+    readonly accountId: AccountId32;
+    readonly deposit: u128;
+  } & Struct;
+  readonly isLicenseForfeited: boolean;
+  readonly asLicenseForfeited: {
+    readonly accountId: AccountId32;
+    readonly depositReturned: u128;
+  } & Struct;
+  readonly isCandidateAdded: boolean;
+  readonly asCandidateAdded: {
+    readonly accountId: AccountId32;
+  } & Struct;
+  readonly isCandidateRemoved: boolean;
+  readonly asCandidateRemoved: {
+    readonly accountId: AccountId32;
+  } & Struct;
+  readonly type: 'NewDesiredCollators' | 'NewLicenseBond' | 'NewKickThreshold' | 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseForfeited' | 'CandidateAdded' | 'CandidateRemoved';
+}
+
 /** @name PalletCommonError */
 export interface PalletCommonError extends Enum {
   readonly isCollectionNotFound: boolean;
@@ -1938,6 +2067,36 @@
   readonly type: 'BaseCreated' | 'EquippablesUpdated';
 }
 
+/** @name PalletSessionCall */
+export interface PalletSessionCall extends Enum {
+  readonly isSetKeys: boolean;
+  readonly asSetKeys: {
+    readonly keys_: OpalRuntimeRuntimeCommonSessionKeys;
+    readonly proof: Bytes;
+  } & Struct;
+  readonly isPurgeKeys: boolean;
+  readonly type: 'SetKeys' | 'PurgeKeys';
+}
+
+/** @name PalletSessionError */
+export interface PalletSessionError extends Enum {
+  readonly isInvalidProof: boolean;
+  readonly isNoAssociatedValidatorId: boolean;
+  readonly isDuplicatedKey: boolean;
+  readonly isNoKeys: boolean;
+  readonly isNoAccount: boolean;
+  readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount';
+}
+
+/** @name PalletSessionEvent */
+export interface PalletSessionEvent extends Enum {
+  readonly isNewSession: boolean;
+  readonly asNewSession: {
+    readonly sessionIndex: u32;
+  } & Struct;
+  readonly type: 'NewSession';
+}
+
 /** @name PalletStructureCall */
 export interface PalletStructureCall extends Null {}
 
@@ -2319,12 +2478,16 @@
     readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
     readonly approve: bool;
   } & Struct;
-  readonly isRepairItem: boolean;
-  readonly asRepairItem: {
+  readonly isForceRepairCollection: boolean;
+  readonly asForceRepairCollection: {
+    readonly collectionId: u32;
+  } & Struct;
+  readonly isForceRepairItem: boolean;
+  readonly asForceRepairItem: {
     readonly collectionId: u32;
     readonly itemId: u32;
   } & Struct;
-  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'RepairItem';
+  readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'ForceRepairCollection' | 'ForceRepairItem';
 }
 
 /** @name PalletUniqueError */
@@ -2665,12 +2828,21 @@
   readonly value: Bytes;
 }
 
+/** @name SpConsensusAuraSr25519AppSr25519Public */
+export interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {}
+
+/** @name SpCoreCryptoKeyTypeId */
+export interface SpCoreCryptoKeyTypeId extends U8aFixed {}
+
 /** @name SpCoreEcdsaSignature */
 export interface SpCoreEcdsaSignature extends U8aFixed {}
 
 /** @name SpCoreEd25519Signature */
 export interface SpCoreEd25519Signature extends U8aFixed {}
 
+/** @name SpCoreSr25519Public */
+export interface SpCoreSr25519Public extends U8aFixed {}
+
 /** @name SpCoreSr25519Signature */
 export interface SpCoreSr25519Signature extends U8aFixed {}
 
@@ -2682,6 +2854,9 @@
   readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
 }
 
+/** @name SpRuntimeBlakeTwo256 */
+export interface SpRuntimeBlakeTwo256 extends Null {}
+
 /** @name SpRuntimeDigest */
 export interface SpRuntimeDigest extends Struct {
   readonly logs: Vec<SpRuntimeDigestDigestItem>;
@@ -2723,6 +2898,15 @@
   readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional' | 'Exhausted' | 'Corruption' | 'Unavailable';
 }
 
+/** @name SpRuntimeHeader */
+export interface SpRuntimeHeader extends Struct {
+  readonly parentHash: H256;
+  readonly number: Compact<u32>;
+  readonly stateRoot: H256;
+  readonly extrinsicsRoot: H256;
+  readonly digest: SpRuntimeDigest;
+}
+
 /** @name SpRuntimeModuleError */
 export interface SpRuntimeModuleError extends Struct {
   readonly index: u8;
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_balances::pallet::Event<T, I>188   **/189  PalletBalancesEvent: {190    _enum: {191      Endowed: {192        account: 'AccountId32',193        freeBalance: 'u128',194      },195      DustLost: {196        account: 'AccountId32',197        amount: 'u128',198      },199      Transfer: {200        from: 'AccountId32',201        to: 'AccountId32',202        amount: 'u128',203      },204      BalanceSet: {205        who: 'AccountId32',206        free: 'u128',207        reserved: 'u128',208      },209      Reserved: {210        who: 'AccountId32',211        amount: 'u128',212      },213      Unreserved: {214        who: 'AccountId32',215        amount: 'u128',216      },217      ReserveRepatriated: {218        from: 'AccountId32',219        to: 'AccountId32',220        amount: 'u128',221        destinationStatus: 'FrameSupportTokensMiscBalanceStatus',222      },223      Deposit: {224        who: 'AccountId32',225        amount: 'u128',226      },227      Withdraw: {228        who: 'AccountId32',229        amount: 'u128',230      },231      Slashed: {232        who: 'AccountId32',233        amount: 'u128'234      }235    }236  },237  /**238   * Lookup31: frame_support::traits::tokens::misc::BalanceStatus239   **/240  FrameSupportTokensMiscBalanceStatus: {241    _enum: ['Free', 'Reserved']242  },243  /**244   * Lookup32: pallet_transaction_payment::pallet::Event<T>245   **/246  PalletTransactionPaymentEvent: {247    _enum: {248      TransactionFeePaid: {249        who: 'AccountId32',250        actualFee: 'u128',251        tip: 'u128'252      }253    }254  },255  /**256   * Lookup33: pallet_treasury::pallet::Event<T, I>257   **/258  PalletTreasuryEvent: {259    _enum: {260      Proposed: {261        proposalIndex: 'u32',262      },263      Spending: {264        budgetRemaining: 'u128',265      },266      Awarded: {267        proposalIndex: 'u32',268        award: 'u128',269        account: 'AccountId32',270      },271      Rejected: {272        proposalIndex: 'u32',273        slashed: 'u128',274      },275      Burnt: {276        burntFunds: 'u128',277      },278      Rollover: {279        rolloverBalance: 'u128',280      },281      Deposit: {282        value: 'u128',283      },284      SpendApproved: {285        proposalIndex: 'u32',286        amount: 'u128',287        beneficiary: 'AccountId32'288      }289    }290  },291  /**292   * Lookup34: pallet_sudo::pallet::Event<T>293   **/294  PalletSudoEvent: {295    _enum: {296      Sudid: {297        sudoResult: 'Result<Null, SpRuntimeDispatchError>',298      },299      KeyChanged: {300        oldSudoer: 'Option<AccountId32>',301      },302      SudoAsDone: {303        sudoResult: 'Result<Null, SpRuntimeDispatchError>'304      }305    }306  },307  /**308   * Lookup38: orml_vesting::module::Event<T>309   **/310  OrmlVestingModuleEvent: {311    _enum: {312      VestingScheduleAdded: {313        from: 'AccountId32',314        to: 'AccountId32',315        vestingSchedule: 'OrmlVestingVestingSchedule',316      },317      Claimed: {318        who: 'AccountId32',319        amount: 'u128',320      },321      VestingSchedulesUpdated: {322        who: 'AccountId32'323      }324    }325  },326  /**327   * Lookup39: orml_vesting::VestingSchedule<BlockNumber, Balance>328   **/329  OrmlVestingVestingSchedule: {330    start: 'u32',331    period: 'u32',332    periodCount: 'u32',333    perPeriod: 'Compact<u128>'334  },335  /**336   * Lookup41: orml_xtokens::module::Event<T>337   **/338  OrmlXtokensModuleEvent: {339    _enum: {340      TransferredMultiAssets: {341        sender: 'AccountId32',342        assets: 'XcmV1MultiassetMultiAssets',343        fee: 'XcmV1MultiAsset',344        dest: 'XcmV1MultiLocation'345      }346    }347  },348  /**349   * Lookup42: xcm::v1::multiasset::MultiAssets350   **/351  XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',352  /**353   * Lookup44: xcm::v1::multiasset::MultiAsset354   **/355  XcmV1MultiAsset: {356    id: 'XcmV1MultiassetAssetId',357    fun: 'XcmV1MultiassetFungibility'358  },359  /**360   * Lookup45: xcm::v1::multiasset::AssetId361   **/362  XcmV1MultiassetAssetId: {363    _enum: {364      Concrete: 'XcmV1MultiLocation',365      Abstract: 'Bytes'366    }367  },368  /**369   * Lookup46: xcm::v1::multilocation::MultiLocation370   **/371  XcmV1MultiLocation: {372    parents: 'u8',373    interior: 'XcmV1MultilocationJunctions'374  },375  /**376   * Lookup47: xcm::v1::multilocation::Junctions377   **/378  XcmV1MultilocationJunctions: {379    _enum: {380      Here: 'Null',381      X1: 'XcmV1Junction',382      X2: '(XcmV1Junction,XcmV1Junction)',383      X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',384      X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',385      X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',386      X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',387      X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',388      X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'389    }390  },391  /**392   * Lookup48: xcm::v1::junction::Junction393   **/394  XcmV1Junction: {395    _enum: {396      Parachain: 'Compact<u32>',397      AccountId32: {398        network: 'XcmV0JunctionNetworkId',399        id: '[u8;32]',400      },401      AccountIndex64: {402        network: 'XcmV0JunctionNetworkId',403        index: 'Compact<u64>',404      },405      AccountKey20: {406        network: 'XcmV0JunctionNetworkId',407        key: '[u8;20]',408      },409      PalletInstance: 'u8',410      GeneralIndex: 'Compact<u128>',411      GeneralKey: 'Bytes',412      OnlyChild: 'Null',413      Plurality: {414        id: 'XcmV0JunctionBodyId',415        part: 'XcmV0JunctionBodyPart'416      }417    }418  },419  /**420   * Lookup50: xcm::v0::junction::NetworkId421   **/422  XcmV0JunctionNetworkId: {423    _enum: {424      Any: 'Null',425      Named: 'Bytes',426      Polkadot: 'Null',427      Kusama: 'Null'428    }429  },430  /**431   * Lookup53: xcm::v0::junction::BodyId432   **/433  XcmV0JunctionBodyId: {434    _enum: {435      Unit: 'Null',436      Named: 'Bytes',437      Index: 'Compact<u32>',438      Executive: 'Null',439      Technical: 'Null',440      Legislative: 'Null',441      Judicial: 'Null'442    }443  },444  /**445   * Lookup54: xcm::v0::junction::BodyPart446   **/447  XcmV0JunctionBodyPart: {448    _enum: {449      Voice: 'Null',450      Members: {451        count: 'Compact<u32>',452      },453      Fraction: {454        nom: 'Compact<u32>',455        denom: 'Compact<u32>',456      },457      AtLeastProportion: {458        nom: 'Compact<u32>',459        denom: 'Compact<u32>',460      },461      MoreThanProportion: {462        nom: 'Compact<u32>',463        denom: 'Compact<u32>'464      }465    }466  },467  /**468   * Lookup55: xcm::v1::multiasset::Fungibility469   **/470  XcmV1MultiassetFungibility: {471    _enum: {472      Fungible: 'Compact<u128>',473      NonFungible: 'XcmV1MultiassetAssetInstance'474    }475  },476  /**477   * Lookup56: xcm::v1::multiasset::AssetInstance478   **/479  XcmV1MultiassetAssetInstance: {480    _enum: {481      Undefined: 'Null',482      Index: 'Compact<u128>',483      Array4: '[u8;4]',484      Array8: '[u8;8]',485      Array16: '[u8;16]',486      Array32: '[u8;32]',487      Blob: 'Bytes'488    }489  },490  /**491   * Lookup59: orml_tokens::module::Event<T>492   **/493  OrmlTokensModuleEvent: {494    _enum: {495      Endowed: {496        currencyId: 'PalletForeignAssetsAssetIds',497        who: 'AccountId32',498        amount: 'u128',499      },500      DustLost: {501        currencyId: 'PalletForeignAssetsAssetIds',502        who: 'AccountId32',503        amount: 'u128',504      },505      Transfer: {506        currencyId: 'PalletForeignAssetsAssetIds',507        from: 'AccountId32',508        to: 'AccountId32',509        amount: 'u128',510      },511      Reserved: {512        currencyId: 'PalletForeignAssetsAssetIds',513        who: 'AccountId32',514        amount: 'u128',515      },516      Unreserved: {517        currencyId: 'PalletForeignAssetsAssetIds',518        who: 'AccountId32',519        amount: 'u128',520      },521      ReserveRepatriated: {522        currencyId: 'PalletForeignAssetsAssetIds',523        from: 'AccountId32',524        to: 'AccountId32',525        amount: 'u128',526        status: 'FrameSupportTokensMiscBalanceStatus',527      },528      BalanceSet: {529        currencyId: 'PalletForeignAssetsAssetIds',530        who: 'AccountId32',531        free: 'u128',532        reserved: 'u128',533      },534      TotalIssuanceSet: {535        currencyId: 'PalletForeignAssetsAssetIds',536        amount: 'u128',537      },538      Withdrawn: {539        currencyId: 'PalletForeignAssetsAssetIds',540        who: 'AccountId32',541        amount: 'u128',542      },543      Slashed: {544        currencyId: 'PalletForeignAssetsAssetIds',545        who: 'AccountId32',546        freeAmount: 'u128',547        reservedAmount: 'u128',548      },549      Deposited: {550        currencyId: 'PalletForeignAssetsAssetIds',551        who: 'AccountId32',552        amount: 'u128',553      },554      LockSet: {555        lockId: '[u8;8]',556        currencyId: 'PalletForeignAssetsAssetIds',557        who: 'AccountId32',558        amount: 'u128',559      },560      LockRemoved: {561        lockId: '[u8;8]',562        currencyId: 'PalletForeignAssetsAssetIds',563        who: 'AccountId32'564      }565    }566  },567  /**568   * Lookup60: pallet_foreign_assets::AssetIds569   **/570  PalletForeignAssetsAssetIds: {571    _enum: {572      ForeignAssetId: 'u32',573      NativeAssetId: 'PalletForeignAssetsNativeCurrency'574    }575  },576  /**577   * Lookup61: pallet_foreign_assets::NativeCurrency578   **/579  PalletForeignAssetsNativeCurrency: {580    _enum: ['Here', 'Parent']581  },582  /**583   * Lookup62: cumulus_pallet_xcmp_queue::pallet::Event<T>584   **/585  CumulusPalletXcmpQueueEvent: {586    _enum: {587      Success: {588        messageHash: 'Option<H256>',589        weight: 'SpWeightsWeightV2Weight',590      },591      Fail: {592        messageHash: 'Option<H256>',593        error: 'XcmV2TraitsError',594        weight: 'SpWeightsWeightV2Weight',595      },596      BadVersion: {597        messageHash: 'Option<H256>',598      },599      BadFormat: {600        messageHash: 'Option<H256>',601      },602      UpwardMessageSent: {603        messageHash: 'Option<H256>',604      },605      XcmpMessageSent: {606        messageHash: 'Option<H256>',607      },608      OverweightEnqueued: {609        sender: 'u32',610        sentAt: 'u32',611        index: 'u64',612        required: 'SpWeightsWeightV2Weight',613      },614      OverweightServiced: {615        index: 'u64',616        used: 'SpWeightsWeightV2Weight'617      }618    }619  },620  /**621   * Lookup64: xcm::v2::traits::Error622   **/623  XcmV2TraitsError: {624    _enum: {625      Overflow: 'Null',626      Unimplemented: 'Null',627      UntrustedReserveLocation: 'Null',628      UntrustedTeleportLocation: 'Null',629      MultiLocationFull: 'Null',630      MultiLocationNotInvertible: 'Null',631      BadOrigin: 'Null',632      InvalidLocation: 'Null',633      AssetNotFound: 'Null',634      FailedToTransactAsset: 'Null',635      NotWithdrawable: 'Null',636      LocationCannotHold: 'Null',637      ExceedsMaxMessageSize: 'Null',638      DestinationUnsupported: 'Null',639      Transport: 'Null',640      Unroutable: 'Null',641      UnknownClaim: 'Null',642      FailedToDecode: 'Null',643      MaxWeightInvalid: 'Null',644      NotHoldingFees: 'Null',645      TooExpensive: 'Null',646      Trap: 'u64',647      UnhandledXcmVersion: 'Null',648      WeightLimitReached: 'u64',649      Barrier: 'Null',650      WeightNotComputable: 'Null'651    }652  },653  /**654   * Lookup66: pallet_xcm::pallet::Event<T>655   **/656  PalletXcmEvent: {657    _enum: {658      Attempted: 'XcmV2TraitsOutcome',659      Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',660      UnexpectedResponse: '(XcmV1MultiLocation,u64)',661      ResponseReady: '(u64,XcmV2Response)',662      Notified: '(u64,u8,u8)',663      NotifyOverweight: '(u64,u8,u8,SpWeightsWeightV2Weight,SpWeightsWeightV2Weight)',664      NotifyDispatchError: '(u64,u8,u8)',665      NotifyDecodeFailed: '(u64,u8,u8)',666      InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',667      InvalidResponderVersion: '(XcmV1MultiLocation,u64)',668      ResponseTaken: 'u64',669      AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',670      VersionChangeNotified: '(XcmV1MultiLocation,u32)',671      SupportedVersionChanged: '(XcmV1MultiLocation,u32)',672      NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',673      NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)',674      AssetsClaimed: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)'675    }676  },677  /**678   * Lookup67: xcm::v2::traits::Outcome679   **/680  XcmV2TraitsOutcome: {681    _enum: {682      Complete: 'u64',683      Incomplete: '(u64,XcmV2TraitsError)',684      Error: 'XcmV2TraitsError'685    }686  },687  /**688   * Lookup68: xcm::v2::Xcm<RuntimeCall>689   **/690  XcmV2Xcm: 'Vec<XcmV2Instruction>',691  /**692   * Lookup70: xcm::v2::Instruction<RuntimeCall>693   **/694  XcmV2Instruction: {695    _enum: {696      WithdrawAsset: 'XcmV1MultiassetMultiAssets',697      ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',698      ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',699      QueryResponse: {700        queryId: 'Compact<u64>',701        response: 'XcmV2Response',702        maxWeight: 'Compact<u64>',703      },704      TransferAsset: {705        assets: 'XcmV1MultiassetMultiAssets',706        beneficiary: 'XcmV1MultiLocation',707      },708      TransferReserveAsset: {709        assets: 'XcmV1MultiassetMultiAssets',710        dest: 'XcmV1MultiLocation',711        xcm: 'XcmV2Xcm',712      },713      Transact: {714        originType: 'XcmV0OriginKind',715        requireWeightAtMost: 'Compact<u64>',716        call: 'XcmDoubleEncoded',717      },718      HrmpNewChannelOpenRequest: {719        sender: 'Compact<u32>',720        maxMessageSize: 'Compact<u32>',721        maxCapacity: 'Compact<u32>',722      },723      HrmpChannelAccepted: {724        recipient: 'Compact<u32>',725      },726      HrmpChannelClosing: {727        initiator: 'Compact<u32>',728        sender: 'Compact<u32>',729        recipient: 'Compact<u32>',730      },731      ClearOrigin: 'Null',732      DescendOrigin: 'XcmV1MultilocationJunctions',733      ReportError: {734        queryId: 'Compact<u64>',735        dest: 'XcmV1MultiLocation',736        maxResponseWeight: 'Compact<u64>',737      },738      DepositAsset: {739        assets: 'XcmV1MultiassetMultiAssetFilter',740        maxAssets: 'Compact<u32>',741        beneficiary: 'XcmV1MultiLocation',742      },743      DepositReserveAsset: {744        assets: 'XcmV1MultiassetMultiAssetFilter',745        maxAssets: 'Compact<u32>',746        dest: 'XcmV1MultiLocation',747        xcm: 'XcmV2Xcm',748      },749      ExchangeAsset: {750        give: 'XcmV1MultiassetMultiAssetFilter',751        receive: 'XcmV1MultiassetMultiAssets',752      },753      InitiateReserveWithdraw: {754        assets: 'XcmV1MultiassetMultiAssetFilter',755        reserve: 'XcmV1MultiLocation',756        xcm: 'XcmV2Xcm',757      },758      InitiateTeleport: {759        assets: 'XcmV1MultiassetMultiAssetFilter',760        dest: 'XcmV1MultiLocation',761        xcm: 'XcmV2Xcm',762      },763      QueryHolding: {764        queryId: 'Compact<u64>',765        dest: 'XcmV1MultiLocation',766        assets: 'XcmV1MultiassetMultiAssetFilter',767        maxResponseWeight: 'Compact<u64>',768      },769      BuyExecution: {770        fees: 'XcmV1MultiAsset',771        weightLimit: 'XcmV2WeightLimit',772      },773      RefundSurplus: 'Null',774      SetErrorHandler: 'XcmV2Xcm',775      SetAppendix: 'XcmV2Xcm',776      ClearError: 'Null',777      ClaimAsset: {778        assets: 'XcmV1MultiassetMultiAssets',779        ticket: 'XcmV1MultiLocation',780      },781      Trap: 'Compact<u64>',782      SubscribeVersion: {783        queryId: 'Compact<u64>',784        maxResponseWeight: 'Compact<u64>',785      },786      UnsubscribeVersion: 'Null'787    }788  },789  /**790   * Lookup71: xcm::v2::Response791   **/792  XcmV2Response: {793    _enum: {794      Null: 'Null',795      Assets: 'XcmV1MultiassetMultiAssets',796      ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',797      Version: 'u32'798    }799  },800  /**801   * Lookup74: xcm::v0::OriginKind802   **/803  XcmV0OriginKind: {804    _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']805  },806  /**807   * Lookup75: xcm::double_encoded::DoubleEncoded<T>808   **/809  XcmDoubleEncoded: {810    encoded: 'Bytes'811  },812  /**813   * Lookup76: xcm::v1::multiasset::MultiAssetFilter814   **/815  XcmV1MultiassetMultiAssetFilter: {816    _enum: {817      Definite: 'XcmV1MultiassetMultiAssets',818      Wild: 'XcmV1MultiassetWildMultiAsset'819    }820  },821  /**822   * Lookup77: xcm::v1::multiasset::WildMultiAsset823   **/824  XcmV1MultiassetWildMultiAsset: {825    _enum: {826      All: 'Null',827      AllOf: {828        id: 'XcmV1MultiassetAssetId',829        fun: 'XcmV1MultiassetWildFungibility'830      }831    }832  },833  /**834   * Lookup78: xcm::v1::multiasset::WildFungibility835   **/836  XcmV1MultiassetWildFungibility: {837    _enum: ['Fungible', 'NonFungible']838  },839  /**840   * Lookup79: xcm::v2::WeightLimit841   **/842  XcmV2WeightLimit: {843    _enum: {844      Unlimited: 'Null',845      Limited: 'Compact<u64>'846    }847  },848  /**849   * Lookup81: xcm::VersionedMultiAssets850   **/851  XcmVersionedMultiAssets: {852    _enum: {853      V0: 'Vec<XcmV0MultiAsset>',854      V1: 'XcmV1MultiassetMultiAssets'855    }856  },857  /**858   * Lookup83: xcm::v0::multi_asset::MultiAsset859   **/860  XcmV0MultiAsset: {861    _enum: {862      None: 'Null',863      All: 'Null',864      AllFungible: 'Null',865      AllNonFungible: 'Null',866      AllAbstractFungible: {867        id: 'Bytes',868      },869      AllAbstractNonFungible: {870        class: 'Bytes',871      },872      AllConcreteFungible: {873        id: 'XcmV0MultiLocation',874      },875      AllConcreteNonFungible: {876        class: 'XcmV0MultiLocation',877      },878      AbstractFungible: {879        id: 'Bytes',880        amount: 'Compact<u128>',881      },882      AbstractNonFungible: {883        class: 'Bytes',884        instance: 'XcmV1MultiassetAssetInstance',885      },886      ConcreteFungible: {887        id: 'XcmV0MultiLocation',888        amount: 'Compact<u128>',889      },890      ConcreteNonFungible: {891        class: 'XcmV0MultiLocation',892        instance: 'XcmV1MultiassetAssetInstance'893      }894    }895  },896  /**897   * Lookup84: xcm::v0::multi_location::MultiLocation898   **/899  XcmV0MultiLocation: {900    _enum: {901      Null: 'Null',902      X1: 'XcmV0Junction',903      X2: '(XcmV0Junction,XcmV0Junction)',904      X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',905      X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',906      X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',907      X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',908      X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',909      X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'910    }911  },912  /**913   * Lookup85: xcm::v0::junction::Junction914   **/915  XcmV0Junction: {916    _enum: {917      Parent: 'Null',918      Parachain: 'Compact<u32>',919      AccountId32: {920        network: 'XcmV0JunctionNetworkId',921        id: '[u8;32]',922      },923      AccountIndex64: {924        network: 'XcmV0JunctionNetworkId',925        index: 'Compact<u64>',926      },927      AccountKey20: {928        network: 'XcmV0JunctionNetworkId',929        key: '[u8;20]',930      },931      PalletInstance: 'u8',932      GeneralIndex: 'Compact<u128>',933      GeneralKey: 'Bytes',934      OnlyChild: 'Null',935      Plurality: {936        id: 'XcmV0JunctionBodyId',937        part: 'XcmV0JunctionBodyPart'938      }939    }940  },941  /**942   * Lookup86: xcm::VersionedMultiLocation943   **/944  XcmVersionedMultiLocation: {945    _enum: {946      V0: 'XcmV0MultiLocation',947      V1: 'XcmV1MultiLocation'948    }949  },950  /**951   * Lookup87: cumulus_pallet_xcm::pallet::Event<T>952   **/953  CumulusPalletXcmEvent: {954    _enum: {955      InvalidFormat: '[u8;8]',956      UnsupportedVersion: '[u8;8]',957      ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'958    }959  },960  /**961   * Lookup88: cumulus_pallet_dmp_queue::pallet::Event<T>962   **/963  CumulusPalletDmpQueueEvent: {964    _enum: {965      InvalidFormat: {966        messageId: '[u8;32]',967      },968      UnsupportedVersion: {969        messageId: '[u8;32]',970      },971      ExecutedDownward: {972        messageId: '[u8;32]',973        outcome: 'XcmV2TraitsOutcome',974      },975      WeightExhausted: {976        messageId: '[u8;32]',977        remainingWeight: 'SpWeightsWeightV2Weight',978        requiredWeight: 'SpWeightsWeightV2Weight',979      },980      OverweightEnqueued: {981        messageId: '[u8;32]',982        overweightIndex: 'u64',983        requiredWeight: 'SpWeightsWeightV2Weight',984      },985      OverweightServiced: {986        overweightIndex: 'u64',987        weightUsed: 'SpWeightsWeightV2Weight'988      }989    }990  },991  /**992   * Lookup89: pallet_common::pallet::Event<T>993   **/994  PalletCommonEvent: {995    _enum: {996      CollectionCreated: '(u32,u8,AccountId32)',997      CollectionDestroyed: 'u32',998      ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',999      ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1000      Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1001      Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1002      ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)',1003      CollectionPropertySet: '(u32,Bytes)',1004      CollectionPropertyDeleted: '(u32,Bytes)',1005      TokenPropertySet: '(u32,u32,Bytes)',1006      TokenPropertyDeleted: '(u32,u32,Bytes)',1007      PropertyPermissionSet: '(u32,Bytes)',1008      AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1009      AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1010      CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1011      CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1012      CollectionLimitSet: 'u32',1013      CollectionOwnerChanged: '(u32,AccountId32)',1014      CollectionPermissionSet: 'u32',1015      CollectionSponsorSet: '(u32,AccountId32)',1016      SponsorshipConfirmed: '(u32,AccountId32)',1017      CollectionSponsorRemoved: 'u32'1018    }1019  },1020  /**1021   * Lookup92: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1022   **/1023  PalletEvmAccountBasicCrossAccountIdRepr: {1024    _enum: {1025      Substrate: 'AccountId32',1026      Ethereum: 'H160'1027    }1028  },1029  /**1030   * Lookup96: pallet_structure::pallet::Event<T>1031   **/1032  PalletStructureEvent: {1033    _enum: {1034      Executed: 'Result<Null, SpRuntimeDispatchError>'1035    }1036  },1037  /**1038   * Lookup97: pallet_rmrk_core::pallet::Event<T>1039   **/1040  PalletRmrkCoreEvent: {1041    _enum: {1042      CollectionCreated: {1043        issuer: 'AccountId32',1044        collectionId: 'u32',1045      },1046      CollectionDestroyed: {1047        issuer: 'AccountId32',1048        collectionId: 'u32',1049      },1050      IssuerChanged: {1051        oldIssuer: 'AccountId32',1052        newIssuer: 'AccountId32',1053        collectionId: 'u32',1054      },1055      CollectionLocked: {1056        issuer: 'AccountId32',1057        collectionId: 'u32',1058      },1059      NftMinted: {1060        owner: 'AccountId32',1061        collectionId: 'u32',1062        nftId: 'u32',1063      },1064      NFTBurned: {1065        owner: 'AccountId32',1066        nftId: 'u32',1067      },1068      NFTSent: {1069        sender: 'AccountId32',1070        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1071        collectionId: 'u32',1072        nftId: 'u32',1073        approvalRequired: 'bool',1074      },1075      NFTAccepted: {1076        sender: 'AccountId32',1077        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1078        collectionId: 'u32',1079        nftId: 'u32',1080      },1081      NFTRejected: {1082        sender: 'AccountId32',1083        collectionId: 'u32',1084        nftId: 'u32',1085      },1086      PropertySet: {1087        collectionId: 'u32',1088        maybeNftId: 'Option<u32>',1089        key: 'Bytes',1090        value: 'Bytes',1091      },1092      ResourceAdded: {1093        nftId: 'u32',1094        resourceId: 'u32',1095      },1096      ResourceRemoval: {1097        nftId: 'u32',1098        resourceId: 'u32',1099      },1100      ResourceAccepted: {1101        nftId: 'u32',1102        resourceId: 'u32',1103      },1104      ResourceRemovalAccepted: {1105        nftId: 'u32',1106        resourceId: 'u32',1107      },1108      PrioritySet: {1109        collectionId: 'u32',1110        nftId: 'u32'1111      }1112    }1113  },1114  /**1115   * Lookup98: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1116   **/1117  RmrkTraitsNftAccountIdOrCollectionNftTuple: {1118    _enum: {1119      AccountId: 'AccountId32',1120      CollectionAndNftTuple: '(u32,u32)'1121    }1122  },1123  /**1124   * Lookup102: pallet_rmrk_equip::pallet::Event<T>1125   **/1126  PalletRmrkEquipEvent: {1127    _enum: {1128      BaseCreated: {1129        issuer: 'AccountId32',1130        baseId: 'u32',1131      },1132      EquippablesUpdated: {1133        baseId: 'u32',1134        slotId: 'u32'1135      }1136    }1137  },1138  /**1139   * Lookup103: pallet_app_promotion::pallet::Event<T>1140   **/1141  PalletAppPromotionEvent: {1142    _enum: {1143      StakingRecalculation: '(AccountId32,u128,u128)',1144      Stake: '(AccountId32,u128)',1145      Unstake: '(AccountId32,u128)',1146      SetAdmin: 'AccountId32'1147    }1148  },1149  /**1150   * Lookup104: pallet_foreign_assets::module::Event<T>1151   **/1152  PalletForeignAssetsModuleEvent: {1153    _enum: {1154      ForeignAssetRegistered: {1155        assetId: 'u32',1156        assetAddress: 'XcmV1MultiLocation',1157        metadata: 'PalletForeignAssetsModuleAssetMetadata',1158      },1159      ForeignAssetUpdated: {1160        assetId: 'u32',1161        assetAddress: 'XcmV1MultiLocation',1162        metadata: 'PalletForeignAssetsModuleAssetMetadata',1163      },1164      AssetRegistered: {1165        assetId: 'PalletForeignAssetsAssetIds',1166        metadata: 'PalletForeignAssetsModuleAssetMetadata',1167      },1168      AssetUpdated: {1169        assetId: 'PalletForeignAssetsAssetIds',1170        metadata: 'PalletForeignAssetsModuleAssetMetadata'1171      }1172    }1173  },1174  /**1175   * Lookup105: pallet_foreign_assets::module::AssetMetadata<Balance>1176   **/1177  PalletForeignAssetsModuleAssetMetadata: {1178    name: 'Bytes',1179    symbol: 'Bytes',1180    decimals: 'u8',1181    minimalBalance: 'u128'1182  },1183  /**1184   * Lookup106: pallet_evm::pallet::Event<T>1185   **/1186  PalletEvmEvent: {1187    _enum: {1188      Log: {1189        log: 'EthereumLog',1190      },1191      Created: {1192        address: 'H160',1193      },1194      CreatedFailed: {1195        address: 'H160',1196      },1197      Executed: {1198        address: 'H160',1199      },1200      ExecutedFailed: {1201        address: 'H160'1202      }1203    }1204  },1205  /**1206   * Lookup107: ethereum::log::Log1207   **/1208  EthereumLog: {1209    address: 'H160',1210    topics: 'Vec<H256>',1211    data: 'Bytes'1212  },1213  /**1214   * Lookup109: pallet_ethereum::pallet::Event1215   **/1216  PalletEthereumEvent: {1217    _enum: {1218      Executed: {1219        from: 'H160',1220        to: 'H160',1221        transactionHash: 'H256',1222        exitReason: 'EvmCoreErrorExitReason'1223      }1224    }1225  },1226  /**1227   * Lookup110: evm_core::error::ExitReason1228   **/1229  EvmCoreErrorExitReason: {1230    _enum: {1231      Succeed: 'EvmCoreErrorExitSucceed',1232      Error: 'EvmCoreErrorExitError',1233      Revert: 'EvmCoreErrorExitRevert',1234      Fatal: 'EvmCoreErrorExitFatal'1235    }1236  },1237  /**1238   * Lookup111: evm_core::error::ExitSucceed1239   **/1240  EvmCoreErrorExitSucceed: {1241    _enum: ['Stopped', 'Returned', 'Suicided']1242  },1243  /**1244   * Lookup112: evm_core::error::ExitError1245   **/1246  EvmCoreErrorExitError: {1247    _enum: {1248      StackUnderflow: 'Null',1249      StackOverflow: 'Null',1250      InvalidJump: 'Null',1251      InvalidRange: 'Null',1252      DesignatedInvalid: 'Null',1253      CallTooDeep: 'Null',1254      CreateCollision: 'Null',1255      CreateContractLimit: 'Null',1256      OutOfOffset: 'Null',1257      OutOfGas: 'Null',1258      OutOfFund: 'Null',1259      PCUnderflow: 'Null',1260      CreateEmpty: 'Null',1261      Other: 'Text',1262      InvalidCode: 'Null'1263    }1264  },1265  /**1266   * Lookup115: evm_core::error::ExitRevert1267   **/1268  EvmCoreErrorExitRevert: {1269    _enum: ['Reverted']1270  },1271  /**1272   * Lookup116: evm_core::error::ExitFatal1273   **/1274  EvmCoreErrorExitFatal: {1275    _enum: {1276      NotSupported: 'Null',1277      UnhandledInterrupt: 'Null',1278      CallErrorAsFatal: 'EvmCoreErrorExitError',1279      Other: 'Text'1280    }1281  },1282  /**1283   * Lookup117: pallet_evm_contract_helpers::pallet::Event<T>1284   **/1285  PalletEvmContractHelpersEvent: {1286    _enum: {1287      ContractSponsorSet: '(H160,AccountId32)',1288      ContractSponsorshipConfirmed: '(H160,AccountId32)',1289      ContractSponsorRemoved: 'H160'1290    }1291  },1292  /**1293   * Lookup118: pallet_evm_migration::pallet::Event<T>1294   **/1295  PalletEvmMigrationEvent: {1296    _enum: ['TestEvent']1297  },1298  /**1299   * Lookup119: pallet_maintenance::pallet::Event<T>1300   **/1301  PalletMaintenanceEvent: {1302    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1303  },1304  /**1305   * Lookup120: pallet_test_utils::pallet::Event<T>1306   **/1307  PalletTestUtilsEvent: {1308    _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1309  },1310  /**1311   * Lookup121: frame_system::Phase1312   **/1313  FrameSystemPhase: {1314    _enum: {1315      ApplyExtrinsic: 'u32',1316      Finalization: 'Null',1317      Initialization: 'Null'1318    }1319  },1320  /**1321   * Lookup124: frame_system::LastRuntimeUpgradeInfo1322   **/1323  FrameSystemLastRuntimeUpgradeInfo: {1324    specVersion: 'Compact<u32>',1325    specName: 'Text'1326  },1327  /**1328   * Lookup125: frame_system::pallet::Call<T>1329   **/1330  FrameSystemCall: {1331    _enum: {1332      fill_block: {1333        ratio: 'Perbill',1334      },1335      remark: {1336        remark: 'Bytes',1337      },1338      set_heap_pages: {1339        pages: 'u64',1340      },1341      set_code: {1342        code: 'Bytes',1343      },1344      set_code_without_checks: {1345        code: 'Bytes',1346      },1347      set_storage: {1348        items: 'Vec<(Bytes,Bytes)>',1349      },1350      kill_storage: {1351        _alias: {1352          keys_: 'keys',1353        },1354        keys_: 'Vec<Bytes>',1355      },1356      kill_prefix: {1357        prefix: 'Bytes',1358        subkeys: 'u32',1359      },1360      remark_with_event: {1361        remark: 'Bytes'1362      }1363    }1364  },1365  /**1366   * Lookup130: frame_system::limits::BlockWeights1367   **/1368  FrameSystemLimitsBlockWeights: {1369    baseBlock: 'SpWeightsWeightV2Weight',1370    maxBlock: 'SpWeightsWeightV2Weight',1371    perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1372  },1373  /**1374   * Lookup131: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1375   **/1376  FrameSupportDispatchPerDispatchClassWeightsPerClass: {1377    normal: 'FrameSystemLimitsWeightsPerClass',1378    operational: 'FrameSystemLimitsWeightsPerClass',1379    mandatory: 'FrameSystemLimitsWeightsPerClass'1380  },1381  /**1382   * Lookup132: frame_system::limits::WeightsPerClass1383   **/1384  FrameSystemLimitsWeightsPerClass: {1385    baseExtrinsic: 'SpWeightsWeightV2Weight',1386    maxExtrinsic: 'Option<SpWeightsWeightV2Weight>',1387    maxTotal: 'Option<SpWeightsWeightV2Weight>',1388    reserved: 'Option<SpWeightsWeightV2Weight>'1389  },1390  /**1391   * Lookup134: frame_system::limits::BlockLength1392   **/1393  FrameSystemLimitsBlockLength: {1394    max: 'FrameSupportDispatchPerDispatchClassU32'1395  },1396  /**1397   * Lookup135: frame_support::dispatch::PerDispatchClass<T>1398   **/1399  FrameSupportDispatchPerDispatchClassU32: {1400    normal: 'u32',1401    operational: 'u32',1402    mandatory: 'u32'1403  },1404  /**1405   * Lookup136: sp_weights::RuntimeDbWeight1406   **/1407  SpWeightsRuntimeDbWeight: {1408    read: 'u64',1409    write: 'u64'1410  },1411  /**1412   * Lookup137: sp_version::RuntimeVersion1413   **/1414  SpVersionRuntimeVersion: {1415    specName: 'Text',1416    implName: 'Text',1417    authoringVersion: 'u32',1418    specVersion: 'u32',1419    implVersion: 'u32',1420    apis: 'Vec<([u8;8],u32)>',1421    transactionVersion: 'u32',1422    stateVersion: 'u8'1423  },1424  /**1425   * Lookup142: frame_system::pallet::Error<T>1426   **/1427  FrameSystemError: {1428    _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1429  },1430  /**1431   * Lookup143: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1432   **/1433  PolkadotPrimitivesV2PersistedValidationData: {1434    parentHead: 'Bytes',1435    relayParentNumber: 'u32',1436    relayParentStorageRoot: 'H256',1437    maxPovSize: 'u32'1438  },1439  /**1440   * Lookup146: polkadot_primitives::v2::UpgradeRestriction1441   **/1442  PolkadotPrimitivesV2UpgradeRestriction: {1443    _enum: ['Present']1444  },1445  /**1446   * Lookup147: sp_trie::storage_proof::StorageProof1447   **/1448  SpTrieStorageProof: {1449    trieNodes: 'BTreeSet<Bytes>'1450  },1451  /**1452   * Lookup149: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1453   **/1454  CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1455    dmqMqcHead: 'H256',1456    relayDispatchQueueSize: '(u32,u32)',1457    ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1458    egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1459  },1460  /**1461   * Lookup152: polkadot_primitives::v2::AbridgedHrmpChannel1462   **/1463  PolkadotPrimitivesV2AbridgedHrmpChannel: {1464    maxCapacity: 'u32',1465    maxTotalSize: 'u32',1466    maxMessageSize: 'u32',1467    msgCount: 'u32',1468    totalSize: 'u32',1469    mqcHead: 'Option<H256>'1470  },1471  /**1472   * Lookup153: polkadot_primitives::v2::AbridgedHostConfiguration1473   **/1474  PolkadotPrimitivesV2AbridgedHostConfiguration: {1475    maxCodeSize: 'u32',1476    maxHeadDataSize: 'u32',1477    maxUpwardQueueCount: 'u32',1478    maxUpwardQueueSize: 'u32',1479    maxUpwardMessageSize: 'u32',1480    maxUpwardMessageNumPerCandidate: 'u32',1481    hrmpMaxMessageNumPerCandidate: 'u32',1482    validationUpgradeCooldown: 'u32',1483    validationUpgradeDelay: 'u32'1484  },1485  /**1486   * Lookup159: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1487   **/1488  PolkadotCorePrimitivesOutboundHrmpMessage: {1489    recipient: 'u32',1490    data: 'Bytes'1491  },1492  /**1493   * Lookup160: cumulus_pallet_parachain_system::pallet::Call<T>1494   **/1495  CumulusPalletParachainSystemCall: {1496    _enum: {1497      set_validation_data: {1498        data: 'CumulusPrimitivesParachainInherentParachainInherentData',1499      },1500      sudo_send_upward_message: {1501        message: 'Bytes',1502      },1503      authorize_upgrade: {1504        codeHash: 'H256',1505      },1506      enact_authorized_upgrade: {1507        code: 'Bytes'1508      }1509    }1510  },1511  /**1512   * Lookup161: cumulus_primitives_parachain_inherent::ParachainInherentData1513   **/1514  CumulusPrimitivesParachainInherentParachainInherentData: {1515    validationData: 'PolkadotPrimitivesV2PersistedValidationData',1516    relayChainState: 'SpTrieStorageProof',1517    downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1518    horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1519  },1520  /**1521   * Lookup163: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1522   **/1523  PolkadotCorePrimitivesInboundDownwardMessage: {1524    sentAt: 'u32',1525    msg: 'Bytes'1526  },1527  /**1528   * Lookup166: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1529   **/1530  PolkadotCorePrimitivesInboundHrmpMessage: {1531    sentAt: 'u32',1532    data: 'Bytes'1533  },1534  /**1535   * Lookup169: cumulus_pallet_parachain_system::pallet::Error<T>1536   **/1537  CumulusPalletParachainSystemError: {1538    _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1539  },1540  /**1541   * Lookup171: pallet_balances::BalanceLock<Balance>1542   **/1543  PalletBalancesBalanceLock: {1544    id: '[u8;8]',1545    amount: 'u128',1546    reasons: 'PalletBalancesReasons'1547  },1548  /**1549   * Lookup172: pallet_balances::Reasons1550   **/1551  PalletBalancesReasons: {1552    _enum: ['Fee', 'Misc', 'All']1553  },1554  /**1555   * Lookup175: pallet_balances::ReserveData<ReserveIdentifier, Balance>1556   **/1557  PalletBalancesReserveData: {1558    id: '[u8;16]',1559    amount: 'u128'1560  },1561  /**1562   * Lookup177: pallet_balances::Releases1563   **/1564  PalletBalancesReleases: {1565    _enum: ['V1_0_0', 'V2_0_0']1566  },1567  /**1568   * Lookup178: pallet_balances::pallet::Call<T, I>1569   **/1570  PalletBalancesCall: {1571    _enum: {1572      transfer: {1573        dest: 'MultiAddress',1574        value: 'Compact<u128>',1575      },1576      set_balance: {1577        who: 'MultiAddress',1578        newFree: 'Compact<u128>',1579        newReserved: 'Compact<u128>',1580      },1581      force_transfer: {1582        source: 'MultiAddress',1583        dest: 'MultiAddress',1584        value: 'Compact<u128>',1585      },1586      transfer_keep_alive: {1587        dest: 'MultiAddress',1588        value: 'Compact<u128>',1589      },1590      transfer_all: {1591        dest: 'MultiAddress',1592        keepAlive: 'bool',1593      },1594      force_unreserve: {1595        who: 'MultiAddress',1596        amount: 'u128'1597      }1598    }1599  },1600  /**1601   * Lookup181: pallet_balances::pallet::Error<T, I>1602   **/1603  PalletBalancesError: {1604    _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1605  },1606  /**1607   * Lookup183: pallet_timestamp::pallet::Call<T>1608   **/1609  PalletTimestampCall: {1610    _enum: {1611      set: {1612        now: 'Compact<u64>'1613      }1614    }1615  },1616  /**1617   * Lookup185: pallet_transaction_payment::Releases1618   **/1619  PalletTransactionPaymentReleases: {1620    _enum: ['V1Ancient', 'V2']1621  },1622  /**1623   * Lookup186: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1624   **/1625  PalletTreasuryProposal: {1626    proposer: 'AccountId32',1627    value: 'u128',1628    beneficiary: 'AccountId32',1629    bond: 'u128'1630  },1631  /**1632   * Lookup189: pallet_treasury::pallet::Call<T, I>1633   **/1634  PalletTreasuryCall: {1635    _enum: {1636      propose_spend: {1637        value: 'Compact<u128>',1638        beneficiary: 'MultiAddress',1639      },1640      reject_proposal: {1641        proposalId: 'Compact<u32>',1642      },1643      approve_proposal: {1644        proposalId: 'Compact<u32>',1645      },1646      spend: {1647        amount: 'Compact<u128>',1648        beneficiary: 'MultiAddress',1649      },1650      remove_approval: {1651        proposalId: 'Compact<u32>'1652      }1653    }1654  },1655  /**1656   * Lookup192: frame_support::PalletId1657   **/1658  FrameSupportPalletId: '[u8;8]',1659  /**1660   * Lookup193: pallet_treasury::pallet::Error<T, I>1661   **/1662  PalletTreasuryError: {1663    _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1664  },1665  /**1666   * Lookup194: pallet_sudo::pallet::Call<T>1667   **/1668  PalletSudoCall: {1669    _enum: {1670      sudo: {1671        call: 'Call',1672      },1673      sudo_unchecked_weight: {1674        call: 'Call',1675        weight: 'SpWeightsWeightV2Weight',1676      },1677      set_key: {1678        _alias: {1679          new_: 'new',1680        },1681        new_: 'MultiAddress',1682      },1683      sudo_as: {1684        who: 'MultiAddress',1685        call: 'Call'1686      }1687    }1688  },1689  /**1690   * Lookup196: orml_vesting::module::Call<T>1691   **/1692  OrmlVestingModuleCall: {1693    _enum: {1694      claim: 'Null',1695      vested_transfer: {1696        dest: 'MultiAddress',1697        schedule: 'OrmlVestingVestingSchedule',1698      },1699      update_vesting_schedules: {1700        who: 'MultiAddress',1701        vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',1702      },1703      claim_for: {1704        dest: 'MultiAddress'1705      }1706    }1707  },1708  /**1709   * Lookup198: orml_xtokens::module::Call<T>1710   **/1711  OrmlXtokensModuleCall: {1712    _enum: {1713      transfer: {1714        currencyId: 'PalletForeignAssetsAssetIds',1715        amount: 'u128',1716        dest: 'XcmVersionedMultiLocation',1717        destWeightLimit: 'XcmV2WeightLimit',1718      },1719      transfer_multiasset: {1720        asset: 'XcmVersionedMultiAsset',1721        dest: 'XcmVersionedMultiLocation',1722        destWeightLimit: 'XcmV2WeightLimit',1723      },1724      transfer_with_fee: {1725        currencyId: 'PalletForeignAssetsAssetIds',1726        amount: 'u128',1727        fee: 'u128',1728        dest: 'XcmVersionedMultiLocation',1729        destWeightLimit: 'XcmV2WeightLimit',1730      },1731      transfer_multiasset_with_fee: {1732        asset: 'XcmVersionedMultiAsset',1733        fee: 'XcmVersionedMultiAsset',1734        dest: 'XcmVersionedMultiLocation',1735        destWeightLimit: 'XcmV2WeightLimit',1736      },1737      transfer_multicurrencies: {1738        currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',1739        feeItem: 'u32',1740        dest: 'XcmVersionedMultiLocation',1741        destWeightLimit: 'XcmV2WeightLimit',1742      },1743      transfer_multiassets: {1744        assets: 'XcmVersionedMultiAssets',1745        feeItem: 'u32',1746        dest: 'XcmVersionedMultiLocation',1747        destWeightLimit: 'XcmV2WeightLimit'1748      }1749    }1750  },1751  /**1752   * Lookup199: xcm::VersionedMultiAsset1753   **/1754  XcmVersionedMultiAsset: {1755    _enum: {1756      V0: 'XcmV0MultiAsset',1757      V1: 'XcmV1MultiAsset'1758    }1759  },1760  /**1761   * Lookup202: orml_tokens::module::Call<T>1762   **/1763  OrmlTokensModuleCall: {1764    _enum: {1765      transfer: {1766        dest: 'MultiAddress',1767        currencyId: 'PalletForeignAssetsAssetIds',1768        amount: 'Compact<u128>',1769      },1770      transfer_all: {1771        dest: 'MultiAddress',1772        currencyId: 'PalletForeignAssetsAssetIds',1773        keepAlive: 'bool',1774      },1775      transfer_keep_alive: {1776        dest: 'MultiAddress',1777        currencyId: 'PalletForeignAssetsAssetIds',1778        amount: 'Compact<u128>',1779      },1780      force_transfer: {1781        source: 'MultiAddress',1782        dest: 'MultiAddress',1783        currencyId: 'PalletForeignAssetsAssetIds',1784        amount: 'Compact<u128>',1785      },1786      set_balance: {1787        who: 'MultiAddress',1788        currencyId: 'PalletForeignAssetsAssetIds',1789        newFree: 'Compact<u128>',1790        newReserved: 'Compact<u128>'1791      }1792    }1793  },1794  /**1795   * Lookup203: cumulus_pallet_xcmp_queue::pallet::Call<T>1796   **/1797  CumulusPalletXcmpQueueCall: {1798    _enum: {1799      service_overweight: {1800        index: 'u64',1801        weightLimit: 'u64',1802      },1803      suspend_xcm_execution: 'Null',1804      resume_xcm_execution: 'Null',1805      update_suspend_threshold: {1806        _alias: {1807          new_: 'new',1808        },1809        new_: 'u32',1810      },1811      update_drop_threshold: {1812        _alias: {1813          new_: 'new',1814        },1815        new_: 'u32',1816      },1817      update_resume_threshold: {1818        _alias: {1819          new_: 'new',1820        },1821        new_: 'u32',1822      },1823      update_threshold_weight: {1824        _alias: {1825          new_: 'new',1826        },1827        new_: 'u64',1828      },1829      update_weight_restrict_decay: {1830        _alias: {1831          new_: 'new',1832        },1833        new_: 'u64',1834      },1835      update_xcmp_max_individual_weight: {1836        _alias: {1837          new_: 'new',1838        },1839        new_: 'u64'1840      }1841    }1842  },1843  /**1844   * Lookup204: pallet_xcm::pallet::Call<T>1845   **/1846  PalletXcmCall: {1847    _enum: {1848      send: {1849        dest: 'XcmVersionedMultiLocation',1850        message: 'XcmVersionedXcm',1851      },1852      teleport_assets: {1853        dest: 'XcmVersionedMultiLocation',1854        beneficiary: 'XcmVersionedMultiLocation',1855        assets: 'XcmVersionedMultiAssets',1856        feeAssetItem: 'u32',1857      },1858      reserve_transfer_assets: {1859        dest: 'XcmVersionedMultiLocation',1860        beneficiary: 'XcmVersionedMultiLocation',1861        assets: 'XcmVersionedMultiAssets',1862        feeAssetItem: 'u32',1863      },1864      execute: {1865        message: 'XcmVersionedXcm',1866        maxWeight: 'u64',1867      },1868      force_xcm_version: {1869        location: 'XcmV1MultiLocation',1870        xcmVersion: 'u32',1871      },1872      force_default_xcm_version: {1873        maybeXcmVersion: 'Option<u32>',1874      },1875      force_subscribe_version_notify: {1876        location: 'XcmVersionedMultiLocation',1877      },1878      force_unsubscribe_version_notify: {1879        location: 'XcmVersionedMultiLocation',1880      },1881      limited_reserve_transfer_assets: {1882        dest: 'XcmVersionedMultiLocation',1883        beneficiary: 'XcmVersionedMultiLocation',1884        assets: 'XcmVersionedMultiAssets',1885        feeAssetItem: 'u32',1886        weightLimit: 'XcmV2WeightLimit',1887      },1888      limited_teleport_assets: {1889        dest: 'XcmVersionedMultiLocation',1890        beneficiary: 'XcmVersionedMultiLocation',1891        assets: 'XcmVersionedMultiAssets',1892        feeAssetItem: 'u32',1893        weightLimit: 'XcmV2WeightLimit'1894      }1895    }1896  },1897  /**1898   * Lookup205: xcm::VersionedXcm<RuntimeCall>1899   **/1900  XcmVersionedXcm: {1901    _enum: {1902      V0: 'XcmV0Xcm',1903      V1: 'XcmV1Xcm',1904      V2: 'XcmV2Xcm'1905    }1906  },1907  /**1908   * Lookup206: xcm::v0::Xcm<RuntimeCall>1909   **/1910  XcmV0Xcm: {1911    _enum: {1912      WithdrawAsset: {1913        assets: 'Vec<XcmV0MultiAsset>',1914        effects: 'Vec<XcmV0Order>',1915      },1916      ReserveAssetDeposit: {1917        assets: 'Vec<XcmV0MultiAsset>',1918        effects: 'Vec<XcmV0Order>',1919      },1920      TeleportAsset: {1921        assets: 'Vec<XcmV0MultiAsset>',1922        effects: 'Vec<XcmV0Order>',1923      },1924      QueryResponse: {1925        queryId: 'Compact<u64>',1926        response: 'XcmV0Response',1927      },1928      TransferAsset: {1929        assets: 'Vec<XcmV0MultiAsset>',1930        dest: 'XcmV0MultiLocation',1931      },1932      TransferReserveAsset: {1933        assets: 'Vec<XcmV0MultiAsset>',1934        dest: 'XcmV0MultiLocation',1935        effects: 'Vec<XcmV0Order>',1936      },1937      Transact: {1938        originType: 'XcmV0OriginKind',1939        requireWeightAtMost: 'u64',1940        call: 'XcmDoubleEncoded',1941      },1942      HrmpNewChannelOpenRequest: {1943        sender: 'Compact<u32>',1944        maxMessageSize: 'Compact<u32>',1945        maxCapacity: 'Compact<u32>',1946      },1947      HrmpChannelAccepted: {1948        recipient: 'Compact<u32>',1949      },1950      HrmpChannelClosing: {1951        initiator: 'Compact<u32>',1952        sender: 'Compact<u32>',1953        recipient: 'Compact<u32>',1954      },1955      RelayedFrom: {1956        who: 'XcmV0MultiLocation',1957        message: 'XcmV0Xcm'1958      }1959    }1960  },1961  /**1962   * Lookup208: xcm::v0::order::Order<RuntimeCall>1963   **/1964  XcmV0Order: {1965    _enum: {1966      Null: 'Null',1967      DepositAsset: {1968        assets: 'Vec<XcmV0MultiAsset>',1969        dest: 'XcmV0MultiLocation',1970      },1971      DepositReserveAsset: {1972        assets: 'Vec<XcmV0MultiAsset>',1973        dest: 'XcmV0MultiLocation',1974        effects: 'Vec<XcmV0Order>',1975      },1976      ExchangeAsset: {1977        give: 'Vec<XcmV0MultiAsset>',1978        receive: 'Vec<XcmV0MultiAsset>',1979      },1980      InitiateReserveWithdraw: {1981        assets: 'Vec<XcmV0MultiAsset>',1982        reserve: 'XcmV0MultiLocation',1983        effects: 'Vec<XcmV0Order>',1984      },1985      InitiateTeleport: {1986        assets: 'Vec<XcmV0MultiAsset>',1987        dest: 'XcmV0MultiLocation',1988        effects: 'Vec<XcmV0Order>',1989      },1990      QueryHolding: {1991        queryId: 'Compact<u64>',1992        dest: 'XcmV0MultiLocation',1993        assets: 'Vec<XcmV0MultiAsset>',1994      },1995      BuyExecution: {1996        fees: 'XcmV0MultiAsset',1997        weight: 'u64',1998        debt: 'u64',1999        haltOnError: 'bool',2000        xcm: 'Vec<XcmV0Xcm>'2001      }2002    }2003  },2004  /**2005   * Lookup210: xcm::v0::Response2006   **/2007  XcmV0Response: {2008    _enum: {2009      Assets: 'Vec<XcmV0MultiAsset>'2010    }2011  },2012  /**2013   * Lookup211: xcm::v1::Xcm<RuntimeCall>2014   **/2015  XcmV1Xcm: {2016    _enum: {2017      WithdrawAsset: {2018        assets: 'XcmV1MultiassetMultiAssets',2019        effects: 'Vec<XcmV1Order>',2020      },2021      ReserveAssetDeposited: {2022        assets: 'XcmV1MultiassetMultiAssets',2023        effects: 'Vec<XcmV1Order>',2024      },2025      ReceiveTeleportedAsset: {2026        assets: 'XcmV1MultiassetMultiAssets',2027        effects: 'Vec<XcmV1Order>',2028      },2029      QueryResponse: {2030        queryId: 'Compact<u64>',2031        response: 'XcmV1Response',2032      },2033      TransferAsset: {2034        assets: 'XcmV1MultiassetMultiAssets',2035        beneficiary: 'XcmV1MultiLocation',2036      },2037      TransferReserveAsset: {2038        assets: 'XcmV1MultiassetMultiAssets',2039        dest: 'XcmV1MultiLocation',2040        effects: 'Vec<XcmV1Order>',2041      },2042      Transact: {2043        originType: 'XcmV0OriginKind',2044        requireWeightAtMost: 'u64',2045        call: 'XcmDoubleEncoded',2046      },2047      HrmpNewChannelOpenRequest: {2048        sender: 'Compact<u32>',2049        maxMessageSize: 'Compact<u32>',2050        maxCapacity: 'Compact<u32>',2051      },2052      HrmpChannelAccepted: {2053        recipient: 'Compact<u32>',2054      },2055      HrmpChannelClosing: {2056        initiator: 'Compact<u32>',2057        sender: 'Compact<u32>',2058        recipient: 'Compact<u32>',2059      },2060      RelayedFrom: {2061        who: 'XcmV1MultilocationJunctions',2062        message: 'XcmV1Xcm',2063      },2064      SubscribeVersion: {2065        queryId: 'Compact<u64>',2066        maxResponseWeight: 'Compact<u64>',2067      },2068      UnsubscribeVersion: 'Null'2069    }2070  },2071  /**2072   * Lookup213: xcm::v1::order::Order<RuntimeCall>2073   **/2074  XcmV1Order: {2075    _enum: {2076      Noop: 'Null',2077      DepositAsset: {2078        assets: 'XcmV1MultiassetMultiAssetFilter',2079        maxAssets: 'u32',2080        beneficiary: 'XcmV1MultiLocation',2081      },2082      DepositReserveAsset: {2083        assets: 'XcmV1MultiassetMultiAssetFilter',2084        maxAssets: 'u32',2085        dest: 'XcmV1MultiLocation',2086        effects: 'Vec<XcmV1Order>',2087      },2088      ExchangeAsset: {2089        give: 'XcmV1MultiassetMultiAssetFilter',2090        receive: 'XcmV1MultiassetMultiAssets',2091      },2092      InitiateReserveWithdraw: {2093        assets: 'XcmV1MultiassetMultiAssetFilter',2094        reserve: 'XcmV1MultiLocation',2095        effects: 'Vec<XcmV1Order>',2096      },2097      InitiateTeleport: {2098        assets: 'XcmV1MultiassetMultiAssetFilter',2099        dest: 'XcmV1MultiLocation',2100        effects: 'Vec<XcmV1Order>',2101      },2102      QueryHolding: {2103        queryId: 'Compact<u64>',2104        dest: 'XcmV1MultiLocation',2105        assets: 'XcmV1MultiassetMultiAssetFilter',2106      },2107      BuyExecution: {2108        fees: 'XcmV1MultiAsset',2109        weight: 'u64',2110        debt: 'u64',2111        haltOnError: 'bool',2112        instructions: 'Vec<XcmV1Xcm>'2113      }2114    }2115  },2116  /**2117   * Lookup215: xcm::v1::Response2118   **/2119  XcmV1Response: {2120    _enum: {2121      Assets: 'XcmV1MultiassetMultiAssets',2122      Version: 'u32'2123    }2124  },2125  /**2126   * Lookup229: cumulus_pallet_xcm::pallet::Call<T>2127   **/2128  CumulusPalletXcmCall: 'Null',2129  /**2130   * Lookup230: cumulus_pallet_dmp_queue::pallet::Call<T>2131   **/2132  CumulusPalletDmpQueueCall: {2133    _enum: {2134      service_overweight: {2135        index: 'u64',2136        weightLimit: 'u64'2137      }2138    }2139  },2140  /**2141   * Lookup231: pallet_inflation::pallet::Call<T>2142   **/2143  PalletInflationCall: {2144    _enum: {2145      start_inflation: {2146        inflationStartRelayBlock: 'u32'2147      }2148    }2149  },2150  /**2151   * Lookup232: pallet_unique::Call<T>2152   **/2153  PalletUniqueCall: {2154    _enum: {2155      create_collection: {2156        collectionName: 'Vec<u16>',2157        collectionDescription: 'Vec<u16>',2158        tokenPrefix: 'Bytes',2159        mode: 'UpDataStructsCollectionMode',2160      },2161      create_collection_ex: {2162        data: 'UpDataStructsCreateCollectionData',2163      },2164      destroy_collection: {2165        collectionId: 'u32',2166      },2167      add_to_allow_list: {2168        collectionId: 'u32',2169        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2170      },2171      remove_from_allow_list: {2172        collectionId: 'u32',2173        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2174      },2175      change_collection_owner: {2176        collectionId: 'u32',2177        newOwner: 'AccountId32',2178      },2179      add_collection_admin: {2180        collectionId: 'u32',2181        newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',2182      },2183      remove_collection_admin: {2184        collectionId: 'u32',2185        accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',2186      },2187      set_collection_sponsor: {2188        collectionId: 'u32',2189        newSponsor: 'AccountId32',2190      },2191      confirm_sponsorship: {2192        collectionId: 'u32',2193      },2194      remove_collection_sponsor: {2195        collectionId: 'u32',2196      },2197      create_item: {2198        collectionId: 'u32',2199        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2200        data: 'UpDataStructsCreateItemData',2201      },2202      create_multiple_items: {2203        collectionId: 'u32',2204        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2205        itemsData: 'Vec<UpDataStructsCreateItemData>',2206      },2207      set_collection_properties: {2208        collectionId: 'u32',2209        properties: 'Vec<UpDataStructsProperty>',2210      },2211      delete_collection_properties: {2212        collectionId: 'u32',2213        propertyKeys: 'Vec<Bytes>',2214      },2215      set_token_properties: {2216        collectionId: 'u32',2217        tokenId: 'u32',2218        properties: 'Vec<UpDataStructsProperty>',2219      },2220      delete_token_properties: {2221        collectionId: 'u32',2222        tokenId: 'u32',2223        propertyKeys: 'Vec<Bytes>',2224      },2225      set_token_property_permissions: {2226        collectionId: 'u32',2227        propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2228      },2229      create_multiple_items_ex: {2230        collectionId: 'u32',2231        data: 'UpDataStructsCreateItemExData',2232      },2233      set_transfers_enabled_flag: {2234        collectionId: 'u32',2235        value: 'bool',2236      },2237      burn_item: {2238        collectionId: 'u32',2239        itemId: 'u32',2240        value: 'u128',2241      },2242      burn_from: {2243        collectionId: 'u32',2244        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2245        itemId: 'u32',2246        value: 'u128',2247      },2248      transfer: {2249        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2250        collectionId: 'u32',2251        itemId: 'u32',2252        value: 'u128',2253      },2254      approve: {2255        spender: 'PalletEvmAccountBasicCrossAccountIdRepr',2256        collectionId: 'u32',2257        itemId: 'u32',2258        amount: 'u128',2259      },2260      transfer_from: {2261        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2262        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2263        collectionId: 'u32',2264        itemId: 'u32',2265        value: 'u128',2266      },2267      set_collection_limits: {2268        collectionId: 'u32',2269        newLimit: 'UpDataStructsCollectionLimits',2270      },2271      set_collection_permissions: {2272        collectionId: 'u32',2273        newPermission: 'UpDataStructsCollectionPermissions',2274      },2275      repartition: {2276        collectionId: 'u32',2277        tokenId: 'u32',2278        amount: 'u128',2279      },2280      set_allowance_for_all: {2281        collectionId: 'u32',2282        operator: 'PalletEvmAccountBasicCrossAccountIdRepr',2283        approve: 'bool',2284      },2285      repair_item: {2286        collectionId: 'u32',2287        itemId: 'u32'2288      }2289    }2290  },2291  /**2292   * Lookup237: up_data_structs::CollectionMode2293   **/2294  UpDataStructsCollectionMode: {2295    _enum: {2296      NFT: 'Null',2297      Fungible: 'u8',2298      ReFungible: 'Null'2299    }2300  },2301  /**2302   * Lookup238: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2303   **/2304  UpDataStructsCreateCollectionData: {2305    mode: 'UpDataStructsCollectionMode',2306    access: 'Option<UpDataStructsAccessMode>',2307    name: 'Vec<u16>',2308    description: 'Vec<u16>',2309    tokenPrefix: 'Bytes',2310    pendingSponsor: 'Option<AccountId32>',2311    limits: 'Option<UpDataStructsCollectionLimits>',2312    permissions: 'Option<UpDataStructsCollectionPermissions>',2313    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2314    properties: 'Vec<UpDataStructsProperty>'2315  },2316  /**2317   * Lookup240: up_data_structs::AccessMode2318   **/2319  UpDataStructsAccessMode: {2320    _enum: ['Normal', 'AllowList']2321  },2322  /**2323   * Lookup242: up_data_structs::CollectionLimits2324   **/2325  UpDataStructsCollectionLimits: {2326    accountTokenOwnershipLimit: 'Option<u32>',2327    sponsoredDataSize: 'Option<u32>',2328    sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',2329    tokenLimit: 'Option<u32>',2330    sponsorTransferTimeout: 'Option<u32>',2331    sponsorApproveTimeout: 'Option<u32>',2332    ownerCanTransfer: 'Option<bool>',2333    ownerCanDestroy: 'Option<bool>',2334    transfersEnabled: 'Option<bool>'2335  },2336  /**2337   * Lookup244: up_data_structs::SponsoringRateLimit2338   **/2339  UpDataStructsSponsoringRateLimit: {2340    _enum: {2341      SponsoringDisabled: 'Null',2342      Blocks: 'u32'2343    }2344  },2345  /**2346   * Lookup247: up_data_structs::CollectionPermissions2347   **/2348  UpDataStructsCollectionPermissions: {2349    access: 'Option<UpDataStructsAccessMode>',2350    mintMode: 'Option<bool>',2351    nesting: 'Option<UpDataStructsNestingPermissions>'2352  },2353  /**2354   * Lookup249: up_data_structs::NestingPermissions2355   **/2356  UpDataStructsNestingPermissions: {2357    tokenOwner: 'bool',2358    collectionAdmin: 'bool',2359    restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2360  },2361  /**2362   * Lookup251: up_data_structs::OwnerRestrictedSet2363   **/2364  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2365  /**2366   * Lookup256: up_data_structs::PropertyKeyPermission2367   **/2368  UpDataStructsPropertyKeyPermission: {2369    key: 'Bytes',2370    permission: 'UpDataStructsPropertyPermission'2371  },2372  /**2373   * Lookup257: up_data_structs::PropertyPermission2374   **/2375  UpDataStructsPropertyPermission: {2376    mutable: 'bool',2377    collectionAdmin: 'bool',2378    tokenOwner: 'bool'2379  },2380  /**2381   * Lookup260: up_data_structs::Property2382   **/2383  UpDataStructsProperty: {2384    key: 'Bytes',2385    value: 'Bytes'2386  },2387  /**2388   * Lookup263: up_data_structs::CreateItemData2389   **/2390  UpDataStructsCreateItemData: {2391    _enum: {2392      NFT: 'UpDataStructsCreateNftData',2393      Fungible: 'UpDataStructsCreateFungibleData',2394      ReFungible: 'UpDataStructsCreateReFungibleData'2395    }2396  },2397  /**2398   * Lookup264: up_data_structs::CreateNftData2399   **/2400  UpDataStructsCreateNftData: {2401    properties: 'Vec<UpDataStructsProperty>'2402  },2403  /**2404   * Lookup265: up_data_structs::CreateFungibleData2405   **/2406  UpDataStructsCreateFungibleData: {2407    value: 'u128'2408  },2409  /**2410   * Lookup266: up_data_structs::CreateReFungibleData2411   **/2412  UpDataStructsCreateReFungibleData: {2413    pieces: 'u128',2414    properties: 'Vec<UpDataStructsProperty>'2415  },2416  /**2417   * Lookup269: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2418   **/2419  UpDataStructsCreateItemExData: {2420    _enum: {2421      NFT: 'Vec<UpDataStructsCreateNftExData>',2422      Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2423      RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExSingleOwner>',2424      RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2425    }2426  },2427  /**2428   * Lookup271: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2429   **/2430  UpDataStructsCreateNftExData: {2431    properties: 'Vec<UpDataStructsProperty>',2432    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2433  },2434  /**2435   * Lookup278: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2436   **/2437  UpDataStructsCreateRefungibleExSingleOwner: {2438    user: 'PalletEvmAccountBasicCrossAccountIdRepr',2439    pieces: 'u128',2440    properties: 'Vec<UpDataStructsProperty>'2441  },2442  /**2443   * Lookup280: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2444   **/2445  UpDataStructsCreateRefungibleExMultipleOwners: {2446    users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2447    properties: 'Vec<UpDataStructsProperty>'2448  },2449  /**2450   * Lookup281: pallet_configuration::pallet::Call<T>2451   **/2452  PalletConfigurationCall: {2453    _enum: {2454      set_weight_to_fee_coefficient_override: {2455        coeff: 'Option<u32>',2456      },2457      set_min_gas_price_override: {2458        coeff: 'Option<u64>',2459      },2460      set_xcm_allowed_locations: {2461        locations: 'Option<Vec<XcmV1MultiLocation>>',2462      },2463      set_app_promotion_configuration_override: {2464        configuration: 'PalletConfigurationAppPromotionConfiguration'2465      }2466    }2467  },2468  /**2469   * Lookup286: pallet_configuration::AppPromotionConfiguration<BlockNumber>2470   **/2471  PalletConfigurationAppPromotionConfiguration: {2472    recalculationInterval: 'Option<u32>',2473    pendingInterval: 'Option<u32>',2474    intervalIncome: 'Option<Perbill>',2475    maxStakersPerCalculation: 'Option<u8>'2476  },2477  /**2478   * Lookup289: pallet_template_transaction_payment::Call<T>2479   **/2480  PalletTemplateTransactionPaymentCall: 'Null',2481  /**2482   * Lookup290: pallet_structure::pallet::Call<T>2483   **/2484  PalletStructureCall: 'Null',2485  /**2486   * Lookup291: pallet_rmrk_core::pallet::Call<T>2487   **/2488  PalletRmrkCoreCall: {2489    _enum: {2490      create_collection: {2491        metadata: 'Bytes',2492        max: 'Option<u32>',2493        symbol: 'Bytes',2494      },2495      destroy_collection: {2496        collectionId: 'u32',2497      },2498      change_collection_issuer: {2499        collectionId: 'u32',2500        newIssuer: 'MultiAddress',2501      },2502      lock_collection: {2503        collectionId: 'u32',2504      },2505      mint_nft: {2506        owner: 'Option<AccountId32>',2507        collectionId: 'u32',2508        recipient: 'Option<AccountId32>',2509        royaltyAmount: 'Option<Permill>',2510        metadata: 'Bytes',2511        transferable: 'bool',2512        resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',2513      },2514      burn_nft: {2515        collectionId: 'u32',2516        nftId: 'u32',2517        maxBurns: 'u32',2518      },2519      send: {2520        rmrkCollectionId: 'u32',2521        rmrkNftId: 'u32',2522        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2523      },2524      accept_nft: {2525        rmrkCollectionId: 'u32',2526        rmrkNftId: 'u32',2527        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2528      },2529      reject_nft: {2530        rmrkCollectionId: 'u32',2531        rmrkNftId: 'u32',2532      },2533      accept_resource: {2534        rmrkCollectionId: 'u32',2535        rmrkNftId: 'u32',2536        resourceId: 'u32',2537      },2538      accept_resource_removal: {2539        rmrkCollectionId: 'u32',2540        rmrkNftId: 'u32',2541        resourceId: 'u32',2542      },2543      set_property: {2544        rmrkCollectionId: 'Compact<u32>',2545        maybeNftId: 'Option<u32>',2546        key: 'Bytes',2547        value: 'Bytes',2548      },2549      set_priority: {2550        rmrkCollectionId: 'u32',2551        rmrkNftId: 'u32',2552        priorities: 'Vec<u32>',2553      },2554      add_basic_resource: {2555        rmrkCollectionId: 'u32',2556        nftId: 'u32',2557        resource: 'RmrkTraitsResourceBasicResource',2558      },2559      add_composable_resource: {2560        rmrkCollectionId: 'u32',2561        nftId: 'u32',2562        resource: 'RmrkTraitsResourceComposableResource',2563      },2564      add_slot_resource: {2565        rmrkCollectionId: 'u32',2566        nftId: 'u32',2567        resource: 'RmrkTraitsResourceSlotResource',2568      },2569      remove_resource: {2570        rmrkCollectionId: 'u32',2571        nftId: 'u32',2572        resourceId: 'u32'2573      }2574    }2575  },2576  /**2577   * Lookup297: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2578   **/2579  RmrkTraitsResourceResourceTypes: {2580    _enum: {2581      Basic: 'RmrkTraitsResourceBasicResource',2582      Composable: 'RmrkTraitsResourceComposableResource',2583      Slot: 'RmrkTraitsResourceSlotResource'2584    }2585  },2586  /**2587   * Lookup299: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2588   **/2589  RmrkTraitsResourceBasicResource: {2590    src: 'Option<Bytes>',2591    metadata: 'Option<Bytes>',2592    license: 'Option<Bytes>',2593    thumb: 'Option<Bytes>'2594  },2595  /**2596   * Lookup301: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2597   **/2598  RmrkTraitsResourceComposableResource: {2599    parts: 'Vec<u32>',2600    base: 'u32',2601    src: 'Option<Bytes>',2602    metadata: 'Option<Bytes>',2603    license: 'Option<Bytes>',2604    thumb: 'Option<Bytes>'2605  },2606  /**2607   * Lookup302: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2608   **/2609  RmrkTraitsResourceSlotResource: {2610    base: 'u32',2611    src: 'Option<Bytes>',2612    metadata: 'Option<Bytes>',2613    slot: 'u32',2614    license: 'Option<Bytes>',2615    thumb: 'Option<Bytes>'2616  },2617  /**2618   * Lookup305: pallet_rmrk_equip::pallet::Call<T>2619   **/2620  PalletRmrkEquipCall: {2621    _enum: {2622      create_base: {2623        baseType: 'Bytes',2624        symbol: 'Bytes',2625        parts: 'Vec<RmrkTraitsPartPartType>',2626      },2627      theme_add: {2628        baseId: 'u32',2629        theme: 'RmrkTraitsTheme',2630      },2631      equippable: {2632        baseId: 'u32',2633        slotId: 'u32',2634        equippables: 'RmrkTraitsPartEquippableList'2635      }2636    }2637  },2638  /**2639   * Lookup308: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2640   **/2641  RmrkTraitsPartPartType: {2642    _enum: {2643      FixedPart: 'RmrkTraitsPartFixedPart',2644      SlotPart: 'RmrkTraitsPartSlotPart'2645    }2646  },2647  /**2648   * Lookup310: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2649   **/2650  RmrkTraitsPartFixedPart: {2651    id: 'u32',2652    z: 'u32',2653    src: 'Bytes'2654  },2655  /**2656   * Lookup311: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2657   **/2658  RmrkTraitsPartSlotPart: {2659    id: 'u32',2660    equippable: 'RmrkTraitsPartEquippableList',2661    src: 'Bytes',2662    z: 'u32'2663  },2664  /**2665   * Lookup312: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2666   **/2667  RmrkTraitsPartEquippableList: {2668    _enum: {2669      All: 'Null',2670      Empty: 'Null',2671      Custom: 'Vec<u32>'2672    }2673  },2674  /**2675   * Lookup314: 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>>2676   **/2677  RmrkTraitsTheme: {2678    name: 'Bytes',2679    properties: 'Vec<RmrkTraitsThemeThemeProperty>',2680    inherit: 'bool'2681  },2682  /**2683   * Lookup316: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2684   **/2685  RmrkTraitsThemeThemeProperty: {2686    key: 'Bytes',2687    value: 'Bytes'2688  },2689  /**2690   * Lookup318: pallet_app_promotion::pallet::Call<T>2691   **/2692  PalletAppPromotionCall: {2693    _enum: {2694      set_admin_address: {2695        admin: 'PalletEvmAccountBasicCrossAccountIdRepr',2696      },2697      stake: {2698        amount: 'u128',2699      },2700      unstake: 'Null',2701      sponsor_collection: {2702        collectionId: 'u32',2703      },2704      stop_sponsoring_collection: {2705        collectionId: 'u32',2706      },2707      sponsor_contract: {2708        contractId: 'H160',2709      },2710      stop_sponsoring_contract: {2711        contractId: 'H160',2712      },2713      payout_stakers: {2714        stakersNumber: 'Option<u8>'2715      }2716    }2717  },2718  /**2719   * Lookup319: pallet_foreign_assets::module::Call<T>2720   **/2721  PalletForeignAssetsModuleCall: {2722    _enum: {2723      register_foreign_asset: {2724        owner: 'AccountId32',2725        location: 'XcmVersionedMultiLocation',2726        metadata: 'PalletForeignAssetsModuleAssetMetadata',2727      },2728      update_foreign_asset: {2729        foreignAssetId: 'u32',2730        location: 'XcmVersionedMultiLocation',2731        metadata: 'PalletForeignAssetsModuleAssetMetadata'2732      }2733    }2734  },2735  /**2736   * Lookup320: pallet_evm::pallet::Call<T>2737   **/2738  PalletEvmCall: {2739    _enum: {2740      withdraw: {2741        address: 'H160',2742        value: 'u128',2743      },2744      call: {2745        source: 'H160',2746        target: 'H160',2747        input: 'Bytes',2748        value: 'U256',2749        gasLimit: 'u64',2750        maxFeePerGas: 'U256',2751        maxPriorityFeePerGas: 'Option<U256>',2752        nonce: 'Option<U256>',2753        accessList: 'Vec<(H160,Vec<H256>)>',2754      },2755      create: {2756        source: 'H160',2757        init: 'Bytes',2758        value: 'U256',2759        gasLimit: 'u64',2760        maxFeePerGas: 'U256',2761        maxPriorityFeePerGas: 'Option<U256>',2762        nonce: 'Option<U256>',2763        accessList: 'Vec<(H160,Vec<H256>)>',2764      },2765      create2: {2766        source: 'H160',2767        init: 'Bytes',2768        salt: 'H256',2769        value: 'U256',2770        gasLimit: 'u64',2771        maxFeePerGas: 'U256',2772        maxPriorityFeePerGas: 'Option<U256>',2773        nonce: 'Option<U256>',2774        accessList: 'Vec<(H160,Vec<H256>)>'2775      }2776    }2777  },2778  /**2779   * Lookup326: pallet_ethereum::pallet::Call<T>2780   **/2781  PalletEthereumCall: {2782    _enum: {2783      transact: {2784        transaction: 'EthereumTransactionTransactionV2'2785      }2786    }2787  },2788  /**2789   * Lookup327: ethereum::transaction::TransactionV22790   **/2791  EthereumTransactionTransactionV2: {2792    _enum: {2793      Legacy: 'EthereumTransactionLegacyTransaction',2794      EIP2930: 'EthereumTransactionEip2930Transaction',2795      EIP1559: 'EthereumTransactionEip1559Transaction'2796    }2797  },2798  /**2799   * Lookup328: ethereum::transaction::LegacyTransaction2800   **/2801  EthereumTransactionLegacyTransaction: {2802    nonce: 'U256',2803    gasPrice: 'U256',2804    gasLimit: 'U256',2805    action: 'EthereumTransactionTransactionAction',2806    value: 'U256',2807    input: 'Bytes',2808    signature: 'EthereumTransactionTransactionSignature'2809  },2810  /**2811   * Lookup329: ethereum::transaction::TransactionAction2812   **/2813  EthereumTransactionTransactionAction: {2814    _enum: {2815      Call: 'H160',2816      Create: 'Null'2817    }2818  },2819  /**2820   * Lookup330: ethereum::transaction::TransactionSignature2821   **/2822  EthereumTransactionTransactionSignature: {2823    v: 'u64',2824    r: 'H256',2825    s: 'H256'2826  },2827  /**2828   * Lookup332: ethereum::transaction::EIP2930Transaction2829   **/2830  EthereumTransactionEip2930Transaction: {2831    chainId: 'u64',2832    nonce: 'U256',2833    gasPrice: 'U256',2834    gasLimit: 'U256',2835    action: 'EthereumTransactionTransactionAction',2836    value: 'U256',2837    input: 'Bytes',2838    accessList: 'Vec<EthereumTransactionAccessListItem>',2839    oddYParity: 'bool',2840    r: 'H256',2841    s: 'H256'2842  },2843  /**2844   * Lookup334: ethereum::transaction::AccessListItem2845   **/2846  EthereumTransactionAccessListItem: {2847    address: 'H160',2848    storageKeys: 'Vec<H256>'2849  },2850  /**2851   * Lookup335: ethereum::transaction::EIP1559Transaction2852   **/2853  EthereumTransactionEip1559Transaction: {2854    chainId: 'u64',2855    nonce: 'U256',2856    maxPriorityFeePerGas: 'U256',2857    maxFeePerGas: 'U256',2858    gasLimit: 'U256',2859    action: 'EthereumTransactionTransactionAction',2860    value: 'U256',2861    input: 'Bytes',2862    accessList: 'Vec<EthereumTransactionAccessListItem>',2863    oddYParity: 'bool',2864    r: 'H256',2865    s: 'H256'2866  },2867  /**2868   * Lookup336: pallet_evm_migration::pallet::Call<T>2869   **/2870  PalletEvmMigrationCall: {2871    _enum: {2872      begin: {2873        address: 'H160',2874      },2875      set_data: {2876        address: 'H160',2877        data: 'Vec<(H256,H256)>',2878      },2879      finish: {2880        address: 'H160',2881        code: 'Bytes',2882      },2883      insert_eth_logs: {2884        logs: 'Vec<EthereumLog>',2885      },2886      insert_events: {2887        events: 'Vec<Bytes>'2888      }2889    }2890  },2891  /**2892   * Lookup340: pallet_maintenance::pallet::Call<T>2893   **/2894  PalletMaintenanceCall: {2895    _enum: ['enable', 'disable']2896  },2897  /**2898   * Lookup341: pallet_test_utils::pallet::Call<T>2899   **/2900  PalletTestUtilsCall: {2901    _enum: {2902      enable: 'Null',2903      set_test_value: {2904        value: 'u32',2905      },2906      set_test_value_and_rollback: {2907        value: 'u32',2908      },2909      inc_test_value: 'Null',2910      just_take_fee: 'Null',2911      batch_all: {2912        calls: 'Vec<Call>'2913      }2914    }2915  },2916  /**2917   * Lookup343: pallet_sudo::pallet::Error<T>2918   **/2919  PalletSudoError: {2920    _enum: ['RequireSudo']2921  },2922  /**2923   * Lookup345: orml_vesting::module::Error<T>2924   **/2925  OrmlVestingModuleError: {2926    _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']2927  },2928  /**2929   * Lookup346: orml_xtokens::module::Error<T>2930   **/2931  OrmlXtokensModuleError: {2932    _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']2933  },2934  /**2935   * Lookup349: orml_tokens::BalanceLock<Balance>2936   **/2937  OrmlTokensBalanceLock: {2938    id: '[u8;8]',2939    amount: 'u128'2940  },2941  /**2942   * Lookup351: orml_tokens::AccountData<Balance>2943   **/2944  OrmlTokensAccountData: {2945    free: 'u128',2946    reserved: 'u128',2947    frozen: 'u128'2948  },2949  /**2950   * Lookup353: orml_tokens::ReserveData<ReserveIdentifier, Balance>2951   **/2952  OrmlTokensReserveData: {2953    id: 'Null',2954    amount: 'u128'2955  },2956  /**2957   * Lookup355: orml_tokens::module::Error<T>2958   **/2959  OrmlTokensModuleError: {2960    _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']2961  },2962  /**2963   * Lookup357: cumulus_pallet_xcmp_queue::InboundChannelDetails2964   **/2965  CumulusPalletXcmpQueueInboundChannelDetails: {2966    sender: 'u32',2967    state: 'CumulusPalletXcmpQueueInboundState',2968    messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'2969  },2970  /**2971   * Lookup358: cumulus_pallet_xcmp_queue::InboundState2972   **/2973  CumulusPalletXcmpQueueInboundState: {2974    _enum: ['Ok', 'Suspended']2975  },2976  /**2977   * Lookup361: polkadot_parachain::primitives::XcmpMessageFormat2978   **/2979  PolkadotParachainPrimitivesXcmpMessageFormat: {2980    _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']2981  },2982  /**2983   * Lookup364: cumulus_pallet_xcmp_queue::OutboundChannelDetails2984   **/2985  CumulusPalletXcmpQueueOutboundChannelDetails: {2986    recipient: 'u32',2987    state: 'CumulusPalletXcmpQueueOutboundState',2988    signalsExist: 'bool',2989    firstIndex: 'u16',2990    lastIndex: 'u16'2991  },2992  /**2993   * Lookup365: cumulus_pallet_xcmp_queue::OutboundState2994   **/2995  CumulusPalletXcmpQueueOutboundState: {2996    _enum: ['Ok', 'Suspended']2997  },2998  /**2999   * Lookup367: cumulus_pallet_xcmp_queue::QueueConfigData3000   **/3001  CumulusPalletXcmpQueueQueueConfigData: {3002    suspendThreshold: 'u32',3003    dropThreshold: 'u32',3004    resumeThreshold: 'u32',3005    thresholdWeight: 'SpWeightsWeightV2Weight',3006    weightRestrictDecay: 'SpWeightsWeightV2Weight',3007    xcmpMaxIndividualWeight: 'SpWeightsWeightV2Weight'3008  },3009  /**3010   * Lookup369: cumulus_pallet_xcmp_queue::pallet::Error<T>3011   **/3012  CumulusPalletXcmpQueueError: {3013    _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3014  },3015  /**3016   * Lookup370: pallet_xcm::pallet::Error<T>3017   **/3018  PalletXcmError: {3019    _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3020  },3021  /**3022   * Lookup371: cumulus_pallet_xcm::pallet::Error<T>3023   **/3024  CumulusPalletXcmError: 'Null',3025  /**3026   * Lookup372: cumulus_pallet_dmp_queue::ConfigData3027   **/3028  CumulusPalletDmpQueueConfigData: {3029    maxIndividual: 'SpWeightsWeightV2Weight'3030  },3031  /**3032   * Lookup373: cumulus_pallet_dmp_queue::PageIndexData3033   **/3034  CumulusPalletDmpQueuePageIndexData: {3035    beginUsed: 'u32',3036    endUsed: 'u32',3037    overweightCount: 'u64'3038  },3039  /**3040   * Lookup376: cumulus_pallet_dmp_queue::pallet::Error<T>3041   **/3042  CumulusPalletDmpQueueError: {3043    _enum: ['Unknown', 'OverLimit']3044  },3045  /**3046   * Lookup380: pallet_unique::Error<T>3047   **/3048  PalletUniqueError: {3049    _enum: ['CollectionDecimalPointLimitExceeded', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3050  },3051  /**3052   * Lookup381: pallet_configuration::pallet::Error<T>3053   **/3054  PalletConfigurationError: {3055    _enum: ['InconsistentConfiguration']3056  },3057  /**3058   * Lookup382: up_data_structs::Collection<sp_core::crypto::AccountId32>3059   **/3060  UpDataStructsCollection: {3061    owner: 'AccountId32',3062    mode: 'UpDataStructsCollectionMode',3063    name: 'Vec<u16>',3064    description: 'Vec<u16>',3065    tokenPrefix: 'Bytes',3066    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3067    limits: 'UpDataStructsCollectionLimits',3068    permissions: 'UpDataStructsCollectionPermissions',3069    flags: '[u8;1]'3070  },3071  /**3072   * Lookup383: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3073   **/3074  UpDataStructsSponsorshipStateAccountId32: {3075    _enum: {3076      Disabled: 'Null',3077      Unconfirmed: 'AccountId32',3078      Confirmed: 'AccountId32'3079    }3080  },3081  /**3082   * Lookup385: up_data_structs::Properties3083   **/3084  UpDataStructsProperties: {3085    map: 'UpDataStructsPropertiesMapBoundedVec',3086    consumedSpace: 'u32',3087    spaceLimit: 'u32'3088  },3089  /**3090   * Lookup386: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3091   **/3092  UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3093  /**3094   * Lookup391: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3095   **/3096  UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3097  /**3098   * Lookup398: up_data_structs::CollectionStats3099   **/3100  UpDataStructsCollectionStats: {3101    created: 'u32',3102    destroyed: 'u32',3103    alive: 'u32'3104  },3105  /**3106   * Lookup399: up_data_structs::TokenChild3107   **/3108  UpDataStructsTokenChild: {3109    token: 'u32',3110    collection: 'u32'3111  },3112  /**3113   * Lookup400: PhantomType::up_data_structs<T>3114   **/3115  PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3116  /**3117   * Lookup402: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3118   **/3119  UpDataStructsTokenData: {3120    properties: 'Vec<UpDataStructsProperty>',3121    owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3122    pieces: 'u128'3123  },3124  /**3125   * Lookup404: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3126   **/3127  UpDataStructsRpcCollection: {3128    owner: 'AccountId32',3129    mode: 'UpDataStructsCollectionMode',3130    name: 'Vec<u16>',3131    description: 'Vec<u16>',3132    tokenPrefix: 'Bytes',3133    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3134    limits: 'UpDataStructsCollectionLimits',3135    permissions: 'UpDataStructsCollectionPermissions',3136    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3137    properties: 'Vec<UpDataStructsProperty>',3138    readOnly: 'bool',3139    flags: 'UpDataStructsRpcCollectionFlags'3140  },3141  /**3142   * Lookup405: up_data_structs::RpcCollectionFlags3143   **/3144  UpDataStructsRpcCollectionFlags: {3145    foreign: 'bool',3146    erc721metadata: 'bool'3147  },3148  /**3149   * Lookup406: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3150   **/3151  RmrkTraitsCollectionCollectionInfo: {3152    issuer: 'AccountId32',3153    metadata: 'Bytes',3154    max: 'Option<u32>',3155    symbol: 'Bytes',3156    nftsCount: 'u32'3157  },3158  /**3159   * Lookup407: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3160   **/3161  RmrkTraitsNftNftInfo: {3162    owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3163    royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3164    metadata: 'Bytes',3165    equipped: 'bool',3166    pending: 'bool'3167  },3168  /**3169   * Lookup409: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3170   **/3171  RmrkTraitsNftRoyaltyInfo: {3172    recipient: 'AccountId32',3173    amount: 'Permill'3174  },3175  /**3176   * Lookup410: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3177   **/3178  RmrkTraitsResourceResourceInfo: {3179    id: 'u32',3180    resource: 'RmrkTraitsResourceResourceTypes',3181    pending: 'bool',3182    pendingRemoval: 'bool'3183  },3184  /**3185   * Lookup411: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3186   **/3187  RmrkTraitsPropertyPropertyInfo: {3188    key: 'Bytes',3189    value: 'Bytes'3190  },3191  /**3192   * Lookup412: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3193   **/3194  RmrkTraitsBaseBaseInfo: {3195    issuer: 'AccountId32',3196    baseType: 'Bytes',3197    symbol: 'Bytes'3198  },3199  /**3200   * Lookup413: rmrk_traits::nft::NftChild3201   **/3202  RmrkTraitsNftNftChild: {3203    collectionId: 'u32',3204    nftId: 'u32'3205  },3206  /**3207   * Lookup415: pallet_common::pallet::Error<T>3208   **/3209  PalletCommonError: {3210    _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']3211  },3212  /**3213   * Lookup417: pallet_fungible::pallet::Error<T>3214   **/3215  PalletFungibleError: {3216    _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed', 'SettingAllowanceForAllNotAllowed', 'FungibleTokensAreAlwaysValid']3217  },3218  /**3219   * Lookup418: pallet_refungible::ItemData3220   **/3221  PalletRefungibleItemData: {3222    constData: 'Bytes'3223  },3224  /**3225   * Lookup423: pallet_refungible::pallet::Error<T>3226   **/3227  PalletRefungibleError: {3228    _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3229  },3230  /**3231   * Lookup424: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3232   **/3233  PalletNonfungibleItemData: {3234    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3235  },3236  /**3237   * Lookup426: up_data_structs::PropertyScope3238   **/3239  UpDataStructsPropertyScope: {3240    _enum: ['None', 'Rmrk']3241  },3242  /**3243   * Lookup428: pallet_nonfungible::pallet::Error<T>3244   **/3245  PalletNonfungibleError: {3246    _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3247  },3248  /**3249   * Lookup429: pallet_structure::pallet::Error<T>3250   **/3251  PalletStructureError: {3252    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3253  },3254  /**3255   * Lookup430: pallet_rmrk_core::pallet::Error<T>3256   **/3257  PalletRmrkCoreError: {3258    _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3259  },3260  /**3261   * Lookup432: pallet_rmrk_equip::pallet::Error<T>3262   **/3263  PalletRmrkEquipError: {3264    _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3265  },3266  /**3267   * Lookup438: pallet_app_promotion::pallet::Error<T>3268   **/3269  PalletAppPromotionError: {3270    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3271  },3272  /**3273   * Lookup439: pallet_foreign_assets::module::Error<T>3274   **/3275  PalletForeignAssetsModuleError: {3276    _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3277  },3278  /**3279   * Lookup441: pallet_evm::pallet::Error<T>3280   **/3281  PalletEvmError: {3282    _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']3283  },3284  /**3285   * Lookup444: fp_rpc::TransactionStatus3286   **/3287  FpRpcTransactionStatus: {3288    transactionHash: 'H256',3289    transactionIndex: 'u32',3290    from: 'H160',3291    to: 'Option<H160>',3292    contractAddress: 'Option<H160>',3293    logs: 'Vec<EthereumLog>',3294    logsBloom: 'EthbloomBloom'3295  },3296  /**3297   * Lookup446: ethbloom::Bloom3298   **/3299  EthbloomBloom: '[u8;256]',3300  /**3301   * Lookup448: ethereum::receipt::ReceiptV33302   **/3303  EthereumReceiptReceiptV3: {3304    _enum: {3305      Legacy: 'EthereumReceiptEip658ReceiptData',3306      EIP2930: 'EthereumReceiptEip658ReceiptData',3307      EIP1559: 'EthereumReceiptEip658ReceiptData'3308    }3309  },3310  /**3311   * Lookup449: ethereum::receipt::EIP658ReceiptData3312   **/3313  EthereumReceiptEip658ReceiptData: {3314    statusCode: 'u8',3315    usedGas: 'U256',3316    logsBloom: 'EthbloomBloom',3317    logs: 'Vec<EthereumLog>'3318  },3319  /**3320   * Lookup450: ethereum::block::Block<ethereum::transaction::TransactionV2>3321   **/3322  EthereumBlock: {3323    header: 'EthereumHeader',3324    transactions: 'Vec<EthereumTransactionTransactionV2>',3325    ommers: 'Vec<EthereumHeader>'3326  },3327  /**3328   * Lookup451: ethereum::header::Header3329   **/3330  EthereumHeader: {3331    parentHash: 'H256',3332    ommersHash: 'H256',3333    beneficiary: 'H160',3334    stateRoot: 'H256',3335    transactionsRoot: 'H256',3336    receiptsRoot: 'H256',3337    logsBloom: 'EthbloomBloom',3338    difficulty: 'U256',3339    number: 'U256',3340    gasLimit: 'U256',3341    gasUsed: 'U256',3342    timestamp: 'u64',3343    extraData: 'Bytes',3344    mixHash: 'H256',3345    nonce: 'EthereumTypesHashH64'3346  },3347  /**3348   * Lookup452: ethereum_types::hash::H643349   **/3350  EthereumTypesHashH64: '[u8;8]',3351  /**3352   * Lookup457: pallet_ethereum::pallet::Error<T>3353   **/3354  PalletEthereumError: {3355    _enum: ['InvalidSignature', 'PreLogExists']3356  },3357  /**3358   * Lookup458: pallet_evm_coder_substrate::pallet::Error<T>3359   **/3360  PalletEvmCoderSubstrateError: {3361    _enum: ['OutOfGas', 'OutOfFund']3362  },3363  /**3364   * Lookup459: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3365   **/3366  UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3367    _enum: {3368      Disabled: 'Null',3369      Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3370      Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3371    }3372  },3373  /**3374   * Lookup460: pallet_evm_contract_helpers::SponsoringModeT3375   **/3376  PalletEvmContractHelpersSponsoringModeT: {3377    _enum: ['Disabled', 'Allowlisted', 'Generous']3378  },3379  /**3380   * Lookup466: pallet_evm_contract_helpers::pallet::Error<T>3381   **/3382  PalletEvmContractHelpersError: {3383    _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3384  },3385  /**3386   * Lookup467: pallet_evm_migration::pallet::Error<T>3387   **/3388  PalletEvmMigrationError: {3389    _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3390  },3391  /**3392   * Lookup468: pallet_maintenance::pallet::Error<T>3393   **/3394  PalletMaintenanceError: 'Null',3395  /**3396   * Lookup469: pallet_test_utils::pallet::Error<T>3397   **/3398  PalletTestUtilsError: {3399    _enum: ['TestPalletDisabled', 'TriggerRollback']3400  },3401  /**3402   * Lookup471: sp_runtime::MultiSignature3403   **/3404  SpRuntimeMultiSignature: {3405    _enum: {3406      Ed25519: 'SpCoreEd25519Signature',3407      Sr25519: 'SpCoreSr25519Signature',3408      Ecdsa: 'SpCoreEcdsaSignature'3409    }3410  },3411  /**3412   * Lookup472: sp_core::ed25519::Signature3413   **/3414  SpCoreEd25519Signature: '[u8;64]',3415  /**3416   * Lookup474: sp_core::sr25519::Signature3417   **/3418  SpCoreSr25519Signature: '[u8;64]',3419  /**3420   * Lookup475: sp_core::ecdsa::Signature3421   **/3422  SpCoreEcdsaSignature: '[u8;65]',3423  /**3424   * Lookup478: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3425   **/3426  FrameSystemExtensionsCheckSpecVersion: 'Null',3427  /**3428   * Lookup479: frame_system::extensions::check_tx_version::CheckTxVersion<T>3429   **/3430  FrameSystemExtensionsCheckTxVersion: 'Null',3431  /**3432   * Lookup480: frame_system::extensions::check_genesis::CheckGenesis<T>3433   **/3434  FrameSystemExtensionsCheckGenesis: 'Null',3435  /**3436   * Lookup483: frame_system::extensions::check_nonce::CheckNonce<T>3437   **/3438  FrameSystemExtensionsCheckNonce: 'Compact<u32>',3439  /**3440   * Lookup484: frame_system::extensions::check_weight::CheckWeight<T>3441   **/3442  FrameSystemExtensionsCheckWeight: 'Null',3443  /**3444   * Lookup485: opal_runtime::runtime_common::maintenance::CheckMaintenance3445   **/3446  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3447  /**3448   * Lookup486: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3449   **/3450  PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3451  /**3452   * Lookup487: opal_runtime::Runtime3453   **/3454  OpalRuntimeRuntime: 'Null',3455  /**3456   * Lookup488: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3457   **/3458  PalletEthereumFakeTransactionFinalizer: 'Null'3459};
after · 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      NewDesiredCollators: {192        desiredCollators: 'u32',193      },194      NewLicenseBond: {195        bondAmount: 'u128',196      },197      NewKickThreshold: {198        lengthInBlocks: 'u32',199      },200      InvulnerableAdded: {201        invulnerable: 'AccountId32',202      },203      InvulnerableRemoved: {204        invulnerable: 'AccountId32',205      },206      LicenseObtained: {207        accountId: 'AccountId32',208        deposit: 'u128',209      },210      LicenseForfeited: {211        accountId: 'AccountId32',212        depositReturned: 'u128',213      },214      CandidateAdded: {215        accountId: 'AccountId32',216      },217      CandidateRemoved: {218        accountId: 'AccountId32'219      }220    }221  },222  /**223   * Lookup31: pallet_session::pallet::Event224   **/225  PalletSessionEvent: {226    _enum: {227      NewSession: {228        sessionIndex: 'u32'229      }230    }231  },232  /**233   * Lookup32: pallet_balances::pallet::Event<T, I>234   **/235  PalletBalancesEvent: {236    _enum: {237      Endowed: {238        account: 'AccountId32',239        freeBalance: 'u128',240      },241      DustLost: {242        account: 'AccountId32',243        amount: 'u128',244      },245      Transfer: {246        from: 'AccountId32',247        to: 'AccountId32',248        amount: 'u128',249      },250      BalanceSet: {251        who: 'AccountId32',252        free: 'u128',253        reserved: 'u128',254      },255      Reserved: {256        who: 'AccountId32',257        amount: 'u128',258      },259      Unreserved: {260        who: 'AccountId32',261        amount: 'u128',262      },263      ReserveRepatriated: {264        from: 'AccountId32',265        to: 'AccountId32',266        amount: 'u128',267        destinationStatus: 'FrameSupportTokensMiscBalanceStatus',268      },269      Deposit: {270        who: 'AccountId32',271        amount: 'u128',272      },273      Withdraw: {274        who: 'AccountId32',275        amount: 'u128',276      },277      Slashed: {278        who: 'AccountId32',279        amount: 'u128'280      }281    }282  },283  /**284   * Lookup33: frame_support::traits::tokens::misc::BalanceStatus285   **/286  FrameSupportTokensMiscBalanceStatus: {287    _enum: ['Free', 'Reserved']288  },289  /**290   * Lookup34: pallet_transaction_payment::pallet::Event<T>291   **/292  PalletTransactionPaymentEvent: {293    _enum: {294      TransactionFeePaid: {295        who: 'AccountId32',296        actualFee: 'u128',297        tip: 'u128'298      }299    }300  },301  /**302   * Lookup35: pallet_treasury::pallet::Event<T, I>303   **/304  PalletTreasuryEvent: {305    _enum: {306      Proposed: {307        proposalIndex: 'u32',308      },309      Spending: {310        budgetRemaining: 'u128',311      },312      Awarded: {313        proposalIndex: 'u32',314        award: 'u128',315        account: 'AccountId32',316      },317      Rejected: {318        proposalIndex: 'u32',319        slashed: 'u128',320      },321      Burnt: {322        burntFunds: 'u128',323      },324      Rollover: {325        rolloverBalance: 'u128',326      },327      Deposit: {328        value: 'u128',329      },330      SpendApproved: {331        proposalIndex: 'u32',332        amount: 'u128',333        beneficiary: 'AccountId32'334      }335    }336  },337  /**338   * Lookup36: pallet_sudo::pallet::Event<T>339   **/340  PalletSudoEvent: {341    _enum: {342      Sudid: {343        sudoResult: 'Result<Null, SpRuntimeDispatchError>',344      },345      KeyChanged: {346        oldSudoer: 'Option<AccountId32>',347      },348      SudoAsDone: {349        sudoResult: 'Result<Null, SpRuntimeDispatchError>'350      }351    }352  },353  /**354   * Lookup40: orml_vesting::module::Event<T>355   **/356  OrmlVestingModuleEvent: {357    _enum: {358      VestingScheduleAdded: {359        from: 'AccountId32',360        to: 'AccountId32',361        vestingSchedule: 'OrmlVestingVestingSchedule',362      },363      Claimed: {364        who: 'AccountId32',365        amount: 'u128',366      },367      VestingSchedulesUpdated: {368        who: 'AccountId32'369      }370    }371  },372  /**373   * Lookup41: orml_vesting::VestingSchedule<BlockNumber, Balance>374   **/375  OrmlVestingVestingSchedule: {376    start: 'u32',377    period: 'u32',378    periodCount: 'u32',379    perPeriod: 'Compact<u128>'380  },381  /**382   * Lookup43: orml_xtokens::module::Event<T>383   **/384  OrmlXtokensModuleEvent: {385    _enum: {386      TransferredMultiAssets: {387        sender: 'AccountId32',388        assets: 'XcmV1MultiassetMultiAssets',389        fee: 'XcmV1MultiAsset',390        dest: 'XcmV1MultiLocation'391      }392    }393  },394  /**395   * Lookup44: xcm::v1::multiasset::MultiAssets396   **/397  XcmV1MultiassetMultiAssets: 'Vec<XcmV1MultiAsset>',398  /**399   * Lookup46: xcm::v1::multiasset::MultiAsset400   **/401  XcmV1MultiAsset: {402    id: 'XcmV1MultiassetAssetId',403    fun: 'XcmV1MultiassetFungibility'404  },405  /**406   * Lookup47: xcm::v1::multiasset::AssetId407   **/408  XcmV1MultiassetAssetId: {409    _enum: {410      Concrete: 'XcmV1MultiLocation',411      Abstract: 'Bytes'412    }413  },414  /**415   * Lookup48: xcm::v1::multilocation::MultiLocation416   **/417  XcmV1MultiLocation: {418    parents: 'u8',419    interior: 'XcmV1MultilocationJunctions'420  },421  /**422   * Lookup49: xcm::v1::multilocation::Junctions423   **/424  XcmV1MultilocationJunctions: {425    _enum: {426      Here: 'Null',427      X1: 'XcmV1Junction',428      X2: '(XcmV1Junction,XcmV1Junction)',429      X3: '(XcmV1Junction,XcmV1Junction,XcmV1Junction)',430      X4: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',431      X5: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',432      X6: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',433      X7: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)',434      X8: '(XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction,XcmV1Junction)'435    }436  },437  /**438   * Lookup50: xcm::v1::junction::Junction439   **/440  XcmV1Junction: {441    _enum: {442      Parachain: 'Compact<u32>',443      AccountId32: {444        network: 'XcmV0JunctionNetworkId',445        id: '[u8;32]',446      },447      AccountIndex64: {448        network: 'XcmV0JunctionNetworkId',449        index: 'Compact<u64>',450      },451      AccountKey20: {452        network: 'XcmV0JunctionNetworkId',453        key: '[u8;20]',454      },455      PalletInstance: 'u8',456      GeneralIndex: 'Compact<u128>',457      GeneralKey: 'Bytes',458      OnlyChild: 'Null',459      Plurality: {460        id: 'XcmV0JunctionBodyId',461        part: 'XcmV0JunctionBodyPart'462      }463    }464  },465  /**466   * Lookup52: xcm::v0::junction::NetworkId467   **/468  XcmV0JunctionNetworkId: {469    _enum: {470      Any: 'Null',471      Named: 'Bytes',472      Polkadot: 'Null',473      Kusama: 'Null'474    }475  },476  /**477   * Lookup55: xcm::v0::junction::BodyId478   **/479  XcmV0JunctionBodyId: {480    _enum: {481      Unit: 'Null',482      Named: 'Bytes',483      Index: 'Compact<u32>',484      Executive: 'Null',485      Technical: 'Null',486      Legislative: 'Null',487      Judicial: 'Null'488    }489  },490  /**491   * Lookup56: xcm::v0::junction::BodyPart492   **/493  XcmV0JunctionBodyPart: {494    _enum: {495      Voice: 'Null',496      Members: {497        count: 'Compact<u32>',498      },499      Fraction: {500        nom: 'Compact<u32>',501        denom: 'Compact<u32>',502      },503      AtLeastProportion: {504        nom: 'Compact<u32>',505        denom: 'Compact<u32>',506      },507      MoreThanProportion: {508        nom: 'Compact<u32>',509        denom: 'Compact<u32>'510      }511    }512  },513  /**514   * Lookup57: xcm::v1::multiasset::Fungibility515   **/516  XcmV1MultiassetFungibility: {517    _enum: {518      Fungible: 'Compact<u128>',519      NonFungible: 'XcmV1MultiassetAssetInstance'520    }521  },522  /**523   * Lookup58: xcm::v1::multiasset::AssetInstance524   **/525  XcmV1MultiassetAssetInstance: {526    _enum: {527      Undefined: 'Null',528      Index: 'Compact<u128>',529      Array4: '[u8;4]',530      Array8: '[u8;8]',531      Array16: '[u8;16]',532      Array32: '[u8;32]',533      Blob: 'Bytes'534    }535  },536  /**537   * Lookup61: orml_tokens::module::Event<T>538   **/539  OrmlTokensModuleEvent: {540    _enum: {541      Endowed: {542        currencyId: 'PalletForeignAssetsAssetIds',543        who: 'AccountId32',544        amount: 'u128',545      },546      DustLost: {547        currencyId: 'PalletForeignAssetsAssetIds',548        who: 'AccountId32',549        amount: 'u128',550      },551      Transfer: {552        currencyId: 'PalletForeignAssetsAssetIds',553        from: 'AccountId32',554        to: 'AccountId32',555        amount: 'u128',556      },557      Reserved: {558        currencyId: 'PalletForeignAssetsAssetIds',559        who: 'AccountId32',560        amount: 'u128',561      },562      Unreserved: {563        currencyId: 'PalletForeignAssetsAssetIds',564        who: 'AccountId32',565        amount: 'u128',566      },567      ReserveRepatriated: {568        currencyId: 'PalletForeignAssetsAssetIds',569        from: 'AccountId32',570        to: 'AccountId32',571        amount: 'u128',572        status: 'FrameSupportTokensMiscBalanceStatus',573      },574      BalanceSet: {575        currencyId: 'PalletForeignAssetsAssetIds',576        who: 'AccountId32',577        free: 'u128',578        reserved: 'u128',579      },580      TotalIssuanceSet: {581        currencyId: 'PalletForeignAssetsAssetIds',582        amount: 'u128',583      },584      Withdrawn: {585        currencyId: 'PalletForeignAssetsAssetIds',586        who: 'AccountId32',587        amount: 'u128',588      },589      Slashed: {590        currencyId: 'PalletForeignAssetsAssetIds',591        who: 'AccountId32',592        freeAmount: 'u128',593        reservedAmount: 'u128',594      },595      Deposited: {596        currencyId: 'PalletForeignAssetsAssetIds',597        who: 'AccountId32',598        amount: 'u128',599      },600      LockSet: {601        lockId: '[u8;8]',602        currencyId: 'PalletForeignAssetsAssetIds',603        who: 'AccountId32',604        amount: 'u128',605      },606      LockRemoved: {607        lockId: '[u8;8]',608        currencyId: 'PalletForeignAssetsAssetIds',609        who: 'AccountId32'610      }611    }612  },613  /**614   * Lookup62: pallet_foreign_assets::AssetIds615   **/616  PalletForeignAssetsAssetIds: {617    _enum: {618      ForeignAssetId: 'u32',619      NativeAssetId: 'PalletForeignAssetsNativeCurrency'620    }621  },622  /**623   * Lookup63: pallet_foreign_assets::NativeCurrency624   **/625  PalletForeignAssetsNativeCurrency: {626    _enum: ['Here', 'Parent']627  },628  /**629   * Lookup64: cumulus_pallet_xcmp_queue::pallet::Event<T>630   **/631  CumulusPalletXcmpQueueEvent: {632    _enum: {633      Success: {634        messageHash: 'Option<H256>',635        weight: 'SpWeightsWeightV2Weight',636      },637      Fail: {638        messageHash: 'Option<H256>',639        error: 'XcmV2TraitsError',640        weight: 'SpWeightsWeightV2Weight',641      },642      BadVersion: {643        messageHash: 'Option<H256>',644      },645      BadFormat: {646        messageHash: 'Option<H256>',647      },648      UpwardMessageSent: {649        messageHash: 'Option<H256>',650      },651      XcmpMessageSent: {652        messageHash: 'Option<H256>',653      },654      OverweightEnqueued: {655        sender: 'u32',656        sentAt: 'u32',657        index: 'u64',658        required: 'SpWeightsWeightV2Weight',659      },660      OverweightServiced: {661        index: 'u64',662        used: 'SpWeightsWeightV2Weight'663      }664    }665  },666  /**667   * Lookup66: xcm::v2::traits::Error668   **/669  XcmV2TraitsError: {670    _enum: {671      Overflow: 'Null',672      Unimplemented: 'Null',673      UntrustedReserveLocation: 'Null',674      UntrustedTeleportLocation: 'Null',675      MultiLocationFull: 'Null',676      MultiLocationNotInvertible: 'Null',677      BadOrigin: 'Null',678      InvalidLocation: 'Null',679      AssetNotFound: 'Null',680      FailedToTransactAsset: 'Null',681      NotWithdrawable: 'Null',682      LocationCannotHold: 'Null',683      ExceedsMaxMessageSize: 'Null',684      DestinationUnsupported: 'Null',685      Transport: 'Null',686      Unroutable: 'Null',687      UnknownClaim: 'Null',688      FailedToDecode: 'Null',689      MaxWeightInvalid: 'Null',690      NotHoldingFees: 'Null',691      TooExpensive: 'Null',692      Trap: 'u64',693      UnhandledXcmVersion: 'Null',694      WeightLimitReached: 'u64',695      Barrier: 'Null',696      WeightNotComputable: 'Null'697    }698  },699  /**700   * Lookup68: pallet_xcm::pallet::Event<T>701   **/702  PalletXcmEvent: {703    _enum: {704      Attempted: 'XcmV2TraitsOutcome',705      Sent: '(XcmV1MultiLocation,XcmV1MultiLocation,XcmV2Xcm)',706      UnexpectedResponse: '(XcmV1MultiLocation,u64)',707      ResponseReady: '(u64,XcmV2Response)',708      Notified: '(u64,u8,u8)',709      NotifyOverweight: '(u64,u8,u8,SpWeightsWeightV2Weight,SpWeightsWeightV2Weight)',710      NotifyDispatchError: '(u64,u8,u8)',711      NotifyDecodeFailed: '(u64,u8,u8)',712      InvalidResponder: '(XcmV1MultiLocation,u64,Option<XcmV1MultiLocation>)',713      InvalidResponderVersion: '(XcmV1MultiLocation,u64)',714      ResponseTaken: 'u64',715      AssetsTrapped: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)',716      VersionChangeNotified: '(XcmV1MultiLocation,u32)',717      SupportedVersionChanged: '(XcmV1MultiLocation,u32)',718      NotifyTargetSendFail: '(XcmV1MultiLocation,u64,XcmV2TraitsError)',719      NotifyTargetMigrationFail: '(XcmVersionedMultiLocation,u64)',720      AssetsClaimed: '(H256,XcmV1MultiLocation,XcmVersionedMultiAssets)'721    }722  },723  /**724   * Lookup69: xcm::v2::traits::Outcome725   **/726  XcmV2TraitsOutcome: {727    _enum: {728      Complete: 'u64',729      Incomplete: '(u64,XcmV2TraitsError)',730      Error: 'XcmV2TraitsError'731    }732  },733  /**734   * Lookup70: xcm::v2::Xcm<RuntimeCall>735   **/736  XcmV2Xcm: 'Vec<XcmV2Instruction>',737  /**738   * Lookup72: xcm::v2::Instruction<RuntimeCall>739   **/740  XcmV2Instruction: {741    _enum: {742      WithdrawAsset: 'XcmV1MultiassetMultiAssets',743      ReserveAssetDeposited: 'XcmV1MultiassetMultiAssets',744      ReceiveTeleportedAsset: 'XcmV1MultiassetMultiAssets',745      QueryResponse: {746        queryId: 'Compact<u64>',747        response: 'XcmV2Response',748        maxWeight: 'Compact<u64>',749      },750      TransferAsset: {751        assets: 'XcmV1MultiassetMultiAssets',752        beneficiary: 'XcmV1MultiLocation',753      },754      TransferReserveAsset: {755        assets: 'XcmV1MultiassetMultiAssets',756        dest: 'XcmV1MultiLocation',757        xcm: 'XcmV2Xcm',758      },759      Transact: {760        originType: 'XcmV0OriginKind',761        requireWeightAtMost: 'Compact<u64>',762        call: 'XcmDoubleEncoded',763      },764      HrmpNewChannelOpenRequest: {765        sender: 'Compact<u32>',766        maxMessageSize: 'Compact<u32>',767        maxCapacity: 'Compact<u32>',768      },769      HrmpChannelAccepted: {770        recipient: 'Compact<u32>',771      },772      HrmpChannelClosing: {773        initiator: 'Compact<u32>',774        sender: 'Compact<u32>',775        recipient: 'Compact<u32>',776      },777      ClearOrigin: 'Null',778      DescendOrigin: 'XcmV1MultilocationJunctions',779      ReportError: {780        queryId: 'Compact<u64>',781        dest: 'XcmV1MultiLocation',782        maxResponseWeight: 'Compact<u64>',783      },784      DepositAsset: {785        assets: 'XcmV1MultiassetMultiAssetFilter',786        maxAssets: 'Compact<u32>',787        beneficiary: 'XcmV1MultiLocation',788      },789      DepositReserveAsset: {790        assets: 'XcmV1MultiassetMultiAssetFilter',791        maxAssets: 'Compact<u32>',792        dest: 'XcmV1MultiLocation',793        xcm: 'XcmV2Xcm',794      },795      ExchangeAsset: {796        give: 'XcmV1MultiassetMultiAssetFilter',797        receive: 'XcmV1MultiassetMultiAssets',798      },799      InitiateReserveWithdraw: {800        assets: 'XcmV1MultiassetMultiAssetFilter',801        reserve: 'XcmV1MultiLocation',802        xcm: 'XcmV2Xcm',803      },804      InitiateTeleport: {805        assets: 'XcmV1MultiassetMultiAssetFilter',806        dest: 'XcmV1MultiLocation',807        xcm: 'XcmV2Xcm',808      },809      QueryHolding: {810        queryId: 'Compact<u64>',811        dest: 'XcmV1MultiLocation',812        assets: 'XcmV1MultiassetMultiAssetFilter',813        maxResponseWeight: 'Compact<u64>',814      },815      BuyExecution: {816        fees: 'XcmV1MultiAsset',817        weightLimit: 'XcmV2WeightLimit',818      },819      RefundSurplus: 'Null',820      SetErrorHandler: 'XcmV2Xcm',821      SetAppendix: 'XcmV2Xcm',822      ClearError: 'Null',823      ClaimAsset: {824        assets: 'XcmV1MultiassetMultiAssets',825        ticket: 'XcmV1MultiLocation',826      },827      Trap: 'Compact<u64>',828      SubscribeVersion: {829        queryId: 'Compact<u64>',830        maxResponseWeight: 'Compact<u64>',831      },832      UnsubscribeVersion: 'Null'833    }834  },835  /**836   * Lookup73: xcm::v2::Response837   **/838  XcmV2Response: {839    _enum: {840      Null: 'Null',841      Assets: 'XcmV1MultiassetMultiAssets',842      ExecutionResult: 'Option<(u32,XcmV2TraitsError)>',843      Version: 'u32'844    }845  },846  /**847   * Lookup76: xcm::v0::OriginKind848   **/849  XcmV0OriginKind: {850    _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']851  },852  /**853   * Lookup77: xcm::double_encoded::DoubleEncoded<T>854   **/855  XcmDoubleEncoded: {856    encoded: 'Bytes'857  },858  /**859   * Lookup78: xcm::v1::multiasset::MultiAssetFilter860   **/861  XcmV1MultiassetMultiAssetFilter: {862    _enum: {863      Definite: 'XcmV1MultiassetMultiAssets',864      Wild: 'XcmV1MultiassetWildMultiAsset'865    }866  },867  /**868   * Lookup79: xcm::v1::multiasset::WildMultiAsset869   **/870  XcmV1MultiassetWildMultiAsset: {871    _enum: {872      All: 'Null',873      AllOf: {874        id: 'XcmV1MultiassetAssetId',875        fun: 'XcmV1MultiassetWildFungibility'876      }877    }878  },879  /**880   * Lookup80: xcm::v1::multiasset::WildFungibility881   **/882  XcmV1MultiassetWildFungibility: {883    _enum: ['Fungible', 'NonFungible']884  },885  /**886   * Lookup81: xcm::v2::WeightLimit887   **/888  XcmV2WeightLimit: {889    _enum: {890      Unlimited: 'Null',891      Limited: 'Compact<u64>'892    }893  },894  /**895   * Lookup83: xcm::VersionedMultiAssets896   **/897  XcmVersionedMultiAssets: {898    _enum: {899      V0: 'Vec<XcmV0MultiAsset>',900      V1: 'XcmV1MultiassetMultiAssets'901    }902  },903  /**904   * Lookup85: xcm::v0::multi_asset::MultiAsset905   **/906  XcmV0MultiAsset: {907    _enum: {908      None: 'Null',909      All: 'Null',910      AllFungible: 'Null',911      AllNonFungible: 'Null',912      AllAbstractFungible: {913        id: 'Bytes',914      },915      AllAbstractNonFungible: {916        class: 'Bytes',917      },918      AllConcreteFungible: {919        id: 'XcmV0MultiLocation',920      },921      AllConcreteNonFungible: {922        class: 'XcmV0MultiLocation',923      },924      AbstractFungible: {925        id: 'Bytes',926        amount: 'Compact<u128>',927      },928      AbstractNonFungible: {929        class: 'Bytes',930        instance: 'XcmV1MultiassetAssetInstance',931      },932      ConcreteFungible: {933        id: 'XcmV0MultiLocation',934        amount: 'Compact<u128>',935      },936      ConcreteNonFungible: {937        class: 'XcmV0MultiLocation',938        instance: 'XcmV1MultiassetAssetInstance'939      }940    }941  },942  /**943   * Lookup86: xcm::v0::multi_location::MultiLocation944   **/945  XcmV0MultiLocation: {946    _enum: {947      Null: 'Null',948      X1: 'XcmV0Junction',949      X2: '(XcmV0Junction,XcmV0Junction)',950      X3: '(XcmV0Junction,XcmV0Junction,XcmV0Junction)',951      X4: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',952      X5: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',953      X6: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',954      X7: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)',955      X8: '(XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction,XcmV0Junction)'956    }957  },958  /**959   * Lookup87: xcm::v0::junction::Junction960   **/961  XcmV0Junction: {962    _enum: {963      Parent: 'Null',964      Parachain: 'Compact<u32>',965      AccountId32: {966        network: 'XcmV0JunctionNetworkId',967        id: '[u8;32]',968      },969      AccountIndex64: {970        network: 'XcmV0JunctionNetworkId',971        index: 'Compact<u64>',972      },973      AccountKey20: {974        network: 'XcmV0JunctionNetworkId',975        key: '[u8;20]',976      },977      PalletInstance: 'u8',978      GeneralIndex: 'Compact<u128>',979      GeneralKey: 'Bytes',980      OnlyChild: 'Null',981      Plurality: {982        id: 'XcmV0JunctionBodyId',983        part: 'XcmV0JunctionBodyPart'984      }985    }986  },987  /**988   * Lookup88: xcm::VersionedMultiLocation989   **/990  XcmVersionedMultiLocation: {991    _enum: {992      V0: 'XcmV0MultiLocation',993      V1: 'XcmV1MultiLocation'994    }995  },996  /**997   * Lookup89: cumulus_pallet_xcm::pallet::Event<T>998   **/999  CumulusPalletXcmEvent: {1000    _enum: {1001      InvalidFormat: '[u8;8]',1002      UnsupportedVersion: '[u8;8]',1003      ExecutedDownward: '([u8;8],XcmV2TraitsOutcome)'1004    }1005  },1006  /**1007   * Lookup90: cumulus_pallet_dmp_queue::pallet::Event<T>1008   **/1009  CumulusPalletDmpQueueEvent: {1010    _enum: {1011      InvalidFormat: {1012        messageId: '[u8;32]',1013      },1014      UnsupportedVersion: {1015        messageId: '[u8;32]',1016      },1017      ExecutedDownward: {1018        messageId: '[u8;32]',1019        outcome: 'XcmV2TraitsOutcome',1020      },1021      WeightExhausted: {1022        messageId: '[u8;32]',1023        remainingWeight: 'SpWeightsWeightV2Weight',1024        requiredWeight: 'SpWeightsWeightV2Weight',1025      },1026      OverweightEnqueued: {1027        messageId: '[u8;32]',1028        overweightIndex: 'u64',1029        requiredWeight: 'SpWeightsWeightV2Weight',1030      },1031      OverweightServiced: {1032        overweightIndex: 'u64',1033        weightUsed: 'SpWeightsWeightV2Weight'1034      }1035    }1036  },1037  /**1038   * Lookup91: pallet_common::pallet::Event<T>1039   **/1040  PalletCommonEvent: {1041    _enum: {1042      CollectionCreated: '(u32,u8,AccountId32)',1043      CollectionDestroyed: 'u32',1044      ItemCreated: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1045      ItemDestroyed: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1046      Transfer: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1047      Approved: '(u32,u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,u128)',1048      ApprovedForAll: '(u32,PalletEvmAccountBasicCrossAccountIdRepr,PalletEvmAccountBasicCrossAccountIdRepr,bool)',1049      CollectionPropertySet: '(u32,Bytes)',1050      CollectionPropertyDeleted: '(u32,Bytes)',1051      TokenPropertySet: '(u32,u32,Bytes)',1052      TokenPropertyDeleted: '(u32,u32,Bytes)',1053      PropertyPermissionSet: '(u32,Bytes)',1054      AllowListAddressAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1055      AllowListAddressRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1056      CollectionAdminAdded: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1057      CollectionAdminRemoved: '(u32,PalletEvmAccountBasicCrossAccountIdRepr)',1058      CollectionLimitSet: 'u32',1059      CollectionOwnerChanged: '(u32,AccountId32)',1060      CollectionPermissionSet: 'u32',1061      CollectionSponsorSet: '(u32,AccountId32)',1062      SponsorshipConfirmed: '(u32,AccountId32)',1063      CollectionSponsorRemoved: 'u32'1064    }1065  },1066  /**1067   * Lookup94: pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>1068   **/1069  PalletEvmAccountBasicCrossAccountIdRepr: {1070    _enum: {1071      Substrate: 'AccountId32',1072      Ethereum: 'H160'1073    }1074  },1075  /**1076   * Lookup98: pallet_structure::pallet::Event<T>1077   **/1078  PalletStructureEvent: {1079    _enum: {1080      Executed: 'Result<Null, SpRuntimeDispatchError>'1081    }1082  },1083  /**1084   * Lookup99: pallet_rmrk_core::pallet::Event<T>1085   **/1086  PalletRmrkCoreEvent: {1087    _enum: {1088      CollectionCreated: {1089        issuer: 'AccountId32',1090        collectionId: 'u32',1091      },1092      CollectionDestroyed: {1093        issuer: 'AccountId32',1094        collectionId: 'u32',1095      },1096      IssuerChanged: {1097        oldIssuer: 'AccountId32',1098        newIssuer: 'AccountId32',1099        collectionId: 'u32',1100      },1101      CollectionLocked: {1102        issuer: 'AccountId32',1103        collectionId: 'u32',1104      },1105      NftMinted: {1106        owner: 'AccountId32',1107        collectionId: 'u32',1108        nftId: 'u32',1109      },1110      NFTBurned: {1111        owner: 'AccountId32',1112        nftId: 'u32',1113      },1114      NFTSent: {1115        sender: 'AccountId32',1116        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1117        collectionId: 'u32',1118        nftId: 'u32',1119        approvalRequired: 'bool',1120      },1121      NFTAccepted: {1122        sender: 'AccountId32',1123        recipient: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',1124        collectionId: 'u32',1125        nftId: 'u32',1126      },1127      NFTRejected: {1128        sender: 'AccountId32',1129        collectionId: 'u32',1130        nftId: 'u32',1131      },1132      PropertySet: {1133        collectionId: 'u32',1134        maybeNftId: 'Option<u32>',1135        key: 'Bytes',1136        value: 'Bytes',1137      },1138      ResourceAdded: {1139        nftId: 'u32',1140        resourceId: 'u32',1141      },1142      ResourceRemoval: {1143        nftId: 'u32',1144        resourceId: 'u32',1145      },1146      ResourceAccepted: {1147        nftId: 'u32',1148        resourceId: 'u32',1149      },1150      ResourceRemovalAccepted: {1151        nftId: 'u32',1152        resourceId: 'u32',1153      },1154      PrioritySet: {1155        collectionId: 'u32',1156        nftId: 'u32'1157      }1158    }1159  },1160  /**1161   * Lookup100: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>1162   **/1163  RmrkTraitsNftAccountIdOrCollectionNftTuple: {1164    _enum: {1165      AccountId: 'AccountId32',1166      CollectionAndNftTuple: '(u32,u32)'1167    }1168  },1169  /**1170   * Lookup104: pallet_rmrk_equip::pallet::Event<T>1171   **/1172  PalletRmrkEquipEvent: {1173    _enum: {1174      BaseCreated: {1175        issuer: 'AccountId32',1176        baseId: 'u32',1177      },1178      EquippablesUpdated: {1179        baseId: 'u32',1180        slotId: 'u32'1181      }1182    }1183  },1184  /**1185   * Lookup105: pallet_app_promotion::pallet::Event<T>1186   **/1187  PalletAppPromotionEvent: {1188    _enum: {1189      StakingRecalculation: '(AccountId32,u128,u128)',1190      Stake: '(AccountId32,u128)',1191      Unstake: '(AccountId32,u128)',1192      SetAdmin: 'AccountId32'1193    }1194  },1195  /**1196   * Lookup106: pallet_foreign_assets::module::Event<T>1197   **/1198  PalletForeignAssetsModuleEvent: {1199    _enum: {1200      ForeignAssetRegistered: {1201        assetId: 'u32',1202        assetAddress: 'XcmV1MultiLocation',1203        metadata: 'PalletForeignAssetsModuleAssetMetadata',1204      },1205      ForeignAssetUpdated: {1206        assetId: 'u32',1207        assetAddress: 'XcmV1MultiLocation',1208        metadata: 'PalletForeignAssetsModuleAssetMetadata',1209      },1210      AssetRegistered: {1211        assetId: 'PalletForeignAssetsAssetIds',1212        metadata: 'PalletForeignAssetsModuleAssetMetadata',1213      },1214      AssetUpdated: {1215        assetId: 'PalletForeignAssetsAssetIds',1216        metadata: 'PalletForeignAssetsModuleAssetMetadata'1217      }1218    }1219  },1220  /**1221   * Lookup107: pallet_foreign_assets::module::AssetMetadata<Balance>1222   **/1223  PalletForeignAssetsModuleAssetMetadata: {1224    name: 'Bytes',1225    symbol: 'Bytes',1226    decimals: 'u8',1227    minimalBalance: 'u128'1228  },1229  /**1230   * Lookup108: pallet_evm::pallet::Event<T>1231   **/1232  PalletEvmEvent: {1233    _enum: {1234      Log: {1235        log: 'EthereumLog',1236      },1237      Created: {1238        address: 'H160',1239      },1240      CreatedFailed: {1241        address: 'H160',1242      },1243      Executed: {1244        address: 'H160',1245      },1246      ExecutedFailed: {1247        address: 'H160'1248      }1249    }1250  },1251  /**1252   * Lookup109: ethereum::log::Log1253   **/1254  EthereumLog: {1255    address: 'H160',1256    topics: 'Vec<H256>',1257    data: 'Bytes'1258  },1259  /**1260   * Lookup111: pallet_ethereum::pallet::Event1261   **/1262  PalletEthereumEvent: {1263    _enum: {1264      Executed: {1265        from: 'H160',1266        to: 'H160',1267        transactionHash: 'H256',1268        exitReason: 'EvmCoreErrorExitReason'1269      }1270    }1271  },1272  /**1273   * Lookup112: evm_core::error::ExitReason1274   **/1275  EvmCoreErrorExitReason: {1276    _enum: {1277      Succeed: 'EvmCoreErrorExitSucceed',1278      Error: 'EvmCoreErrorExitError',1279      Revert: 'EvmCoreErrorExitRevert',1280      Fatal: 'EvmCoreErrorExitFatal'1281    }1282  },1283  /**1284   * Lookup113: evm_core::error::ExitSucceed1285   **/1286  EvmCoreErrorExitSucceed: {1287    _enum: ['Stopped', 'Returned', 'Suicided']1288  },1289  /**1290   * Lookup114: evm_core::error::ExitError1291   **/1292  EvmCoreErrorExitError: {1293    _enum: {1294      StackUnderflow: 'Null',1295      StackOverflow: 'Null',1296      InvalidJump: 'Null',1297      InvalidRange: 'Null',1298      DesignatedInvalid: 'Null',1299      CallTooDeep: 'Null',1300      CreateCollision: 'Null',1301      CreateContractLimit: 'Null',1302      OutOfOffset: 'Null',1303      OutOfGas: 'Null',1304      OutOfFund: 'Null',1305      PCUnderflow: 'Null',1306      CreateEmpty: 'Null',1307      Other: 'Text',1308      InvalidCode: 'Null'1309    }1310  },1311  /**1312   * Lookup117: evm_core::error::ExitRevert1313   **/1314  EvmCoreErrorExitRevert: {1315    _enum: ['Reverted']1316  },1317  /**1318   * Lookup118: evm_core::error::ExitFatal1319   **/1320  EvmCoreErrorExitFatal: {1321    _enum: {1322      NotSupported: 'Null',1323      UnhandledInterrupt: 'Null',1324      CallErrorAsFatal: 'EvmCoreErrorExitError',1325      Other: 'Text'1326    }1327  },1328  /**1329   * Lookup119: pallet_evm_contract_helpers::pallet::Event<T>1330   **/1331  PalletEvmContractHelpersEvent: {1332    _enum: {1333      ContractSponsorSet: '(H160,AccountId32)',1334      ContractSponsorshipConfirmed: '(H160,AccountId32)',1335      ContractSponsorRemoved: 'H160'1336    }1337  },1338  /**1339   * Lookup120: pallet_evm_migration::pallet::Event<T>1340   **/1341  PalletEvmMigrationEvent: {1342    _enum: ['TestEvent']1343  },1344  /**1345   * Lookup121: pallet_maintenance::pallet::Event<T>1346   **/1347  PalletMaintenanceEvent: {1348    _enum: ['MaintenanceEnabled', 'MaintenanceDisabled']1349  },1350  /**1351   * Lookup122: pallet_test_utils::pallet::Event<T>1352   **/1353  PalletTestUtilsEvent: {1354    _enum: ['ValueIsSet', 'ShouldRollback', 'BatchCompleted']1355  },1356  /**1357   * Lookup123: frame_system::Phase1358   **/1359  FrameSystemPhase: {1360    _enum: {1361      ApplyExtrinsic: 'u32',1362      Finalization: 'Null',1363      Initialization: 'Null'1364    }1365  },1366  /**1367   * Lookup126: frame_system::LastRuntimeUpgradeInfo1368   **/1369  FrameSystemLastRuntimeUpgradeInfo: {1370    specVersion: 'Compact<u32>',1371    specName: 'Text'1372  },1373  /**1374   * Lookup127: frame_system::pallet::Call<T>1375   **/1376  FrameSystemCall: {1377    _enum: {1378      fill_block: {1379        ratio: 'Perbill',1380      },1381      remark: {1382        remark: 'Bytes',1383      },1384      set_heap_pages: {1385        pages: 'u64',1386      },1387      set_code: {1388        code: 'Bytes',1389      },1390      set_code_without_checks: {1391        code: 'Bytes',1392      },1393      set_storage: {1394        items: 'Vec<(Bytes,Bytes)>',1395      },1396      kill_storage: {1397        _alias: {1398          keys_: 'keys',1399        },1400        keys_: 'Vec<Bytes>',1401      },1402      kill_prefix: {1403        prefix: 'Bytes',1404        subkeys: 'u32',1405      },1406      remark_with_event: {1407        remark: 'Bytes'1408      }1409    }1410  },1411  /**1412   * Lookup132: frame_system::limits::BlockWeights1413   **/1414  FrameSystemLimitsBlockWeights: {1415    baseBlock: 'SpWeightsWeightV2Weight',1416    maxBlock: 'SpWeightsWeightV2Weight',1417    perClass: 'FrameSupportDispatchPerDispatchClassWeightsPerClass'1418  },1419  /**1420   * Lookup133: frame_support::dispatch::PerDispatchClass<frame_system::limits::WeightsPerClass>1421   **/1422  FrameSupportDispatchPerDispatchClassWeightsPerClass: {1423    normal: 'FrameSystemLimitsWeightsPerClass',1424    operational: 'FrameSystemLimitsWeightsPerClass',1425    mandatory: 'FrameSystemLimitsWeightsPerClass'1426  },1427  /**1428   * Lookup134: frame_system::limits::WeightsPerClass1429   **/1430  FrameSystemLimitsWeightsPerClass: {1431    baseExtrinsic: 'SpWeightsWeightV2Weight',1432    maxExtrinsic: 'Option<SpWeightsWeightV2Weight>',1433    maxTotal: 'Option<SpWeightsWeightV2Weight>',1434    reserved: 'Option<SpWeightsWeightV2Weight>'1435  },1436  /**1437   * Lookup136: frame_system::limits::BlockLength1438   **/1439  FrameSystemLimitsBlockLength: {1440    max: 'FrameSupportDispatchPerDispatchClassU32'1441  },1442  /**1443   * Lookup137: frame_support::dispatch::PerDispatchClass<T>1444   **/1445  FrameSupportDispatchPerDispatchClassU32: {1446    normal: 'u32',1447    operational: 'u32',1448    mandatory: 'u32'1449  },1450  /**1451   * Lookup138: sp_weights::RuntimeDbWeight1452   **/1453  SpWeightsRuntimeDbWeight: {1454    read: 'u64',1455    write: 'u64'1456  },1457  /**1458   * Lookup139: sp_version::RuntimeVersion1459   **/1460  SpVersionRuntimeVersion: {1461    specName: 'Text',1462    implName: 'Text',1463    authoringVersion: 'u32',1464    specVersion: 'u32',1465    implVersion: 'u32',1466    apis: 'Vec<([u8;8],u32)>',1467    transactionVersion: 'u32',1468    stateVersion: 'u8'1469  },1470  /**1471   * Lookup144: frame_system::pallet::Error<T>1472   **/1473  FrameSystemError: {1474    _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']1475  },1476  /**1477   * Lookup145: polkadot_primitives::v2::PersistedValidationData<primitive_types::H256, N>1478   **/1479  PolkadotPrimitivesV2PersistedValidationData: {1480    parentHead: 'Bytes',1481    relayParentNumber: 'u32',1482    relayParentStorageRoot: 'H256',1483    maxPovSize: 'u32'1484  },1485  /**1486   * Lookup148: polkadot_primitives::v2::UpgradeRestriction1487   **/1488  PolkadotPrimitivesV2UpgradeRestriction: {1489    _enum: ['Present']1490  },1491  /**1492   * Lookup149: sp_trie::storage_proof::StorageProof1493   **/1494  SpTrieStorageProof: {1495    trieNodes: 'BTreeSet<Bytes>'1496  },1497  /**1498   * Lookup151: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot1499   **/1500  CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: {1501    dmqMqcHead: 'H256',1502    relayDispatchQueueSize: '(u32,u32)',1503    ingressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>',1504    egressChannels: 'Vec<(u32,PolkadotPrimitivesV2AbridgedHrmpChannel)>'1505  },1506  /**1507   * Lookup154: polkadot_primitives::v2::AbridgedHrmpChannel1508   **/1509  PolkadotPrimitivesV2AbridgedHrmpChannel: {1510    maxCapacity: 'u32',1511    maxTotalSize: 'u32',1512    maxMessageSize: 'u32',1513    msgCount: 'u32',1514    totalSize: 'u32',1515    mqcHead: 'Option<H256>'1516  },1517  /**1518   * Lookup155: polkadot_primitives::v2::AbridgedHostConfiguration1519   **/1520  PolkadotPrimitivesV2AbridgedHostConfiguration: {1521    maxCodeSize: 'u32',1522    maxHeadDataSize: 'u32',1523    maxUpwardQueueCount: 'u32',1524    maxUpwardQueueSize: 'u32',1525    maxUpwardMessageSize: 'u32',1526    maxUpwardMessageNumPerCandidate: 'u32',1527    hrmpMaxMessageNumPerCandidate: 'u32',1528    validationUpgradeCooldown: 'u32',1529    validationUpgradeDelay: 'u32'1530  },1531  /**1532   * Lookup161: polkadot_core_primitives::OutboundHrmpMessage<polkadot_parachain::primitives::Id>1533   **/1534  PolkadotCorePrimitivesOutboundHrmpMessage: {1535    recipient: 'u32',1536    data: 'Bytes'1537  },1538  /**1539   * Lookup162: cumulus_pallet_parachain_system::pallet::Call<T>1540   **/1541  CumulusPalletParachainSystemCall: {1542    _enum: {1543      set_validation_data: {1544        data: 'CumulusPrimitivesParachainInherentParachainInherentData',1545      },1546      sudo_send_upward_message: {1547        message: 'Bytes',1548      },1549      authorize_upgrade: {1550        codeHash: 'H256',1551      },1552      enact_authorized_upgrade: {1553        code: 'Bytes'1554      }1555    }1556  },1557  /**1558   * Lookup163: cumulus_primitives_parachain_inherent::ParachainInherentData1559   **/1560  CumulusPrimitivesParachainInherentParachainInherentData: {1561    validationData: 'PolkadotPrimitivesV2PersistedValidationData',1562    relayChainState: 'SpTrieStorageProof',1563    downwardMessages: 'Vec<PolkadotCorePrimitivesInboundDownwardMessage>',1564    horizontalMessages: 'BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>'1565  },1566  /**1567   * Lookup165: polkadot_core_primitives::InboundDownwardMessage<BlockNumber>1568   **/1569  PolkadotCorePrimitivesInboundDownwardMessage: {1570    sentAt: 'u32',1571    msg: 'Bytes'1572  },1573  /**1574   * Lookup168: polkadot_core_primitives::InboundHrmpMessage<BlockNumber>1575   **/1576  PolkadotCorePrimitivesInboundHrmpMessage: {1577    sentAt: 'u32',1578    data: 'Bytes'1579  },1580  /**1581   * Lookup171: cumulus_pallet_parachain_system::pallet::Error<T>1582   **/1583  CumulusPalletParachainSystemError: {1584    _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled', 'NothingAuthorized', 'Unauthorized']1585  },1586  /**1587   * Lookup173: pallet_authorship::UncleEntryItem<BlockNumber, primitive_types::H256, sp_core::crypto::AccountId32>1588   **/1589  PalletAuthorshipUncleEntryItem: {1590    _enum: {1591      InclusionHeight: 'u32',1592      Uncle: '(H256,Option<AccountId32>)'1593    }1594  },1595  /**1596   * Lookup175: pallet_authorship::pallet::Call<T>1597   **/1598  PalletAuthorshipCall: {1599    _enum: {1600      set_uncles: {1601        newUncles: 'Vec<SpRuntimeHeader>'1602      }1603    }1604  },1605  /**1606   * Lookup177: sp_runtime::generic::header::Header<Number, sp_runtime::traits::BlakeTwo256>1607   **/1608  SpRuntimeHeader: {1609    parentHash: 'H256',1610    number: 'Compact<u32>',1611    stateRoot: 'H256',1612    extrinsicsRoot: 'H256',1613    digest: 'SpRuntimeDigest'1614  },1615  /**1616   * Lookup178: sp_runtime::traits::BlakeTwo2561617   **/1618  SpRuntimeBlakeTwo256: 'Null',1619  /**1620   * Lookup179: pallet_authorship::pallet::Error<T>1621   **/1622  PalletAuthorshipError: {1623    _enum: ['InvalidUncleParent', 'UnclesAlreadySet', 'TooManyUncles', 'GenesisUncle', 'TooHighUncle', 'UncleAlreadyIncluded', 'OldUncle']1624  },1625  /**1626   * Lookup182: pallet_collator_selection::pallet::Call<T>1627   **/1628  PalletCollatorSelectionCall: {1629    _enum: {1630      add_invulnerable: {1631        _alias: {1632          new_: 'new',1633        },1634        new_: 'AccountId32',1635      },1636      remove_invulnerable: {1637        who: 'AccountId32',1638      },1639      set_desired_collators: {1640        max: 'u32',1641      },1642      set_license_bond: {1643        bond: 'u128',1644      },1645      set_kick_threshold: {1646        kickThreshold: 'u32',1647      },1648      get_license: 'Null',1649      onboard: 'Null',1650      offboard: 'Null',1651      release_license: 'Null',1652      force_revoke_license: {1653        who: 'AccountId32'1654      }1655    }1656  },1657  /**1658   * Lookup183: pallet_collator_selection::pallet::Error<T>1659   **/1660  PalletCollatorSelectionError: {1661    _enum: ['TooManyCandidates', 'Unknown', 'Permission', 'AlreadyHoldingLicense', 'NoLicense', 'AlreadyCandidate', 'NotCandidate', 'TooManyInvulnerables', 'TooFewInvulnerables', 'AlreadyInvulnerable', 'NotInvulnerable', 'NoAssociatedValidatorId', 'ValidatorNotRegistered']1662  },1663  /**1664   * Lookup186: opal_runtime::runtime_common::SessionKeys1665   **/1666  OpalRuntimeRuntimeCommonSessionKeys: {1667    aura: 'SpConsensusAuraSr25519AppSr25519Public'1668  },1669  /**1670   * Lookup187: sp_consensus_aura::sr25519::app_sr25519::Public1671   **/1672  SpConsensusAuraSr25519AppSr25519Public: 'SpCoreSr25519Public',1673  /**1674   * Lookup188: sp_core::sr25519::Public1675   **/1676  SpCoreSr25519Public: '[u8;32]',1677  /**1678   * Lookup191: sp_core::crypto::KeyTypeId1679   **/1680  SpCoreCryptoKeyTypeId: '[u8;4]',1681  /**1682   * Lookup192: pallet_session::pallet::Call<T>1683   **/1684  PalletSessionCall: {1685    _enum: {1686      set_keys: {1687        _alias: {1688          keys_: 'keys',1689        },1690        keys_: 'OpalRuntimeRuntimeCommonSessionKeys',1691        proof: 'Bytes',1692      },1693      purge_keys: 'Null'1694    }1695  },1696  /**1697   * Lookup193: pallet_session::pallet::Error<T>1698   **/1699  PalletSessionError: {1700    _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount']1701  },1702  /**1703   * Lookup195: pallet_balances::BalanceLock<Balance>1704   **/1705  PalletBalancesBalanceLock: {1706    id: '[u8;8]',1707    amount: 'u128',1708    reasons: 'PalletBalancesReasons'1709  },1710  /**1711   * Lookup196: pallet_balances::Reasons1712   **/1713  PalletBalancesReasons: {1714    _enum: ['Fee', 'Misc', 'All']1715  },1716  /**1717   * Lookup199: pallet_balances::ReserveData<ReserveIdentifier, Balance>1718   **/1719  PalletBalancesReserveData: {1720    id: '[u8;16]',1721    amount: 'u128'1722  },1723  /**1724   * Lookup201: pallet_balances::Releases1725   **/1726  PalletBalancesReleases: {1727    _enum: ['V1_0_0', 'V2_0_0']1728  },1729  /**1730   * Lookup202: pallet_balances::pallet::Call<T, I>1731   **/1732  PalletBalancesCall: {1733    _enum: {1734      transfer: {1735        dest: 'MultiAddress',1736        value: 'Compact<u128>',1737      },1738      set_balance: {1739        who: 'MultiAddress',1740        newFree: 'Compact<u128>',1741        newReserved: 'Compact<u128>',1742      },1743      force_transfer: {1744        source: 'MultiAddress',1745        dest: 'MultiAddress',1746        value: 'Compact<u128>',1747      },1748      transfer_keep_alive: {1749        dest: 'MultiAddress',1750        value: 'Compact<u128>',1751      },1752      transfer_all: {1753        dest: 'MultiAddress',1754        keepAlive: 'bool',1755      },1756      force_unreserve: {1757        who: 'MultiAddress',1758        amount: 'u128'1759      }1760    }1761  },1762  /**1763   * Lookup205: pallet_balances::pallet::Error<T, I>1764   **/1765  PalletBalancesError: {1766    _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'KeepAlive', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves']1767  },1768  /**1769   * Lookup207: pallet_timestamp::pallet::Call<T>1770   **/1771  PalletTimestampCall: {1772    _enum: {1773      set: {1774        now: 'Compact<u64>'1775      }1776    }1777  },1778  /**1779   * Lookup209: pallet_transaction_payment::Releases1780   **/1781  PalletTransactionPaymentReleases: {1782    _enum: ['V1Ancient', 'V2']1783  },1784  /**1785   * Lookup210: pallet_treasury::Proposal<sp_core::crypto::AccountId32, Balance>1786   **/1787  PalletTreasuryProposal: {1788    proposer: 'AccountId32',1789    value: 'u128',1790    beneficiary: 'AccountId32',1791    bond: 'u128'1792  },1793  /**1794   * Lookup212: pallet_treasury::pallet::Call<T, I>1795   **/1796  PalletTreasuryCall: {1797    _enum: {1798      propose_spend: {1799        value: 'Compact<u128>',1800        beneficiary: 'MultiAddress',1801      },1802      reject_proposal: {1803        proposalId: 'Compact<u32>',1804      },1805      approve_proposal: {1806        proposalId: 'Compact<u32>',1807      },1808      spend: {1809        amount: 'Compact<u128>',1810        beneficiary: 'MultiAddress',1811      },1812      remove_approval: {1813        proposalId: 'Compact<u32>'1814      }1815    }1816  },1817  /**1818   * Lookup215: frame_support::PalletId1819   **/1820  FrameSupportPalletId: '[u8;8]',1821  /**1822   * Lookup216: pallet_treasury::pallet::Error<T, I>1823   **/1824  PalletTreasuryError: {1825    _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved']1826  },1827  /**1828   * Lookup217: pallet_sudo::pallet::Call<T>1829   **/1830  PalletSudoCall: {1831    _enum: {1832      sudo: {1833        call: 'Call',1834      },1835      sudo_unchecked_weight: {1836        call: 'Call',1837        weight: 'SpWeightsWeightV2Weight',1838      },1839      set_key: {1840        _alias: {1841          new_: 'new',1842        },1843        new_: 'MultiAddress',1844      },1845      sudo_as: {1846        who: 'MultiAddress',1847        call: 'Call'1848      }1849    }1850  },1851  /**1852   * Lookup219: orml_vesting::module::Call<T>1853   **/1854  OrmlVestingModuleCall: {1855    _enum: {1856      claim: 'Null',1857      vested_transfer: {1858        dest: 'MultiAddress',1859        schedule: 'OrmlVestingVestingSchedule',1860      },1861      update_vesting_schedules: {1862        who: 'MultiAddress',1863        vestingSchedules: 'Vec<OrmlVestingVestingSchedule>',1864      },1865      claim_for: {1866        dest: 'MultiAddress'1867      }1868    }1869  },1870  /**1871   * Lookup221: orml_xtokens::module::Call<T>1872   **/1873  OrmlXtokensModuleCall: {1874    _enum: {1875      transfer: {1876        currencyId: 'PalletForeignAssetsAssetIds',1877        amount: 'u128',1878        dest: 'XcmVersionedMultiLocation',1879        destWeightLimit: 'XcmV2WeightLimit',1880      },1881      transfer_multiasset: {1882        asset: 'XcmVersionedMultiAsset',1883        dest: 'XcmVersionedMultiLocation',1884        destWeightLimit: 'XcmV2WeightLimit',1885      },1886      transfer_with_fee: {1887        currencyId: 'PalletForeignAssetsAssetIds',1888        amount: 'u128',1889        fee: 'u128',1890        dest: 'XcmVersionedMultiLocation',1891        destWeightLimit: 'XcmV2WeightLimit',1892      },1893      transfer_multiasset_with_fee: {1894        asset: 'XcmVersionedMultiAsset',1895        fee: 'XcmVersionedMultiAsset',1896        dest: 'XcmVersionedMultiLocation',1897        destWeightLimit: 'XcmV2WeightLimit',1898      },1899      transfer_multicurrencies: {1900        currencies: 'Vec<(PalletForeignAssetsAssetIds,u128)>',1901        feeItem: 'u32',1902        dest: 'XcmVersionedMultiLocation',1903        destWeightLimit: 'XcmV2WeightLimit',1904      },1905      transfer_multiassets: {1906        assets: 'XcmVersionedMultiAssets',1907        feeItem: 'u32',1908        dest: 'XcmVersionedMultiLocation',1909        destWeightLimit: 'XcmV2WeightLimit'1910      }1911    }1912  },1913  /**1914   * Lookup222: xcm::VersionedMultiAsset1915   **/1916  XcmVersionedMultiAsset: {1917    _enum: {1918      V0: 'XcmV0MultiAsset',1919      V1: 'XcmV1MultiAsset'1920    }1921  },1922  /**1923   * Lookup225: orml_tokens::module::Call<T>1924   **/1925  OrmlTokensModuleCall: {1926    _enum: {1927      transfer: {1928        dest: 'MultiAddress',1929        currencyId: 'PalletForeignAssetsAssetIds',1930        amount: 'Compact<u128>',1931      },1932      transfer_all: {1933        dest: 'MultiAddress',1934        currencyId: 'PalletForeignAssetsAssetIds',1935        keepAlive: 'bool',1936      },1937      transfer_keep_alive: {1938        dest: 'MultiAddress',1939        currencyId: 'PalletForeignAssetsAssetIds',1940        amount: 'Compact<u128>',1941      },1942      force_transfer: {1943        source: 'MultiAddress',1944        dest: 'MultiAddress',1945        currencyId: 'PalletForeignAssetsAssetIds',1946        amount: 'Compact<u128>',1947      },1948      set_balance: {1949        who: 'MultiAddress',1950        currencyId: 'PalletForeignAssetsAssetIds',1951        newFree: 'Compact<u128>',1952        newReserved: 'Compact<u128>'1953      }1954    }1955  },1956  /**1957   * Lookup226: cumulus_pallet_xcmp_queue::pallet::Call<T>1958   **/1959  CumulusPalletXcmpQueueCall: {1960    _enum: {1961      service_overweight: {1962        index: 'u64',1963        weightLimit: 'u64',1964      },1965      suspend_xcm_execution: 'Null',1966      resume_xcm_execution: 'Null',1967      update_suspend_threshold: {1968        _alias: {1969          new_: 'new',1970        },1971        new_: 'u32',1972      },1973      update_drop_threshold: {1974        _alias: {1975          new_: 'new',1976        },1977        new_: 'u32',1978      },1979      update_resume_threshold: {1980        _alias: {1981          new_: 'new',1982        },1983        new_: 'u32',1984      },1985      update_threshold_weight: {1986        _alias: {1987          new_: 'new',1988        },1989        new_: 'u64',1990      },1991      update_weight_restrict_decay: {1992        _alias: {1993          new_: 'new',1994        },1995        new_: 'u64',1996      },1997      update_xcmp_max_individual_weight: {1998        _alias: {1999          new_: 'new',2000        },2001        new_: 'u64'2002      }2003    }2004  },2005  /**2006   * Lookup227: pallet_xcm::pallet::Call<T>2007   **/2008  PalletXcmCall: {2009    _enum: {2010      send: {2011        dest: 'XcmVersionedMultiLocation',2012        message: 'XcmVersionedXcm',2013      },2014      teleport_assets: {2015        dest: 'XcmVersionedMultiLocation',2016        beneficiary: 'XcmVersionedMultiLocation',2017        assets: 'XcmVersionedMultiAssets',2018        feeAssetItem: 'u32',2019      },2020      reserve_transfer_assets: {2021        dest: 'XcmVersionedMultiLocation',2022        beneficiary: 'XcmVersionedMultiLocation',2023        assets: 'XcmVersionedMultiAssets',2024        feeAssetItem: 'u32',2025      },2026      execute: {2027        message: 'XcmVersionedXcm',2028        maxWeight: 'u64',2029      },2030      force_xcm_version: {2031        location: 'XcmV1MultiLocation',2032        xcmVersion: 'u32',2033      },2034      force_default_xcm_version: {2035        maybeXcmVersion: 'Option<u32>',2036      },2037      force_subscribe_version_notify: {2038        location: 'XcmVersionedMultiLocation',2039      },2040      force_unsubscribe_version_notify: {2041        location: 'XcmVersionedMultiLocation',2042      },2043      limited_reserve_transfer_assets: {2044        dest: 'XcmVersionedMultiLocation',2045        beneficiary: 'XcmVersionedMultiLocation',2046        assets: 'XcmVersionedMultiAssets',2047        feeAssetItem: 'u32',2048        weightLimit: 'XcmV2WeightLimit',2049      },2050      limited_teleport_assets: {2051        dest: 'XcmVersionedMultiLocation',2052        beneficiary: 'XcmVersionedMultiLocation',2053        assets: 'XcmVersionedMultiAssets',2054        feeAssetItem: 'u32',2055        weightLimit: 'XcmV2WeightLimit'2056      }2057    }2058  },2059  /**2060   * Lookup228: xcm::VersionedXcm<RuntimeCall>2061   **/2062  XcmVersionedXcm: {2063    _enum: {2064      V0: 'XcmV0Xcm',2065      V1: 'XcmV1Xcm',2066      V2: 'XcmV2Xcm'2067    }2068  },2069  /**2070   * Lookup229: xcm::v0::Xcm<RuntimeCall>2071   **/2072  XcmV0Xcm: {2073    _enum: {2074      WithdrawAsset: {2075        assets: 'Vec<XcmV0MultiAsset>',2076        effects: 'Vec<XcmV0Order>',2077      },2078      ReserveAssetDeposit: {2079        assets: 'Vec<XcmV0MultiAsset>',2080        effects: 'Vec<XcmV0Order>',2081      },2082      TeleportAsset: {2083        assets: 'Vec<XcmV0MultiAsset>',2084        effects: 'Vec<XcmV0Order>',2085      },2086      QueryResponse: {2087        queryId: 'Compact<u64>',2088        response: 'XcmV0Response',2089      },2090      TransferAsset: {2091        assets: 'Vec<XcmV0MultiAsset>',2092        dest: 'XcmV0MultiLocation',2093      },2094      TransferReserveAsset: {2095        assets: 'Vec<XcmV0MultiAsset>',2096        dest: 'XcmV0MultiLocation',2097        effects: 'Vec<XcmV0Order>',2098      },2099      Transact: {2100        originType: 'XcmV0OriginKind',2101        requireWeightAtMost: 'u64',2102        call: 'XcmDoubleEncoded',2103      },2104      HrmpNewChannelOpenRequest: {2105        sender: 'Compact<u32>',2106        maxMessageSize: 'Compact<u32>',2107        maxCapacity: 'Compact<u32>',2108      },2109      HrmpChannelAccepted: {2110        recipient: 'Compact<u32>',2111      },2112      HrmpChannelClosing: {2113        initiator: 'Compact<u32>',2114        sender: 'Compact<u32>',2115        recipient: 'Compact<u32>',2116      },2117      RelayedFrom: {2118        who: 'XcmV0MultiLocation',2119        message: 'XcmV0Xcm'2120      }2121    }2122  },2123  /**2124   * Lookup231: xcm::v0::order::Order<RuntimeCall>2125   **/2126  XcmV0Order: {2127    _enum: {2128      Null: 'Null',2129      DepositAsset: {2130        assets: 'Vec<XcmV0MultiAsset>',2131        dest: 'XcmV0MultiLocation',2132      },2133      DepositReserveAsset: {2134        assets: 'Vec<XcmV0MultiAsset>',2135        dest: 'XcmV0MultiLocation',2136        effects: 'Vec<XcmV0Order>',2137      },2138      ExchangeAsset: {2139        give: 'Vec<XcmV0MultiAsset>',2140        receive: 'Vec<XcmV0MultiAsset>',2141      },2142      InitiateReserveWithdraw: {2143        assets: 'Vec<XcmV0MultiAsset>',2144        reserve: 'XcmV0MultiLocation',2145        effects: 'Vec<XcmV0Order>',2146      },2147      InitiateTeleport: {2148        assets: 'Vec<XcmV0MultiAsset>',2149        dest: 'XcmV0MultiLocation',2150        effects: 'Vec<XcmV0Order>',2151      },2152      QueryHolding: {2153        queryId: 'Compact<u64>',2154        dest: 'XcmV0MultiLocation',2155        assets: 'Vec<XcmV0MultiAsset>',2156      },2157      BuyExecution: {2158        fees: 'XcmV0MultiAsset',2159        weight: 'u64',2160        debt: 'u64',2161        haltOnError: 'bool',2162        xcm: 'Vec<XcmV0Xcm>'2163      }2164    }2165  },2166  /**2167   * Lookup233: xcm::v0::Response2168   **/2169  XcmV0Response: {2170    _enum: {2171      Assets: 'Vec<XcmV0MultiAsset>'2172    }2173  },2174  /**2175   * Lookup234: xcm::v1::Xcm<RuntimeCall>2176   **/2177  XcmV1Xcm: {2178    _enum: {2179      WithdrawAsset: {2180        assets: 'XcmV1MultiassetMultiAssets',2181        effects: 'Vec<XcmV1Order>',2182      },2183      ReserveAssetDeposited: {2184        assets: 'XcmV1MultiassetMultiAssets',2185        effects: 'Vec<XcmV1Order>',2186      },2187      ReceiveTeleportedAsset: {2188        assets: 'XcmV1MultiassetMultiAssets',2189        effects: 'Vec<XcmV1Order>',2190      },2191      QueryResponse: {2192        queryId: 'Compact<u64>',2193        response: 'XcmV1Response',2194      },2195      TransferAsset: {2196        assets: 'XcmV1MultiassetMultiAssets',2197        beneficiary: 'XcmV1MultiLocation',2198      },2199      TransferReserveAsset: {2200        assets: 'XcmV1MultiassetMultiAssets',2201        dest: 'XcmV1MultiLocation',2202        effects: 'Vec<XcmV1Order>',2203      },2204      Transact: {2205        originType: 'XcmV0OriginKind',2206        requireWeightAtMost: 'u64',2207        call: 'XcmDoubleEncoded',2208      },2209      HrmpNewChannelOpenRequest: {2210        sender: 'Compact<u32>',2211        maxMessageSize: 'Compact<u32>',2212        maxCapacity: 'Compact<u32>',2213      },2214      HrmpChannelAccepted: {2215        recipient: 'Compact<u32>',2216      },2217      HrmpChannelClosing: {2218        initiator: 'Compact<u32>',2219        sender: 'Compact<u32>',2220        recipient: 'Compact<u32>',2221      },2222      RelayedFrom: {2223        who: 'XcmV1MultilocationJunctions',2224        message: 'XcmV1Xcm',2225      },2226      SubscribeVersion: {2227        queryId: 'Compact<u64>',2228        maxResponseWeight: 'Compact<u64>',2229      },2230      UnsubscribeVersion: 'Null'2231    }2232  },2233  /**2234   * Lookup236: xcm::v1::order::Order<RuntimeCall>2235   **/2236  XcmV1Order: {2237    _enum: {2238      Noop: 'Null',2239      DepositAsset: {2240        assets: 'XcmV1MultiassetMultiAssetFilter',2241        maxAssets: 'u32',2242        beneficiary: 'XcmV1MultiLocation',2243      },2244      DepositReserveAsset: {2245        assets: 'XcmV1MultiassetMultiAssetFilter',2246        maxAssets: 'u32',2247        dest: 'XcmV1MultiLocation',2248        effects: 'Vec<XcmV1Order>',2249      },2250      ExchangeAsset: {2251        give: 'XcmV1MultiassetMultiAssetFilter',2252        receive: 'XcmV1MultiassetMultiAssets',2253      },2254      InitiateReserveWithdraw: {2255        assets: 'XcmV1MultiassetMultiAssetFilter',2256        reserve: 'XcmV1MultiLocation',2257        effects: 'Vec<XcmV1Order>',2258      },2259      InitiateTeleport: {2260        assets: 'XcmV1MultiassetMultiAssetFilter',2261        dest: 'XcmV1MultiLocation',2262        effects: 'Vec<XcmV1Order>',2263      },2264      QueryHolding: {2265        queryId: 'Compact<u64>',2266        dest: 'XcmV1MultiLocation',2267        assets: 'XcmV1MultiassetMultiAssetFilter',2268      },2269      BuyExecution: {2270        fees: 'XcmV1MultiAsset',2271        weight: 'u64',2272        debt: 'u64',2273        haltOnError: 'bool',2274        instructions: 'Vec<XcmV1Xcm>'2275      }2276    }2277  },2278  /**2279   * Lookup238: xcm::v1::Response2280   **/2281  XcmV1Response: {2282    _enum: {2283      Assets: 'XcmV1MultiassetMultiAssets',2284      Version: 'u32'2285    }2286  },2287  /**2288   * Lookup252: cumulus_pallet_xcm::pallet::Call<T>2289   **/2290  CumulusPalletXcmCall: 'Null',2291  /**2292   * Lookup253: cumulus_pallet_dmp_queue::pallet::Call<T>2293   **/2294  CumulusPalletDmpQueueCall: {2295    _enum: {2296      service_overweight: {2297        index: 'u64',2298        weightLimit: 'u64'2299      }2300    }2301  },2302  /**2303   * Lookup254: pallet_inflation::pallet::Call<T>2304   **/2305  PalletInflationCall: {2306    _enum: {2307      start_inflation: {2308        inflationStartRelayBlock: 'u32'2309      }2310    }2311  },2312  /**2313   * Lookup255: pallet_unique::Call<T>2314   **/2315  PalletUniqueCall: {2316    _enum: {2317      create_collection: {2318        collectionName: 'Vec<u16>',2319        collectionDescription: 'Vec<u16>',2320        tokenPrefix: 'Bytes',2321        mode: 'UpDataStructsCollectionMode',2322      },2323      create_collection_ex: {2324        data: 'UpDataStructsCreateCollectionData',2325      },2326      destroy_collection: {2327        collectionId: 'u32',2328      },2329      add_to_allow_list: {2330        collectionId: 'u32',2331        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2332      },2333      remove_from_allow_list: {2334        collectionId: 'u32',2335        address: 'PalletEvmAccountBasicCrossAccountIdRepr',2336      },2337      change_collection_owner: {2338        collectionId: 'u32',2339        newOwner: 'AccountId32',2340      },2341      add_collection_admin: {2342        collectionId: 'u32',2343        newAdminId: 'PalletEvmAccountBasicCrossAccountIdRepr',2344      },2345      remove_collection_admin: {2346        collectionId: 'u32',2347        accountId: 'PalletEvmAccountBasicCrossAccountIdRepr',2348      },2349      set_collection_sponsor: {2350        collectionId: 'u32',2351        newSponsor: 'AccountId32',2352      },2353      confirm_sponsorship: {2354        collectionId: 'u32',2355      },2356      remove_collection_sponsor: {2357        collectionId: 'u32',2358      },2359      create_item: {2360        collectionId: 'u32',2361        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2362        data: 'UpDataStructsCreateItemData',2363      },2364      create_multiple_items: {2365        collectionId: 'u32',2366        owner: 'PalletEvmAccountBasicCrossAccountIdRepr',2367        itemsData: 'Vec<UpDataStructsCreateItemData>',2368      },2369      set_collection_properties: {2370        collectionId: 'u32',2371        properties: 'Vec<UpDataStructsProperty>',2372      },2373      delete_collection_properties: {2374        collectionId: 'u32',2375        propertyKeys: 'Vec<Bytes>',2376      },2377      set_token_properties: {2378        collectionId: 'u32',2379        tokenId: 'u32',2380        properties: 'Vec<UpDataStructsProperty>',2381      },2382      delete_token_properties: {2383        collectionId: 'u32',2384        tokenId: 'u32',2385        propertyKeys: 'Vec<Bytes>',2386      },2387      set_token_property_permissions: {2388        collectionId: 'u32',2389        propertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2390      },2391      create_multiple_items_ex: {2392        collectionId: 'u32',2393        data: 'UpDataStructsCreateItemExData',2394      },2395      set_transfers_enabled_flag: {2396        collectionId: 'u32',2397        value: 'bool',2398      },2399      burn_item: {2400        collectionId: 'u32',2401        itemId: 'u32',2402        value: 'u128',2403      },2404      burn_from: {2405        collectionId: 'u32',2406        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2407        itemId: 'u32',2408        value: 'u128',2409      },2410      transfer: {2411        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2412        collectionId: 'u32',2413        itemId: 'u32',2414        value: 'u128',2415      },2416      approve: {2417        spender: 'PalletEvmAccountBasicCrossAccountIdRepr',2418        collectionId: 'u32',2419        itemId: 'u32',2420        amount: 'u128',2421      },2422      transfer_from: {2423        from: 'PalletEvmAccountBasicCrossAccountIdRepr',2424        recipient: 'PalletEvmAccountBasicCrossAccountIdRepr',2425        collectionId: 'u32',2426        itemId: 'u32',2427        value: 'u128',2428      },2429      set_collection_limits: {2430        collectionId: 'u32',2431        newLimit: 'UpDataStructsCollectionLimits',2432      },2433      set_collection_permissions: {2434        collectionId: 'u32',2435        newPermission: 'UpDataStructsCollectionPermissions',2436      },2437      repartition: {2438        collectionId: 'u32',2439        tokenId: 'u32',2440        amount: 'u128',2441      },2442      set_allowance_for_all: {2443        collectionId: 'u32',2444        operator: 'PalletEvmAccountBasicCrossAccountIdRepr',2445        approve: 'bool',2446      },2447      force_repair_collection: {2448        collectionId: 'u32',2449      },2450      force_repair_item: {2451        collectionId: 'u32',2452        itemId: 'u32'2453      }2454    }2455  },2456  /**2457   * Lookup260: up_data_structs::CollectionMode2458   **/2459  UpDataStructsCollectionMode: {2460    _enum: {2461      NFT: 'Null',2462      Fungible: 'u8',2463      ReFungible: 'Null'2464    }2465  },2466  /**2467   * Lookup261: up_data_structs::CreateCollectionData<sp_core::crypto::AccountId32>2468   **/2469  UpDataStructsCreateCollectionData: {2470    mode: 'UpDataStructsCollectionMode',2471    access: 'Option<UpDataStructsAccessMode>',2472    name: 'Vec<u16>',2473    description: 'Vec<u16>',2474    tokenPrefix: 'Bytes',2475    pendingSponsor: 'Option<AccountId32>',2476    limits: 'Option<UpDataStructsCollectionLimits>',2477    permissions: 'Option<UpDataStructsCollectionPermissions>',2478    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',2479    properties: 'Vec<UpDataStructsProperty>'2480  },2481  /**2482   * Lookup263: up_data_structs::AccessMode2483   **/2484  UpDataStructsAccessMode: {2485    _enum: ['Normal', 'AllowList']2486  },2487  /**2488   * Lookup265: up_data_structs::CollectionLimits2489   **/2490  UpDataStructsCollectionLimits: {2491    accountTokenOwnershipLimit: 'Option<u32>',2492    sponsoredDataSize: 'Option<u32>',2493    sponsoredDataRateLimit: 'Option<UpDataStructsSponsoringRateLimit>',2494    tokenLimit: 'Option<u32>',2495    sponsorTransferTimeout: 'Option<u32>',2496    sponsorApproveTimeout: 'Option<u32>',2497    ownerCanTransfer: 'Option<bool>',2498    ownerCanDestroy: 'Option<bool>',2499    transfersEnabled: 'Option<bool>'2500  },2501  /**2502   * Lookup267: up_data_structs::SponsoringRateLimit2503   **/2504  UpDataStructsSponsoringRateLimit: {2505    _enum: {2506      SponsoringDisabled: 'Null',2507      Blocks: 'u32'2508    }2509  },2510  /**2511   * Lookup270: up_data_structs::CollectionPermissions2512   **/2513  UpDataStructsCollectionPermissions: {2514    access: 'Option<UpDataStructsAccessMode>',2515    mintMode: 'Option<bool>',2516    nesting: 'Option<UpDataStructsNestingPermissions>'2517  },2518  /**2519   * Lookup272: up_data_structs::NestingPermissions2520   **/2521  UpDataStructsNestingPermissions: {2522    tokenOwner: 'bool',2523    collectionAdmin: 'bool',2524    restricted: 'Option<UpDataStructsOwnerRestrictedSet>'2525  },2526  /**2527   * Lookup274: up_data_structs::OwnerRestrictedSet2528   **/2529  UpDataStructsOwnerRestrictedSet: 'BTreeSet<u32>',2530  /**2531   * Lookup279: up_data_structs::PropertyKeyPermission2532   **/2533  UpDataStructsPropertyKeyPermission: {2534    key: 'Bytes',2535    permission: 'UpDataStructsPropertyPermission'2536  },2537  /**2538   * Lookup280: up_data_structs::PropertyPermission2539   **/2540  UpDataStructsPropertyPermission: {2541    mutable: 'bool',2542    collectionAdmin: 'bool',2543    tokenOwner: 'bool'2544  },2545  /**2546   * Lookup283: up_data_structs::Property2547   **/2548  UpDataStructsProperty: {2549    key: 'Bytes',2550    value: 'Bytes'2551  },2552  /**2553   * Lookup286: up_data_structs::CreateItemData2554   **/2555  UpDataStructsCreateItemData: {2556    _enum: {2557      NFT: 'UpDataStructsCreateNftData',2558      Fungible: 'UpDataStructsCreateFungibleData',2559      ReFungible: 'UpDataStructsCreateReFungibleData'2560    }2561  },2562  /**2563   * Lookup287: up_data_structs::CreateNftData2564   **/2565  UpDataStructsCreateNftData: {2566    properties: 'Vec<UpDataStructsProperty>'2567  },2568  /**2569   * Lookup288: up_data_structs::CreateFungibleData2570   **/2571  UpDataStructsCreateFungibleData: {2572    value: 'u128'2573  },2574  /**2575   * Lookup289: up_data_structs::CreateReFungibleData2576   **/2577  UpDataStructsCreateReFungibleData: {2578    pieces: 'u128',2579    properties: 'Vec<UpDataStructsProperty>'2580  },2581  /**2582   * Lookup292: up_data_structs::CreateItemExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2583   **/2584  UpDataStructsCreateItemExData: {2585    _enum: {2586      NFT: 'Vec<UpDataStructsCreateNftExData>',2587      Fungible: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2588      RefungibleMultipleItems: 'Vec<UpDataStructsCreateRefungibleExSingleOwner>',2589      RefungibleMultipleOwners: 'UpDataStructsCreateRefungibleExMultipleOwners'2590    }2591  },2592  /**2593   * Lookup294: up_data_structs::CreateNftExData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2594   **/2595  UpDataStructsCreateNftExData: {2596    properties: 'Vec<UpDataStructsProperty>',2597    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'2598  },2599  /**2600   * Lookup301: up_data_structs::CreateRefungibleExSingleOwner<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2601   **/2602  UpDataStructsCreateRefungibleExSingleOwner: {2603    user: 'PalletEvmAccountBasicCrossAccountIdRepr',2604    pieces: 'u128',2605    properties: 'Vec<UpDataStructsProperty>'2606  },2607  /**2608   * Lookup303: up_data_structs::CreateRefungibleExMultipleOwners<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>2609   **/2610  UpDataStructsCreateRefungibleExMultipleOwners: {2611    users: 'BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>',2612    properties: 'Vec<UpDataStructsProperty>'2613  },2614  /**2615   * Lookup304: pallet_configuration::pallet::Call<T>2616   **/2617  PalletConfigurationCall: {2618    _enum: {2619      set_weight_to_fee_coefficient_override: {2620        coeff: 'Option<u32>',2621      },2622      set_min_gas_price_override: {2623        coeff: 'Option<u64>',2624      },2625      set_xcm_allowed_locations: {2626        locations: 'Option<Vec<XcmV1MultiLocation>>',2627      },2628      set_app_promotion_configuration_override: {2629        configuration: 'PalletConfigurationAppPromotionConfiguration'2630      }2631    }2632  },2633  /**2634   * Lookup309: pallet_configuration::AppPromotionConfiguration<BlockNumber>2635   **/2636  PalletConfigurationAppPromotionConfiguration: {2637    recalculationInterval: 'Option<u32>',2638    pendingInterval: 'Option<u32>',2639    intervalIncome: 'Option<Perbill>',2640    maxStakersPerCalculation: 'Option<u8>'2641  },2642  /**2643   * Lookup312: pallet_template_transaction_payment::Call<T>2644   **/2645  PalletTemplateTransactionPaymentCall: 'Null',2646  /**2647   * Lookup313: pallet_structure::pallet::Call<T>2648   **/2649  PalletStructureCall: 'Null',2650  /**2651   * Lookup314: pallet_rmrk_core::pallet::Call<T>2652   **/2653  PalletRmrkCoreCall: {2654    _enum: {2655      create_collection: {2656        metadata: 'Bytes',2657        max: 'Option<u32>',2658        symbol: 'Bytes',2659      },2660      destroy_collection: {2661        collectionId: 'u32',2662      },2663      change_collection_issuer: {2664        collectionId: 'u32',2665        newIssuer: 'MultiAddress',2666      },2667      lock_collection: {2668        collectionId: 'u32',2669      },2670      mint_nft: {2671        owner: 'Option<AccountId32>',2672        collectionId: 'u32',2673        recipient: 'Option<AccountId32>',2674        royaltyAmount: 'Option<Permill>',2675        metadata: 'Bytes',2676        transferable: 'bool',2677        resources: 'Option<Vec<RmrkTraitsResourceResourceTypes>>',2678      },2679      burn_nft: {2680        collectionId: 'u32',2681        nftId: 'u32',2682        maxBurns: 'u32',2683      },2684      send: {2685        rmrkCollectionId: 'u32',2686        rmrkNftId: 'u32',2687        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2688      },2689      accept_nft: {2690        rmrkCollectionId: 'u32',2691        rmrkNftId: 'u32',2692        newOwner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',2693      },2694      reject_nft: {2695        rmrkCollectionId: 'u32',2696        rmrkNftId: 'u32',2697      },2698      accept_resource: {2699        rmrkCollectionId: 'u32',2700        rmrkNftId: 'u32',2701        resourceId: 'u32',2702      },2703      accept_resource_removal: {2704        rmrkCollectionId: 'u32',2705        rmrkNftId: 'u32',2706        resourceId: 'u32',2707      },2708      set_property: {2709        rmrkCollectionId: 'Compact<u32>',2710        maybeNftId: 'Option<u32>',2711        key: 'Bytes',2712        value: 'Bytes',2713      },2714      set_priority: {2715        rmrkCollectionId: 'u32',2716        rmrkNftId: 'u32',2717        priorities: 'Vec<u32>',2718      },2719      add_basic_resource: {2720        rmrkCollectionId: 'u32',2721        nftId: 'u32',2722        resource: 'RmrkTraitsResourceBasicResource',2723      },2724      add_composable_resource: {2725        rmrkCollectionId: 'u32',2726        nftId: 'u32',2727        resource: 'RmrkTraitsResourceComposableResource',2728      },2729      add_slot_resource: {2730        rmrkCollectionId: 'u32',2731        nftId: 'u32',2732        resource: 'RmrkTraitsResourceSlotResource',2733      },2734      remove_resource: {2735        rmrkCollectionId: 'u32',2736        nftId: 'u32',2737        resourceId: 'u32'2738      }2739    }2740  },2741  /**2742   * Lookup320: rmrk_traits::resource::ResourceTypes<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2743   **/2744  RmrkTraitsResourceResourceTypes: {2745    _enum: {2746      Basic: 'RmrkTraitsResourceBasicResource',2747      Composable: 'RmrkTraitsResourceComposableResource',2748      Slot: 'RmrkTraitsResourceSlotResource'2749    }2750  },2751  /**2752   * Lookup322: rmrk_traits::resource::BasicResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2753   **/2754  RmrkTraitsResourceBasicResource: {2755    src: 'Option<Bytes>',2756    metadata: 'Option<Bytes>',2757    license: 'Option<Bytes>',2758    thumb: 'Option<Bytes>'2759  },2760  /**2761   * Lookup324: rmrk_traits::resource::ComposableResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2762   **/2763  RmrkTraitsResourceComposableResource: {2764    parts: 'Vec<u32>',2765    base: 'u32',2766    src: 'Option<Bytes>',2767    metadata: 'Option<Bytes>',2768    license: 'Option<Bytes>',2769    thumb: 'Option<Bytes>'2770  },2771  /**2772   * Lookup325: rmrk_traits::resource::SlotResource<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2773   **/2774  RmrkTraitsResourceSlotResource: {2775    base: 'u32',2776    src: 'Option<Bytes>',2777    metadata: 'Option<Bytes>',2778    slot: 'u32',2779    license: 'Option<Bytes>',2780    thumb: 'Option<Bytes>'2781  },2782  /**2783   * Lookup328: pallet_rmrk_equip::pallet::Call<T>2784   **/2785  PalletRmrkEquipCall: {2786    _enum: {2787      create_base: {2788        baseType: 'Bytes',2789        symbol: 'Bytes',2790        parts: 'Vec<RmrkTraitsPartPartType>',2791      },2792      theme_add: {2793        baseId: 'u32',2794        theme: 'RmrkTraitsTheme',2795      },2796      equippable: {2797        baseId: 'u32',2798        slotId: 'u32',2799        equippables: 'RmrkTraitsPartEquippableList'2800      }2801    }2802  },2803  /**2804   * Lookup331: rmrk_traits::part::PartType<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2805   **/2806  RmrkTraitsPartPartType: {2807    _enum: {2808      FixedPart: 'RmrkTraitsPartFixedPart',2809      SlotPart: 'RmrkTraitsPartSlotPart'2810    }2811  },2812  /**2813   * Lookup333: rmrk_traits::part::FixedPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2814   **/2815  RmrkTraitsPartFixedPart: {2816    id: 'u32',2817    z: 'u32',2818    src: 'Bytes'2819  },2820  /**2821   * Lookup334: rmrk_traits::part::SlotPart<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>2822   **/2823  RmrkTraitsPartSlotPart: {2824    id: 'u32',2825    equippable: 'RmrkTraitsPartEquippableList',2826    src: 'Bytes',2827    z: 'u32'2828  },2829  /**2830   * Lookup335: rmrk_traits::part::EquippableList<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2831   **/2832  RmrkTraitsPartEquippableList: {2833    _enum: {2834      All: 'Null',2835      Empty: 'Null',2836      Custom: 'Vec<u32>'2837    }2838  },2839  /**2840   * Lookup337: 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>>2841   **/2842  RmrkTraitsTheme: {2843    name: 'Bytes',2844    properties: 'Vec<RmrkTraitsThemeThemeProperty>',2845    inherit: 'bool'2846  },2847  /**2848   * Lookup339: rmrk_traits::theme::ThemeProperty<sp_core::bounded::bounded_vec::BoundedVec<T, S>>2849   **/2850  RmrkTraitsThemeThemeProperty: {2851    key: 'Bytes',2852    value: 'Bytes'2853  },2854  /**2855   * Lookup341: pallet_app_promotion::pallet::Call<T>2856   **/2857  PalletAppPromotionCall: {2858    _enum: {2859      set_admin_address: {2860        admin: 'PalletEvmAccountBasicCrossAccountIdRepr',2861      },2862      stake: {2863        amount: 'u128',2864      },2865      unstake: 'Null',2866      sponsor_collection: {2867        collectionId: 'u32',2868      },2869      stop_sponsoring_collection: {2870        collectionId: 'u32',2871      },2872      sponsor_contract: {2873        contractId: 'H160',2874      },2875      stop_sponsoring_contract: {2876        contractId: 'H160',2877      },2878      payout_stakers: {2879        stakersNumber: 'Option<u8>'2880      }2881    }2882  },2883  /**2884   * Lookup342: pallet_foreign_assets::module::Call<T>2885   **/2886  PalletForeignAssetsModuleCall: {2887    _enum: {2888      register_foreign_asset: {2889        owner: 'AccountId32',2890        location: 'XcmVersionedMultiLocation',2891        metadata: 'PalletForeignAssetsModuleAssetMetadata',2892      },2893      update_foreign_asset: {2894        foreignAssetId: 'u32',2895        location: 'XcmVersionedMultiLocation',2896        metadata: 'PalletForeignAssetsModuleAssetMetadata'2897      }2898    }2899  },2900  /**2901   * Lookup343: pallet_evm::pallet::Call<T>2902   **/2903  PalletEvmCall: {2904    _enum: {2905      withdraw: {2906        address: 'H160',2907        value: 'u128',2908      },2909      call: {2910        source: 'H160',2911        target: 'H160',2912        input: 'Bytes',2913        value: 'U256',2914        gasLimit: 'u64',2915        maxFeePerGas: 'U256',2916        maxPriorityFeePerGas: 'Option<U256>',2917        nonce: 'Option<U256>',2918        accessList: 'Vec<(H160,Vec<H256>)>',2919      },2920      create: {2921        source: 'H160',2922        init: 'Bytes',2923        value: 'U256',2924        gasLimit: 'u64',2925        maxFeePerGas: 'U256',2926        maxPriorityFeePerGas: 'Option<U256>',2927        nonce: 'Option<U256>',2928        accessList: 'Vec<(H160,Vec<H256>)>',2929      },2930      create2: {2931        source: 'H160',2932        init: 'Bytes',2933        salt: 'H256',2934        value: 'U256',2935        gasLimit: 'u64',2936        maxFeePerGas: 'U256',2937        maxPriorityFeePerGas: 'Option<U256>',2938        nonce: 'Option<U256>',2939        accessList: 'Vec<(H160,Vec<H256>)>'2940      }2941    }2942  },2943  /**2944   * Lookup349: pallet_ethereum::pallet::Call<T>2945   **/2946  PalletEthereumCall: {2947    _enum: {2948      transact: {2949        transaction: 'EthereumTransactionTransactionV2'2950      }2951    }2952  },2953  /**2954   * Lookup350: ethereum::transaction::TransactionV22955   **/2956  EthereumTransactionTransactionV2: {2957    _enum: {2958      Legacy: 'EthereumTransactionLegacyTransaction',2959      EIP2930: 'EthereumTransactionEip2930Transaction',2960      EIP1559: 'EthereumTransactionEip1559Transaction'2961    }2962  },2963  /**2964   * Lookup351: ethereum::transaction::LegacyTransaction2965   **/2966  EthereumTransactionLegacyTransaction: {2967    nonce: 'U256',2968    gasPrice: 'U256',2969    gasLimit: 'U256',2970    action: 'EthereumTransactionTransactionAction',2971    value: 'U256',2972    input: 'Bytes',2973    signature: 'EthereumTransactionTransactionSignature'2974  },2975  /**2976   * Lookup352: ethereum::transaction::TransactionAction2977   **/2978  EthereumTransactionTransactionAction: {2979    _enum: {2980      Call: 'H160',2981      Create: 'Null'2982    }2983  },2984  /**2985   * Lookup353: ethereum::transaction::TransactionSignature2986   **/2987  EthereumTransactionTransactionSignature: {2988    v: 'u64',2989    r: 'H256',2990    s: 'H256'2991  },2992  /**2993   * Lookup355: ethereum::transaction::EIP2930Transaction2994   **/2995  EthereumTransactionEip2930Transaction: {2996    chainId: 'u64',2997    nonce: 'U256',2998    gasPrice: 'U256',2999    gasLimit: 'U256',3000    action: 'EthereumTransactionTransactionAction',3001    value: 'U256',3002    input: 'Bytes',3003    accessList: 'Vec<EthereumTransactionAccessListItem>',3004    oddYParity: 'bool',3005    r: 'H256',3006    s: 'H256'3007  },3008  /**3009   * Lookup357: ethereum::transaction::AccessListItem3010   **/3011  EthereumTransactionAccessListItem: {3012    address: 'H160',3013    storageKeys: 'Vec<H256>'3014  },3015  /**3016   * Lookup358: ethereum::transaction::EIP1559Transaction3017   **/3018  EthereumTransactionEip1559Transaction: {3019    chainId: 'u64',3020    nonce: 'U256',3021    maxPriorityFeePerGas: 'U256',3022    maxFeePerGas: 'U256',3023    gasLimit: 'U256',3024    action: 'EthereumTransactionTransactionAction',3025    value: 'U256',3026    input: 'Bytes',3027    accessList: 'Vec<EthereumTransactionAccessListItem>',3028    oddYParity: 'bool',3029    r: 'H256',3030    s: 'H256'3031  },3032  /**3033   * Lookup359: pallet_evm_migration::pallet::Call<T>3034   **/3035  PalletEvmMigrationCall: {3036    _enum: {3037      begin: {3038        address: 'H160',3039      },3040      set_data: {3041        address: 'H160',3042        data: 'Vec<(H256,H256)>',3043      },3044      finish: {3045        address: 'H160',3046        code: 'Bytes',3047      },3048      insert_eth_logs: {3049        logs: 'Vec<EthereumLog>',3050      },3051      insert_events: {3052        events: 'Vec<Bytes>'3053      }3054    }3055  },3056  /**3057   * Lookup363: pallet_maintenance::pallet::Call<T>3058   **/3059  PalletMaintenanceCall: {3060    _enum: ['enable', 'disable']3061  },3062  /**3063   * Lookup364: pallet_test_utils::pallet::Call<T>3064   **/3065  PalletTestUtilsCall: {3066    _enum: {3067      enable: 'Null',3068      set_test_value: {3069        value: 'u32',3070      },3071      set_test_value_and_rollback: {3072        value: 'u32',3073      },3074      inc_test_value: 'Null',3075      just_take_fee: 'Null',3076      batch_all: {3077        calls: 'Vec<Call>'3078      }3079    }3080  },3081  /**3082   * Lookup366: pallet_sudo::pallet::Error<T>3083   **/3084  PalletSudoError: {3085    _enum: ['RequireSudo']3086  },3087  /**3088   * Lookup368: orml_vesting::module::Error<T>3089   **/3090  OrmlVestingModuleError: {3091    _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']3092  },3093  /**3094   * Lookup369: orml_xtokens::module::Error<T>3095   **/3096  OrmlXtokensModuleError: {3097    _enum: ['AssetHasNoReserve', 'NotCrossChainTransfer', 'InvalidDest', 'NotCrossChainTransferableCurrency', 'UnweighableMessage', 'XcmExecutionFailed', 'CannotReanchor', 'InvalidAncestry', 'InvalidAsset', 'DestinationNotInvertible', 'BadVersion', 'DistinctReserveForAssetAndFee', 'ZeroFee', 'ZeroAmount', 'TooManyAssetsBeingSent', 'AssetIndexNonExistent', 'FeeNotEnough', 'NotSupportedMultiLocation', 'MinXcmFeeNotDefined']3098  },3099  /**3100   * Lookup372: orml_tokens::BalanceLock<Balance>3101   **/3102  OrmlTokensBalanceLock: {3103    id: '[u8;8]',3104    amount: 'u128'3105  },3106  /**3107   * Lookup374: orml_tokens::AccountData<Balance>3108   **/3109  OrmlTokensAccountData: {3110    free: 'u128',3111    reserved: 'u128',3112    frozen: 'u128'3113  },3114  /**3115   * Lookup376: orml_tokens::ReserveData<ReserveIdentifier, Balance>3116   **/3117  OrmlTokensReserveData: {3118    id: 'Null',3119    amount: 'u128'3120  },3121  /**3122   * Lookup378: orml_tokens::module::Error<T>3123   **/3124  OrmlTokensModuleError: {3125    _enum: ['BalanceTooLow', 'AmountIntoBalanceFailed', 'LiquidityRestrictions', 'MaxLocksExceeded', 'KeepAlive', 'ExistentialDeposit', 'DeadAccount', 'TooManyReserves']3126  },3127  /**3128   * Lookup380: cumulus_pallet_xcmp_queue::InboundChannelDetails3129   **/3130  CumulusPalletXcmpQueueInboundChannelDetails: {3131    sender: 'u32',3132    state: 'CumulusPalletXcmpQueueInboundState',3133    messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'3134  },3135  /**3136   * Lookup381: cumulus_pallet_xcmp_queue::InboundState3137   **/3138  CumulusPalletXcmpQueueInboundState: {3139    _enum: ['Ok', 'Suspended']3140  },3141  /**3142   * Lookup384: polkadot_parachain::primitives::XcmpMessageFormat3143   **/3144  PolkadotParachainPrimitivesXcmpMessageFormat: {3145    _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']3146  },3147  /**3148   * Lookup387: cumulus_pallet_xcmp_queue::OutboundChannelDetails3149   **/3150  CumulusPalletXcmpQueueOutboundChannelDetails: {3151    recipient: 'u32',3152    state: 'CumulusPalletXcmpQueueOutboundState',3153    signalsExist: 'bool',3154    firstIndex: 'u16',3155    lastIndex: 'u16'3156  },3157  /**3158   * Lookup388: cumulus_pallet_xcmp_queue::OutboundState3159   **/3160  CumulusPalletXcmpQueueOutboundState: {3161    _enum: ['Ok', 'Suspended']3162  },3163  /**3164   * Lookup390: cumulus_pallet_xcmp_queue::QueueConfigData3165   **/3166  CumulusPalletXcmpQueueQueueConfigData: {3167    suspendThreshold: 'u32',3168    dropThreshold: 'u32',3169    resumeThreshold: 'u32',3170    thresholdWeight: 'SpWeightsWeightV2Weight',3171    weightRestrictDecay: 'SpWeightsWeightV2Weight',3172    xcmpMaxIndividualWeight: 'SpWeightsWeightV2Weight'3173  },3174  /**3175   * Lookup392: cumulus_pallet_xcmp_queue::pallet::Error<T>3176   **/3177  CumulusPalletXcmpQueueError: {3178    _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']3179  },3180  /**3181   * Lookup393: pallet_xcm::pallet::Error<T>3182   **/3183  PalletXcmError: {3184    _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']3185  },3186  /**3187   * Lookup394: cumulus_pallet_xcm::pallet::Error<T>3188   **/3189  CumulusPalletXcmError: 'Null',3190  /**3191   * Lookup395: cumulus_pallet_dmp_queue::ConfigData3192   **/3193  CumulusPalletDmpQueueConfigData: {3194    maxIndividual: 'SpWeightsWeightV2Weight'3195  },3196  /**3197   * Lookup396: cumulus_pallet_dmp_queue::PageIndexData3198   **/3199  CumulusPalletDmpQueuePageIndexData: {3200    beginUsed: 'u32',3201    endUsed: 'u32',3202    overweightCount: 'u64'3203  },3204  /**3205   * Lookup399: cumulus_pallet_dmp_queue::pallet::Error<T>3206   **/3207  CumulusPalletDmpQueueError: {3208    _enum: ['Unknown', 'OverLimit']3209  },3210  /**3211   * Lookup403: pallet_unique::Error<T>3212   **/3213  PalletUniqueError: {3214    _enum: ['CollectionDecimalPointLimitExceeded', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']3215  },3216  /**3217   * Lookup404: pallet_configuration::pallet::Error<T>3218   **/3219  PalletConfigurationError: {3220    _enum: ['InconsistentConfiguration']3221  },3222  /**3223   * Lookup405: up_data_structs::Collection<sp_core::crypto::AccountId32>3224   **/3225  UpDataStructsCollection: {3226    owner: 'AccountId32',3227    mode: 'UpDataStructsCollectionMode',3228    name: 'Vec<u16>',3229    description: 'Vec<u16>',3230    tokenPrefix: 'Bytes',3231    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3232    limits: 'UpDataStructsCollectionLimits',3233    permissions: 'UpDataStructsCollectionPermissions',3234    flags: '[u8;1]'3235  },3236  /**3237   * Lookup406: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>3238   **/3239  UpDataStructsSponsorshipStateAccountId32: {3240    _enum: {3241      Disabled: 'Null',3242      Unconfirmed: 'AccountId32',3243      Confirmed: 'AccountId32'3244    }3245  },3246  /**3247   * Lookup408: up_data_structs::Properties3248   **/3249  UpDataStructsProperties: {3250    map: 'UpDataStructsPropertiesMapBoundedVec',3251    consumedSpace: 'u32',3252    spaceLimit: 'u32'3253  },3254  /**3255   * Lookup409: up_data_structs::PropertiesMap<sp_core::bounded::bounded_vec::BoundedVec<T, S>>3256   **/3257  UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',3258  /**3259   * Lookup414: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>3260   **/3261  UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',3262  /**3263   * Lookup421: up_data_structs::CollectionStats3264   **/3265  UpDataStructsCollectionStats: {3266    created: 'u32',3267    destroyed: 'u32',3268    alive: 'u32'3269  },3270  /**3271   * Lookup422: up_data_structs::TokenChild3272   **/3273  UpDataStructsTokenChild: {3274    token: 'u32',3275    collection: 'u32'3276  },3277  /**3278   * Lookup423: PhantomType::up_data_structs<T>3279   **/3280  PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',3281  /**3282   * Lookup425: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3283   **/3284  UpDataStructsTokenData: {3285    properties: 'Vec<UpDataStructsProperty>',3286    owner: 'Option<PalletEvmAccountBasicCrossAccountIdRepr>',3287    pieces: 'u128'3288  },3289  /**3290   * Lookup427: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>3291   **/3292  UpDataStructsRpcCollection: {3293    owner: 'AccountId32',3294    mode: 'UpDataStructsCollectionMode',3295    name: 'Vec<u16>',3296    description: 'Vec<u16>',3297    tokenPrefix: 'Bytes',3298    sponsorship: 'UpDataStructsSponsorshipStateAccountId32',3299    limits: 'UpDataStructsCollectionLimits',3300    permissions: 'UpDataStructsCollectionPermissions',3301    tokenPropertyPermissions: 'Vec<UpDataStructsPropertyKeyPermission>',3302    properties: 'Vec<UpDataStructsProperty>',3303    readOnly: 'bool',3304    flags: 'UpDataStructsRpcCollectionFlags'3305  },3306  /**3307   * Lookup428: up_data_structs::RpcCollectionFlags3308   **/3309  UpDataStructsRpcCollectionFlags: {3310    foreign: 'bool',3311    erc721metadata: 'bool'3312  },3313  /**3314   * Lookup429: rmrk_traits::collection::CollectionInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>3315   **/3316  RmrkTraitsCollectionCollectionInfo: {3317    issuer: 'AccountId32',3318    metadata: 'Bytes',3319    max: 'Option<u32>',3320    symbol: 'Bytes',3321    nftsCount: 'u32'3322  },3323  /**3324   * Lookup430: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3325   **/3326  RmrkTraitsNftNftInfo: {3327    owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',3328    royalty: 'Option<RmrkTraitsNftRoyaltyInfo>',3329    metadata: 'Bytes',3330    equipped: 'bool',3331    pending: 'bool'3332  },3333  /**3334   * Lookup432: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>3335   **/3336  RmrkTraitsNftRoyaltyInfo: {3337    recipient: 'AccountId32',3338    amount: 'Permill'3339  },3340  /**3341   * Lookup433: rmrk_traits::resource::ResourceInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3342   **/3343  RmrkTraitsResourceResourceInfo: {3344    id: 'u32',3345    resource: 'RmrkTraitsResourceResourceTypes',3346    pending: 'bool',3347    pendingRemoval: 'bool'3348  },3349  /**3350   * Lookup434: rmrk_traits::property::PropertyInfo<sp_core::bounded::bounded_vec::BoundedVec<T, S>, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3351   **/3352  RmrkTraitsPropertyPropertyInfo: {3353    key: 'Bytes',3354    value: 'Bytes'3355  },3356  /**3357   * Lookup435: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_core::bounded::bounded_vec::BoundedVec<T, S>>3358   **/3359  RmrkTraitsBaseBaseInfo: {3360    issuer: 'AccountId32',3361    baseType: 'Bytes',3362    symbol: 'Bytes'3363  },3364  /**3365   * Lookup436: rmrk_traits::nft::NftChild3366   **/3367  RmrkTraitsNftNftChild: {3368    collectionId: 'u32',3369    nftId: 'u32'3370  },3371  /**3372   * Lookup438: pallet_common::pallet::Error<T>3373   **/3374  PalletCommonError: {3375    _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']3376  },3377  /**3378   * Lookup440: pallet_fungible::pallet::Error<T>3379   **/3380  PalletFungibleError: {3381    _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed', 'SettingAllowanceForAllNotAllowed', 'FungibleTokensAreAlwaysValid']3382  },3383  /**3384   * Lookup441: pallet_refungible::ItemData3385   **/3386  PalletRefungibleItemData: {3387    constData: 'Bytes'3388  },3389  /**3390   * Lookup446: pallet_refungible::pallet::Error<T>3391   **/3392  PalletRefungibleError: {3393    _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']3394  },3395  /**3396   * Lookup447: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3397   **/3398  PalletNonfungibleItemData: {3399    owner: 'PalletEvmAccountBasicCrossAccountIdRepr'3400  },3401  /**3402   * Lookup449: up_data_structs::PropertyScope3403   **/3404  UpDataStructsPropertyScope: {3405    _enum: ['None', 'Rmrk']3406  },3407  /**3408   * Lookup451: pallet_nonfungible::pallet::Error<T>3409   **/3410  PalletNonfungibleError: {3411    _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']3412  },3413  /**3414   * Lookup452: pallet_structure::pallet::Error<T>3415   **/3416  PalletStructureError: {3417    _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']3418  },3419  /**3420   * Lookup453: pallet_rmrk_core::pallet::Error<T>3421   **/3422  PalletRmrkCoreError: {3423    _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']3424  },3425  /**3426   * Lookup455: pallet_rmrk_equip::pallet::Error<T>3427   **/3428  PalletRmrkEquipError: {3429    _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']3430  },3431  /**3432   * Lookup461: pallet_app_promotion::pallet::Error<T>3433   **/3434  PalletAppPromotionError: {3435    _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFunds', 'PendingForBlockOverflow', 'SponsorNotSet', 'IncorrectLockedBalanceOperation']3436  },3437  /**3438   * Lookup462: pallet_foreign_assets::module::Error<T>3439   **/3440  PalletForeignAssetsModuleError: {3441    _enum: ['BadLocation', 'MultiLocationExisted', 'AssetIdNotExists', 'AssetIdExisted']3442  },3443  /**3444   * Lookup464: pallet_evm::pallet::Error<T>3445   **/3446  PalletEvmError: {3447    _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce', 'GasLimitTooLow', 'GasLimitTooHigh', 'Undefined', 'Reentrancy']3448  },3449  /**3450   * Lookup467: fp_rpc::TransactionStatus3451   **/3452  FpRpcTransactionStatus: {3453    transactionHash: 'H256',3454    transactionIndex: 'u32',3455    from: 'H160',3456    to: 'Option<H160>',3457    contractAddress: 'Option<H160>',3458    logs: 'Vec<EthereumLog>',3459    logsBloom: 'EthbloomBloom'3460  },3461  /**3462   * Lookup469: ethbloom::Bloom3463   **/3464  EthbloomBloom: '[u8;256]',3465  /**3466   * Lookup471: ethereum::receipt::ReceiptV33467   **/3468  EthereumReceiptReceiptV3: {3469    _enum: {3470      Legacy: 'EthereumReceiptEip658ReceiptData',3471      EIP2930: 'EthereumReceiptEip658ReceiptData',3472      EIP1559: 'EthereumReceiptEip658ReceiptData'3473    }3474  },3475  /**3476   * Lookup472: ethereum::receipt::EIP658ReceiptData3477   **/3478  EthereumReceiptEip658ReceiptData: {3479    statusCode: 'u8',3480    usedGas: 'U256',3481    logsBloom: 'EthbloomBloom',3482    logs: 'Vec<EthereumLog>'3483  },3484  /**3485   * Lookup473: ethereum::block::Block<ethereum::transaction::TransactionV2>3486   **/3487  EthereumBlock: {3488    header: 'EthereumHeader',3489    transactions: 'Vec<EthereumTransactionTransactionV2>',3490    ommers: 'Vec<EthereumHeader>'3491  },3492  /**3493   * Lookup474: ethereum::header::Header3494   **/3495  EthereumHeader: {3496    parentHash: 'H256',3497    ommersHash: 'H256',3498    beneficiary: 'H160',3499    stateRoot: 'H256',3500    transactionsRoot: 'H256',3501    receiptsRoot: 'H256',3502    logsBloom: 'EthbloomBloom',3503    difficulty: 'U256',3504    number: 'U256',3505    gasLimit: 'U256',3506    gasUsed: 'U256',3507    timestamp: 'u64',3508    extraData: 'Bytes',3509    mixHash: 'H256',3510    nonce: 'EthereumTypesHashH64'3511  },3512  /**3513   * Lookup475: ethereum_types::hash::H643514   **/3515  EthereumTypesHashH64: '[u8;8]',3516  /**3517   * Lookup480: pallet_ethereum::pallet::Error<T>3518   **/3519  PalletEthereumError: {3520    _enum: ['InvalidSignature', 'PreLogExists']3521  },3522  /**3523   * Lookup481: pallet_evm_coder_substrate::pallet::Error<T>3524   **/3525  PalletEvmCoderSubstrateError: {3526    _enum: ['OutOfGas', 'OutOfFund']3527  },3528  /**3529   * Lookup482: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>3530   **/3531  UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {3532    _enum: {3533      Disabled: 'Null',3534      Unconfirmed: 'PalletEvmAccountBasicCrossAccountIdRepr',3535      Confirmed: 'PalletEvmAccountBasicCrossAccountIdRepr'3536    }3537  },3538  /**3539   * Lookup483: pallet_evm_contract_helpers::SponsoringModeT3540   **/3541  PalletEvmContractHelpersSponsoringModeT: {3542    _enum: ['Disabled', 'Allowlisted', 'Generous']3543  },3544  /**3545   * Lookup489: pallet_evm_contract_helpers::pallet::Error<T>3546   **/3547  PalletEvmContractHelpersError: {3548    _enum: ['NoPermission', 'NoPendingSponsor', 'TooManyMethodsHaveSponsoredLimit']3549  },3550  /**3551   * Lookup490: pallet_evm_migration::pallet::Error<T>3552   **/3553  PalletEvmMigrationError: {3554    _enum: ['AccountNotEmpty', 'AccountIsNotMigrating', 'BadEvent']3555  },3556  /**3557   * Lookup491: pallet_maintenance::pallet::Error<T>3558   **/3559  PalletMaintenanceError: 'Null',3560  /**3561   * Lookup492: pallet_test_utils::pallet::Error<T>3562   **/3563  PalletTestUtilsError: {3564    _enum: ['TestPalletDisabled', 'TriggerRollback']3565  },3566  /**3567   * Lookup494: sp_runtime::MultiSignature3568   **/3569  SpRuntimeMultiSignature: {3570    _enum: {3571      Ed25519: 'SpCoreEd25519Signature',3572      Sr25519: 'SpCoreSr25519Signature',3573      Ecdsa: 'SpCoreEcdsaSignature'3574    }3575  },3576  /**3577   * Lookup495: sp_core::ed25519::Signature3578   **/3579  SpCoreEd25519Signature: '[u8;64]',3580  /**3581   * Lookup497: sp_core::sr25519::Signature3582   **/3583  SpCoreSr25519Signature: '[u8;64]',3584  /**3585   * Lookup498: sp_core::ecdsa::Signature3586   **/3587  SpCoreEcdsaSignature: '[u8;65]',3588  /**3589   * Lookup501: frame_system::extensions::check_spec_version::CheckSpecVersion<T>3590   **/3591  FrameSystemExtensionsCheckSpecVersion: 'Null',3592  /**3593   * Lookup502: frame_system::extensions::check_tx_version::CheckTxVersion<T>3594   **/3595  FrameSystemExtensionsCheckTxVersion: 'Null',3596  /**3597   * Lookup503: frame_system::extensions::check_genesis::CheckGenesis<T>3598   **/3599  FrameSystemExtensionsCheckGenesis: 'Null',3600  /**3601   * Lookup506: frame_system::extensions::check_nonce::CheckNonce<T>3602   **/3603  FrameSystemExtensionsCheckNonce: 'Compact<u32>',3604  /**3605   * Lookup507: frame_system::extensions::check_weight::CheckWeight<T>3606   **/3607  FrameSystemExtensionsCheckWeight: 'Null',3608  /**3609   * Lookup508: opal_runtime::runtime_common::maintenance::CheckMaintenance3610   **/3611  OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: 'Null',3612  /**3613   * Lookup509: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>3614   **/3615  PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',3616  /**3617   * Lookup510: opal_runtime::Runtime3618   **/3619  OpalRuntimeRuntime: 'Null',3620  /**3621   * Lookup511: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>3622   **/3623  PalletEthereumFakeTransactionFinalizer: 'Null'3624};
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -5,7 +5,7 @@
 // this is required to allow for ambient/previous definitions
 import '@polkadot/types/types/registry';
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, FrameSupportDispatchPerDispatchClassU32, FrameSupportDispatchPerDispatchClassWeight, FrameSupportDispatchPerDispatchClassWeightsPerClass, FrameSupportPalletId, FrameSupportTokensMiscBalanceStatus, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckTxVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeRuntime, OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance, OpalRuntimeRuntimeCommonSessionKeys, OrmlTokensAccountData, OrmlTokensBalanceLock, OrmlTokensModuleCall, OrmlTokensModuleError, OrmlTokensModuleEvent, OrmlTokensReserveData, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, OrmlXtokensModuleCall, OrmlXtokensModuleError, OrmlXtokensModuleEvent, PalletAppPromotionCall, PalletAppPromotionError, PalletAppPromotionEvent, PalletAuthorshipCall, PalletAuthorshipError, PalletAuthorshipUncleEntryItem, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCollatorSelectionCall, PalletCollatorSelectionError, PalletCollatorSelectionEvent, PalletCommonError, PalletCommonEvent, PalletConfigurationAppPromotionConfiguration, PalletConfigurationCall, PalletConfigurationError, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersEvent, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletEvmMigrationEvent, PalletForeignAssetsAssetIds, PalletForeignAssetsModuleAssetMetadata, PalletForeignAssetsModuleCall, PalletForeignAssetsModuleError, PalletForeignAssetsModuleEvent, PalletForeignAssetsNativeCurrency, PalletFungibleError, PalletInflationCall, PalletMaintenanceCall, PalletMaintenanceError, PalletMaintenanceEvent, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletSessionCall, PalletSessionError, PalletSessionEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTestUtilsCall, PalletTestUtilsError, PalletTestUtilsEvent, PalletTimestampCall, PalletTransactionPaymentEvent, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletXcmCall, PalletXcmError, PalletXcmEvent, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Public, SpCoreSr25519Signature, SpRuntimeArithmeticError, SpRuntimeBlakeTwo256, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeHeader, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsRpcCollectionFlags, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipStateAccountId32, UpDataStructsSponsorshipStateBasicCrossAccountIdRepr, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAsset, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   interface InterfaceTypes {
@@ -75,6 +75,7 @@
     FrameSystemPhase: FrameSystemPhase;
     OpalRuntimeRuntime: OpalRuntimeRuntime;
     OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance: OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance;
+    OpalRuntimeRuntimeCommonSessionKeys: OpalRuntimeRuntimeCommonSessionKeys;
     OrmlTokensAccountData: OrmlTokensAccountData;
     OrmlTokensBalanceLock: OrmlTokensBalanceLock;
     OrmlTokensModuleCall: OrmlTokensModuleCall;
@@ -91,6 +92,9 @@
     PalletAppPromotionCall: PalletAppPromotionCall;
     PalletAppPromotionError: PalletAppPromotionError;
     PalletAppPromotionEvent: PalletAppPromotionEvent;
+    PalletAuthorshipCall: PalletAuthorshipCall;
+    PalletAuthorshipError: PalletAuthorshipError;
+    PalletAuthorshipUncleEntryItem: PalletAuthorshipUncleEntryItem;
     PalletBalancesAccountData: PalletBalancesAccountData;
     PalletBalancesBalanceLock: PalletBalancesBalanceLock;
     PalletBalancesCall: PalletBalancesCall;
@@ -99,6 +103,9 @@
     PalletBalancesReasons: PalletBalancesReasons;
     PalletBalancesReleases: PalletBalancesReleases;
     PalletBalancesReserveData: PalletBalancesReserveData;
+    PalletCollatorSelectionCall: PalletCollatorSelectionCall;
+    PalletCollatorSelectionError: PalletCollatorSelectionError;
+    PalletCollatorSelectionEvent: PalletCollatorSelectionEvent;
     PalletCommonError: PalletCommonError;
     PalletCommonEvent: PalletCommonEvent;
     PalletConfigurationAppPromotionConfiguration: PalletConfigurationAppPromotionConfiguration;
@@ -140,6 +147,9 @@
     PalletRmrkEquipCall: PalletRmrkEquipCall;
     PalletRmrkEquipError: PalletRmrkEquipError;
     PalletRmrkEquipEvent: PalletRmrkEquipEvent;
+    PalletSessionCall: PalletSessionCall;
+    PalletSessionError: PalletSessionError;
+    PalletSessionEvent: PalletSessionEvent;
     PalletStructureCall: PalletStructureCall;
     PalletStructureError: PalletStructureError;
     PalletStructureEvent: PalletStructureEvent;
@@ -190,13 +200,18 @@
     RmrkTraitsResourceSlotResource: RmrkTraitsResourceSlotResource;
     RmrkTraitsTheme: RmrkTraitsTheme;
     RmrkTraitsThemeThemeProperty: RmrkTraitsThemeThemeProperty;
+    SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public;
+    SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId;
     SpCoreEcdsaSignature: SpCoreEcdsaSignature;
     SpCoreEd25519Signature: SpCoreEd25519Signature;
+    SpCoreSr25519Public: SpCoreSr25519Public;
     SpCoreSr25519Signature: SpCoreSr25519Signature;
     SpRuntimeArithmeticError: SpRuntimeArithmeticError;
+    SpRuntimeBlakeTwo256: SpRuntimeBlakeTwo256;
     SpRuntimeDigest: SpRuntimeDigest;
     SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem;
     SpRuntimeDispatchError: SpRuntimeDispatchError;
+    SpRuntimeHeader: SpRuntimeHeader;
     SpRuntimeModuleError: SpRuntimeModuleError;
     SpRuntimeMultiSignature: SpRuntimeMultiSignature;
     SpRuntimeTokenError: SpRuntimeTokenError;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -196,7 +196,59 @@
     readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'UpgradeAuthorized' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed';
   }
 
-  /** @name PalletBalancesEvent (30) */
+  /** @name PalletCollatorSelectionEvent (30) */
+  interface PalletCollatorSelectionEvent extends Enum {
+    readonly isNewDesiredCollators: boolean;
+    readonly asNewDesiredCollators: {
+      readonly desiredCollators: u32;
+    } & Struct;
+    readonly isNewLicenseBond: boolean;
+    readonly asNewLicenseBond: {
+      readonly bondAmount: u128;
+    } & Struct;
+    readonly isNewKickThreshold: boolean;
+    readonly asNewKickThreshold: {
+      readonly lengthInBlocks: u32;
+    } & Struct;
+    readonly isInvulnerableAdded: boolean;
+    readonly asInvulnerableAdded: {
+      readonly invulnerable: AccountId32;
+    } & Struct;
+    readonly isInvulnerableRemoved: boolean;
+    readonly asInvulnerableRemoved: {
+      readonly invulnerable: AccountId32;
+    } & Struct;
+    readonly isLicenseObtained: boolean;
+    readonly asLicenseObtained: {
+      readonly accountId: AccountId32;
+      readonly deposit: u128;
+    } & Struct;
+    readonly isLicenseForfeited: boolean;
+    readonly asLicenseForfeited: {
+      readonly accountId: AccountId32;
+      readonly depositReturned: u128;
+    } & Struct;
+    readonly isCandidateAdded: boolean;
+    readonly asCandidateAdded: {
+      readonly accountId: AccountId32;
+    } & Struct;
+    readonly isCandidateRemoved: boolean;
+    readonly asCandidateRemoved: {
+      readonly accountId: AccountId32;
+    } & Struct;
+    readonly type: 'NewDesiredCollators' | 'NewLicenseBond' | 'NewKickThreshold' | 'InvulnerableAdded' | 'InvulnerableRemoved' | 'LicenseObtained' | 'LicenseForfeited' | 'CandidateAdded' | 'CandidateRemoved';
+  }
+
+  /** @name PalletSessionEvent (31) */
+  interface PalletSessionEvent extends Enum {
+    readonly isNewSession: boolean;
+    readonly asNewSession: {
+      readonly sessionIndex: u32;
+    } & Struct;
+    readonly type: 'NewSession';
+  }
+
+  /** @name PalletBalancesEvent (32) */
   interface PalletBalancesEvent extends Enum {
     readonly isEndowed: boolean;
     readonly asEndowed: {
@@ -255,14 +307,14 @@
     readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed';
   }
 
-  /** @name FrameSupportTokensMiscBalanceStatus (31) */
+  /** @name FrameSupportTokensMiscBalanceStatus (33) */
   interface FrameSupportTokensMiscBalanceStatus extends Enum {
     readonly isFree: boolean;
     readonly isReserved: boolean;
     readonly type: 'Free' | 'Reserved';
   }
 
-  /** @name PalletTransactionPaymentEvent (32) */
+  /** @name PalletTransactionPaymentEvent (34) */
   interface PalletTransactionPaymentEvent extends Enum {
     readonly isTransactionFeePaid: boolean;
     readonly asTransactionFeePaid: {
@@ -273,7 +325,7 @@
     readonly type: 'TransactionFeePaid';
   }
 
-  /** @name PalletTreasuryEvent (33) */
+  /** @name PalletTreasuryEvent (35) */
   interface PalletTreasuryEvent extends Enum {
     readonly isProposed: boolean;
     readonly asProposed: {
@@ -315,7 +367,7 @@
     readonly type: 'Proposed' | 'Spending' | 'Awarded' | 'Rejected' | 'Burnt' | 'Rollover' | 'Deposit' | 'SpendApproved';
   }
 
-  /** @name PalletSudoEvent (34) */
+  /** @name PalletSudoEvent (36) */
   interface PalletSudoEvent extends Enum {
     readonly isSudid: boolean;
     readonly asSudid: {
@@ -332,7 +384,7 @@
     readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
   }
 
-  /** @name OrmlVestingModuleEvent (38) */
+  /** @name OrmlVestingModuleEvent (40) */
   interface OrmlVestingModuleEvent extends Enum {
     readonly isVestingScheduleAdded: boolean;
     readonly asVestingScheduleAdded: {
@@ -352,7 +404,7 @@
     readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
   }
 
-  /** @name OrmlVestingVestingSchedule (39) */
+  /** @name OrmlVestingVestingSchedule (41) */
   interface OrmlVestingVestingSchedule extends Struct {
     readonly start: u32;
     readonly period: u32;
@@ -360,7 +412,7 @@
     readonly perPeriod: Compact<u128>;
   }
 
-  /** @name OrmlXtokensModuleEvent (41) */
+  /** @name OrmlXtokensModuleEvent (43) */
   interface OrmlXtokensModuleEvent extends Enum {
     readonly isTransferredMultiAssets: boolean;
     readonly asTransferredMultiAssets: {
@@ -372,16 +424,16 @@
     readonly type: 'TransferredMultiAssets';
   }
 
-  /** @name XcmV1MultiassetMultiAssets (42) */
+  /** @name XcmV1MultiassetMultiAssets (44) */
   interface XcmV1MultiassetMultiAssets extends Vec<XcmV1MultiAsset> {}
 
-  /** @name XcmV1MultiAsset (44) */
+  /** @name XcmV1MultiAsset (46) */
   interface XcmV1MultiAsset extends Struct {
     readonly id: XcmV1MultiassetAssetId;
     readonly fun: XcmV1MultiassetFungibility;
   }
 
-  /** @name XcmV1MultiassetAssetId (45) */
+  /** @name XcmV1MultiassetAssetId (47) */
   interface XcmV1MultiassetAssetId extends Enum {
     readonly isConcrete: boolean;
     readonly asConcrete: XcmV1MultiLocation;
@@ -390,13 +442,13 @@
     readonly type: 'Concrete' | 'Abstract';
   }
 
-  /** @name XcmV1MultiLocation (46) */
+  /** @name XcmV1MultiLocation (48) */
   interface XcmV1MultiLocation extends Struct {
     readonly parents: u8;
     readonly interior: XcmV1MultilocationJunctions;
   }
 
-  /** @name XcmV1MultilocationJunctions (47) */
+  /** @name XcmV1MultilocationJunctions (49) */
   interface XcmV1MultilocationJunctions extends Enum {
     readonly isHere: boolean;
     readonly isX1: boolean;
@@ -418,7 +470,7 @@
     readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';
   }
 
-  /** @name XcmV1Junction (48) */
+  /** @name XcmV1Junction (50) */
   interface XcmV1Junction extends Enum {
     readonly isParachain: boolean;
     readonly asParachain: Compact<u32>;
@@ -452,7 +504,7 @@
     readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';
   }
 
-  /** @name XcmV0JunctionNetworkId (50) */
+  /** @name XcmV0JunctionNetworkId (52) */
   interface XcmV0JunctionNetworkId extends Enum {
     readonly isAny: boolean;
     readonly isNamed: boolean;
@@ -462,7 +514,7 @@
     readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama';
   }
 
-  /** @name XcmV0JunctionBodyId (53) */
+  /** @name XcmV0JunctionBodyId (55) */
   interface XcmV0JunctionBodyId extends Enum {
     readonly isUnit: boolean;
     readonly isNamed: boolean;
@@ -476,7 +528,7 @@
     readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial';
   }
 
-  /** @name XcmV0JunctionBodyPart (54) */
+  /** @name XcmV0JunctionBodyPart (56) */
   interface XcmV0JunctionBodyPart extends Enum {
     readonly isVoice: boolean;
     readonly isMembers: boolean;
@@ -501,7 +553,7 @@
     readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion';
   }
 
-  /** @name XcmV1MultiassetFungibility (55) */
+  /** @name XcmV1MultiassetFungibility (57) */
   interface XcmV1MultiassetFungibility extends Enum {
     readonly isFungible: boolean;
     readonly asFungible: Compact<u128>;
@@ -510,7 +562,7 @@
     readonly type: 'Fungible' | 'NonFungible';
   }
 
-  /** @name XcmV1MultiassetAssetInstance (56) */
+  /** @name XcmV1MultiassetAssetInstance (58) */
   interface XcmV1MultiassetAssetInstance extends Enum {
     readonly isUndefined: boolean;
     readonly isIndex: boolean;
@@ -528,7 +580,7 @@
     readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob';
   }
 
-  /** @name OrmlTokensModuleEvent (59) */
+  /** @name OrmlTokensModuleEvent (61) */
   interface OrmlTokensModuleEvent extends Enum {
     readonly isEndowed: boolean;
     readonly asEndowed: {
@@ -616,7 +668,7 @@
     readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'BalanceSet' | 'TotalIssuanceSet' | 'Withdrawn' | 'Slashed' | 'Deposited' | 'LockSet' | 'LockRemoved';
   }
 
-  /** @name PalletForeignAssetsAssetIds (60) */
+  /** @name PalletForeignAssetsAssetIds (62) */
   interface PalletForeignAssetsAssetIds extends Enum {
     readonly isForeignAssetId: boolean;
     readonly asForeignAssetId: u32;
@@ -625,14 +677,14 @@
     readonly type: 'ForeignAssetId' | 'NativeAssetId';
   }
 
-  /** @name PalletForeignAssetsNativeCurrency (61) */
+  /** @name PalletForeignAssetsNativeCurrency (63) */
   interface PalletForeignAssetsNativeCurrency extends Enum {
     readonly isHere: boolean;
     readonly isParent: boolean;
     readonly type: 'Here' | 'Parent';
   }
 
-  /** @name CumulusPalletXcmpQueueEvent (62) */
+  /** @name CumulusPalletXcmpQueueEvent (64) */
   interface CumulusPalletXcmpQueueEvent extends Enum {
     readonly isSuccess: boolean;
     readonly asSuccess: {
@@ -676,7 +728,7 @@
     readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name XcmV2TraitsError (64) */
+  /** @name XcmV2TraitsError (66) */
   interface XcmV2TraitsError extends Enum {
     readonly isOverflow: boolean;
     readonly isUnimplemented: boolean;
@@ -709,7 +761,7 @@
     readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable';
   }
 
-  /** @name PalletXcmEvent (66) */
+  /** @name PalletXcmEvent (68) */
   interface PalletXcmEvent extends Enum {
     readonly isAttempted: boolean;
     readonly asAttempted: XcmV2TraitsOutcome;
@@ -748,7 +800,7 @@
     readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail' | 'AssetsClaimed';
   }
 
-  /** @name XcmV2TraitsOutcome (67) */
+  /** @name XcmV2TraitsOutcome (69) */
   interface XcmV2TraitsOutcome extends Enum {
     readonly isComplete: boolean;
     readonly asComplete: u64;
@@ -759,10 +811,10 @@
     readonly type: 'Complete' | 'Incomplete' | 'Error';
   }
 
-  /** @name XcmV2Xcm (68) */
+  /** @name XcmV2Xcm (70) */
   interface XcmV2Xcm extends Vec<XcmV2Instruction> {}
 
-  /** @name XcmV2Instruction (70) */
+  /** @name XcmV2Instruction (72) */
   interface XcmV2Instruction extends Enum {
     readonly isWithdrawAsset: boolean;
     readonly asWithdrawAsset: XcmV1MultiassetMultiAssets;
@@ -882,7 +934,7 @@
     readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion';
   }
 
-  /** @name XcmV2Response (71) */
+  /** @name XcmV2Response (73) */
   interface XcmV2Response extends Enum {
     readonly isNull: boolean;
     readonly isAssets: boolean;
@@ -894,7 +946,7 @@
     readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version';
   }
 
-  /** @name XcmV0OriginKind (74) */
+  /** @name XcmV0OriginKind (76) */
   interface XcmV0OriginKind extends Enum {
     readonly isNative: boolean;
     readonly isSovereignAccount: boolean;
@@ -903,12 +955,12 @@
     readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm';
   }
 
-  /** @name XcmDoubleEncoded (75) */
+  /** @name XcmDoubleEncoded (77) */
   interface XcmDoubleEncoded extends Struct {
     readonly encoded: Bytes;
   }
 
-  /** @name XcmV1MultiassetMultiAssetFilter (76) */
+  /** @name XcmV1MultiassetMultiAssetFilter (78) */
   interface XcmV1MultiassetMultiAssetFilter extends Enum {
     readonly isDefinite: boolean;
     readonly asDefinite: XcmV1MultiassetMultiAssets;
@@ -917,7 +969,7 @@
     readonly type: 'Definite' | 'Wild';
   }
 
-  /** @name XcmV1MultiassetWildMultiAsset (77) */
+  /** @name XcmV1MultiassetWildMultiAsset (79) */
   interface XcmV1MultiassetWildMultiAsset extends Enum {
     readonly isAll: boolean;
     readonly isAllOf: boolean;
@@ -928,14 +980,14 @@
     readonly type: 'All' | 'AllOf';
   }
 
-  /** @name XcmV1MultiassetWildFungibility (78) */
+  /** @name XcmV1MultiassetWildFungibility (80) */
   interface XcmV1MultiassetWildFungibility extends Enum {
     readonly isFungible: boolean;
     readonly isNonFungible: boolean;
     readonly type: 'Fungible' | 'NonFungible';
   }
 
-  /** @name XcmV2WeightLimit (79) */
+  /** @name XcmV2WeightLimit (81) */
   interface XcmV2WeightLimit extends Enum {
     readonly isUnlimited: boolean;
     readonly isLimited: boolean;
@@ -943,7 +995,7 @@
     readonly type: 'Unlimited' | 'Limited';
   }
 
-  /** @name XcmVersionedMultiAssets (81) */
+  /** @name XcmVersionedMultiAssets (83) */
   interface XcmVersionedMultiAssets extends Enum {
     readonly isV0: boolean;
     readonly asV0: Vec<XcmV0MultiAsset>;
@@ -952,7 +1004,7 @@
     readonly type: 'V0' | 'V1';
   }
 
-  /** @name XcmV0MultiAsset (83) */
+  /** @name XcmV0MultiAsset (85) */
   interface XcmV0MultiAsset extends Enum {
     readonly isNone: boolean;
     readonly isAll: boolean;
@@ -997,7 +1049,7 @@
     readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible';
   }
 
-  /** @name XcmV0MultiLocation (84) */
+  /** @name XcmV0MultiLocation (86) */
   interface XcmV0MultiLocation extends Enum {
     readonly isNull: boolean;
     readonly isX1: boolean;
@@ -1019,7 +1071,7 @@
     readonly type: 'Null' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8';
   }
 
-  /** @name XcmV0Junction (85) */
+  /** @name XcmV0Junction (87) */
   interface XcmV0Junction extends Enum {
     readonly isParent: boolean;
     readonly isParachain: boolean;
@@ -1054,7 +1106,7 @@
     readonly type: 'Parent' | 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality';
   }
 
-  /** @name XcmVersionedMultiLocation (86) */
+  /** @name XcmVersionedMultiLocation (88) */
   interface XcmVersionedMultiLocation extends Enum {
     readonly isV0: boolean;
     readonly asV0: XcmV0MultiLocation;
@@ -1063,7 +1115,7 @@
     readonly type: 'V0' | 'V1';
   }
 
-  /** @name CumulusPalletXcmEvent (87) */
+  /** @name CumulusPalletXcmEvent (89) */
   interface CumulusPalletXcmEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -1074,7 +1126,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
   }
 
-  /** @name CumulusPalletDmpQueueEvent (88) */
+  /** @name CumulusPalletDmpQueueEvent (90) */
   interface CumulusPalletDmpQueueEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: {
@@ -1109,7 +1161,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletCommonEvent (89) */
+  /** @name PalletCommonEvent (91) */
   interface PalletCommonEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -1158,7 +1210,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'ApprovedForAll' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet' | 'AllowListAddressAdded' | 'AllowListAddressRemoved' | 'CollectionAdminAdded' | 'CollectionAdminRemoved' | 'CollectionLimitSet' | 'CollectionOwnerChanged' | 'CollectionPermissionSet' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionSponsorRemoved';
   }
 
-  /** @name PalletEvmAccountBasicCrossAccountIdRepr (92) */
+  /** @name PalletEvmAccountBasicCrossAccountIdRepr (94) */
   interface PalletEvmAccountBasicCrossAccountIdRepr extends Enum {
     readonly isSubstrate: boolean;
     readonly asSubstrate: AccountId32;
@@ -1167,14 +1219,14 @@
     readonly type: 'Substrate' | 'Ethereum';
   }
 
-  /** @name PalletStructureEvent (96) */
+  /** @name PalletStructureEvent (98) */
   interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (97) */
+  /** @name PalletRmrkCoreEvent (99) */
   interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -1264,7 +1316,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (98) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (100) */
   interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
     readonly isAccountId: boolean;
     readonly asAccountId: AccountId32;
@@ -1273,7 +1325,7 @@
     readonly type: 'AccountId' | 'CollectionAndNftTuple';
   }
 
-  /** @name PalletRmrkEquipEvent (102) */
+  /** @name PalletRmrkEquipEvent (104) */
   interface PalletRmrkEquipEvent extends Enum {
     readonly isBaseCreated: boolean;
     readonly asBaseCreated: {
@@ -1288,7 +1340,7 @@
     readonly type: 'BaseCreated' | 'EquippablesUpdated';
   }
 
-  /** @name PalletAppPromotionEvent (103) */
+  /** @name PalletAppPromotionEvent (105) */
   interface PalletAppPromotionEvent extends Enum {
     readonly isStakingRecalculation: boolean;
     readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;
@@ -1301,7 +1353,7 @@
     readonly type: 'StakingRecalculation' | 'Stake' | 'Unstake' | 'SetAdmin';
   }
 
-  /** @name PalletForeignAssetsModuleEvent (104) */
+  /** @name PalletForeignAssetsModuleEvent (106) */
   interface PalletForeignAssetsModuleEvent extends Enum {
     readonly isForeignAssetRegistered: boolean;
     readonly asForeignAssetRegistered: {
@@ -1328,7 +1380,7 @@
     readonly type: 'ForeignAssetRegistered' | 'ForeignAssetUpdated' | 'AssetRegistered' | 'AssetUpdated';
   }
 
-  /** @name PalletForeignAssetsModuleAssetMetadata (105) */
+  /** @name PalletForeignAssetsModuleAssetMetadata (107) */
   interface PalletForeignAssetsModuleAssetMetadata extends Struct {
     readonly name: Bytes;
     readonly symbol: Bytes;
@@ -1336,7 +1388,7 @@
     readonly minimalBalance: u128;
   }
 
-  /** @name PalletEvmEvent (106) */
+  /** @name PalletEvmEvent (108) */
   interface PalletEvmEvent extends Enum {
     readonly isLog: boolean;
     readonly asLog: {
@@ -1361,14 +1413,14 @@
     readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed';
   }
 
-  /** @name EthereumLog (107) */
+  /** @name EthereumLog (109) */
   interface EthereumLog extends Struct {
     readonly address: H160;
     readonly topics: Vec<H256>;
     readonly data: Bytes;
   }
 
-  /** @name PalletEthereumEvent (109) */
+  /** @name PalletEthereumEvent (111) */
   interface PalletEthereumEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: {
@@ -1380,7 +1432,7 @@
     readonly type: 'Executed';
   }
 
-  /** @name EvmCoreErrorExitReason (110) */
+  /** @name EvmCoreErrorExitReason (112) */
   interface EvmCoreErrorExitReason extends Enum {
     readonly isSucceed: boolean;
     readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -1393,7 +1445,7 @@
     readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
   }
 
-  /** @name EvmCoreErrorExitSucceed (111) */
+  /** @name EvmCoreErrorExitSucceed (113) */
   interface EvmCoreErrorExitSucceed extends Enum {
     readonly isStopped: boolean;
     readonly isReturned: boolean;
@@ -1401,7 +1453,7 @@
     readonly type: 'Stopped' | 'Returned' | 'Suicided';
   }
 
-  /** @name EvmCoreErrorExitError (112) */
+  /** @name EvmCoreErrorExitError (114) */
   interface EvmCoreErrorExitError extends Enum {
     readonly isStackUnderflow: boolean;
     readonly isStackOverflow: boolean;
@@ -1422,13 +1474,13 @@
     readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
   }
 
-  /** @name EvmCoreErrorExitRevert (115) */
+  /** @name EvmCoreErrorExitRevert (117) */
   interface EvmCoreErrorExitRevert extends Enum {
     readonly isReverted: boolean;
     readonly type: 'Reverted';
   }
 
-  /** @name EvmCoreErrorExitFatal (116) */
+  /** @name EvmCoreErrorExitFatal (118) */
   interface EvmCoreErrorExitFatal extends Enum {
     readonly isNotSupported: boolean;
     readonly isUnhandledInterrupt: boolean;
@@ -1439,7 +1491,7 @@
     readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
   }
 
-  /** @name PalletEvmContractHelpersEvent (117) */
+  /** @name PalletEvmContractHelpersEvent (119) */
   interface PalletEvmContractHelpersEvent extends Enum {
     readonly isContractSponsorSet: boolean;
     readonly asContractSponsorSet: ITuple<[H160, AccountId32]>;
@@ -1450,20 +1502,20 @@
     readonly type: 'ContractSponsorSet' | 'ContractSponsorshipConfirmed' | 'ContractSponsorRemoved';
   }
 
-  /** @name PalletEvmMigrationEvent (118) */
+  /** @name PalletEvmMigrationEvent (120) */
   interface PalletEvmMigrationEvent extends Enum {
     readonly isTestEvent: boolean;
     readonly type: 'TestEvent';
   }
 
-  /** @name PalletMaintenanceEvent (119) */
+  /** @name PalletMaintenanceEvent (121) */
   interface PalletMaintenanceEvent extends Enum {
     readonly isMaintenanceEnabled: boolean;
     readonly isMaintenanceDisabled: boolean;
     readonly type: 'MaintenanceEnabled' | 'MaintenanceDisabled';
   }
 
-  /** @name PalletTestUtilsEvent (120) */
+  /** @name PalletTestUtilsEvent (122) */
   interface PalletTestUtilsEvent extends Enum {
     readonly isValueIsSet: boolean;
     readonly isShouldRollback: boolean;
@@ -1471,7 +1523,7 @@
     readonly type: 'ValueIsSet' | 'ShouldRollback' | 'BatchCompleted';
   }
 
-  /** @name FrameSystemPhase (121) */
+  /** @name FrameSystemPhase (123) */
   interface FrameSystemPhase extends Enum {
     readonly isApplyExtrinsic: boolean;
     readonly asApplyExtrinsic: u32;
@@ -1480,13 +1532,13 @@
     readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
   }
 
-  /** @name FrameSystemLastRuntimeUpgradeInfo (124) */
+  /** @name FrameSystemLastRuntimeUpgradeInfo (126) */
   interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
     readonly specVersion: Compact<u32>;
     readonly specName: Text;
   }
 
-  /** @name FrameSystemCall (125) */
+  /** @name FrameSystemCall (127) */
   interface FrameSystemCall extends Enum {
     readonly isFillBlock: boolean;
     readonly asFillBlock: {
@@ -1528,21 +1580,21 @@
     readonly type: 'FillBlock' | 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent';
   }
 
-  /** @name FrameSystemLimitsBlockWeights (130) */
+  /** @name FrameSystemLimitsBlockWeights (132) */
   interface FrameSystemLimitsBlockWeights extends Struct {
     readonly baseBlock: SpWeightsWeightV2Weight;
     readonly maxBlock: SpWeightsWeightV2Weight;
     readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass;
   }
 
-  /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (131) */
+  /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (133) */
   interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct {
     readonly normal: FrameSystemLimitsWeightsPerClass;
     readonly operational: FrameSystemLimitsWeightsPerClass;
     readonly mandatory: FrameSystemLimitsWeightsPerClass;
   }
 
-  /** @name FrameSystemLimitsWeightsPerClass (132) */
+  /** @name FrameSystemLimitsWeightsPerClass (134) */
   interface FrameSystemLimitsWeightsPerClass extends Struct {
     readonly baseExtrinsic: SpWeightsWeightV2Weight;
     readonly maxExtrinsic: Option<SpWeightsWeightV2Weight>;
@@ -1550,25 +1602,25 @@
     readonly reserved: Option<SpWeightsWeightV2Weight>;
   }
 
-  /** @name FrameSystemLimitsBlockLength (134) */
+  /** @name FrameSystemLimitsBlockLength (136) */
   interface FrameSystemLimitsBlockLength extends Struct {
     readonly max: FrameSupportDispatchPerDispatchClassU32;
   }
 
-  /** @name FrameSupportDispatchPerDispatchClassU32 (135) */
+  /** @name FrameSupportDispatchPerDispatchClassU32 (137) */
   interface FrameSupportDispatchPerDispatchClassU32 extends Struct {
     readonly normal: u32;
     readonly operational: u32;
     readonly mandatory: u32;
   }
 
-  /** @name SpWeightsRuntimeDbWeight (136) */
+  /** @name SpWeightsRuntimeDbWeight (138) */
   interface SpWeightsRuntimeDbWeight extends Struct {
     readonly read: u64;
     readonly write: u64;
   }
 
-  /** @name SpVersionRuntimeVersion (137) */
+  /** @name SpVersionRuntimeVersion (139) */
   interface SpVersionRuntimeVersion extends Struct {
     readonly specName: Text;
     readonly implName: Text;
@@ -1580,7 +1632,7 @@
     readonly stateVersion: u8;
   }
 
-  /** @name FrameSystemError (142) */
+  /** @name FrameSystemError (144) */
   interface FrameSystemError extends Enum {
     readonly isInvalidSpecName: boolean;
     readonly isSpecVersionNeedsToIncrease: boolean;
@@ -1591,7 +1643,7 @@
     readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
   }
 
-  /** @name PolkadotPrimitivesV2PersistedValidationData (143) */
+  /** @name PolkadotPrimitivesV2PersistedValidationData (145) */
   interface PolkadotPrimitivesV2PersistedValidationData extends Struct {
     readonly parentHead: Bytes;
     readonly relayParentNumber: u32;
@@ -1599,18 +1651,18 @@
     readonly maxPovSize: u32;
   }
 
-  /** @name PolkadotPrimitivesV2UpgradeRestriction (146) */
+  /** @name PolkadotPrimitivesV2UpgradeRestriction (148) */
   interface PolkadotPrimitivesV2UpgradeRestriction extends Enum {
     readonly isPresent: boolean;
     readonly type: 'Present';
   }
 
-  /** @name SpTrieStorageProof (147) */
+  /** @name SpTrieStorageProof (149) */
   interface SpTrieStorageProof extends Struct {
     readonly trieNodes: BTreeSet<Bytes>;
   }
 
-  /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (149) */
+  /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (151) */
   interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct {
     readonly dmqMqcHead: H256;
     readonly relayDispatchQueueSize: ITuple<[u32, u32]>;
@@ -1618,7 +1670,7 @@
     readonly egressChannels: Vec<ITuple<[u32, PolkadotPrimitivesV2AbridgedHrmpChannel]>>;
   }
 
-  /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (152) */
+  /** @name PolkadotPrimitivesV2AbridgedHrmpChannel (154) */
   interface PolkadotPrimitivesV2AbridgedHrmpChannel extends Struct {
     readonly maxCapacity: u32;
     readonly maxTotalSize: u32;
@@ -1628,7 +1680,7 @@
     readonly mqcHead: Option<H256>;
   }
 
-  /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (153) */
+  /** @name PolkadotPrimitivesV2AbridgedHostConfiguration (155) */
   interface PolkadotPrimitivesV2AbridgedHostConfiguration extends Struct {
     readonly maxCodeSize: u32;
     readonly maxHeadDataSize: u32;
@@ -1641,13 +1693,13 @@
     readonly validationUpgradeDelay: u32;
   }
 
-  /** @name PolkadotCorePrimitivesOutboundHrmpMessage (159) */
+  /** @name PolkadotCorePrimitivesOutboundHrmpMessage (161) */
   interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct {
     readonly recipient: u32;
     readonly data: Bytes;
   }
 
-  /** @name CumulusPalletParachainSystemCall (160) */
+  /** @name CumulusPalletParachainSystemCall (162) */
   interface CumulusPalletParachainSystemCall extends Enum {
     readonly isSetValidationData: boolean;
     readonly asSetValidationData: {
@@ -1668,7 +1720,7 @@
     readonly type: 'SetValidationData' | 'SudoSendUpwardMessage' | 'AuthorizeUpgrade' | 'EnactAuthorizedUpgrade';
   }
 
-  /** @name CumulusPrimitivesParachainInherentParachainInherentData (161) */
+  /** @name CumulusPrimitivesParachainInherentParachainInherentData (163) */
   interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct {
     readonly validationData: PolkadotPrimitivesV2PersistedValidationData;
     readonly relayChainState: SpTrieStorageProof;
@@ -1676,19 +1728,19 @@
     readonly horizontalMessages: BTreeMap<u32, Vec<PolkadotCorePrimitivesInboundHrmpMessage>>;
   }
 
-  /** @name PolkadotCorePrimitivesInboundDownwardMessage (163) */
+  /** @name PolkadotCorePrimitivesInboundDownwardMessage (165) */
   interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct {
     readonly sentAt: u32;
     readonly msg: Bytes;
   }
 
-  /** @name PolkadotCorePrimitivesInboundHrmpMessage (166) */
+  /** @name PolkadotCorePrimitivesInboundHrmpMessage (168) */
   interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct {
     readonly sentAt: u32;
     readonly data: Bytes;
   }
 
-  /** @name CumulusPalletParachainSystemError (169) */
+  /** @name CumulusPalletParachainSystemError (171) */
   interface CumulusPalletParachainSystemError extends Enum {
     readonly isOverlappingUpgrades: boolean;
     readonly isProhibitedByPolkadot: boolean;
@@ -1701,14 +1753,142 @@
     readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled' | 'NothingAuthorized' | 'Unauthorized';
   }
 
-  /** @name PalletBalancesBalanceLock (171) */
+  /** @name PalletAuthorshipUncleEntryItem (173) */
+  interface PalletAuthorshipUncleEntryItem extends Enum {
+    readonly isInclusionHeight: boolean;
+    readonly asInclusionHeight: u32;
+    readonly isUncle: boolean;
+    readonly asUncle: ITuple<[H256, Option<AccountId32>]>;
+    readonly type: 'InclusionHeight' | 'Uncle';
+  }
+
+  /** @name PalletAuthorshipCall (175) */
+  interface PalletAuthorshipCall extends Enum {
+    readonly isSetUncles: boolean;
+    readonly asSetUncles: {
+      readonly newUncles: Vec<SpRuntimeHeader>;
+    } & Struct;
+    readonly type: 'SetUncles';
+  }
+
+  /** @name SpRuntimeHeader (177) */
+  interface SpRuntimeHeader extends Struct {
+    readonly parentHash: H256;
+    readonly number: Compact<u32>;
+    readonly stateRoot: H256;
+    readonly extrinsicsRoot: H256;
+    readonly digest: SpRuntimeDigest;
+  }
+
+  /** @name SpRuntimeBlakeTwo256 (178) */
+  type SpRuntimeBlakeTwo256 = Null;
+
+  /** @name PalletAuthorshipError (179) */
+  interface PalletAuthorshipError extends Enum {
+    readonly isInvalidUncleParent: boolean;
+    readonly isUnclesAlreadySet: boolean;
+    readonly isTooManyUncles: boolean;
+    readonly isGenesisUncle: boolean;
+    readonly isTooHighUncle: boolean;
+    readonly isUncleAlreadyIncluded: boolean;
+    readonly isOldUncle: boolean;
+    readonly type: 'InvalidUncleParent' | 'UnclesAlreadySet' | 'TooManyUncles' | 'GenesisUncle' | 'TooHighUncle' | 'UncleAlreadyIncluded' | 'OldUncle';
+  }
+
+  /** @name PalletCollatorSelectionCall (182) */
+  interface PalletCollatorSelectionCall extends Enum {
+    readonly isAddInvulnerable: boolean;
+    readonly asAddInvulnerable: {
+      readonly new_: AccountId32;
+    } & Struct;
+    readonly isRemoveInvulnerable: boolean;
+    readonly asRemoveInvulnerable: {
+      readonly who: AccountId32;
+    } & Struct;
+    readonly isSetDesiredCollators: boolean;
+    readonly asSetDesiredCollators: {
+      readonly max: u32;
+    } & Struct;
+    readonly isSetLicenseBond: boolean;
+    readonly asSetLicenseBond: {
+      readonly bond: u128;
+    } & Struct;
+    readonly isSetKickThreshold: boolean;
+    readonly asSetKickThreshold: {
+      readonly kickThreshold: u32;
+    } & Struct;
+    readonly isGetLicense: boolean;
+    readonly isOnboard: boolean;
+    readonly isOffboard: boolean;
+    readonly isReleaseLicense: boolean;
+    readonly isForceRevokeLicense: boolean;
+    readonly asForceRevokeLicense: {
+      readonly who: AccountId32;
+    } & Struct;
+    readonly type: 'AddInvulnerable' | 'RemoveInvulnerable' | 'SetDesiredCollators' | 'SetLicenseBond' | 'SetKickThreshold' | 'GetLicense' | 'Onboard' | 'Offboard' | 'ReleaseLicense' | 'ForceRevokeLicense';
+  }
+
+  /** @name PalletCollatorSelectionError (183) */
+  interface PalletCollatorSelectionError extends Enum {
+    readonly isTooManyCandidates: boolean;
+    readonly isUnknown: boolean;
+    readonly isPermission: boolean;
+    readonly isAlreadyHoldingLicense: boolean;
+    readonly isNoLicense: boolean;
+    readonly isAlreadyCandidate: boolean;
+    readonly isNotCandidate: boolean;
+    readonly isTooManyInvulnerables: boolean;
+    readonly isTooFewInvulnerables: boolean;
+    readonly isAlreadyInvulnerable: boolean;
+    readonly isNotInvulnerable: boolean;
+    readonly isNoAssociatedValidatorId: boolean;
+    readonly isValidatorNotRegistered: boolean;
+    readonly type: 'TooManyCandidates' | 'Unknown' | 'Permission' | 'AlreadyHoldingLicense' | 'NoLicense' | 'AlreadyCandidate' | 'NotCandidate' | 'TooManyInvulnerables' | 'TooFewInvulnerables' | 'AlreadyInvulnerable' | 'NotInvulnerable' | 'NoAssociatedValidatorId' | 'ValidatorNotRegistered';
+  }
+
+  /** @name OpalRuntimeRuntimeCommonSessionKeys (186) */
+  interface OpalRuntimeRuntimeCommonSessionKeys extends Struct {
+    readonly aura: SpConsensusAuraSr25519AppSr25519Public;
+  }
+
+  /** @name SpConsensusAuraSr25519AppSr25519Public (187) */
+  interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {}
+
+  /** @name SpCoreSr25519Public (188) */
+  interface SpCoreSr25519Public extends U8aFixed {}
+
+  /** @name SpCoreCryptoKeyTypeId (191) */
+  interface SpCoreCryptoKeyTypeId extends U8aFixed {}
+
+  /** @name PalletSessionCall (192) */
+  interface PalletSessionCall extends Enum {
+    readonly isSetKeys: boolean;
+    readonly asSetKeys: {
+      readonly keys_: OpalRuntimeRuntimeCommonSessionKeys;
+      readonly proof: Bytes;
+    } & Struct;
+    readonly isPurgeKeys: boolean;
+    readonly type: 'SetKeys' | 'PurgeKeys';
+  }
+
+  /** @name PalletSessionError (193) */
+  interface PalletSessionError extends Enum {
+    readonly isInvalidProof: boolean;
+    readonly isNoAssociatedValidatorId: boolean;
+    readonly isDuplicatedKey: boolean;
+    readonly isNoKeys: boolean;
+    readonly isNoAccount: boolean;
+    readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount';
+  }
+
+  /** @name PalletBalancesBalanceLock (195) */
   interface PalletBalancesBalanceLock extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
     readonly reasons: PalletBalancesReasons;
   }
 
-  /** @name PalletBalancesReasons (172) */
+  /** @name PalletBalancesReasons (196) */
   interface PalletBalancesReasons extends Enum {
     readonly isFee: boolean;
     readonly isMisc: boolean;
@@ -1716,20 +1896,20 @@
     readonly type: 'Fee' | 'Misc' | 'All';
   }
 
-  /** @name PalletBalancesReserveData (175) */
+  /** @name PalletBalancesReserveData (199) */
   interface PalletBalancesReserveData extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
   }
 
-  /** @name PalletBalancesReleases (177) */
+  /** @name PalletBalancesReleases (201) */
   interface PalletBalancesReleases extends Enum {
     readonly isV100: boolean;
     readonly isV200: boolean;
     readonly type: 'V100' | 'V200';
   }
 
-  /** @name PalletBalancesCall (178) */
+  /** @name PalletBalancesCall (202) */
   interface PalletBalancesCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1766,7 +1946,7 @@
     readonly type: 'Transfer' | 'SetBalance' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve';
   }
 
-  /** @name PalletBalancesError (181) */
+  /** @name PalletBalancesError (205) */
   interface PalletBalancesError extends Enum {
     readonly isVestingBalance: boolean;
     readonly isLiquidityRestrictions: boolean;
@@ -1779,7 +1959,7 @@
     readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'KeepAlive' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves';
   }
 
-  /** @name PalletTimestampCall (183) */
+  /** @name PalletTimestampCall (207) */
   interface PalletTimestampCall extends Enum {
     readonly isSet: boolean;
     readonly asSet: {
@@ -1788,14 +1968,14 @@
     readonly type: 'Set';
   }
 
-  /** @name PalletTransactionPaymentReleases (185) */
+  /** @name PalletTransactionPaymentReleases (209) */
   interface PalletTransactionPaymentReleases extends Enum {
     readonly isV1Ancient: boolean;
     readonly isV2: boolean;
     readonly type: 'V1Ancient' | 'V2';
   }
 
-  /** @name PalletTreasuryProposal (186) */
+  /** @name PalletTreasuryProposal (210) */
   interface PalletTreasuryProposal extends Struct {
     readonly proposer: AccountId32;
     readonly value: u128;
@@ -1803,7 +1983,7 @@
     readonly bond: u128;
   }
 
-  /** @name PalletTreasuryCall (189) */
+  /** @name PalletTreasuryCall (212) */
   interface PalletTreasuryCall extends Enum {
     readonly isProposeSpend: boolean;
     readonly asProposeSpend: {
@@ -1830,10 +2010,10 @@
     readonly type: 'ProposeSpend' | 'RejectProposal' | 'ApproveProposal' | 'Spend' | 'RemoveApproval';
   }
 
-  /** @name FrameSupportPalletId (192) */
+  /** @name FrameSupportPalletId (215) */
   interface FrameSupportPalletId extends U8aFixed {}
 
-  /** @name PalletTreasuryError (193) */
+  /** @name PalletTreasuryError (216) */
   interface PalletTreasuryError extends Enum {
     readonly isInsufficientProposersBalance: boolean;
     readonly isInvalidIndex: boolean;
@@ -1843,7 +2023,7 @@
     readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved';
   }
 
-  /** @name PalletSudoCall (194) */
+  /** @name PalletSudoCall (217) */
   interface PalletSudoCall extends Enum {
     readonly isSudo: boolean;
     readonly asSudo: {
@@ -1866,7 +2046,7 @@
     readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs';
   }
 
-  /** @name OrmlVestingModuleCall (196) */
+  /** @name OrmlVestingModuleCall (219) */
   interface OrmlVestingModuleCall extends Enum {
     readonly isClaim: boolean;
     readonly isVestedTransfer: boolean;
@@ -1886,7 +2066,7 @@
     readonly type: 'Claim' | 'VestedTransfer' | 'UpdateVestingSchedules' | 'ClaimFor';
   }
 
-  /** @name OrmlXtokensModuleCall (198) */
+  /** @name OrmlXtokensModuleCall (221) */
   interface OrmlXtokensModuleCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1933,7 +2113,7 @@
     readonly type: 'Transfer' | 'TransferMultiasset' | 'TransferWithFee' | 'TransferMultiassetWithFee' | 'TransferMulticurrencies' | 'TransferMultiassets';
   }
 
-  /** @name XcmVersionedMultiAsset (199) */
+  /** @name XcmVersionedMultiAsset (222) */
   interface XcmVersionedMultiAsset extends Enum {
     readonly isV0: boolean;
     readonly asV0: XcmV0MultiAsset;
@@ -1942,7 +2122,7 @@
     readonly type: 'V0' | 'V1';
   }
 
-  /** @name OrmlTokensModuleCall (202) */
+  /** @name OrmlTokensModuleCall (225) */
   interface OrmlTokensModuleCall extends Enum {
     readonly isTransfer: boolean;
     readonly asTransfer: {
@@ -1979,7 +2159,7 @@
     readonly type: 'Transfer' | 'TransferAll' | 'TransferKeepAlive' | 'ForceTransfer' | 'SetBalance';
   }
 
-  /** @name CumulusPalletXcmpQueueCall (203) */
+  /** @name CumulusPalletXcmpQueueCall (226) */
   interface CumulusPalletXcmpQueueCall extends Enum {
     readonly isServiceOverweight: boolean;
     readonly asServiceOverweight: {
@@ -2015,7 +2195,7 @@
     readonly type: 'ServiceOverweight' | 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold' | 'UpdateThresholdWeight' | 'UpdateWeightRestrictDecay' | 'UpdateXcmpMaxIndividualWeight';
   }
 
-  /** @name PalletXcmCall (204) */
+  /** @name PalletXcmCall (227) */
   interface PalletXcmCall extends Enum {
     readonly isSend: boolean;
     readonly asSend: {
@@ -2077,7 +2257,7 @@
     readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets';
   }
 
-  /** @name XcmVersionedXcm (205) */
+  /** @name XcmVersionedXcm (228) */
   interface XcmVersionedXcm extends Enum {
     readonly isV0: boolean;
     readonly asV0: XcmV0Xcm;
@@ -2088,7 +2268,7 @@
     readonly type: 'V0' | 'V1' | 'V2';
   }
 
-  /** @name XcmV0Xcm (206) */
+  /** @name XcmV0Xcm (229) */
   interface XcmV0Xcm extends Enum {
     readonly isWithdrawAsset: boolean;
     readonly asWithdrawAsset: {
@@ -2151,7 +2331,7 @@
     readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'TeleportAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom';
   }
 
-  /** @name XcmV0Order (208) */
+  /** @name XcmV0Order (231) */
   interface XcmV0Order extends Enum {
     readonly isNull: boolean;
     readonly isDepositAsset: boolean;
@@ -2199,14 +2379,14 @@
     readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
   }
 
-  /** @name XcmV0Response (210) */
+  /** @name XcmV0Response (233) */
   interface XcmV0Response extends Enum {
     readonly isAssets: boolean;
     readonly asAssets: Vec<XcmV0MultiAsset>;
     readonly type: 'Assets';
   }
 
-  /** @name XcmV1Xcm (211) */
+  /** @name XcmV1Xcm (234) */
   interface XcmV1Xcm extends Enum {
     readonly isWithdrawAsset: boolean;
     readonly asWithdrawAsset: {
@@ -2275,7 +2455,7 @@
     readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom' | 'SubscribeVersion' | 'UnsubscribeVersion';
   }
 
-  /** @name XcmV1Order (213) */
+  /** @name XcmV1Order (236) */
   interface XcmV1Order extends Enum {
     readonly isNoop: boolean;
     readonly isDepositAsset: boolean;
@@ -2325,7 +2505,7 @@
     readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution';
   }
 
-  /** @name XcmV1Response (215) */
+  /** @name XcmV1Response (238) */
   interface XcmV1Response extends Enum {
     readonly isAssets: boolean;
     readonly asAssets: XcmV1MultiassetMultiAssets;
@@ -2334,10 +2514,10 @@
     readonly type: 'Assets' | 'Version';
   }
 
-  /** @name CumulusPalletXcmCall (229) */
+  /** @name CumulusPalletXcmCall (252) */
   type CumulusPalletXcmCall = Null;
 
-  /** @name CumulusPalletDmpQueueCall (230) */
+  /** @name CumulusPalletDmpQueueCall (253) */
   interface CumulusPalletDmpQueueCall extends Enum {
     readonly isServiceOverweight: boolean;
     readonly asServiceOverweight: {
@@ -2347,7 +2527,7 @@
     readonly type: 'ServiceOverweight';
   }
 
-  /** @name PalletInflationCall (231) */
+  /** @name PalletInflationCall (254) */
   interface PalletInflationCall extends Enum {
     readonly isStartInflation: boolean;
     readonly asStartInflation: {
@@ -2356,7 +2536,7 @@
     readonly type: 'StartInflation';
   }
 
-  /** @name PalletUniqueCall (232) */
+  /** @name PalletUniqueCall (255) */
   interface PalletUniqueCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -2517,15 +2697,19 @@
       readonly operator: PalletEvmAccountBasicCrossAccountIdRepr;
       readonly approve: bool;
     } & Struct;
-    readonly isRepairItem: boolean;
-    readonly asRepairItem: {
+    readonly isForceRepairCollection: boolean;
+    readonly asForceRepairCollection: {
+      readonly collectionId: u32;
+    } & Struct;
+    readonly isForceRepairItem: boolean;
+    readonly asForceRepairItem: {
       readonly collectionId: u32;
       readonly itemId: u32;
     } & Struct;
-    readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'RepairItem';
+    readonly type: 'CreateCollection' | 'CreateCollectionEx' | 'DestroyCollection' | 'AddToAllowList' | 'RemoveFromAllowList' | 'ChangeCollectionOwner' | 'AddCollectionAdmin' | 'RemoveCollectionAdmin' | 'SetCollectionSponsor' | 'ConfirmSponsorship' | 'RemoveCollectionSponsor' | 'CreateItem' | 'CreateMultipleItems' | 'SetCollectionProperties' | 'DeleteCollectionProperties' | 'SetTokenProperties' | 'DeleteTokenProperties' | 'SetTokenPropertyPermissions' | 'CreateMultipleItemsEx' | 'SetTransfersEnabledFlag' | 'BurnItem' | 'BurnFrom' | 'Transfer' | 'Approve' | 'TransferFrom' | 'SetCollectionLimits' | 'SetCollectionPermissions' | 'Repartition' | 'SetAllowanceForAll' | 'ForceRepairCollection' | 'ForceRepairItem';
   }
 
-  /** @name UpDataStructsCollectionMode (237) */
+  /** @name UpDataStructsCollectionMode (260) */
   interface UpDataStructsCollectionMode extends Enum {
     readonly isNft: boolean;
     readonly isFungible: boolean;
@@ -2534,7 +2718,7 @@
     readonly type: 'Nft' | 'Fungible' | 'ReFungible';
   }
 
-  /** @name UpDataStructsCreateCollectionData (238) */
+  /** @name UpDataStructsCreateCollectionData (261) */
   interface UpDataStructsCreateCollectionData extends Struct {
     readonly mode: UpDataStructsCollectionMode;
     readonly access: Option<UpDataStructsAccessMode>;
@@ -2548,14 +2732,14 @@
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsAccessMode (240) */
+  /** @name UpDataStructsAccessMode (263) */
   interface UpDataStructsAccessMode extends Enum {
     readonly isNormal: boolean;
     readonly isAllowList: boolean;
     readonly type: 'Normal' | 'AllowList';
   }
 
-  /** @name UpDataStructsCollectionLimits (242) */
+  /** @name UpDataStructsCollectionLimits (265) */
   interface UpDataStructsCollectionLimits extends Struct {
     readonly accountTokenOwnershipLimit: Option<u32>;
     readonly sponsoredDataSize: Option<u32>;
@@ -2568,7 +2752,7 @@
     readonly transfersEnabled: Option<bool>;
   }
 
-  /** @name UpDataStructsSponsoringRateLimit (244) */
+  /** @name UpDataStructsSponsoringRateLimit (267) */
   interface UpDataStructsSponsoringRateLimit extends Enum {
     readonly isSponsoringDisabled: boolean;
     readonly isBlocks: boolean;
@@ -2576,43 +2760,43 @@
     readonly type: 'SponsoringDisabled' | 'Blocks';
   }
 
-  /** @name UpDataStructsCollectionPermissions (247) */
+  /** @name UpDataStructsCollectionPermissions (270) */
   interface UpDataStructsCollectionPermissions extends Struct {
     readonly access: Option<UpDataStructsAccessMode>;
     readonly mintMode: Option<bool>;
     readonly nesting: Option<UpDataStructsNestingPermissions>;
   }
 
-  /** @name UpDataStructsNestingPermissions (249) */
+  /** @name UpDataStructsNestingPermissions (272) */
   interface UpDataStructsNestingPermissions extends Struct {
     readonly tokenOwner: bool;
     readonly collectionAdmin: bool;
     readonly restricted: Option<UpDataStructsOwnerRestrictedSet>;
   }
 
-  /** @name UpDataStructsOwnerRestrictedSet (251) */
+  /** @name UpDataStructsOwnerRestrictedSet (274) */
   interface UpDataStructsOwnerRestrictedSet extends BTreeSet<u32> {}
 
-  /** @name UpDataStructsPropertyKeyPermission (256) */
+  /** @name UpDataStructsPropertyKeyPermission (279) */
   interface UpDataStructsPropertyKeyPermission extends Struct {
     readonly key: Bytes;
     readonly permission: UpDataStructsPropertyPermission;
   }
 
-  /** @name UpDataStructsPropertyPermission (257) */
+  /** @name UpDataStructsPropertyPermission (280) */
   interface UpDataStructsPropertyPermission extends Struct {
     readonly mutable: bool;
     readonly collectionAdmin: bool;
     readonly tokenOwner: bool;
   }
 
-  /** @name UpDataStructsProperty (260) */
+  /** @name UpDataStructsProperty (283) */
   interface UpDataStructsProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name UpDataStructsCreateItemData (263) */
+  /** @name UpDataStructsCreateItemData (286) */
   interface UpDataStructsCreateItemData extends Enum {
     readonly isNft: boolean;
     readonly asNft: UpDataStructsCreateNftData;
@@ -2623,23 +2807,23 @@
     readonly type: 'Nft' | 'Fungible' | 'ReFungible';
   }
 
-  /** @name UpDataStructsCreateNftData (264) */
+  /** @name UpDataStructsCreateNftData (287) */
   interface UpDataStructsCreateNftData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateFungibleData (265) */
+  /** @name UpDataStructsCreateFungibleData (288) */
   interface UpDataStructsCreateFungibleData extends Struct {
     readonly value: u128;
   }
 
-  /** @name UpDataStructsCreateReFungibleData (266) */
+  /** @name UpDataStructsCreateReFungibleData (289) */
   interface UpDataStructsCreateReFungibleData extends Struct {
     readonly pieces: u128;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateItemExData (269) */
+  /** @name UpDataStructsCreateItemExData (292) */
   interface UpDataStructsCreateItemExData extends Enum {
     readonly isNft: boolean;
     readonly asNft: Vec<UpDataStructsCreateNftExData>;
@@ -2652,26 +2836,26 @@
     readonly type: 'Nft' | 'Fungible' | 'RefungibleMultipleItems' | 'RefungibleMultipleOwners';
   }
 
-  /** @name UpDataStructsCreateNftExData (271) */
+  /** @name UpDataStructsCreateNftExData (294) */
   interface UpDataStructsCreateNftExData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsCreateRefungibleExSingleOwner (278) */
+  /** @name UpDataStructsCreateRefungibleExSingleOwner (301) */
   interface UpDataStructsCreateRefungibleExSingleOwner extends Struct {
     readonly user: PalletEvmAccountBasicCrossAccountIdRepr;
     readonly pieces: u128;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name UpDataStructsCreateRefungibleExMultipleOwners (280) */
+  /** @name UpDataStructsCreateRefungibleExMultipleOwners (303) */
   interface UpDataStructsCreateRefungibleExMultipleOwners extends Struct {
     readonly users: BTreeMap<PalletEvmAccountBasicCrossAccountIdRepr, u128>;
     readonly properties: Vec<UpDataStructsProperty>;
   }
 
-  /** @name PalletConfigurationCall (281) */
+  /** @name PalletConfigurationCall (304) */
   interface PalletConfigurationCall extends Enum {
     readonly isSetWeightToFeeCoefficientOverride: boolean;
     readonly asSetWeightToFeeCoefficientOverride: {
@@ -2692,7 +2876,7 @@
     readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride' | 'SetXcmAllowedLocations' | 'SetAppPromotionConfigurationOverride';
   }
 
-  /** @name PalletConfigurationAppPromotionConfiguration (286) */
+  /** @name PalletConfigurationAppPromotionConfiguration (309) */
   interface PalletConfigurationAppPromotionConfiguration extends Struct {
     readonly recalculationInterval: Option<u32>;
     readonly pendingInterval: Option<u32>;
@@ -2700,13 +2884,13 @@
     readonly maxStakersPerCalculation: Option<u8>;
   }
 
-  /** @name PalletTemplateTransactionPaymentCall (289) */
+  /** @name PalletTemplateTransactionPaymentCall (312) */
   type PalletTemplateTransactionPaymentCall = Null;
 
-  /** @name PalletStructureCall (290) */
+  /** @name PalletStructureCall (313) */
   type PalletStructureCall = Null;
 
-  /** @name PalletRmrkCoreCall (291) */
+  /** @name PalletRmrkCoreCall (314) */
   interface PalletRmrkCoreCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -2812,7 +2996,7 @@
     readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
   }
 
-  /** @name RmrkTraitsResourceResourceTypes (297) */
+  /** @name RmrkTraitsResourceResourceTypes (320) */
   interface RmrkTraitsResourceResourceTypes extends Enum {
     readonly isBasic: boolean;
     readonly asBasic: RmrkTraitsResourceBasicResource;
@@ -2823,7 +3007,7 @@
     readonly type: 'Basic' | 'Composable' | 'Slot';
   }
 
-  /** @name RmrkTraitsResourceBasicResource (299) */
+  /** @name RmrkTraitsResourceBasicResource (322) */
   interface RmrkTraitsResourceBasicResource extends Struct {
     readonly src: Option<Bytes>;
     readonly metadata: Option<Bytes>;
@@ -2831,7 +3015,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceComposableResource (301) */
+  /** @name RmrkTraitsResourceComposableResource (324) */
   interface RmrkTraitsResourceComposableResource extends Struct {
     readonly parts: Vec<u32>;
     readonly base: u32;
@@ -2841,7 +3025,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceSlotResource (302) */
+  /** @name RmrkTraitsResourceSlotResource (325) */
   interface RmrkTraitsResourceSlotResource extends Struct {
     readonly base: u32;
     readonly src: Option<Bytes>;
@@ -2851,7 +3035,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name PalletRmrkEquipCall (305) */
+  /** @name PalletRmrkEquipCall (328) */
   interface PalletRmrkEquipCall extends Enum {
     readonly isCreateBase: boolean;
     readonly asCreateBase: {
@@ -2873,7 +3057,7 @@
     readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';
   }
 
-  /** @name RmrkTraitsPartPartType (308) */
+  /** @name RmrkTraitsPartPartType (331) */
   interface RmrkTraitsPartPartType extends Enum {
     readonly isFixedPart: boolean;
     readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -2882,14 +3066,14 @@
     readonly type: 'FixedPart' | 'SlotPart';
   }
 
-  /** @name RmrkTraitsPartFixedPart (310) */
+  /** @name RmrkTraitsPartFixedPart (333) */
   interface RmrkTraitsPartFixedPart extends Struct {
     readonly id: u32;
     readonly z: u32;
     readonly src: Bytes;
   }
 
-  /** @name RmrkTraitsPartSlotPart (311) */
+  /** @name RmrkTraitsPartSlotPart (334) */
   interface RmrkTraitsPartSlotPart extends Struct {
     readonly id: u32;
     readonly equippable: RmrkTraitsPartEquippableList;
@@ -2897,7 +3081,7 @@
     readonly z: u32;
   }
 
-  /** @name RmrkTraitsPartEquippableList (312) */
+  /** @name RmrkTraitsPartEquippableList (335) */
   interface RmrkTraitsPartEquippableList extends Enum {
     readonly isAll: boolean;
     readonly isEmpty: boolean;
@@ -2906,20 +3090,20 @@
     readonly type: 'All' | 'Empty' | 'Custom';
   }
 
-  /** @name RmrkTraitsTheme (314) */
+  /** @name RmrkTraitsTheme (337) */
   interface RmrkTraitsTheme extends Struct {
     readonly name: Bytes;
     readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
     readonly inherit: bool;
   }
 
-  /** @name RmrkTraitsThemeThemeProperty (316) */
+  /** @name RmrkTraitsThemeThemeProperty (339) */
   interface RmrkTraitsThemeThemeProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletAppPromotionCall (318) */
+  /** @name PalletAppPromotionCall (341) */
   interface PalletAppPromotionCall extends Enum {
     readonly isSetAdminAddress: boolean;
     readonly asSetAdminAddress: {
@@ -2953,7 +3137,7 @@
     readonly type: 'SetAdminAddress' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorContract' | 'StopSponsoringContract' | 'PayoutStakers';
   }
 
-  /** @name PalletForeignAssetsModuleCall (319) */
+  /** @name PalletForeignAssetsModuleCall (342) */
   interface PalletForeignAssetsModuleCall extends Enum {
     readonly isRegisterForeignAsset: boolean;
     readonly asRegisterForeignAsset: {
@@ -2970,7 +3154,7 @@
     readonly type: 'RegisterForeignAsset' | 'UpdateForeignAsset';
   }
 
-  /** @name PalletEvmCall (320) */
+  /** @name PalletEvmCall (343) */
   interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -3015,7 +3199,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (326) */
+  /** @name PalletEthereumCall (349) */
   interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -3024,7 +3208,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (327) */
+  /** @name EthereumTransactionTransactionV2 (350) */
   interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -3035,7 +3219,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (328) */
+  /** @name EthereumTransactionLegacyTransaction (351) */
   interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -3046,7 +3230,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (329) */
+  /** @name EthereumTransactionTransactionAction (352) */
   interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -3054,14 +3238,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (330) */
+  /** @name EthereumTransactionTransactionSignature (353) */
   interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (332) */
+  /** @name EthereumTransactionEip2930Transaction (355) */
   interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -3076,13 +3260,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (334) */
+  /** @name EthereumTransactionAccessListItem (357) */
   interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (335) */
+  /** @name EthereumTransactionEip1559Transaction (358) */
   interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -3098,7 +3282,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (336) */
+  /** @name PalletEvmMigrationCall (359) */
   interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -3125,14 +3309,14 @@
     readonly type: 'Begin' | 'SetData' | 'Finish' | 'InsertEthLogs' | 'InsertEvents';
   }
 
-  /** @name PalletMaintenanceCall (340) */
+  /** @name PalletMaintenanceCall (363) */
   interface PalletMaintenanceCall extends Enum {
     readonly isEnable: boolean;
     readonly isDisable: boolean;
     readonly type: 'Enable' | 'Disable';
   }
 
-  /** @name PalletTestUtilsCall (341) */
+  /** @name PalletTestUtilsCall (364) */
   interface PalletTestUtilsCall extends Enum {
     readonly isEnable: boolean;
     readonly isSetTestValue: boolean;
@@ -3152,13 +3336,13 @@
     readonly type: 'Enable' | 'SetTestValue' | 'SetTestValueAndRollback' | 'IncTestValue' | 'JustTakeFee' | 'BatchAll';
   }
 
-  /** @name PalletSudoError (343) */
+  /** @name PalletSudoError (366) */
   interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name OrmlVestingModuleError (345) */
+  /** @name OrmlVestingModuleError (368) */
   interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -3169,7 +3353,7 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name OrmlXtokensModuleError (346) */
+  /** @name OrmlXtokensModuleError (369) */
   interface OrmlXtokensModuleError extends Enum {
     readonly isAssetHasNoReserve: boolean;
     readonly isNotCrossChainTransfer: boolean;
@@ -3193,26 +3377,26 @@
     readonly type: 'AssetHasNoReserve' | 'NotCrossChainTransfer' | 'InvalidDest' | 'NotCrossChainTransferableCurrency' | 'UnweighableMessage' | 'XcmExecutionFailed' | 'CannotReanchor' | 'InvalidAncestry' | 'InvalidAsset' | 'DestinationNotInvertible' | 'BadVersion' | 'DistinctReserveForAssetAndFee' | 'ZeroFee' | 'ZeroAmount' | 'TooManyAssetsBeingSent' | 'AssetIndexNonExistent' | 'FeeNotEnough' | 'NotSupportedMultiLocation' | 'MinXcmFeeNotDefined';
   }
 
-  /** @name OrmlTokensBalanceLock (349) */
+  /** @name OrmlTokensBalanceLock (372) */
   interface OrmlTokensBalanceLock extends Struct {
     readonly id: U8aFixed;
     readonly amount: u128;
   }
 
-  /** @name OrmlTokensAccountData (351) */
+  /** @name OrmlTokensAccountData (374) */
   interface OrmlTokensAccountData extends Struct {
     readonly free: u128;
     readonly reserved: u128;
     readonly frozen: u128;
   }
 
-  /** @name OrmlTokensReserveData (353) */
+  /** @name OrmlTokensReserveData (376) */
   interface OrmlTokensReserveData extends Struct {
     readonly id: Null;
     readonly amount: u128;
   }
 
-  /** @name OrmlTokensModuleError (355) */
+  /** @name OrmlTokensModuleError (378) */
   interface OrmlTokensModuleError extends Enum {
     readonly isBalanceTooLow: boolean;
     readonly isAmountIntoBalanceFailed: boolean;
@@ -3225,21 +3409,21 @@
     readonly type: 'BalanceTooLow' | 'AmountIntoBalanceFailed' | 'LiquidityRestrictions' | 'MaxLocksExceeded' | 'KeepAlive' | 'ExistentialDeposit' | 'DeadAccount' | 'TooManyReserves';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (357) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (380) */
   interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (358) */
+  /** @name CumulusPalletXcmpQueueInboundState (381) */
   interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (361) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (384) */
   interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -3247,7 +3431,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (364) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (387) */
   interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -3256,14 +3440,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (365) */
+  /** @name CumulusPalletXcmpQueueOutboundState (388) */
   interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (367) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (390) */
   interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -3273,7 +3457,7 @@
     readonly xcmpMaxIndividualWeight: SpWeightsWeightV2Weight;
   }
 
-  /** @name CumulusPalletXcmpQueueError (369) */
+  /** @name CumulusPalletXcmpQueueError (392) */
   interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -3283,7 +3467,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (370) */
+  /** @name PalletXcmError (393) */
   interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -3301,29 +3485,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (371) */
+  /** @name CumulusPalletXcmError (394) */
   type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (372) */
+  /** @name CumulusPalletDmpQueueConfigData (395) */
   interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: SpWeightsWeightV2Weight;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (373) */
+  /** @name CumulusPalletDmpQueuePageIndexData (396) */
   interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (376) */
+  /** @name CumulusPalletDmpQueueError (399) */
   interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (380) */
+  /** @name PalletUniqueError (403) */
   interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isEmptyArgument: boolean;
@@ -3331,13 +3515,13 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';
   }
 
-  /** @name PalletConfigurationError (381) */
+  /** @name PalletConfigurationError (404) */
   interface PalletConfigurationError extends Enum {
     readonly isInconsistentConfiguration: boolean;
     readonly type: 'InconsistentConfiguration';
   }
 
-  /** @name UpDataStructsCollection (382) */
+  /** @name UpDataStructsCollection (405) */
   interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3350,7 +3534,7 @@
     readonly flags: U8aFixed;
   }
 
-  /** @name UpDataStructsSponsorshipStateAccountId32 (383) */
+  /** @name UpDataStructsSponsorshipStateAccountId32 (406) */
   interface UpDataStructsSponsorshipStateAccountId32 extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3360,43 +3544,43 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (385) */
+  /** @name UpDataStructsProperties (408) */
   interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (386) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (409) */
   interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (391) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (414) */
   interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (398) */
+  /** @name UpDataStructsCollectionStats (421) */
   interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (399) */
+  /** @name UpDataStructsTokenChild (422) */
   interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (400) */
+  /** @name PhantomTypeUpDataStructs (423) */
   interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (402) */
+  /** @name UpDataStructsTokenData (425) */
   interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
     readonly pieces: u128;
   }
 
-  /** @name UpDataStructsRpcCollection (404) */
+  /** @name UpDataStructsRpcCollection (427) */
   interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3412,13 +3596,13 @@
     readonly flags: UpDataStructsRpcCollectionFlags;
   }
 
-  /** @name UpDataStructsRpcCollectionFlags (405) */
+  /** @name UpDataStructsRpcCollectionFlags (428) */
   interface UpDataStructsRpcCollectionFlags extends Struct {
     readonly foreign: bool;
     readonly erc721metadata: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (406) */
+  /** @name RmrkTraitsCollectionCollectionInfo (429) */
   interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -3427,7 +3611,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (407) */
+  /** @name RmrkTraitsNftNftInfo (430) */
   interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -3436,13 +3620,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (409) */
+  /** @name RmrkTraitsNftRoyaltyInfo (432) */
   interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (410) */
+  /** @name RmrkTraitsResourceResourceInfo (433) */
   interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -3450,26 +3634,26 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsPropertyPropertyInfo (411) */
+  /** @name RmrkTraitsPropertyPropertyInfo (434) */
   interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (412) */
+  /** @name RmrkTraitsBaseBaseInfo (435) */
   interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (413) */
+  /** @name RmrkTraitsNftNftChild (436) */
   interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (415) */
+  /** @name PalletCommonError (438) */
   interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3510,7 +3694,7 @@
     readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal' | 'ConfirmSponsorshipFail' | 'UserIsNotCollectionAdmin';
   }
 
-  /** @name PalletFungibleError (417) */
+  /** @name PalletFungibleError (440) */
   interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3522,12 +3706,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed' | 'SettingAllowanceForAllNotAllowed' | 'FungibleTokensAreAlwaysValid';
   }
 
-  /** @name PalletRefungibleItemData (418) */
+  /** @name PalletRefungibleItemData (441) */
   interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (423) */
+  /** @name PalletRefungibleError (446) */
   interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3537,19 +3721,19 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (424) */
+  /** @name PalletNonfungibleItemData (447) */
   interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsPropertyScope (426) */
+  /** @name UpDataStructsPropertyScope (449) */
   interface UpDataStructsPropertyScope extends Enum {
     readonly isNone: boolean;
     readonly isRmrk: boolean;
     readonly type: 'None' | 'Rmrk';
   }
 
-  /** @name PalletNonfungibleError (428) */
+  /** @name PalletNonfungibleError (451) */
   interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3557,7 +3741,7 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (429) */
+  /** @name PalletStructureError (452) */
   interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -3566,7 +3750,7 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (430) */
+  /** @name PalletRmrkCoreError (453) */
   interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isRmrkPropertyKeyIsTooLong: boolean;
@@ -3590,7 +3774,7 @@
     readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
   }
 
-  /** @name PalletRmrkEquipError (432) */
+  /** @name PalletRmrkEquipError (455) */
   interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3602,7 +3786,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';
   }
 
-  /** @name PalletAppPromotionError (438) */
+  /** @name PalletAppPromotionError (461) */
   interface PalletAppPromotionError extends Enum {
     readonly isAdminNotSet: boolean;
     readonly isNoPermission: boolean;
@@ -3613,7 +3797,7 @@
     readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFunds' | 'PendingForBlockOverflow' | 'SponsorNotSet' | 'IncorrectLockedBalanceOperation';
   }
 
-  /** @name PalletForeignAssetsModuleError (439) */
+  /** @name PalletForeignAssetsModuleError (462) */
   interface PalletForeignAssetsModuleError extends Enum {
     readonly isBadLocation: boolean;
     readonly isMultiLocationExisted: boolean;
@@ -3622,7 +3806,7 @@
     readonly type: 'BadLocation' | 'MultiLocationExisted' | 'AssetIdNotExists' | 'AssetIdExisted';
   }
 
-  /** @name PalletEvmError (441) */
+  /** @name PalletEvmError (464) */
   interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3637,7 +3821,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce' | 'GasLimitTooLow' | 'GasLimitTooHigh' | 'Undefined' | 'Reentrancy';
   }
 
-  /** @name FpRpcTransactionStatus (444) */
+  /** @name FpRpcTransactionStatus (467) */
   interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3648,10 +3832,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (446) */
+  /** @name EthbloomBloom (469) */
   interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (448) */
+  /** @name EthereumReceiptReceiptV3 (471) */
   interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3662,7 +3846,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (449) */
+  /** @name EthereumReceiptEip658ReceiptData (472) */
   interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3670,14 +3854,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (450) */
+  /** @name EthereumBlock (473) */
   interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (451) */
+  /** @name EthereumHeader (474) */
   interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3696,24 +3880,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (452) */
+  /** @name EthereumTypesHashH64 (475) */
   interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (457) */
+  /** @name PalletEthereumError (480) */
   interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (458) */
+  /** @name PalletEvmCoderSubstrateError (481) */
   interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (459) */
+  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (482) */
   interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3723,7 +3907,7 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (460) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (483) */
   interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3731,7 +3915,7 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (466) */
+  /** @name PalletEvmContractHelpersError (489) */
   interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly isNoPendingSponsor: boolean;
@@ -3739,7 +3923,7 @@
     readonly type: 'NoPermission' | 'NoPendingSponsor' | 'TooManyMethodsHaveSponsoredLimit';
   }
 
-  /** @name PalletEvmMigrationError (467) */
+  /** @name PalletEvmMigrationError (490) */
   interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
@@ -3747,17 +3931,17 @@
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating' | 'BadEvent';
   }
 
-  /** @name PalletMaintenanceError (468) */
+  /** @name PalletMaintenanceError (491) */
   type PalletMaintenanceError = Null;
 
-  /** @name PalletTestUtilsError (469) */
+  /** @name PalletTestUtilsError (492) */
   interface PalletTestUtilsError extends Enum {
     readonly isTestPalletDisabled: boolean;
     readonly isTriggerRollback: boolean;
     readonly type: 'TestPalletDisabled' | 'TriggerRollback';
   }
 
-  /** @name SpRuntimeMultiSignature (471) */
+  /** @name SpRuntimeMultiSignature (494) */
   interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3768,40 +3952,40 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (472) */
+  /** @name SpCoreEd25519Signature (495) */
   interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (474) */
+  /** @name SpCoreSr25519Signature (497) */
   interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (475) */
+  /** @name SpCoreEcdsaSignature (498) */
   interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (478) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (501) */
   type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckTxVersion (479) */
+  /** @name FrameSystemExtensionsCheckTxVersion (502) */
   type FrameSystemExtensionsCheckTxVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (480) */
+  /** @name FrameSystemExtensionsCheckGenesis (503) */
   type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (483) */
+  /** @name FrameSystemExtensionsCheckNonce (506) */
   interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (484) */
+  /** @name FrameSystemExtensionsCheckWeight (507) */
   type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (485) */
+  /** @name OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance (508) */
   type OpalRuntimeRuntimeCommonMaintenanceCheckMaintenance = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (486) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (509) */
   interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (487) */
+  /** @name OpalRuntimeRuntime (510) */
   type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (488) */
+  /** @name PalletEthereumFakeTransactionFinalizer (511) */
   type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
modifiedtests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.dev.ts
+++ b/tests/src/util/playgrounds/unique.dev.ts
@@ -445,6 +445,30 @@
     return promise;
   }
 
+  /**
+   * Wait for the specified number of sessions to pass. 
+   * Only applicable if the Session pallet is turned on.
+   * @param sessionCount number of sessions to wait
+   * @param blockTimeout time in ms until panicking that the chain has stopped producing blocks
+   * @returns 
+   */
+  async newSessions(sessionCount = 1, blockTimeout = 60000): Promise<void> {
+    console.log(`Waiting for ${sessionCount} new session${sessionCount > 1 ? 's' : ''}.` 
+      + ' This might take a while -- check SessionPeriod in pallet_session::Config for session time.');
+
+    const expectedSessionIndex = await this.helper.session.getIndex() + sessionCount;
+    let currentSessionIndex = -1;
+
+    while (currentSessionIndex < expectedSessionIndex) {
+      // eslint-disable-next-line no-async-promise-executor
+      currentSessionIndex = await this.withTimeout(new Promise(async (resolve) => {
+        await this.newBlocks(1);
+        const res = this.helper.session.getIndex();
+        resolve(res);
+      }), blockTimeout, 'The chain has stopped producing blocks!');
+    }
+  }
+
   async forParachainBlockNumber(blockNumber: bigint | number, timeout?: number) {
     timeout = timeout ?? 30 * 60 * 1000;
     // eslint-disable-next-line no-async-promise-executor
modifiedtests/src/util/playgrounds/unique.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.ts
+++ b/tests/src/util/playgrounds/unique.ts
@@ -11,7 +11,6 @@
 import {IKeyringPair} from '@polkadot/types/types';
 import {hexToU8a} from '@polkadot/util/hex';
 import {u8aConcat} from '@polkadot/util/u8a';
-import {BN} from '@polkadot/util/bn';
 import {
   IApiListeners,
   IBlock,
@@ -46,6 +45,7 @@
 import {RuntimeDispatchInfo} from '@polkadot/types/interfaces';
 import type {Vec} from '@polkadot/types-codec';
 import {FrameSystemEventRecord} from '@polkadot/types/lookup';
+import {DevUniqueHelper} from './unique.dev';
 
 export class CrossAccountId implements ICrossAccountId {
   Substrate?: TSubstrateAccount;
@@ -376,6 +376,7 @@
   children: ChainHelperBase[];
   address: AddressGroup;
   chain: ChainGroup;
+  session: SessionGroup;
 
   constructor(logger?: ILogger, helperBase?: any) {
     this.helperBase = helperBase;
@@ -391,6 +392,7 @@
     this.children = [];
     this.address = new AddressGroup(this);
     this.chain = new ChainGroup(this);
+    this.session = new SessionGroup(this);
   }
 
   clone(helperCls: ChainHelperBaseConstructor, options: {[key: string]: any} = {}) {
@@ -2643,24 +2645,32 @@
   }
 }
 
-class CollatorSelectionGroup extends HelperGroup<UniqueHelper> {
+class SessionGroup extends HelperGroup<ChainHelperBase> {
   //todo:collator documentation
-  setKeys(signer: TSigner, key: string) {
+  async getIndex(): Promise<number> {
+    return (await this.helper.callRpc('api.query.session.currentIndex')).toNumber();
+  }
+
+  newSessions(sessionCount = 1, blockTimeout = 24000): Promise<void> {
+    return (this.helper as DevUniqueHelper).wait.newSessions(sessionCount, blockTimeout);
+  }
+
+  setOwnKeys(signer: TSigner, key: string) {
     return this.helper.executeExtrinsic(
       signer,
       'api.tx.session.setKeys', 
-      [
-        key,
-        '0x0',
-      ],
+      [key, '0x0'],
       true,
     );
   }
 
-  setOwnKeys(signer: TSigner) {
-    return this.setKeys(signer, '0x' + Buffer.from(signer.addressRaw).toString('hex'));
+  setOwnKeysFromAddress(signer: TSigner) {
+    return this.setOwnKeys(signer, '0x' + Buffer.from(signer.addressRaw).toString('hex'));
   }
+}
 
+class CollatorSelectionGroup extends HelperGroup<UniqueHelper> {
+  //todo:collator documentation
   addInvulnerable(signer: TSigner, address: string) {
     return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.addInvulnerable', [address]);
   }
@@ -2669,9 +2679,45 @@
     return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.removeInvulnerable', [address]);
   }
 
-  async getInvulnerables() {
+  async getInvulnerables(): Promise<string[]> {
     return (await this.helper.callRpc('api.query.collatorSelection.invulnerables')).map((x: any) => x.toHuman());
   }
+
+  setLicenseBond(signer: TSigner, amount: bigint) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.setLicenseBond', [amount]);
+  }
+
+  async getLicenseBond(): Promise<bigint> {
+    return (await this.helper.callRpc('api.query.collatorSelection.licenseBond')).toBigInt();
+  }
+
+  obtainLicense(signer: TSigner) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.getLicense', []);
+  }
+
+  releaseLicense(signer: TSigner) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.releaseLicense', []);
+  }
+
+  forceRevokeLicense(signer: TSigner, released: string) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.forceRevokeLicense', [released]);
+  }
+
+  async hasLicense(address: string): Promise<bigint> {
+    return (await this.helper.callRpc('api.query.collatorSelection.licenses', [address])).toBigInt();
+  }
+
+  onboard(signer: TSigner) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.onboard', []);
+  }
+
+  offboard(signer: TSigner) {
+    return this.helper.executeExtrinsic(signer, 'api.tx.collatorSelection.offboard', []);
+  }
+
+  async getCandidates(): Promise<string[]> {
+    return (await this.helper.callRpc('api.query.collatorSelection.candidates')).map((x: any) => x.toHuman());
+  }
 }
 
 class ForeignAssetsGroup extends HelperGroup<UniqueHelper> {
@@ -3040,12 +3086,15 @@
 
       if (result.status === 'Fail') return result;
 
-      const data = this.eventHelper.extractEvents(result.result.events).find(x => x.section == 'sudo')?.data[0];
-      if (data.err) {
-        const error = data.err.module;
-        // todo:collator
-        const metaError = super.getApi()?.registry.findMetaError({index: new BN(error.index), error: new BN(9)});
-        throw new Error(`${data.err.module.error} ${metaError.section}.${metaError.name}`);
+      const data = (result.result.events.find(x => x.event.section == 'sudo' && x.event.method == 'Sudid')?.event.data as any).sudoResult;
+      if (data.isErr) {
+        if (data.asErr.isModule) {
+          const error = (result.result.events[1].event.data as any).sudoResult.asErr.asModule;
+          const metaError = super.getApi()?.registry.findMetaError(error);
+          throw new Error(`${metaError.section}.${metaError.name}`);
+        } else {
+          throw new Error(data.asErr.toHuman());
+        }
       }
       return result;
     }