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

difftreelog

added bench for sponsoring, logic broken , commit for rebase

PraetorP2022-08-30parent: #8ee0040.patch.diff
in: master

14 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5307,6 +5307,7 @@
  "pallet-common",
  "pallet-evm",
  "pallet-evm-contract-helpers",
+ "pallet-evm-migration",
  "pallet-randomness-collective-flip",
  "pallet-timestamp",
  "pallet-unique",
modifiedpallets/app-promotion/Cargo.tomldiffbeforeafterboth
--- a/pallets/app-promotion/Cargo.toml
+++ b/pallets/app-promotion/Cargo.toml
@@ -15,7 +15,7 @@
 targets = ['x86_64-unknown-linux-gnu']
 
 [features]
-default = ['std']
+default = ['std',]
 runtime-benchmarks = [
     'frame-benchmarking',
     'frame-support/runtime-benchmarks',
@@ -121,6 +121,13 @@
 [dependencies.pallet-evm-contract-helpers]
 default-features = false
 path =  "../evm-contract-helpers"
+
+[dev-dependencies]
+[dependencies.pallet-evm-migration]
+default-features = false
+path =  "../evm-migration"
+
+
 ################################################################################
 
 [dependencies]
modifiedpallets/app-promotion/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/benchmarking.rs
+++ b/pallets/app-promotion/src/benchmarking.rs
@@ -20,53 +20,109 @@
 use crate::Pallet as PromototionPallet;
 
 use sp_runtime::traits::Bounded;
+use sp_std::vec;
 
 use frame_benchmarking::{benchmarks, account};
-use frame_support::traits::OnInitialize;
+
 use frame_system::{Origin, RawOrigin};
+use pallet_unique::benchmarking::create_nft_collection;
+use pallet_evm_migration::Pallet as EvmMigrationPallet;
+
+// trait BenchmarkingConfig: Config + pallet_unique::Config { }
+
+// impl<T: Config + pallet_unique::Config> BenchmarkingConfig for T { }
 
 const SEED: u32 = 0;
 benchmarks! {
 	where_clause{
-		where T: Config
-
+		where T:  Config + pallet_unique::Config + pallet_evm_migration::Config ,
+		T::BlockNumber: From<u32>
 	}
-	on_initialize {
-		let block1: T::BlockNumber = T::BlockNumber::from(1u32);
-		let block2: T::BlockNumber = T::BlockNumber::from(2u32);
-		PromototionPallet::<T>::on_initialize(block1); // Create Treasury account
-	}: { PromototionPallet::<T>::on_initialize(block2); } // Benchmark deposit_into_existing path
-
 	start_app_promotion {
-		let caller = account::<T::AccountId>("caller", 0, SEED);
 
-	} : {PromototionPallet::<T>::start_app_promotion(RawOrigin::Root.into(), T::BlockNumber::from(2u32))?}
+	} : {PromototionPallet::<T>::start_app_promotion(RawOrigin::Root.into(), None)?}
+
+	stop_app_promotion{
+		PromototionPallet::<T>::start_app_promotion(RawOrigin::Root.into(), Some(25.into()))?;
+	} : {PromototionPallet::<T>::stop_app_promotion(RawOrigin::Root.into())?}
 
 	set_admin_address {
-		let caller = account::<T::AccountId>("caller", 0, SEED);
-		let _ = T::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
-	} : {PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), caller)?}
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+	} : {PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin))?}
 
+	payout_stakers{
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		let share = Perbill::from_rational(1u32, 10);
+		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let staker: T::AccountId = account("caller", 0, SEED);
+		let _ = <T as Config>::Currency::make_free_balance_be(&staker,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let _ = PromototionPallet::<T>::stake(RawOrigin::Signed(staker.clone()).into(), share * <T as Config>::Currency::total_balance(&staker))?;
+	} : {PromototionPallet::<T>::payout_stakers(RawOrigin::Signed(pallet_admin.clone()).into(), Some(1))?}
+
 	stake {
 		let caller = account::<T::AccountId>("caller", 0, SEED);
 		let share = Perbill::from_rational(1u32, 10);
-		let _ = T::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
-	} : {PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * T::Currency::total_balance(&caller))?}
+		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+	} : {PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * <T as Config>::Currency::total_balance(&caller))?}
 
 	unstake {
 		let caller = account::<T::AccountId>("caller", 0, SEED);
 		let share = Perbill::from_rational(1u32, 10);
-		let _ = T::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
-		let _ = PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * T::Currency::total_balance(&caller))?;
+		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let _ = PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * <T as Config>::Currency::total_balance(&caller))?;
 
-	} : {PromototionPallet::<T>::unstake(RawOrigin::Signed(caller.clone()).into(), share * T::Currency::total_balance(&caller))?}
+	} : {PromototionPallet::<T>::unstake(RawOrigin::Signed(caller.clone()).into(), share * <T as Config>::Currency::total_balance(&caller))?}
 
 	recalculate_stake {
 		let caller = account::<T::AccountId>("caller", 0, SEED);
 		let share = Perbill::from_rational(1u32, 10);
-		let _ = T::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
-		let _ = PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * T::Currency::total_balance(&caller))?;
-		let block = <T::BlockNumberProvider as BlockNumberProvider>::current_block_number();
+		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let _ = PromototionPallet::<T>::stake(RawOrigin::Signed(caller.clone()).into(), share * <T as Config>::Currency::total_balance(&caller))?;
+		let block = <T::RelayBlockNumberProvider as BlockNumberProvider>::current_block_number();
 		let mut acc = <BalanceOf<T>>::default();
-	} : {PromototionPallet::<T>::recalculate_stake(&caller, block, share * T::Currency::total_balance(&caller), &mut acc)}
+	} : {PromototionPallet::<T>::recalculate_stake(&caller, block, share * <T as Config>::Currency::total_balance(&caller), &mut acc)}
+
+	sponsor_collection {
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let caller: T::AccountId = account("caller", 0, SEED);
+		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let collection = create_nft_collection::<T>(caller.clone())?;
+	} : {PromototionPallet::<T>::sponsor_collection(RawOrigin::Signed(pallet_admin.clone()).into(), collection)?}
+
+	stop_sponsoring_collection {
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let caller: T::AccountId = account("caller", 0, SEED);
+		let _ = <T as Config>::Currency::make_free_balance_be(&caller,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let collection = create_nft_collection::<T>(caller.clone())?;
+		PromototionPallet::<T>::sponsor_collection(RawOrigin::Signed(pallet_admin.clone()).into(), collection)?;
+	} : {PromototionPallet::<T>::stop_sponsoring_collection(RawOrigin::Signed(pallet_admin.clone()).into(), collection)?}
+
+	sponsor_contract {
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;
+
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let address = H160::from_low_u64_be(SEED as u64);
+		let data: Vec<u8> = (0..20 as u8).collect();
+		<EvmMigrationPallet<T>>::begin(RawOrigin::Root.into(), address)?;
+		<EvmMigrationPallet<T>>::finish(RawOrigin::Root.into(), address, data)?;
+	} : {PromototionPallet::<T>::sponsor_conract(RawOrigin::Signed(pallet_admin.clone()).into(), address)?}
+
+	stop_sponsoring_contract {
+		let pallet_admin = account::<T::AccountId>("admin", 0, SEED);
+		PromototionPallet::<T>::set_admin_address(RawOrigin::Root.into(), T::CrossAccountId::from_sub(pallet_admin.clone()))?;
+
+		let _ = <T as Config>::Currency::make_free_balance_be(&pallet_admin,  Perbill::from_rational(1u32, 2) * BalanceOf::<T>::max_value());
+		let address = H160::from_low_u64_be(SEED as u64);
+		let data: Vec<u8> = (0..20 as u8).collect();
+		<EvmMigrationPallet<T>>::begin(RawOrigin::Root.into(), address)?;
+		<EvmMigrationPallet<T>>::finish(RawOrigin::Root.into(), address, data)?;
+		PromototionPallet::<T>::sponsor_conract(RawOrigin::Signed(pallet_admin.clone()).into(), address)?;
+	} : {PromototionPallet::<T>::stop_sponsoring_contract(RawOrigin::Signed(pallet_admin.clone()).into(), address)?}
 }
modifiedpallets/app-promotion/src/lib.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/lib.rs
+++ b/pallets/app-promotion/src/lib.rs
@@ -132,6 +132,8 @@
 	#[pallet::generate_deposit(fn deposit_event)]
 	pub enum Event<T: Config> {
 		StakingRecalculation(
+			/// An recalculated staker
+			T::AccountId,
 			/// Base on which interest is calculated
 			BalanceOf<T>,
 			/// Amount of accrued interest
@@ -164,7 +166,7 @@
 			Key<Blake2_128Concat, T::AccountId>,
 			Key<Twox64Concat, T::BlockNumber>,
 		),
-		Value = BalanceOf<T>,
+		Value = (BalanceOf<T>, T::BlockNumber),
 		QueryKind = ValueQuery,
 	>;
 
@@ -189,6 +191,13 @@
 	pub type NextInterestBlock<T: Config> =
 		StorageValue<Value = T::BlockNumber, QueryKind = ValueQuery>;
 
+	/// Stores the address of the staker for which the last revenue recalculation was performed.
+	/// If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.
+	#[pallet::storage]
+	#[pallet::getter(fn get_last_calculated_staker)]
+	pub type LastCalcucaltedStaker<T: Config> =
+		StorageValue<Value = T::AccountId, QueryKind = OptionQuery>;
+
 	#[pallet::hooks]
 	impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
 		fn on_initialize(current_block: T::BlockNumber) -> Weight
@@ -196,10 +205,10 @@
 			<T as frame_system::Config>::BlockNumber: From<u32>,
 		{
 			let mut consumed_weight = 0;
-			let mut add_weight = |reads, writes, weight| {
-				consumed_weight += T::DbWeight::get().reads_writes(reads, writes);
-				consumed_weight += weight;
-			};
+			// let mut add_weight = |reads, writes, weight| {
+			// 	consumed_weight += T::DbWeight::get().reads_writes(reads, writes);
+			// 	consumed_weight += weight;
+			// };
 
 			PendingUnstake::<T>::iter()
 				.filter_map(|((staker, block), amount)| {
@@ -214,41 +223,44 @@
 					<PendingUnstake<T>>::remove((staker, block));
 				});
 
-			let next_interest_block = Self::get_interest_block();
-			let current_relay_block = T::RelayBlockNumberProvider::current_block_number();
-			if next_interest_block != 0.into() && current_relay_block >= next_interest_block {
-				let mut acc = <BalanceOf<T>>::default();
-				let mut base_acc = <BalanceOf<T>>::default();
+			// let next_interest_block = Self::get_interest_block();
+			// let current_relay_block = T::RelayBlockNumberProvider::current_block_number();
+			// if next_interest_block != 0.into() && current_relay_block >= next_interest_block {
+			// 	let mut acc = <BalanceOf<T>>::default();
+			// 	let mut base_acc = <BalanceOf<T>>::default();
 
-				NextInterestBlock::<T>::set(
-					NextInterestBlock::<T>::get() + T::RecalculationInterval::get(),
-				);
-				add_weight(0, 1, 0);
+			// 	NextInterestBlock::<T>::set(
+			// 		NextInterestBlock::<T>::get() + T::RecalculationInterval::get(),
+			// 	);
+			// 	add_weight(0, 1, 0);
 
-				Staked::<T>::iter()
-					.filter(|((_, block), _)| {
-						*block + T::RecalculationInterval::get() <= current_relay_block
-					})
-					.for_each(|((staker, block), amount)| {
-						Self::recalculate_stake(&staker, block, amount, &mut acc);
-						add_weight(0, 0, T::WeightInfo::recalculate_stake());
-						base_acc += amount;
-					});
-				<TotalStaked<T>>::get()
-					.checked_add(&acc)
-					.map(|res| <TotalStaked<T>>::set(res));
+			// 	Staked::<T>::iter()
+			// 		.filter(|((_, block), _)| {
+			// 			*block + T::RecalculationInterval::get() <= current_relay_block
+			// 		})
+			// 		.for_each(|((staker, block), amount)| {
+			// 			Self::recalculate_stake(&staker, block, amount, &mut acc);
+			// 			add_weight(0, 0, T::WeightInfo::recalculate_stake());
+			// 			base_acc += amount;
+			// 		});
+			// 	<TotalStaked<T>>::get()
+			// 		.checked_add(&acc)
+			// 		.map(|res| <TotalStaked<T>>::set(res));
 
-				Self::deposit_event(Event::StakingRecalculation(base_acc, acc));
-				add_weight(0, 1, 0);
-			} else {
-				add_weight(1, 0, 0)
-			};
+			// 	Self::deposit_event(Event::StakingRecalculation(base_acc, acc));
+			// 	add_weight(0, 1, 0);
+			// } else {
+			// 	add_weight(1, 0, 0)
+			// };
 			consumed_weight
 		}
 	}
 
 	#[pallet::call]
-	impl<T: Config> Pallet<T> {
+	impl<T: Config> Pallet<T>
+	where
+		T::BlockNumber: From<u32>,
+	{
 		#[pallet::weight(T::WeightInfo::set_admin_address())]
 		pub fn set_admin_address(origin: OriginFor<T>, admin: T::CrossAccountId) -> DispatchResult {
 			ensure_root(origin)?;
@@ -281,7 +293,7 @@
 			Ok(())
 		}
 
-		#[pallet::weight(0)]
+		#[pallet::weight(T::WeightInfo::stop_app_promotion())]
 		pub fn stop_app_promotion(origin: OriginFor<T>) -> DispatchResult
 		where
 			<T as frame_system::Config>::BlockNumber: From<u32>,
@@ -317,19 +329,24 @@
 			Self::add_lock_balance(&staker_id, amount)?;
 
 			let block_number = T::RelayBlockNumberProvider::current_block_number();
+			let recalc_block = (block_number / T::RecalculationInterval::get() + 2u32.into())
+				* T::RecalculationInterval::get();
 
-			<Staked<T>>::insert(
-				(&staker_id, block_number),
-				<Staked<T>>::get((&staker_id, block_number))
+			<Staked<T>>::insert((&staker_id, block_number), {
+				let mut balance_and_recalc_block = <Staked<T>>::get((&staker_id, block_number));
+				balance_and_recalc_block.0 = balance_and_recalc_block
+					.0
 					.checked_add(&amount)
-					.ok_or(ArithmeticError::Overflow)?,
-			);
+					.ok_or(ArithmeticError::Overflow)?;
+				balance_and_recalc_block.1 = recalc_block;
+				balance_and_recalc_block
+			});
 
-			<TotalStaked<T>>::set(
-				<TotalStaked<T>>::get()
-					.checked_add(&amount)
-					.ok_or(ArithmeticError::Overflow)?,
-			);
+			// <TotalStaked<T>>::set(
+			// 	<TotalStaked<T>>::get()
+			// 		.checked_add(&amount)
+			// 		.ok_or(ArithmeticError::Overflow)?,
+			// );
 
 			Ok(())
 		}
@@ -338,63 +355,120 @@
 		pub fn unstake(staker: OriginFor<T>, amount: BalanceOf<T>) -> DispatchResult {
 			let staker_id = ensure_signed(staker)?;
 
-			let mut stakes = Staked::<T>::iter_prefix((&staker_id,)).collect::<Vec<_>>();
+			let mut stakes = Staked::<T>::drain_prefix((&staker_id,));
 
-			let total_staked = stakes
-				.iter()
-				.fold(<BalanceOf<T>>::default(), |acc, (_, amount)| acc + *amount);
+			// let total_staked = stakes
+			// 	.iter()
+			// 	.fold(<BalanceOf<T>>::default(), |acc, (_, amount)| acc + *amount);
 
-			ensure!(total_staked >= amount, ArithmeticError::Underflow);
+			// ensure!(total_staked >= amount, ArithmeticError::Underflow);
 
-			<TotalStaked<T>>::set(
-				<TotalStaked<T>>::get()
-					.checked_sub(&amount)
-					.ok_or(ArithmeticError::Underflow)?,
-			);
+			// <TotalStaked<T>>::set(
+			// 	<TotalStaked<T>>::get()
+			// 		.checked_sub(&amount)
+			// 		.ok_or(ArithmeticError::Underflow)?,
+			// );
 
-			let block =
-				T::RelayBlockNumberProvider::current_block_number() + T::PendingInterval::get();
-			<PendingUnstake<T>>::insert(
-				(&staker_id, block),
-				<PendingUnstake<T>>::get((&staker_id, block))
-					.checked_add(&amount)
-					.ok_or(ArithmeticError::Overflow)?,
-			);
+			// let block =
+			// 	T::RelayBlockNumberProvider::current_block_number() + T::PendingInterval::get();
+			// <PendingUnstake<T>>::insert(
+			// 	(&staker_id, block),
+			// 	<PendingUnstake<T>>::get((&staker_id, block))
+			// 		.checked_add(&amount)
+			// 		.ok_or(ArithmeticError::Overflow)?,
+			// );
 
-			stakes.sort_by_key(|(block, _)| *block);
+			// stakes.sort_by_key(|(block, _)| *block);
 
-			let mut acc_amount = amount;
-			let new_state = stakes
-				.into_iter()
-				.map_while(|(block, balance_per_block)| {
-					if acc_amount == <BalanceOf<T>>::default() {
-						return None;
-					}
-					if acc_amount <= balance_per_block {
-						let res = (block, balance_per_block - acc_amount, acc_amount);
-						acc_amount = <BalanceOf<T>>::default();
-						return Some(res);
-					} else {
-						acc_amount -= balance_per_block;
-						return Some((block, <BalanceOf<T>>::default(), acc_amount));
-					}
-				})
-				.collect::<Vec<_>>();
+			// let mut acc_amount = amount;
+			// let new_state = stakes
+			// 	.into_iter()
+			// 	.map_while(|(block, balance_per_block)| {
+			// 		if acc_amount == <BalanceOf<T>>::default() {
+			// 			return None;
+			// 		}
+			// 		if acc_amount <= balance_per_block {
+			// 			let res = (block, balance_per_block - acc_amount, acc_amount);
+			// 			acc_amount = <BalanceOf<T>>::default();
+			// 			return Some(res);
+			// 		} else {
+			// 			acc_amount -= balance_per_block;
+			// 			return Some((block, <BalanceOf<T>>::default(), acc_amount));
+			// 		}
+			// 	})
+			// 	.collect::<Vec<_>>();
 
-			new_state
-				.into_iter()
-				.for_each(|(block, to_staked, _to_pending)| {
-					if to_staked == <BalanceOf<T>>::default() {
-						<Staked<T>>::remove((&staker_id, block));
-					} else {
-						<Staked<T>>::insert((&staker_id, block), to_staked);
-					}
-				});
+			// new_state
+			// 	.into_iter()
+			// 	.for_each(|(block, to_staked, _to_pending)| {
+			// 		if to_staked == <BalanceOf<T>>::default() {
+			// 			<Staked<T>>::remove((&staker_id, block));
+			// 		} else {
+			// 			<Staked<T>>::insert((&staker_id, block), to_staked);
+			// 		}
+			// 	});
 
 			Ok(())
+
+			// let staker_id = ensure_signed(staker)?;
+
+			// let mut stakes = Staked::<T>::iter_prefix((&staker_id,)).collect::<Vec<_>>();
+
+			// let total_staked = stakes
+			// 	.iter()
+			// 	.fold(<BalanceOf<T>>::default(), |acc, (_, amount)| acc + *amount);
+
+			// ensure!(total_staked >= amount, ArithmeticError::Underflow);
+
+			// <TotalStaked<T>>::set(
+			// 	<TotalStaked<T>>::get()
+			// 		.checked_sub(&amount)
+			// 		.ok_or(ArithmeticError::Underflow)?,
+			// );
+
+			// let block =
+			// 	T::RelayBlockNumberProvider::current_block_number() + T::PendingInterval::get();
+			// <PendingUnstake<T>>::insert(
+			// 	(&staker_id, block),
+			// 	<PendingUnstake<T>>::get((&staker_id, block))
+			// 		.checked_add(&amount)
+			// 		.ok_or(ArithmeticError::Overflow)?,
+			// );
+
+			// stakes.sort_by_key(|(block, _)| *block);
+
+			// let mut acc_amount = amount;
+			// let new_state = stakes
+			// 	.into_iter()
+			// 	.map_while(|(block, balance_per_block)| {
+			// 		if acc_amount == <BalanceOf<T>>::default() {
+			// 			return None;
+			// 		}
+			// 		if acc_amount <= balance_per_block {
+			// 			let res = (block, balance_per_block - acc_amount, acc_amount);
+			// 			acc_amount = <BalanceOf<T>>::default();
+			// 			return Some(res);
+			// 		} else {
+			// 			acc_amount -= balance_per_block;
+			// 			return Some((block, <BalanceOf<T>>::default(), acc_amount));
+			// 		}
+			// 	})
+			// 	.collect::<Vec<_>>();
+
+			// new_state
+			// 	.into_iter()
+			// 	.for_each(|(block, to_staked, _to_pending)| {
+			// 		if to_staked == <BalanceOf<T>>::default() {
+			// 			<Staked<T>>::remove((&staker_id, block));
+			// 		} else {
+			// 			<Staked<T>>::insert((&staker_id, block), to_staked);
+			// 		}
+			// 	});
+
+			// Ok(())
 		}
 
-		#[pallet::weight(0)]
+		#[pallet::weight(T::WeightInfo::sponsor_collection())]
 		pub fn sponsor_collection(
 			admin: OriginFor<T>,
 			collection_id: CollectionId,
@@ -407,8 +481,8 @@
 
 			T::CollectionHandler::set_sponsor(Self::account_id(), collection_id)
 		}
-		#[pallet::weight(0)]
-		pub fn stop_sponsorign_collection(
+		#[pallet::weight(T::WeightInfo::stop_sponsoring_collection())]
+		pub fn stop_sponsoring_collection(
 			admin: OriginFor<T>,
 			collection_id: CollectionId,
 		) -> DispatchResult {
@@ -428,7 +502,7 @@
 			T::CollectionHandler::remove_collection_sponsor(collection_id)
 		}
 
-		#[pallet::weight(0)]
+		#[pallet::weight(T::WeightInfo::sponsor_contract())]
 		pub fn sponsor_conract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {
 			let admin_id = ensure_signed(admin)?;
 
@@ -443,8 +517,8 @@
 			)
 		}
 
-		#[pallet::weight(0)]
-		pub fn stop_sponsorign_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {
+		#[pallet::weight(T::WeightInfo::stop_sponsoring_contract())]
+		pub fn stop_sponsoring_contract(admin: OriginFor<T>, contract_id: H160) -> DispatchResult {
 			let admin_id = ensure_signed(admin)?;
 
 			ensure!(
@@ -459,6 +533,18 @@
 			);
 			T::ContractHandler::remove_contract_sponsor(contract_id)
 		}
+
+		#[pallet::weight(0)]
+		pub fn payout_stakers(admin: OriginFor<T>, stakers_number: Option<u8>) -> DispatchResult {
+			let admin_id = ensure_signed(admin)?;
+
+			ensure!(
+				admin_id == Admin::<T>::get().ok_or(Error::<T>::AdminNotSet)?,
+				Error::<T>::NoPermission
+			);
+
+			Ok(())
+		}
 	}
 }
 
@@ -501,7 +587,9 @@
 	pub fn total_staked_by_id(staker: impl EncodeLike<T::AccountId>) -> Option<BalanceOf<T>> {
 		let staked = Staked::<T>::iter_prefix((staker,))
 			.into_iter()
-			.fold(<BalanceOf<T>>::default(), |acc, (_, amount)| acc + amount);
+			.fold(<BalanceOf<T>>::default(), |acc, (_, (amount, _))| {
+				acc + amount
+			});
 		if staked != <BalanceOf<T>>::default() {
 			Some(staked)
 		} else {
@@ -514,7 +602,7 @@
 	) -> Option<Vec<(T::BlockNumber, BalanceOf<T>)>> {
 		let mut staked = Staked::<T>::iter_prefix((staker,))
 			.into_iter()
-			.map(|(block, amount)| (block, amount))
+			.map(|(block, (amount, _))| (block, amount))
 			.collect::<Vec<_>>();
 		staked.sort_by_key(|(block, _)| *block);
 		if !staked.is_empty() {
@@ -550,17 +638,17 @@
 		income_acc: &mut BalanceOf<T>,
 	) {
 		let income = Self::calculate_income(base);
-		base.checked_add(&income).map(|res| {
-			<Staked<T>>::insert((staker, block), res);
-			*income_acc += income;
-			<T::Currency as Currency<T::AccountId>>::transfer(
-				&T::TreasuryAccountId::get(),
-				staker,
-				income,
-				ExistenceRequirement::KeepAlive,
-			)
-			.and_then(|_| Self::add_lock_balance(staker, income));
-		});
+		// base.checked_add(&income).map(|res| {
+		// 	<Staked<T>>::insert((staker, block), res);
+		// 	*income_acc += income;
+		// 	<T::Currency as Currency<T::AccountId>>::transfer(
+		// 		&T::TreasuryAccountId::get(),
+		// 		staker,
+		// 		income,
+		// 		ExistenceRequirement::KeepAlive,
+		// 	)
+		// 	.and_then(|_| Self::add_lock_balance(staker, income));
+		// });
 	}
 
 	fn calculate_income<I>(base: I) -> I
modifiedpallets/app-promotion/src/types.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/types.rs
+++ b/pallets/app-promotion/src/types.rs
@@ -101,7 +101,7 @@
 
 	fn set_sponsor(sponsor_id: Self::AccountId, contract_id: Self::ContractId) -> DispatchResult;
 
-	fn remove_contract_sponsor(collection_id: Self::ContractId) -> DispatchResult;
+	fn remove_contract_sponsor(contract_id: Self::ContractId) -> DispatchResult;
 
 	fn get_sponsor(contract_id: Self::ContractId)
 		-> Result<Option<Self::AccountId>, DispatchError>;
modifiedpallets/app-promotion/src/weights.rsdiffbeforeafterboth
--- a/pallets/app-promotion/src/weights.rs
+++ b/pallets/app-promotion/src/weights.rs
@@ -3,7 +3,7 @@
 //! Autogenerated weights for pallet_app_promotion
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-08-09, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-08-30, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
 
 // Executed Command:
@@ -33,108 +33,167 @@
 
 /// Weight functions needed for pallet_app_promotion.
 pub trait WeightInfo {
-	fn on_initialize() -> Weight;
 	fn start_app_promotion() -> Weight;
+	fn stop_app_promotion() -> Weight;
 	fn set_admin_address() -> Weight;
+	fn payout_stakers() -> Weight;
 	fn stake() -> Weight;
 	fn unstake() -> Weight;
 	fn recalculate_stake() -> Weight;
+	fn sponsor_collection() -> Weight;
+	fn stop_sponsoring_collection() -> Weight;
+	fn sponsor_contract() -> Weight;
+	fn stop_sponsoring_contract() -> Weight;
 }
 
 /// Weights for pallet_app_promotion using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	// Storage: Promotion PendingUnstake (r:1 w:0)
-	// Storage: Promotion NextInterestBlock (r:1 w:0)
-	fn on_initialize() -> Weight {
-		(2_705_000 as Weight)
+	// Storage: Promotion StartBlock (r:1 w:1)
+	// Storage: ParachainSystem ValidationData (r:1 w:0)
+	// Storage: Promotion NextInterestBlock (r:0 w:1)
+	fn start_app_promotion() -> Weight {
+		(2_299_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
+			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Promotion StartBlock (r:1 w:1)
 	// Storage: Promotion NextInterestBlock (r:0 w:1)
-	fn start_app_promotion() -> Weight {
-		(1_436_000 as Weight)
+	fn stop_app_promotion() -> Weight {
+		(1_733_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Promotion Admin (r:0 w:1)
 	fn set_admin_address() -> Weight {
-		(516_000 as Weight)
+		(553_000 as Weight)
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
+	// Storage: Promotion Admin (r:1 w:0)
+	fn payout_stakers() -> Weight {
+		(1_398_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(1 as Weight))
+	}
 	// Storage: System Account (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: ParachainSystem ValidationData (r:1 w:0)
 	// Storage: Promotion Staked (r:1 w:1)
-	// Storage: Promotion TotalStaked (r:1 w:1)
 	fn stake() -> Weight {
-		(10_019_000 as Weight)
-			.saturating_add(T::DbWeight::get().reads(5 as Weight))
-			.saturating_add(T::DbWeight::get().writes(4 as Weight))
+		(9_506_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(4 as Weight))
+			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
-	// Storage: System Account (r:1 w:1)
-	// Storage: Balances Locks (r:1 w:1)
-	// Storage: ParachainSystem ValidationData (r:1 w:0)
-	// Storage: Promotion Staked (r:1 w:1)
-	// Storage: Promotion TotalStaked (r:1 w:1)
+	// Storage: System Account (r:1 w:0)
 	fn unstake() -> Weight {
-		(10_619_000 as Weight)
-			.saturating_add(T::DbWeight::get().reads(5 as Weight))
-			.saturating_add(T::DbWeight::get().writes(4 as Weight))
+		(2_529_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 	}
-	// Storage: System Account (r:2 w:0)
-	// Storage: Promotion Staked (r:0 w:1)
+	// Storage: System Account (r:1 w:0)
 	fn recalculate_stake() -> Weight {
-		(4_932_000 as Weight)
+		(2_203_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: Common CollectionById (r:1 w:1)
+	fn sponsor_collection() -> Weight {
+		(10_882_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(2 as Weight))
+			.saturating_add(T::DbWeight::get().writes(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: Common CollectionById (r:1 w:1)
+	fn stop_sponsoring_collection() -> Weight {
+		(10_544_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: EvmContractHelpers Sponsoring (r:0 w:1)
+	fn sponsor_contract() -> Weight {
+		(2_163_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(1 as Weight))
+			.saturating_add(T::DbWeight::get().writes(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: EvmContractHelpers Sponsoring (r:1 w:1)
+	fn stop_sponsoring_contract() -> Weight {
+		(3_511_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(2 as Weight))
+			.saturating_add(T::DbWeight::get().writes(1 as Weight))
+	}
 }
 
 // For backwards compatibility and tests
 impl WeightInfo for () {
-	// Storage: Promotion PendingUnstake (r:1 w:0)
-	// Storage: Promotion NextInterestBlock (r:1 w:0)
-	fn on_initialize() -> Weight {
-		(2_705_000 as Weight)
+	// Storage: Promotion StartBlock (r:1 w:1)
+	// Storage: ParachainSystem ValidationData (r:1 w:0)
+	// Storage: Promotion NextInterestBlock (r:0 w:1)
+	fn start_app_promotion() -> Weight {
+		(2_299_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Promotion StartBlock (r:1 w:1)
 	// Storage: Promotion NextInterestBlock (r:0 w:1)
-	fn start_app_promotion() -> Weight {
-		(1_436_000 as Weight)
+	fn stop_app_promotion() -> Weight {
+		(1_733_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Promotion Admin (r:0 w:1)
 	fn set_admin_address() -> Weight {
-		(516_000 as Weight)
+		(553_000 as Weight)
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
+	// Storage: Promotion Admin (r:1 w:0)
+	fn payout_stakers() -> Weight {
+		(1_398_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
+	}
 	// Storage: System Account (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: ParachainSystem ValidationData (r:1 w:0)
 	// Storage: Promotion Staked (r:1 w:1)
-	// Storage: Promotion TotalStaked (r:1 w:1)
 	fn stake() -> Weight {
-		(10_019_000 as Weight)
-			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
-			.saturating_add(RocksDbWeight::get().writes(4 as Weight))
+		(9_506_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(4 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
-	// Storage: System Account (r:1 w:1)
-	// Storage: Balances Locks (r:1 w:1)
-	// Storage: ParachainSystem ValidationData (r:1 w:0)
-	// Storage: Promotion Staked (r:1 w:1)
-	// Storage: Promotion TotalStaked (r:1 w:1)
+	// Storage: System Account (r:1 w:0)
 	fn unstake() -> Weight {
-		(10_619_000 as Weight)
-			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
-			.saturating_add(RocksDbWeight::get().writes(4 as Weight))
+		(2_529_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 	}
-	// Storage: System Account (r:2 w:0)
-	// Storage: Promotion Staked (r:0 w:1)
+	// Storage: System Account (r:1 w:0)
 	fn recalculate_stake() -> Weight {
-		(4_932_000 as Weight)
+		(2_203_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: Common CollectionById (r:1 w:1)
+	fn sponsor_collection() -> Weight {
+		(10_882_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: Common CollectionById (r:1 w:1)
+	fn stop_sponsoring_collection() -> Weight {
+		(10_544_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: EvmContractHelpers Sponsoring (r:0 w:1)
+	fn sponsor_contract() -> Weight {
+		(2_163_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
+	}
+	// Storage: Promotion Admin (r:1 w:0)
+	// Storage: EvmContractHelpers Sponsoring (r:1 w:1)
+	fn stop_sponsoring_contract() -> Weight {
+		(3_511_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
modifiedpallets/unique/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/unique/src/benchmarking.rs
+++ b/pallets/unique/src/benchmarking.rs
@@ -46,7 +46,9 @@
 	)?;
 	Ok(<pallet_common::CreatedCollectionCount<T>>::get())
 }
-fn create_nft_collection<T: Config>(owner: T::AccountId) -> Result<CollectionId, DispatchError> {
+pub fn create_nft_collection<T: Config>(
+	owner: T::AccountId,
+) -> Result<CollectionId, DispatchError> {
 	create_collection_helper::<T>(owner, CollectionMode::NFT)
 }
 
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -98,7 +98,7 @@
 pub mod eth;
 
 #[cfg(feature = "runtime-benchmarks")]
-mod benchmarking;
+pub mod benchmarking;
 pub mod weights;
 use weights::WeightInfo;
 
modifiedtests/src/interfaces/augment-api-events.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-events.ts
+++ b/tests/src/interfaces/augment-api-events.ts
@@ -361,7 +361,7 @@
       [key: string]: AugmentedEvent<ApiType>;
     };
     promotion: {
-      StakingRecalculation: AugmentedEvent<ApiType, [u128, u128]>;
+      StakingRecalculation: AugmentedEvent<ApiType, [AccountId32, u128, u128]>;
       /**
        * Generic event
        **/
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -513,6 +513,11 @@
     promotion: {
       admin: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
       /**
+       * Stores the address of the staker for which the last revenue recalculation was performed.
+       * If `None`, then recalculation has not yet been performed or calculations have been completed for all stakers.
+       **/
+      lastCalcucaltedStaker: AugmentedQuery<ApiType, () => Observable<Option<AccountId32>>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
        * Next target block when interest is recalculated
        **/
       nextInterestBlock: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
@@ -523,7 +528,7 @@
       /**
        * Amount of tokens staked by account in the blocknumber.
        **/
-      staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<u128>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;
+      staked: AugmentedQuery<ApiType, (arg1: AccountId32 | string | Uint8Array, arg2: u32 | AnyNumber | Uint8Array) => Observable<ITuple<[u128, u32]>>, [AccountId32, u32]> & QueryableStorageEntry<ApiType, [AccountId32, u32]>;
       /**
        * A block when app-promotion has started .I think this is redundant, because we only need `NextInterestBlock`.
        **/
modifiedtests/src/interfaces/augment-api-tx.tsdiffbeforeafterboth
before · tests/src/interfaces/augment-api-tx.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/submittable';78import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@polkadot/api-base/types';9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';1314export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;16export type __SubmittableExtrinsicFunction<ApiType extends ApiTypes> = SubmittableExtrinsicFunction<ApiType>;1718declare module '@polkadot/api-base/types/submittable' {19  interface AugmentedSubmittables<ApiType extends ApiTypes> {20    balances: {21      /**22       * Exactly as `transfer`, except the origin must be root and the source account may be23       * specified.24       * # <weight>25       * - Same as transfer, but additional read and write because the source account is not26       * assumed to be in the overlay.27       * # </weight>28       **/29      forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u128>]>;30      /**31       * Unreserve some balance from a user by force.32       * 33       * Can only be called by ROOT.34       **/35      forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;36      /**37       * Set the balances of a given account.38       * 39       * This will alter `FreeBalance` and `ReservedBalance` in storage. it will40       * also alter the total issuance of the system (`TotalIssuance`) appropriately.41       * If the new free or reserved balance is below the existential deposit,42       * it will reset the account nonce (`frame_system::AccountNonce`).43       * 44       * The dispatch origin for this call is `root`.45       **/46      setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>, Compact<u128>]>;47      /**48       * Transfer some liquid free balance to another account.49       * 50       * `transfer` will set the `FreeBalance` of the sender and receiver.51       * If the sender's account is below the existential deposit as a result52       * of the transfer, the account will be reaped.53       * 54       * The dispatch origin for this call must be `Signed` by the transactor.55       * 56       * # <weight>57       * - Dependent on arguments but not critical, given proper implementations for input config58       * types. See related functions below.59       * - It contains a limited number of reads and writes internally and no complex60       * computation.61       * 62       * Related functions:63       * 64       * - `ensure_can_withdraw` is always called internally but has a bounded complexity.65       * - Transferring balances to accounts that did not exist before will cause66       * `T::OnNewAccount::on_new_account` to be called.67       * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.68       * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check69       * that the transfer will not kill the origin account.70       * ---------------------------------71       * - Origin account is already in memory, so no DB operations for them.72       * # </weight>73       **/74      transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;75      /**76       * Transfer the entire transferable balance from the caller account.77       * 78       * NOTE: This function only attempts to transfer _transferable_ balances. This means that79       * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be80       * transferred by this function. To ensure that this function results in a killed account,81       * you might need to prepare the account by removing any reference counters, storage82       * deposits, etc...83       * 84       * The dispatch origin of this call must be Signed.85       * 86       * - `dest`: The recipient of the transfer.87       * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all88       * of the funds the account has, causing the sender account to be killed (false), or89       * transfer everything except at least the existential deposit, which will guarantee to90       * keep the sender account alive (true). # <weight>91       * - O(1). Just like transfer, but reading the user's transferable balance first.92       * #</weight>93       **/94      transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;95      /**96       * Same as the [`transfer`] call, but with a check that the transfer will not kill the97       * origin account.98       * 99       * 99% of the time you want [`transfer`] instead.100       * 101       * [`transfer`]: struct.Pallet.html#method.transfer102       **/103      transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;104      /**105       * Generic tx106       **/107      [key: string]: SubmittableExtrinsicFunction<ApiType>;108    };109    charging: {110      /**111       * Generic tx112       **/113      [key: string]: SubmittableExtrinsicFunction<ApiType>;114    };115    configuration: {116      setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;117      setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;118      /**119       * Generic tx120       **/121      [key: string]: SubmittableExtrinsicFunction<ApiType>;122    };123    cumulusXcm: {124      /**125       * Generic tx126       **/127      [key: string]: SubmittableExtrinsicFunction<ApiType>;128    };129    dmpQueue: {130      /**131       * Service a single overweight message.132       * 133       * - `origin`: Must pass `ExecuteOverweightOrigin`.134       * - `index`: The index of the overweight message to service.135       * - `weight_limit`: The amount of weight that message execution may take.136       * 137       * Errors:138       * - `Unknown`: Message of `index` is unknown.139       * - `OverLimit`: Message execution may use greater than `weight_limit`.140       * 141       * Events:142       * - `OverweightServiced`: On success.143       **/144      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;145      /**146       * Generic tx147       **/148      [key: string]: SubmittableExtrinsicFunction<ApiType>;149    };150    ethereum: {151      /**152       * Transact an Ethereum transaction.153       **/154      transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;155      /**156       * Generic tx157       **/158      [key: string]: SubmittableExtrinsicFunction<ApiType>;159    };160    evm: {161      /**162       * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.163       **/164      call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;165      /**166       * Issue an EVM create operation. This is similar to a contract creation transaction in167       * Ethereum.168       **/169      create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;170      /**171       * Issue an EVM create2 operation.172       **/173      create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;174      /**175       * Withdraw balance from EVM into currency/balances pallet.176       **/177      withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;178      /**179       * Generic tx180       **/181      [key: string]: SubmittableExtrinsicFunction<ApiType>;182    };183    evmMigration: {184      begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;185      finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;186      setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;187      /**188       * Generic tx189       **/190      [key: string]: SubmittableExtrinsicFunction<ApiType>;191    };192    inflation: {193      /**194       * This method sets the inflation start date. Can be only called once.195       * Inflation start block can be backdated and will catch up. The method will create Treasury196       * account if it does not exist and perform the first inflation deposit.197       * 198       * # Permissions199       * 200       * * Root201       * 202       * # Arguments203       * 204       * * inflation_start_relay_block: The relay chain block at which inflation should start205       **/206      startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;207      /**208       * Generic tx209       **/210      [key: string]: SubmittableExtrinsicFunction<ApiType>;211    };212    parachainSystem: {213      authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;214      enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;215      /**216       * Set the current validation data.217       * 218       * This should be invoked exactly once per block. It will panic at the finalization219       * phase if the call was not invoked.220       * 221       * The dispatch origin for this call must be `Inherent`222       * 223       * As a side effect, this function upgrades the current validation function224       * if the appropriate time has come.225       **/226      setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;227      sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;228      /**229       * Generic tx230       **/231      [key: string]: SubmittableExtrinsicFunction<ApiType>;232    };233    polkadotXcm: {234      /**235       * Execute an XCM message from a local, signed, origin.236       * 237       * An event is deposited indicating whether `msg` could be executed completely or only238       * partially.239       * 240       * No more than `max_weight` will be used in its attempted execution. If this is less than the241       * maximum amount of weight that the message could take to be executed, then no execution242       * attempt will be made.243       * 244       * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully245       * to completion; only that *some* of it was executed.246       **/247      execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;248      /**249       * Set a safe XCM version (the version that XCM should be encoded with if the most recent250       * version a destination can accept is unknown).251       * 252       * - `origin`: Must be Root.253       * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.254       **/255      forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;256      /**257       * Ask a location to notify us regarding their XCM version and any changes to it.258       * 259       * - `origin`: Must be Root.260       * - `location`: The location to which we should subscribe for XCM version notifications.261       **/262      forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;263      /**264       * Require that a particular destination should no longer notify us regarding any XCM265       * version changes.266       * 267       * - `origin`: Must be Root.268       * - `location`: The location to which we are currently subscribed for XCM version269       * notifications which we no longer desire.270       **/271      forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;272      /**273       * Extoll that a particular destination can be communicated with through a particular274       * version of XCM.275       * 276       * - `origin`: Must be Root.277       * - `location`: The destination that is being described.278       * - `xcm_version`: The latest version of XCM that `location` supports.279       **/280      forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;281      /**282       * Transfer some assets from the local chain to the sovereign account of a destination283       * chain and forward a notification XCM.284       * 285       * Fee payment on the destination side is made from the asset in the `assets` vector of286       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight287       * is needed than `weight_limit`, then the operation will fail and the assets send may be288       * at risk.289       * 290       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.291       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send292       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.293       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be294       * an `AccountId32` value.295       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the296       * `dest` side.297       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay298       * fees.299       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.300       **/301      limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;302      /**303       * Teleport some assets from the local chain to some destination chain.304       * 305       * Fee payment on the destination side is made from the asset in the `assets` vector of306       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight307       * is needed than `weight_limit`, then the operation will fail and the assets send may be308       * at risk.309       * 310       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.311       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send312       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.313       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be314       * an `AccountId32` value.315       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the316       * `dest` side. May not be empty.317       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay318       * fees.319       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.320       **/321      limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;322      /**323       * Transfer some assets from the local chain to the sovereign account of a destination324       * chain and forward a notification XCM.325       * 326       * Fee payment on the destination side is made from the asset in the `assets` vector of327       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,328       * with all fees taken as needed from the asset.329       * 330       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.331       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send332       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.333       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be334       * an `AccountId32` value.335       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the336       * `dest` side.337       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay338       * fees.339       **/340      reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;341      send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;342      /**343       * Teleport some assets from the local chain to some destination chain.344       * 345       * Fee payment on the destination side is made from the asset in the `assets` vector of346       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,347       * with all fees taken as needed from the asset.348       * 349       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.350       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send351       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.352       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be353       * an `AccountId32` value.354       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the355       * `dest` side. May not be empty.356       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay357       * fees.358       **/359      teleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;360      /**361       * Generic tx362       **/363      [key: string]: SubmittableExtrinsicFunction<ApiType>;364    };365    promotion: {366      setAdminAddress: AugmentedSubmittable<(admin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr]>;367      sponsorCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;368      sponsorConract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;369      stake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;370      startAppPromotion: AugmentedSubmittable<(promotionStartRelayBlock: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;371      stopAppPromotion: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;372      stopSponsorignCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;373      stopSponsorignContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;374      unstake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;375      /**376       * Generic tx377       **/378      [key: string]: SubmittableExtrinsicFunction<ApiType>;379    };380    rmrkCore: {381      /**382       * Accept an NFT sent from another account to self or an owned NFT.383       * 384       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.385       * 386       * # Permissions:387       * - Token-owner-to-be388       * 389       * # Arguments:390       * - `origin`: sender of the transaction391       * - `rmrk_collection_id`: RMRK collection ID of the NFT to be accepted.392       * - `rmrk_nft_id`: ID of the NFT to be accepted.393       * - `new_owner`: Either the sender's account ID or a sender-owned NFT,394       * whichever the accepted NFT was sent to.395       **/396      acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;397      /**398       * Accept the addition of a newly created pending resource to an existing NFT.399       * 400       * This transaction is needed when a resource is created and assigned to an NFT401       * by a non-owner, i.e. the collection issuer, with one of the402       * [`add_...` transactions](Pallet::add_basic_resource).403       * 404       * # Permissions:405       * - Token owner406       * 407       * # Arguments:408       * - `origin`: sender of the transaction409       * - `rmrk_collection_id`: RMRK collection ID of the NFT.410       * - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.411       * - `resource_id`: ID of the newly created pending resource.412       * accept the addition of a new resource to an existing NFT413       **/414      acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;415      /**416       * Accept the removal of a removal-pending resource from an NFT.417       * 418       * This transaction is needed when a non-owner, i.e. the collection issuer,419       * requests a [removal](`Pallet::remove_resource`) of a resource from an NFT.420       * 421       * # Permissions:422       * - Token owner423       * 424       * # Arguments:425       * - `origin`: sender of the transaction426       * - `rmrk_collection_id`: RMRK collection ID of the NFT.427       * - `rmrk_nft_id`: ID of the NFT with a resource to be removed.428       * - `resource_id`: ID of the removal-pending resource.429       **/430      acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;431      /**432       * Create and set/propose a basic resource for an NFT.433       * 434       * A basic resource is the simplest, lacking a Base and anything that comes with it.435       * See RMRK docs for more information and examples.436       * 437       * # Permissions:438       * - Collection issuer - if not the token owner, adding the resource will warrant439       * the owner's [acceptance](Pallet::accept_resource).440       * 441       * # Arguments:442       * - `origin`: sender of the transaction443       * - `rmrk_collection_id`: RMRK collection ID of the NFT.444       * - `nft_id`: ID of the NFT to assign a resource to.445       * - `resource`: Data of the resource to be created.446       **/447      addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceBasicResource]>;448      /**449       * Create and set/propose a composable resource for an NFT.450       * 451       * A composable resource links to a Base and has a subset of its Parts it is composed of.452       * See RMRK docs for more information and examples.453       * 454       * # Permissions:455       * - Collection issuer - if not the token owner, adding the resource will warrant456       * the owner's [acceptance](Pallet::accept_resource).457       * 458       * # Arguments:459       * - `origin`: sender of the transaction460       * - `rmrk_collection_id`: RMRK collection ID of the NFT.461       * - `nft_id`: ID of the NFT to assign a resource to.462       * - `resource`: Data of the resource to be created.463       **/464      addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceComposableResource]>;465      /**466       * Create and set/propose a slot resource for an NFT.467       * 468       * A slot resource links to a Base and a slot ID in it which it can fit into.469       * See RMRK docs for more information and examples.470       * 471       * # Permissions:472       * - Collection issuer - if not the token owner, adding the resource will warrant473       * the owner's [acceptance](Pallet::accept_resource).474       * 475       * # Arguments:476       * - `origin`: sender of the transaction477       * - `rmrk_collection_id`: RMRK collection ID of the NFT.478       * - `nft_id`: ID of the NFT to assign a resource to.479       * - `resource`: Data of the resource to be created.480       **/481      addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceSlotResource]>;482      /**483       * Burn an NFT, destroying it and its nested tokens up to the specified limit.484       * If the burning budget is exceeded, the transaction is reverted.485       * 486       * This is the way to burn a nested token as well.487       * 488       * For more information, see [`burn_recursively`](pallet_nonfungible::pallet::Pallet::burn_recursively).489       * 490       * # Permissions:491       * * Token owner492       * 493       * # Arguments:494       * - `origin`: sender of the transaction495       * - `collection_id`: RMRK ID of the collection in which the NFT to burn belongs to.496       * - `nft_id`: ID of the NFT to be destroyed.497       * - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction498       * is reverted if there are more tokens to burn in the nesting tree than this number.499       * This is primarily a mechanism of transaction weight control.500       **/501      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;502      /**503       * Change the issuer of a collection. Analogous to Unique's collection's [`owner`](up_data_structs::Collection).504       * 505       * # Permissions:506       * * Collection issuer507       * 508       * # Arguments:509       * - `origin`: sender of the transaction510       * - `collection_id`: RMRK collection ID to change the issuer of.511       * - `new_issuer`: Collection's new issuer.512       **/513      changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;514      /**515       * Create a new collection of NFTs.516       * 517       * # Permissions:518       * * Anyone - will be assigned as the issuer of the collection.519       * 520       * # Arguments:521       * - `origin`: sender of the transaction522       * - `metadata`: Metadata describing the collection, e.g. IPFS hash. Cannot be changed.523       * - `max`: Optional maximum number of tokens.524       * - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.525       * Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.526       **/527      createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | Uint8Array | u32 | AnyNumber, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;528      /**529       * Destroy a collection.530       * 531       * Only empty collections can be destroyed. If it has any tokens, they must be burned first.532       * 533       * # Permissions:534       * * Collection issuer535       * 536       * # Arguments:537       * - `origin`: sender of the transaction538       * - `collection_id`: RMRK ID of the collection to destroy.539       **/540      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;541      /**542       * "Lock" the collection and prevent new token creation. Cannot be undone.543       * 544       * # Permissions:545       * * Collection issuer546       * 547       * # Arguments:548       * - `origin`: sender of the transaction549       * - `collection_id`: RMRK ID of the collection to lock.550       **/551      lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;552      /**553       * Mint an NFT in a specified collection.554       * 555       * # Permissions:556       * * Collection issuer557       * 558       * # Arguments:559       * - `origin`: sender of the transaction560       * - `owner`: Owner account of the NFT. If set to None, defaults to the sender (collection issuer).561       * - `collection_id`: RMRK collection ID for the NFT to be minted within. Cannot be changed.562       * - `recipient`: Receiver account of the royalty. Has no effect if the `royalty_amount` is not set. Cannot be changed.563       * - `royalty_amount`: Optional permillage reward from each trade for the `recipient`. Cannot be changed.564       * - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.565       * - `transferable`: Can this NFT be transferred? Cannot be changed.566       * - `resources`: Resource data to be added to the NFT immediately after minting.567       **/568      mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | Uint8Array | AccountId32 | string, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | Uint8Array | AccountId32 | string, royaltyAmount: Option<Permill> | null | Uint8Array | Permill | AnyNumber, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | Uint8Array | Vec<RmrkTraitsResourceResourceTypes> | (RmrkTraitsResourceResourceTypes | { Basic: any } | { Composable: any } | { Slot: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;569      /**570       * Reject an NFT sent from another account to self or owned NFT.571       * The NFT in question will not be sent back and burnt instead.572       * 573       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.574       * 575       * # Permissions:576       * - Token-owner-to-be-not577       * 578       * # Arguments:579       * - `origin`: sender of the transaction580       * - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.581       * - `rmrk_nft_id`: ID of the NFT to be rejected.582       **/583      rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;584      /**585       * Remove and erase a resource from an NFT.586       * 587       * If the sender does not own the NFT, then it will be pending confirmation,588       * and will have to be [accepted](Pallet::accept_resource_removal) by the token owner.589       * 590       * # Permissions591       * - Collection issuer592       * 593       * # Arguments594       * - `origin`: sender of the transaction595       * - `rmrk_collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.596       * - `nft_id`: ID of the NFT with a resource to be removed.597       * - `resource_id`: ID of the resource to be removed.598       **/599      removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;600      /**601       * Transfer an NFT from an account/NFT A to another account/NFT B.602       * The token must be transferable. Nesting cannot occur deeper than the [`NESTING_BUDGET`].603       * 604       * If the target owner is an NFT owned by another account, then the NFT will enter605       * the pending state and will have to be accepted by the other account.606       * 607       * # Permissions:608       * - Token owner609       * 610       * # Arguments:611       * - `origin`: sender of the transaction612       * - `rmrk_collection_id`: RMRK ID of the collection of the NFT to be transferred.613       * - `rmrk_nft_id`: ID of the NFT to be transferred.614       * - `new_owner`: New owner of the nft which can be either an account or a NFT.615       **/616      send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;617      /**618       * Set a different order of resource priorities for an NFT. Priorities can be used,619       * for example, for order of rendering.620       * 621       * Note that the priorities are not updated automatically, and are an empty vector622       * by default. There is no pre-set definition for the order to be particular,623       * it can be interpreted arbitrarily use-case by use-case.624       * 625       * # Permissions:626       * - Token owner627       * 628       * # Arguments:629       * - `origin`: sender of the transaction630       * - `rmrk_collection_id`: RMRK collection ID of the NFT.631       * - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.632       * - `priorities`: Ordered vector of resource IDs.633       **/634      setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;635      /**636       * Add or edit a custom user property, a key-value pair, describing the metadata637       * of a token or a collection, on either one of these.638       * 639       * Note that in this proxy implementation many details regarding RMRK are stored640       * as scoped properties prefixed with "rmrk:", normally inaccessible641       * to external transactions and RPCs.642       * 643       * # Permissions:644       * - Collection issuer - in case of collection property645       * - Token owner - in case of NFT property646       * 647       * # Arguments:648       * - `origin`: sender of the transaction649       * - `rmrk_collection_id`: RMRK collection ID.650       * - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.651       * - `key`: Key of the custom property to be referenced by.652       * - `value`: Value of the custom property to be stored.653       **/654      setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;655      /**656       * Generic tx657       **/658      [key: string]: SubmittableExtrinsicFunction<ApiType>;659    };660    rmrkEquip: {661      /**662       * Create a new Base.663       * 664       * Modeled after the [Base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)665       * 666       * # Permissions667       * - Anyone - will be assigned as the issuer of the Base.668       * 669       * # Arguments:670       * - `origin`: Caller, will be assigned as the issuer of the Base671       * - `base_type`: Arbitrary media type, e.g. "svg".672       * - `symbol`: Arbitrary client-chosen symbol.673       * - `parts`: Array of Fixed and Slot Parts composing the Base,674       * confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).675       **/676      createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec<RmrkTraitsPartPartType> | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Bytes, Bytes, Vec<RmrkTraitsPartPartType>]>;677      /**678       * Update the array of Collections allowed to be equipped to a Base's specified Slot Part.679       * 680       * Modeled after [equippable interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/equippable.md).681       * 682       * # Permissions:683       * - Base issuer684       * 685       * # Arguments:686       * - `origin`: sender of the transaction687       * - `base_id`: Base containing the Slot Part to be updated.688       * - `slot_id`: Slot Part whose Equippable List is being updated .689       * - `equippables`: List of equippables that will override the current Equippables list.690       **/691      equippable: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, slotId: u32 | AnyNumber | Uint8Array, equippables: RmrkTraitsPartEquippableList | { All: any } | { Empty: any } | { Custom: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsPartEquippableList]>;692      /**693       * Add a Theme to a Base.694       * A Theme named "default" is required prior to adding other Themes.695       * 696       * Modeled after [Themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md).697       * 698       * # Permissions:699       * - Base issuer700       * 701       * # Arguments:702       * - `origin`: sender of the transaction703       * - `base_id`: Base ID containing the Theme to be updated.704       * - `theme`: Theme to add to the Base.  A Theme has a name and properties, which are an705       * array of [key, value, inherit].706       * - `key`: Arbitrary BoundedString, defined by client.707       * - `value`: Arbitrary BoundedString, defined by client.708       * - `inherit`: Optional bool.709       **/710      themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;711      /**712       * Generic tx713       **/714      [key: string]: SubmittableExtrinsicFunction<ApiType>;715    };716    scheduler: {717      /**718       * Cancel a named scheduled task.719       **/720      cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;721      /**722       * Schedule a named task.723       **/724      scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;725      /**726       * Schedule a named task after a delay.727       * 728       * # <weight>729       * Same as [`schedule_named`](Self::schedule_named).730       * # </weight>731       **/732      scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;733      /**734       * Generic tx735       **/736      [key: string]: SubmittableExtrinsicFunction<ApiType>;737    };738    structure: {739      /**740       * Generic tx741       **/742      [key: string]: SubmittableExtrinsicFunction<ApiType>;743    };744    sudo: {745      /**746       * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo747       * key.748       * 749       * The dispatch origin for this call must be _Signed_.750       * 751       * # <weight>752       * - O(1).753       * - Limited storage reads.754       * - One DB change.755       * # </weight>756       **/757      setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;758      /**759       * Authenticates the sudo key and dispatches a function call with `Root` origin.760       * 761       * The dispatch origin for this call must be _Signed_.762       * 763       * # <weight>764       * - O(1).765       * - Limited storage reads.766       * - One DB write (event).767       * - Weight of derivative `call` execution + 10,000.768       * # </weight>769       **/770      sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;771      /**772       * Authenticates the sudo key and dispatches a function call with `Signed` origin from773       * a given account.774       * 775       * The dispatch origin for this call must be _Signed_.776       * 777       * # <weight>778       * - O(1).779       * - Limited storage reads.780       * - One DB write (event).781       * - Weight of derivative `call` execution + 10,000.782       * # </weight>783       **/784      sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;785      /**786       * Authenticates the sudo key and dispatches a function call with `Root` origin.787       * This function does not check the weight of the call, and instead allows the788       * Sudo user to specify the weight of the call.789       * 790       * The dispatch origin for this call must be _Signed_.791       * 792       * # <weight>793       * - O(1).794       * - The weight of this call is defined by the caller.795       * # </weight>796       **/797      sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;798      /**799       * Generic tx800       **/801      [key: string]: SubmittableExtrinsicFunction<ApiType>;802    };803    system: {804      /**805       * A dispatch that will fill the block weight up to the given ratio.806       **/807      fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;808      /**809       * Kill all storage items with a key that starts with the given prefix.810       * 811       * **NOTE:** We rely on the Root origin to provide us the number of subkeys under812       * the prefix we are removing to accurately calculate the weight of this function.813       **/814      killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;815      /**816       * Kill some items from storage.817       **/818      killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;819      /**820       * Make some on-chain remark.821       * 822       * # <weight>823       * - `O(1)`824       * # </weight>825       **/826      remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;827      /**828       * Make some on-chain remark and emit event.829       **/830      remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;831      /**832       * Set the new runtime code.833       * 834       * # <weight>835       * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`836       * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is837       * expensive).838       * - 1 storage write (codec `O(C)`).839       * - 1 digest item.840       * - 1 event.841       * The weight of this function is dependent on the runtime, but generally this is very842       * expensive. We will treat this as a full block.843       * # </weight>844       **/845      setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;846      /**847       * Set the new runtime code without doing any checks of the given `code`.848       * 849       * # <weight>850       * - `O(C)` where `C` length of `code`851       * - 1 storage write (codec `O(C)`).852       * - 1 digest item.853       * - 1 event.854       * The weight of this function is dependent on the runtime. We will treat this as a full855       * block. # </weight>856       **/857      setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;858      /**859       * Set the number of pages in the WebAssembly environment's heap.860       **/861      setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;862      /**863       * Set some items of storage.864       **/865      setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;866      /**867       * Generic tx868       **/869      [key: string]: SubmittableExtrinsicFunction<ApiType>;870    };871    timestamp: {872      /**873       * Set the current time.874       * 875       * This call should be invoked exactly once per block. It will panic at the finalization876       * phase, if this call hasn't been invoked by that time.877       * 878       * The timestamp should be greater than the previous one by the amount specified by879       * `MinimumPeriod`.880       * 881       * The dispatch origin for this call must be `Inherent`.882       * 883       * # <weight>884       * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)885       * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in886       * `on_finalize`)887       * - 1 event handler `on_timestamp_set`. Must be `O(1)`.888       * # </weight>889       **/890      set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;891      /**892       * Generic tx893       **/894      [key: string]: SubmittableExtrinsicFunction<ApiType>;895    };896    treasury: {897      /**898       * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary899       * and the original deposit will be returned.900       * 901       * May only be called from `T::ApproveOrigin`.902       * 903       * # <weight>904       * - Complexity: O(1).905       * - DbReads: `Proposals`, `Approvals`906       * - DbWrite: `Approvals`907       * # </weight>908       **/909      approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;910      /**911       * Put forward a suggestion for spending. A deposit proportional to the value912       * is reserved and slashed if the proposal is rejected. It is returned once the913       * proposal is awarded.914       * 915       * # <weight>916       * - Complexity: O(1)917       * - DbReads: `ProposalCount`, `origin account`918       * - DbWrites: `ProposalCount`, `Proposals`, `origin account`919       * # </weight>920       **/921      proposeSpend: AugmentedSubmittable<(value: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;922      /**923       * Reject a proposed spend. The original deposit will be slashed.924       * 925       * May only be called from `T::RejectOrigin`.926       * 927       * # <weight>928       * - Complexity: O(1)929       * - DbReads: `Proposals`, `rejected proposer account`930       * - DbWrites: `Proposals`, `rejected proposer account`931       * # </weight>932       **/933      rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;934      /**935       * Force a previously approved proposal to be removed from the approval queue.936       * The original deposit will no longer be returned.937       * 938       * May only be called from `T::RejectOrigin`.939       * - `proposal_id`: The index of a proposal940       * 941       * # <weight>942       * - Complexity: O(A) where `A` is the number of approvals943       * - Db reads and writes: `Approvals`944       * # </weight>945       * 946       * Errors:947       * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,948       * i.e., the proposal has not been approved. This could also mean the proposal does not949       * exist altogether, thus there is no way it would have been approved in the first place.950       **/951      removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;952      /**953       * Propose and approve a spend of treasury funds.954       * 955       * - `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.956       * - `amount`: The amount to be transferred from the treasury to the `beneficiary`.957       * - `beneficiary`: The destination account for the transfer.958       * 959       * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the960       * beneficiary.961       **/962      spend: AugmentedSubmittable<(amount: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;963      /**964       * Generic tx965       **/966      [key: string]: SubmittableExtrinsicFunction<ApiType>;967    };968    unique: {969      /**970       * Add an admin to a collection.971       * 972       * NFT Collection can be controlled by multiple admin addresses973       * (some which can also be servers, for example). Admins can issue974       * and burn NFTs, as well as add and remove other admins,975       * but cannot change NFT or Collection ownership.976       * 977       * # Permissions978       * 979       * * Collection owner980       * * Collection admin981       * 982       * # Arguments983       * 984       * * `collection_id`: ID of the Collection to add an admin for.985       * * `new_admin`: Address of new admin to add.986       **/987      addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdminId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;988      /**989       * Add an address to allow list.990       * 991       * # Permissions992       * 993       * * Collection owner994       * * Collection admin995       * 996       * # Arguments997       * 998       * * `collection_id`: ID of the modified collection.999       * * `address`: ID of the address to be added to the allowlist.1000       **/1001      addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1002      /**1003       * Allow a non-permissioned address to transfer or burn an item.1004       * 1005       * # Permissions1006       * 1007       * * Collection owner1008       * * Collection admin1009       * * Current item owner1010       * 1011       * # Arguments1012       * 1013       * * `spender`: Account to be approved to make specific transactions on non-owned tokens.1014       * * `collection_id`: ID of the collection the item belongs to.1015       * * `item_id`: ID of the item transactions on which are now approved.1016       * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).1017       * Set to 0 to revoke the approval.1018       **/1019      approve: AugmentedSubmittable<(spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1020      /**1021       * Destroy a token on behalf of the owner as a non-owner account.1022       * 1023       * See also: [`approve`][`Pallet::approve`].1024       * 1025       * After this method executes, one approval is removed from the total so that1026       * the approved address will not be able to transfer this item again from this owner.1027       * 1028       * # Permissions1029       * 1030       * * Collection owner1031       * * Collection admin1032       * * Current token owner1033       * * Address approved by current item owner1034       * 1035       * # Arguments1036       * 1037       * * `from`: The owner of the burning item.1038       * * `collection_id`: ID of the collection to which the item belongs.1039       * * `item_id`: ID of item to burn.1040       * * `value`: Number of pieces to burn.1041       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1042       * * Fungible Mode: The desired number of pieces to burn.1043       * * Re-Fungible Mode: The desired number of pieces to burn.1044       **/1045      burnFrom: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32, u128]>;1046      /**1047       * Destroy an item.1048       * 1049       * # Permissions1050       * 1051       * * Collection owner1052       * * Collection admin1053       * * Current item owner1054       * 1055       * # Arguments1056       * 1057       * * `collection_id`: ID of the collection to which the item belongs.1058       * * `item_id`: ID of item to burn.1059       * * `value`: Number of pieces of the item to destroy.1060       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1061       * * Fungible Mode: The desired number of pieces to burn.1062       * * Re-Fungible Mode: The desired number of pieces to burn.1063       **/1064      burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1065      /**1066       * Change the owner of the collection.1067       * 1068       * # Permissions1069       * 1070       * * Collection owner1071       * 1072       * # Arguments1073       * 1074       * * `collection_id`: ID of the modified collection.1075       * * `new_owner`: ID of the account that will become the owner.1076       **/1077      changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1078      /**1079       * Confirm own sponsorship of a collection, becoming the sponsor.1080       * 1081       * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].1082       * Sponsor can pay the fees of a transaction instead of the sender,1083       * but only within specified limits.1084       * 1085       * # Permissions1086       * 1087       * * Sponsor-to-be1088       * 1089       * # Arguments1090       * 1091       * * `collection_id`: ID of the collection with the pending sponsor.1092       **/1093      confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1094      /**1095       * Create a collection of tokens.1096       * 1097       * Each Token may have multiple properties encoded as an array of bytes1098       * of certain length. The initial owner of the collection is set1099       * to the address that signed the transaction and can be changed later.1100       * 1101       * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.1102       * 1103       * # Permissions1104       * 1105       * * Anyone - becomes the owner of the new collection.1106       * 1107       * # Arguments1108       * 1109       * * `collection_name`: Wide-character string with collection name1110       * (limit [`MAX_COLLECTION_NAME_LENGTH`]).1111       * * `collection_description`: Wide-character string with collection description1112       * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).1113       * * `token_prefix`: Byte string containing the token prefix to mark a collection1114       * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).1115       * * `mode`: Type of items stored in the collection and type dependent data.1116       **/1117      createCollection: AugmentedSubmittable<(collectionName: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], collectionDescription: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], tokenPrefix: Bytes | string | Uint8Array, mode: UpDataStructsCollectionMode | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<u16>, Vec<u16>, Bytes, UpDataStructsCollectionMode]>;1118      /**1119       * Create a collection with explicit parameters.1120       * 1121       * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.1122       * 1123       * # Permissions1124       * 1125       * * Anyone - becomes the owner of the new collection.1126       * 1127       * # Arguments1128       * 1129       * * `data`: Explicit data of a collection used for its creation.1130       **/1131      createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; pendingSponsor?: any; limits?: any; permissions?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;1132      /**1133       * Mint an item within a collection.1134       * 1135       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1136       * 1137       * # Permissions1138       * 1139       * * Collection owner1140       * * Collection admin1141       * * Anyone if1142       * * Allow List is enabled, and1143       * * Address is added to allow list, and1144       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1145       * 1146       * # Arguments1147       * 1148       * * `collection_id`: ID of the collection to which an item would belong.1149       * * `owner`: Address of the initial owner of the item.1150       * * `data`: Token data describing the item to store on chain.1151       **/1152      createItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, data: UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCreateItemData]>;1153      /**1154       * Create multiple items within a collection.1155       * 1156       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1157       * 1158       * # Permissions1159       * 1160       * * Collection owner1161       * * Collection admin1162       * * Anyone if1163       * * Allow List is enabled, and1164       * * Address is added to the allow list, and1165       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1166       * 1167       * # Arguments1168       * 1169       * * `collection_id`: ID of the collection to which the tokens would belong.1170       * * `owner`: Address of the initial owner of the tokens.1171       * * `items_data`: Vector of data describing each item to be created.1172       **/1173      createMultipleItems: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemsData: Vec<UpDataStructsCreateItemData> | (UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, Vec<UpDataStructsCreateItemData>]>;1174      /**1175       * Create multiple items within a collection with explicitly specified initial parameters.1176       * 1177       * # Permissions1178       * 1179       * * Collection owner1180       * * Collection admin1181       * * Anyone if1182       * * Allow List is enabled, and1183       * * Address is added to allow list, and1184       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1185       * 1186       * # Arguments1187       * 1188       * * `collection_id`: ID of the collection to which the tokens would belong.1189       * * `data`: Explicit item creation data.1190       **/1191      createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;1192      /**1193       * Delete specified collection properties.1194       * 1195       * # Permissions1196       * 1197       * * Collection Owner1198       * * Collection Admin1199       * 1200       * # Arguments1201       * 1202       * * `collection_id`: ID of the modified collection.1203       * * `property_keys`: Vector of keys of the properties to be deleted.1204       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1205       **/1206      deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;1207      /**1208       * Delete specified token properties. Currently properties only work with NFTs.1209       * 1210       * # Permissions1211       * 1212       * * Depends on collection's token property permissions and specified property mutability:1213       * * Collection owner1214       * * Collection admin1215       * * Token owner1216       * 1217       * # Arguments1218       * 1219       * * `collection_id`: ID of the collection to which the token belongs.1220       * * `token_id`: ID of the modified token.1221       * * `property_keys`: Vector of keys of the properties to be deleted.1222       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1223       **/1224      deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;1225      /**1226       * Destroy a collection if no tokens exist within.1227       * 1228       * # Permissions1229       * 1230       * * Collection owner1231       * 1232       * # Arguments1233       * 1234       * * `collection_id`: Collection to destroy.1235       **/1236      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1237      /**1238       * Remove admin of a collection.1239       * 1240       * An admin address can remove itself. List of admins may become empty,1241       * in which case only Collection Owner will be able to add an Admin.1242       * 1243       * # Permissions1244       * 1245       * * Collection owner1246       * * Collection admin1247       * 1248       * # Arguments1249       * 1250       * * `collection_id`: ID of the collection to remove the admin for.1251       * * `account_id`: Address of the admin to remove.1252       **/1253      removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1254      /**1255       * Remove a collection's a sponsor, making everyone pay for their own transactions.1256       * 1257       * # Permissions1258       * 1259       * * Collection owner1260       * 1261       * # Arguments1262       * 1263       * * `collection_id`: ID of the collection with the sponsor to remove.1264       **/1265      removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1266      /**1267       * Remove an address from allow list.1268       * 1269       * # Permissions1270       * 1271       * * Collection owner1272       * * Collection admin1273       * 1274       * # Arguments1275       * 1276       * * `collection_id`: ID of the modified collection.1277       * * `address`: ID of the address to be removed from the allowlist.1278       **/1279      removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1280      /**1281       * Re-partition a refungible token, while owning all of its parts/pieces.1282       * 1283       * # Permissions1284       * 1285       * * Token owner (must own every part)1286       * 1287       * # Arguments1288       * 1289       * * `collection_id`: ID of the collection the RFT belongs to.1290       * * `token_id`: ID of the RFT.1291       * * `amount`: New number of parts/pieces into which the token shall be partitioned.1292       **/1293      repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1294      /**1295       * Set specific limits of a collection. Empty, or None fields mean chain default.1296       * 1297       * # Permissions1298       * 1299       * * Collection owner1300       * * Collection admin1301       * 1302       * # Arguments1303       * 1304       * * `collection_id`: ID of the modified collection.1305       * * `new_limit`: New limits of the collection. Fields that are not set (None)1306       * will not overwrite the old ones.1307       **/1308      setCollectionLimits: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: UpDataStructsCollectionLimits | { accountTokenOwnershipLimit?: any; sponsoredDataSize?: any; sponsoredDataRateLimit?: any; tokenLimit?: any; sponsorTransferTimeout?: any; sponsorApproveTimeout?: any; ownerCanTransfer?: any; ownerCanDestroy?: any; transfersEnabled?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionLimits]>;1309      /**1310       * Set specific permissions of a collection. Empty, or None fields mean chain default.1311       * 1312       * # Permissions1313       * 1314       * * Collection owner1315       * * Collection admin1316       * 1317       * # Arguments1318       * 1319       * * `collection_id`: ID of the modified collection.1320       * * `new_permission`: New permissions of the collection. Fields that are not set (None)1321       * will not overwrite the old ones.1322       **/1323      setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1324      /**1325       * Add or change collection properties.1326       * 1327       * # Permissions1328       * 1329       * * Collection owner1330       * * Collection admin1331       * 1332       * # Arguments1333       * 1334       * * `collection_id`: ID of the modified collection.1335       * * `properties`: Vector of key-value pairs stored as the collection's metadata.1336       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1337       **/1338      setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1339      /**1340       * Set (invite) a new collection sponsor.1341       * 1342       * If successful, confirmation from the sponsor-to-be will be pending.1343       * 1344       * # Permissions1345       * 1346       * * Collection owner1347       * * Collection admin1348       * 1349       * # Arguments1350       * 1351       * * `collection_id`: ID of the modified collection.1352       * * `new_sponsor`: ID of the account of the sponsor-to-be.1353       **/1354      setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1355      /**1356       * Add or change token properties according to collection's permissions.1357       * Currently properties only work with NFTs.1358       * 1359       * # Permissions1360       * 1361       * * Depends on collection's token property permissions and specified property mutability:1362       * * Collection owner1363       * * Collection admin1364       * * Token owner1365       * 1366       * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1367       * 1368       * # Arguments1369       * 1370       * * `collection_id: ID of the collection to which the token belongs.1371       * * `token_id`: ID of the modified token.1372       * * `properties`: Vector of key-value pairs stored as the token's metadata.1373       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1374       **/1375      setTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<UpDataStructsProperty>]>;1376      /**1377       * Add or change token property permissions of a collection.1378       * 1379       * Without a permission for a particular key, a property with that key1380       * cannot be created in a token.1381       * 1382       * # Permissions1383       * 1384       * * Collection owner1385       * * Collection admin1386       * 1387       * # Arguments1388       * 1389       * * `collection_id`: ID of the modified collection.1390       * * `property_permissions`: Vector of permissions for property keys.1391       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1392       **/1393      setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1394      /**1395       * Completely allow or disallow transfers for a particular collection.1396       * 1397       * # Permissions1398       * 1399       * * Collection owner1400       * 1401       * # Arguments1402       * 1403       * * `collection_id`: ID of the collection.1404       * * `value`: New value of the flag, are transfers allowed?1405       **/1406      setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1407      /**1408       * Change ownership of the token.1409       * 1410       * # Permissions1411       * 1412       * * Collection owner1413       * * Collection admin1414       * * Current token owner1415       * 1416       * # Arguments1417       * 1418       * * `recipient`: Address of token recipient.1419       * * `collection_id`: ID of the collection the item belongs to.1420       * * `item_id`: ID of the item.1421       * * Non-Fungible Mode: Required.1422       * * Fungible Mode: Ignored.1423       * * Re-Fungible Mode: Required.1424       * 1425       * * `value`: Amount to transfer.1426       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1427       * * Fungible Mode: The desired number of pieces to transfer.1428       * * Re-Fungible Mode: The desired number of pieces to transfer.1429       **/1430      transfer: AugmentedSubmittable<(recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1431      /**1432       * Change ownership of an item on behalf of the owner as a non-owner account.1433       * 1434       * See the [`approve`][`Pallet::approve`] method for additional information.1435       * 1436       * After this method executes, one approval is removed from the total so that1437       * the approved address will not be able to transfer this item again from this owner.1438       * 1439       * # Permissions1440       * 1441       * * Collection owner1442       * * Collection admin1443       * * Current item owner1444       * * Address approved by current item owner1445       * 1446       * # Arguments1447       * 1448       * * `from`: Address that currently owns the token.1449       * * `recipient`: Address of the new token-owner-to-be.1450       * * `collection_id`: ID of the collection the item.1451       * * `item_id`: ID of the item to be transferred.1452       * * `value`: Amount to transfer.1453       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1454       * * Fungible Mode: The desired number of pieces to transfer.1455       * * Re-Fungible Mode: The desired number of pieces to transfer.1456       **/1457      transferFrom: AugmentedSubmittable<(from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1458      /**1459       * Generic tx1460       **/1461      [key: string]: SubmittableExtrinsicFunction<ApiType>;1462    };1463    vesting: {1464      claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1465      claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1466      updateVestingSchedules: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, vestingSchedules: Vec<OrmlVestingVestingSchedule> | (OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [MultiAddress, Vec<OrmlVestingVestingSchedule>]>;1467      vestedTransfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, OrmlVestingVestingSchedule]>;1468      /**1469       * Generic tx1470       **/1471      [key: string]: SubmittableExtrinsicFunction<ApiType>;1472    };1473    xcmpQueue: {1474      /**1475       * Resumes all XCM executions for the XCMP queue.1476       * 1477       * Note that this function doesn't change the status of the in/out bound channels.1478       * 1479       * - `origin`: Must pass `ControllerOrigin`.1480       **/1481      resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1482      /**1483       * Services a single overweight XCM.1484       * 1485       * - `origin`: Must pass `ExecuteOverweightOrigin`.1486       * - `index`: The index of the overweight XCM to service1487       * - `weight_limit`: The amount of weight that XCM execution may take.1488       * 1489       * Errors:1490       * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1491       * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1492       * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1493       * 1494       * Events:1495       * - `OverweightServiced`: On success.1496       **/1497      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1498      /**1499       * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1500       * 1501       * - `origin`: Must pass `ControllerOrigin`.1502       **/1503      suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1504      /**1505       * Overwrites the number of pages of messages which must be in the queue after which we drop any further1506       * messages from the channel.1507       * 1508       * - `origin`: Must pass `Root`.1509       * - `new`: Desired value for `QueueConfigData.drop_threshold`1510       **/1511      updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1512      /**1513       * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1514       * message sending may recommence after it has been suspended.1515       * 1516       * - `origin`: Must pass `Root`.1517       * - `new`: Desired value for `QueueConfigData.resume_threshold`1518       **/1519      updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1520      /**1521       * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1522       * suspend their sending.1523       * 1524       * - `origin`: Must pass `Root`.1525       * - `new`: Desired value for `QueueConfigData.suspend_value`1526       **/1527      updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1528      /**1529       * Overwrites the amount of remaining weight under which we stop processing messages.1530       * 1531       * - `origin`: Must pass `Root`.1532       * - `new`: Desired value for `QueueConfigData.threshold_weight`1533       **/1534      updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1535      /**1536       * Overwrites the speed to which the available weight approaches the maximum weight.1537       * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1538       * 1539       * - `origin`: Must pass `Root`.1540       * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1541       **/1542      updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1543      /**1544       * Overwrite the maximum amount of weight any individual message may consume.1545       * Messages above this weight go into the overweight queue and may only be serviced explicitly.1546       * 1547       * - `origin`: Must pass `Root`.1548       * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1549       **/1550      updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1551      /**1552       * Generic tx1553       **/1554      [key: string]: SubmittableExtrinsicFunction<ApiType>;1555    };1556  } // AugmentedSubmittables1557} // declare module
after · tests/src/interfaces/augment-api-tx.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34// import type lookup before we augment - in some environments5// this is required to allow for ambient/previous definitions6import '@polkadot/api-base/types/submittable';78import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@polkadot/api-base/types';9import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';10import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';11import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';12import type { CumulusPrimitivesParachainInherentParachainInherentData, EthereumTransactionTransactionV2, FrameSupportScheduleMaybeHashed, OrmlVestingVestingSchedule, PalletEvmAccountBasicCrossAccountIdRepr, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsPartEquippableList, RmrkTraitsPartPartType, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCreateCollectionData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, XcmV1MultiLocation, XcmV2WeightLimit, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';1314export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>;15export type __SubmittableExtrinsic<ApiType extends ApiTypes> = SubmittableExtrinsic<ApiType>;16export type __SubmittableExtrinsicFunction<ApiType extends ApiTypes> = SubmittableExtrinsicFunction<ApiType>;1718declare module '@polkadot/api-base/types/submittable' {19  interface AugmentedSubmittables<ApiType extends ApiTypes> {20    balances: {21      /**22       * Exactly as `transfer`, except the origin must be root and the source account may be23       * specified.24       * # <weight>25       * - Same as transfer, but additional read and write because the source account is not26       * assumed to be in the overlay.27       * # </weight>28       **/29      forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, MultiAddress, Compact<u128>]>;30      /**31       * Unreserve some balance from a user by force.32       * 33       * Can only be called by ROOT.34       **/35      forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;36      /**37       * Set the balances of a given account.38       * 39       * This will alter `FreeBalance` and `ReservedBalance` in storage. it will40       * also alter the total issuance of the system (`TotalIssuance`) appropriately.41       * If the new free or reserved balance is below the existential deposit,42       * it will reset the account nonce (`frame_system::AccountNonce`).43       * 44       * The dispatch origin for this call is `root`.45       **/46      setBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact<u128> | AnyNumber | Uint8Array, newReserved: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>, Compact<u128>]>;47      /**48       * Transfer some liquid free balance to another account.49       * 50       * `transfer` will set the `FreeBalance` of the sender and receiver.51       * If the sender's account is below the existential deposit as a result52       * of the transfer, the account will be reaped.53       * 54       * The dispatch origin for this call must be `Signed` by the transactor.55       * 56       * # <weight>57       * - Dependent on arguments but not critical, given proper implementations for input config58       * types. See related functions below.59       * - It contains a limited number of reads and writes internally and no complex60       * computation.61       * 62       * Related functions:63       * 64       * - `ensure_can_withdraw` is always called internally but has a bounded complexity.65       * - Transferring balances to accounts that did not exist before will cause66       * `T::OnNewAccount::on_new_account` to be called.67       * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.68       * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check69       * that the transfer will not kill the origin account.70       * ---------------------------------71       * - Origin account is already in memory, so no DB operations for them.72       * # </weight>73       **/74      transfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;75      /**76       * Transfer the entire transferable balance from the caller account.77       * 78       * NOTE: This function only attempts to transfer _transferable_ balances. This means that79       * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be80       * transferred by this function. To ensure that this function results in a killed account,81       * you might need to prepare the account by removing any reference counters, storage82       * deposits, etc...83       * 84       * The dispatch origin of this call must be Signed.85       * 86       * - `dest`: The recipient of the transfer.87       * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all88       * of the funds the account has, causing the sender account to be killed (false), or89       * transfer everything except at least the existential deposit, which will guarantee to90       * keep the sender account alive (true). # <weight>91       * - O(1). Just like transfer, but reading the user's transferable balance first.92       * #</weight>93       **/94      transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;95      /**96       * Same as the [`transfer`] call, but with a check that the transfer will not kill the97       * origin account.98       * 99       * 99% of the time you want [`transfer`] instead.100       * 101       * [`transfer`]: struct.Pallet.html#method.transfer102       **/103      transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact<u128> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Compact<u128>]>;104      /**105       * Generic tx106       **/107      [key: string]: SubmittableExtrinsicFunction<ApiType>;108    };109    charging: {110      /**111       * Generic tx112       **/113      [key: string]: SubmittableExtrinsicFunction<ApiType>;114    };115    configuration: {116      setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;117      setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;118      /**119       * Generic tx120       **/121      [key: string]: SubmittableExtrinsicFunction<ApiType>;122    };123    cumulusXcm: {124      /**125       * Generic tx126       **/127      [key: string]: SubmittableExtrinsicFunction<ApiType>;128    };129    dmpQueue: {130      /**131       * Service a single overweight message.132       * 133       * - `origin`: Must pass `ExecuteOverweightOrigin`.134       * - `index`: The index of the overweight message to service.135       * - `weight_limit`: The amount of weight that message execution may take.136       * 137       * Errors:138       * - `Unknown`: Message of `index` is unknown.139       * - `OverLimit`: Message execution may use greater than `weight_limit`.140       * 141       * Events:142       * - `OverweightServiced`: On success.143       **/144      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;145      /**146       * Generic tx147       **/148      [key: string]: SubmittableExtrinsicFunction<ApiType>;149    };150    ethereum: {151      /**152       * Transact an Ethereum transaction.153       **/154      transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;155      /**156       * Generic tx157       **/158      [key: string]: SubmittableExtrinsicFunction<ApiType>;159    };160    evm: {161      /**162       * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.163       **/164      call: AugmentedSubmittable<(source: H160 | string | Uint8Array, target: H160 | string | Uint8Array, input: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;165      /**166       * Issue an EVM create operation. This is similar to a contract creation transaction in167       * Ethereum.168       **/169      create: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;170      /**171       * Issue an EVM create2 operation.172       **/173      create2: AugmentedSubmittable<(source: H160 | string | Uint8Array, init: Bytes | string | Uint8Array, salt: H256 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: u64 | AnyNumber | Uint8Array, maxFeePerGas: U256 | AnyNumber | Uint8Array, maxPriorityFeePerGas: Option<U256> | null | Uint8Array | U256 | AnyNumber, nonce: Option<U256> | null | Uint8Array | U256 | AnyNumber, accessList: Vec<ITuple<[H160, Vec<H256>]>> | ([H160 | string | Uint8Array, Vec<H256> | (H256 | string | Uint8Array)[]])[]) => SubmittableExtrinsic<ApiType>, [H160, Bytes, H256, U256, u64, U256, Option<U256>, Option<U256>, Vec<ITuple<[H160, Vec<H256>]>>]>;174      /**175       * Withdraw balance from EVM into currency/balances pallet.176       **/177      withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;178      /**179       * Generic tx180       **/181      [key: string]: SubmittableExtrinsicFunction<ApiType>;182    };183    evmMigration: {184      begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;185      finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;186      setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;187      /**188       * Generic tx189       **/190      [key: string]: SubmittableExtrinsicFunction<ApiType>;191    };192    inflation: {193      /**194       * This method sets the inflation start date. Can be only called once.195       * Inflation start block can be backdated and will catch up. The method will create Treasury196       * account if it does not exist and perform the first inflation deposit.197       * 198       * # Permissions199       * 200       * * Root201       * 202       * # Arguments203       * 204       * * inflation_start_relay_block: The relay chain block at which inflation should start205       **/206      startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;207      /**208       * Generic tx209       **/210      [key: string]: SubmittableExtrinsicFunction<ApiType>;211    };212    parachainSystem: {213      authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;214      enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;215      /**216       * Set the current validation data.217       * 218       * This should be invoked exactly once per block. It will panic at the finalization219       * phase if the call was not invoked.220       * 221       * The dispatch origin for this call must be `Inherent`222       * 223       * As a side effect, this function upgrades the current validation function224       * if the appropriate time has come.225       **/226      setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;227      sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;228      /**229       * Generic tx230       **/231      [key: string]: SubmittableExtrinsicFunction<ApiType>;232    };233    polkadotXcm: {234      /**235       * Execute an XCM message from a local, signed, origin.236       * 237       * An event is deposited indicating whether `msg` could be executed completely or only238       * partially.239       * 240       * No more than `max_weight` will be used in its attempted execution. If this is less than the241       * maximum amount of weight that the message could take to be executed, then no execution242       * attempt will be made.243       * 244       * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully245       * to completion; only that *some* of it was executed.246       **/247      execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;248      /**249       * Set a safe XCM version (the version that XCM should be encoded with if the most recent250       * version a destination can accept is unknown).251       * 252       * - `origin`: Must be Root.253       * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.254       **/255      forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;256      /**257       * Ask a location to notify us regarding their XCM version and any changes to it.258       * 259       * - `origin`: Must be Root.260       * - `location`: The location to which we should subscribe for XCM version notifications.261       **/262      forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;263      /**264       * Require that a particular destination should no longer notify us regarding any XCM265       * version changes.266       * 267       * - `origin`: Must be Root.268       * - `location`: The location to which we are currently subscribed for XCM version269       * notifications which we no longer desire.270       **/271      forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;272      /**273       * Extoll that a particular destination can be communicated with through a particular274       * version of XCM.275       * 276       * - `origin`: Must be Root.277       * - `location`: The destination that is being described.278       * - `xcm_version`: The latest version of XCM that `location` supports.279       **/280      forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;281      /**282       * Transfer some assets from the local chain to the sovereign account of a destination283       * chain and forward a notification XCM.284       * 285       * Fee payment on the destination side is made from the asset in the `assets` vector of286       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight287       * is needed than `weight_limit`, then the operation will fail and the assets send may be288       * at risk.289       * 290       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.291       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send292       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.293       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be294       * an `AccountId32` value.295       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the296       * `dest` side.297       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay298       * fees.299       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.300       **/301      limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;302      /**303       * Teleport some assets from the local chain to some destination chain.304       * 305       * Fee payment on the destination side is made from the asset in the `assets` vector of306       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight307       * is needed than `weight_limit`, then the operation will fail and the assets send may be308       * at risk.309       * 310       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.311       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send312       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.313       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be314       * an `AccountId32` value.315       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the316       * `dest` side. May not be empty.317       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay318       * fees.319       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.320       **/321      limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV2WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32, XcmV2WeightLimit]>;322      /**323       * Transfer some assets from the local chain to the sovereign account of a destination324       * chain and forward a notification XCM.325       * 326       * Fee payment on the destination side is made from the asset in the `assets` vector of327       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,328       * with all fees taken as needed from the asset.329       * 330       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.331       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send332       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.333       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be334       * an `AccountId32` value.335       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the336       * `dest` side.337       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay338       * fees.339       **/340      reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;341      send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;342      /**343       * Teleport some assets from the local chain to some destination chain.344       * 345       * Fee payment on the destination side is made from the asset in the `assets` vector of346       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,347       * with all fees taken as needed from the asset.348       * 349       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.350       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send351       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.352       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be353       * an `AccountId32` value.354       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the355       * `dest` side. May not be empty.356       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay357       * fees.358       **/359      teleportAssets: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, beneficiary: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, assets: XcmVersionedMultiAssets | { V0: any } | { V1: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedMultiLocation, XcmVersionedMultiAssets, u32]>;360      /**361       * Generic tx362       **/363      [key: string]: SubmittableExtrinsicFunction<ApiType>;364    };365    promotion: {366      payoutStakers: AugmentedSubmittable<(stakersNumber: Option<u8> | null | Uint8Array | u8 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u8>]>;367      setAdminAddress: AugmentedSubmittable<(admin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr]>;368      sponsorCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;369      sponsorConract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;370      stake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;371      startAppPromotion: AugmentedSubmittable<(promotionStartRelayBlock: Option<u32> | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;372      stopAppPromotion: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;373      stopSponsoringCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;374      stopSponsoringContract: AugmentedSubmittable<(contractId: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;375      unstake: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u128]>;376      /**377       * Generic tx378       **/379      [key: string]: SubmittableExtrinsicFunction<ApiType>;380    };381    rmrkCore: {382      /**383       * Accept an NFT sent from another account to self or an owned NFT.384       * 385       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.386       * 387       * # Permissions:388       * - Token-owner-to-be389       * 390       * # Arguments:391       * - `origin`: sender of the transaction392       * - `rmrk_collection_id`: RMRK collection ID of the NFT to be accepted.393       * - `rmrk_nft_id`: ID of the NFT to be accepted.394       * - `new_owner`: Either the sender's account ID or a sender-owned NFT,395       * whichever the accepted NFT was sent to.396       **/397      acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;398      /**399       * Accept the addition of a newly created pending resource to an existing NFT.400       * 401       * This transaction is needed when a resource is created and assigned to an NFT402       * by a non-owner, i.e. the collection issuer, with one of the403       * [`add_...` transactions](Pallet::add_basic_resource).404       * 405       * # Permissions:406       * - Token owner407       * 408       * # Arguments:409       * - `origin`: sender of the transaction410       * - `rmrk_collection_id`: RMRK collection ID of the NFT.411       * - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.412       * - `resource_id`: ID of the newly created pending resource.413       * accept the addition of a new resource to an existing NFT414       **/415      acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;416      /**417       * Accept the removal of a removal-pending resource from an NFT.418       * 419       * This transaction is needed when a non-owner, i.e. the collection issuer,420       * requests a [removal](`Pallet::remove_resource`) of a resource from an NFT.421       * 422       * # Permissions:423       * - Token owner424       * 425       * # Arguments:426       * - `origin`: sender of the transaction427       * - `rmrk_collection_id`: RMRK collection ID of the NFT.428       * - `rmrk_nft_id`: ID of the NFT with a resource to be removed.429       * - `resource_id`: ID of the removal-pending resource.430       **/431      acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;432      /**433       * Create and set/propose a basic resource for an NFT.434       * 435       * A basic resource is the simplest, lacking a Base and anything that comes with it.436       * See RMRK docs for more information and examples.437       * 438       * # Permissions:439       * - Collection issuer - if not the token owner, adding the resource will warrant440       * the owner's [acceptance](Pallet::accept_resource).441       * 442       * # Arguments:443       * - `origin`: sender of the transaction444       * - `rmrk_collection_id`: RMRK collection ID of the NFT.445       * - `nft_id`: ID of the NFT to assign a resource to.446       * - `resource`: Data of the resource to be created.447       **/448      addBasicResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceBasicResource | { src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceBasicResource]>;449      /**450       * Create and set/propose a composable resource for an NFT.451       * 452       * A composable resource links to a Base and has a subset of its Parts it is composed of.453       * See RMRK docs for more information and examples.454       * 455       * # Permissions:456       * - Collection issuer - if not the token owner, adding the resource will warrant457       * the owner's [acceptance](Pallet::accept_resource).458       * 459       * # Arguments:460       * - `origin`: sender of the transaction461       * - `rmrk_collection_id`: RMRK collection ID of the NFT.462       * - `nft_id`: ID of the NFT to assign a resource to.463       * - `resource`: Data of the resource to be created.464       **/465      addComposableResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceComposableResource | { parts?: any; base?: any; src?: any; metadata?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceComposableResource]>;466      /**467       * Create and set/propose a slot resource for an NFT.468       * 469       * A slot resource links to a Base and a slot ID in it which it can fit into.470       * See RMRK docs for more information and examples.471       * 472       * # Permissions:473       * - Collection issuer - if not the token owner, adding the resource will warrant474       * the owner's [acceptance](Pallet::accept_resource).475       * 476       * # Arguments:477       * - `origin`: sender of the transaction478       * - `rmrk_collection_id`: RMRK collection ID of the NFT.479       * - `nft_id`: ID of the NFT to assign a resource to.480       * - `resource`: Data of the resource to be created.481       **/482      addSlotResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resource: RmrkTraitsResourceSlotResource | { base?: any; src?: any; metadata?: any; slot?: any; license?: any; thumb?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsResourceSlotResource]>;483      /**484       * Burn an NFT, destroying it and its nested tokens up to the specified limit.485       * If the burning budget is exceeded, the transaction is reverted.486       * 487       * This is the way to burn a nested token as well.488       * 489       * For more information, see [`burn_recursively`](pallet_nonfungible::pallet::Pallet::burn_recursively).490       * 491       * # Permissions:492       * * Token owner493       * 494       * # Arguments:495       * - `origin`: sender of the transaction496       * - `collection_id`: RMRK ID of the collection in which the NFT to burn belongs to.497       * - `nft_id`: ID of the NFT to be destroyed.498       * - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction499       * is reverted if there are more tokens to burn in the nesting tree than this number.500       * This is primarily a mechanism of transaction weight control.501       **/502      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;503      /**504       * Change the issuer of a collection. Analogous to Unique's collection's [`owner`](up_data_structs::Collection).505       * 506       * # Permissions:507       * * Collection issuer508       * 509       * # Arguments:510       * - `origin`: sender of the transaction511       * - `collection_id`: RMRK collection ID to change the issuer of.512       * - `new_issuer`: Collection's new issuer.513       **/514      changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;515      /**516       * Create a new collection of NFTs.517       * 518       * # Permissions:519       * * Anyone - will be assigned as the issuer of the collection.520       * 521       * # Arguments:522       * - `origin`: sender of the transaction523       * - `metadata`: Metadata describing the collection, e.g. IPFS hash. Cannot be changed.524       * - `max`: Optional maximum number of tokens.525       * - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.526       * Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.527       **/528      createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | Uint8Array | u32 | AnyNumber, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;529      /**530       * Destroy a collection.531       * 532       * Only empty collections can be destroyed. If it has any tokens, they must be burned first.533       * 534       * # Permissions:535       * * Collection issuer536       * 537       * # Arguments:538       * - `origin`: sender of the transaction539       * - `collection_id`: RMRK ID of the collection to destroy.540       **/541      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;542      /**543       * "Lock" the collection and prevent new token creation. Cannot be undone.544       * 545       * # Permissions:546       * * Collection issuer547       * 548       * # Arguments:549       * - `origin`: sender of the transaction550       * - `collection_id`: RMRK ID of the collection to lock.551       **/552      lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;553      /**554       * Mint an NFT in a specified collection.555       * 556       * # Permissions:557       * * Collection issuer558       * 559       * # Arguments:560       * - `origin`: sender of the transaction561       * - `owner`: Owner account of the NFT. If set to None, defaults to the sender (collection issuer).562       * - `collection_id`: RMRK collection ID for the NFT to be minted within. Cannot be changed.563       * - `recipient`: Receiver account of the royalty. Has no effect if the `royalty_amount` is not set. Cannot be changed.564       * - `royalty_amount`: Optional permillage reward from each trade for the `recipient`. Cannot be changed.565       * - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.566       * - `transferable`: Can this NFT be transferred? Cannot be changed.567       * - `resources`: Resource data to be added to the NFT immediately after minting.568       **/569      mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | Uint8Array | AccountId32 | string, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | Uint8Array | AccountId32 | string, royaltyAmount: Option<Permill> | null | Uint8Array | Permill | AnyNumber, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | Uint8Array | Vec<RmrkTraitsResourceResourceTypes> | (RmrkTraitsResourceResourceTypes | { Basic: any } | { Composable: any } | { Slot: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;570      /**571       * Reject an NFT sent from another account to self or owned NFT.572       * The NFT in question will not be sent back and burnt instead.573       * 574       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.575       * 576       * # Permissions:577       * - Token-owner-to-be-not578       * 579       * # Arguments:580       * - `origin`: sender of the transaction581       * - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.582       * - `rmrk_nft_id`: ID of the NFT to be rejected.583       **/584      rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;585      /**586       * Remove and erase a resource from an NFT.587       * 588       * If the sender does not own the NFT, then it will be pending confirmation,589       * and will have to be [accepted](Pallet::accept_resource_removal) by the token owner.590       * 591       * # Permissions592       * - Collection issuer593       * 594       * # Arguments595       * - `origin`: sender of the transaction596       * - `rmrk_collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.597       * - `nft_id`: ID of the NFT with a resource to be removed.598       * - `resource_id`: ID of the resource to be removed.599       **/600      removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;601      /**602       * Transfer an NFT from an account/NFT A to another account/NFT B.603       * The token must be transferable. Nesting cannot occur deeper than the [`NESTING_BUDGET`].604       * 605       * If the target owner is an NFT owned by another account, then the NFT will enter606       * the pending state and will have to be accepted by the other account.607       * 608       * # Permissions:609       * - Token owner610       * 611       * # Arguments:612       * - `origin`: sender of the transaction613       * - `rmrk_collection_id`: RMRK ID of the collection of the NFT to be transferred.614       * - `rmrk_nft_id`: ID of the NFT to be transferred.615       * - `new_owner`: New owner of the nft which can be either an account or a NFT.616       **/617      send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;618      /**619       * Set a different order of resource priorities for an NFT. Priorities can be used,620       * for example, for order of rendering.621       * 622       * Note that the priorities are not updated automatically, and are an empty vector623       * by default. There is no pre-set definition for the order to be particular,624       * it can be interpreted arbitrarily use-case by use-case.625       * 626       * # Permissions:627       * - Token owner628       * 629       * # Arguments:630       * - `origin`: sender of the transaction631       * - `rmrk_collection_id`: RMRK collection ID of the NFT.632       * - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.633       * - `priorities`: Ordered vector of resource IDs.634       **/635      setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;636      /**637       * Add or edit a custom user property, a key-value pair, describing the metadata638       * of a token or a collection, on either one of these.639       * 640       * Note that in this proxy implementation many details regarding RMRK are stored641       * as scoped properties prefixed with "rmrk:", normally inaccessible642       * to external transactions and RPCs.643       * 644       * # Permissions:645       * - Collection issuer - in case of collection property646       * - Token owner - in case of NFT property647       * 648       * # Arguments:649       * - `origin`: sender of the transaction650       * - `rmrk_collection_id`: RMRK collection ID.651       * - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.652       * - `key`: Key of the custom property to be referenced by.653       * - `value`: Value of the custom property to be stored.654       **/655      setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;656      /**657       * Generic tx658       **/659      [key: string]: SubmittableExtrinsicFunction<ApiType>;660    };661    rmrkEquip: {662      /**663       * Create a new Base.664       * 665       * Modeled after the [Base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)666       * 667       * # Permissions668       * - Anyone - will be assigned as the issuer of the Base.669       * 670       * # Arguments:671       * - `origin`: Caller, will be assigned as the issuer of the Base672       * - `base_type`: Arbitrary media type, e.g. "svg".673       * - `symbol`: Arbitrary client-chosen symbol.674       * - `parts`: Array of Fixed and Slot Parts composing the Base,675       * confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).676       **/677      createBase: AugmentedSubmittable<(baseType: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, parts: Vec<RmrkTraitsPartPartType> | (RmrkTraitsPartPartType | { FixedPart: any } | { SlotPart: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Bytes, Bytes, Vec<RmrkTraitsPartPartType>]>;678      /**679       * Update the array of Collections allowed to be equipped to a Base's specified Slot Part.680       * 681       * Modeled after [equippable interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/equippable.md).682       * 683       * # Permissions:684       * - Base issuer685       * 686       * # Arguments:687       * - `origin`: sender of the transaction688       * - `base_id`: Base containing the Slot Part to be updated.689       * - `slot_id`: Slot Part whose Equippable List is being updated .690       * - `equippables`: List of equippables that will override the current Equippables list.691       **/692      equippable: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, slotId: u32 | AnyNumber | Uint8Array, equippables: RmrkTraitsPartEquippableList | { All: any } | { Empty: any } | { Custom: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsPartEquippableList]>;693      /**694       * Add a Theme to a Base.695       * A Theme named "default" is required prior to adding other Themes.696       * 697       * Modeled after [Themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md).698       * 699       * # Permissions:700       * - Base issuer701       * 702       * # Arguments:703       * - `origin`: sender of the transaction704       * - `base_id`: Base ID containing the Theme to be updated.705       * - `theme`: Theme to add to the Base.  A Theme has a name and properties, which are an706       * array of [key, value, inherit].707       * - `key`: Arbitrary BoundedString, defined by client.708       * - `value`: Arbitrary BoundedString, defined by client.709       * - `inherit`: Optional bool.710       **/711      themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;712      /**713       * Generic tx714       **/715      [key: string]: SubmittableExtrinsicFunction<ApiType>;716    };717    scheduler: {718      /**719       * Cancel a named scheduled task.720       **/721      cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;722      /**723       * Schedule a named task.724       **/725      scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;726      /**727       * Schedule a named task after a delay.728       * 729       * # <weight>730       * Same as [`schedule_named`](Self::schedule_named).731       * # </weight>732       **/733      scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;734      /**735       * Generic tx736       **/737      [key: string]: SubmittableExtrinsicFunction<ApiType>;738    };739    structure: {740      /**741       * Generic tx742       **/743      [key: string]: SubmittableExtrinsicFunction<ApiType>;744    };745    sudo: {746      /**747       * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo748       * key.749       * 750       * The dispatch origin for this call must be _Signed_.751       * 752       * # <weight>753       * - O(1).754       * - Limited storage reads.755       * - One DB change.756       * # </weight>757       **/758      setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;759      /**760       * Authenticates the sudo key and dispatches a function call with `Root` origin.761       * 762       * The dispatch origin for this call must be _Signed_.763       * 764       * # <weight>765       * - O(1).766       * - Limited storage reads.767       * - One DB write (event).768       * - Weight of derivative `call` execution + 10,000.769       * # </weight>770       **/771      sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;772      /**773       * Authenticates the sudo key and dispatches a function call with `Signed` origin from774       * a given account.775       * 776       * The dispatch origin for this call must be _Signed_.777       * 778       * # <weight>779       * - O(1).780       * - Limited storage reads.781       * - One DB write (event).782       * - Weight of derivative `call` execution + 10,000.783       * # </weight>784       **/785      sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, Call]>;786      /**787       * Authenticates the sudo key and dispatches a function call with `Root` origin.788       * This function does not check the weight of the call, and instead allows the789       * Sudo user to specify the weight of the call.790       * 791       * The dispatch origin for this call must be _Signed_.792       * 793       * # <weight>794       * - O(1).795       * - The weight of this call is defined by the caller.796       * # </weight>797       **/798      sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;799      /**800       * Generic tx801       **/802      [key: string]: SubmittableExtrinsicFunction<ApiType>;803    };804    system: {805      /**806       * A dispatch that will fill the block weight up to the given ratio.807       **/808      fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;809      /**810       * Kill all storage items with a key that starts with the given prefix.811       * 812       * **NOTE:** We rely on the Root origin to provide us the number of subkeys under813       * the prefix we are removing to accurately calculate the weight of this function.814       **/815      killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;816      /**817       * Kill some items from storage.818       **/819      killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;820      /**821       * Make some on-chain remark.822       * 823       * # <weight>824       * - `O(1)`825       * # </weight>826       **/827      remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;828      /**829       * Make some on-chain remark and emit event.830       **/831      remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;832      /**833       * Set the new runtime code.834       * 835       * # <weight>836       * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`837       * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is838       * expensive).839       * - 1 storage write (codec `O(C)`).840       * - 1 digest item.841       * - 1 event.842       * The weight of this function is dependent on the runtime, but generally this is very843       * expensive. We will treat this as a full block.844       * # </weight>845       **/846      setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;847      /**848       * Set the new runtime code without doing any checks of the given `code`.849       * 850       * # <weight>851       * - `O(C)` where `C` length of `code`852       * - 1 storage write (codec `O(C)`).853       * - 1 digest item.854       * - 1 event.855       * The weight of this function is dependent on the runtime. We will treat this as a full856       * block. # </weight>857       **/858      setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;859      /**860       * Set the number of pages in the WebAssembly environment's heap.861       **/862      setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;863      /**864       * Set some items of storage.865       **/866      setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;867      /**868       * Generic tx869       **/870      [key: string]: SubmittableExtrinsicFunction<ApiType>;871    };872    timestamp: {873      /**874       * Set the current time.875       * 876       * This call should be invoked exactly once per block. It will panic at the finalization877       * phase, if this call hasn't been invoked by that time.878       * 879       * The timestamp should be greater than the previous one by the amount specified by880       * `MinimumPeriod`.881       * 882       * The dispatch origin for this call must be `Inherent`.883       * 884       * # <weight>885       * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)886       * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in887       * `on_finalize`)888       * - 1 event handler `on_timestamp_set`. Must be `O(1)`.889       * # </weight>890       **/891      set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;892      /**893       * Generic tx894       **/895      [key: string]: SubmittableExtrinsicFunction<ApiType>;896    };897    treasury: {898      /**899       * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary900       * and the original deposit will be returned.901       * 902       * May only be called from `T::ApproveOrigin`.903       * 904       * # <weight>905       * - Complexity: O(1).906       * - DbReads: `Proposals`, `Approvals`907       * - DbWrite: `Approvals`908       * # </weight>909       **/910      approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;911      /**912       * Put forward a suggestion for spending. A deposit proportional to the value913       * is reserved and slashed if the proposal is rejected. It is returned once the914       * proposal is awarded.915       * 916       * # <weight>917       * - Complexity: O(1)918       * - DbReads: `ProposalCount`, `origin account`919       * - DbWrites: `ProposalCount`, `Proposals`, `origin account`920       * # </weight>921       **/922      proposeSpend: AugmentedSubmittable<(value: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;923      /**924       * Reject a proposed spend. The original deposit will be slashed.925       * 926       * May only be called from `T::RejectOrigin`.927       * 928       * # <weight>929       * - Complexity: O(1)930       * - DbReads: `Proposals`, `rejected proposer account`931       * - DbWrites: `Proposals`, `rejected proposer account`932       * # </weight>933       **/934      rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;935      /**936       * Force a previously approved proposal to be removed from the approval queue.937       * The original deposit will no longer be returned.938       * 939       * May only be called from `T::RejectOrigin`.940       * - `proposal_id`: The index of a proposal941       * 942       * # <weight>943       * - Complexity: O(A) where `A` is the number of approvals944       * - Db reads and writes: `Approvals`945       * # </weight>946       * 947       * Errors:948       * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,949       * i.e., the proposal has not been approved. This could also mean the proposal does not950       * exist altogether, thus there is no way it would have been approved in the first place.951       **/952      removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;953      /**954       * Propose and approve a spend of treasury funds.955       * 956       * - `origin`: Must be `SpendOrigin` with the `Success` value being at least `amount`.957       * - `amount`: The amount to be transferred from the treasury to the `beneficiary`.958       * - `beneficiary`: The destination account for the transfer.959       * 960       * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the961       * beneficiary.962       **/963      spend: AugmentedSubmittable<(amount: Compact<u128> | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u128>, MultiAddress]>;964      /**965       * Generic tx966       **/967      [key: string]: SubmittableExtrinsicFunction<ApiType>;968    };969    unique: {970      /**971       * Add an admin to a collection.972       * 973       * NFT Collection can be controlled by multiple admin addresses974       * (some which can also be servers, for example). Admins can issue975       * and burn NFTs, as well as add and remove other admins,976       * but cannot change NFT or Collection ownership.977       * 978       * # Permissions979       * 980       * * Collection owner981       * * Collection admin982       * 983       * # Arguments984       * 985       * * `collection_id`: ID of the Collection to add an admin for.986       * * `new_admin`: Address of new admin to add.987       **/988      addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdminId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;989      /**990       * Add an address to allow list.991       * 992       * # Permissions993       * 994       * * Collection owner995       * * Collection admin996       * 997       * # Arguments998       * 999       * * `collection_id`: ID of the modified collection.1000       * * `address`: ID of the address to be added to the allowlist.1001       **/1002      addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1003      /**1004       * Allow a non-permissioned address to transfer or burn an item.1005       * 1006       * # Permissions1007       * 1008       * * Collection owner1009       * * Collection admin1010       * * Current item owner1011       * 1012       * # Arguments1013       * 1014       * * `spender`: Account to be approved to make specific transactions on non-owned tokens.1015       * * `collection_id`: ID of the collection the item belongs to.1016       * * `item_id`: ID of the item transactions on which are now approved.1017       * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).1018       * Set to 0 to revoke the approval.1019       **/1020      approve: AugmentedSubmittable<(spender: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1021      /**1022       * Destroy a token on behalf of the owner as a non-owner account.1023       * 1024       * See also: [`approve`][`Pallet::approve`].1025       * 1026       * After this method executes, one approval is removed from the total so that1027       * the approved address will not be able to transfer this item again from this owner.1028       * 1029       * # Permissions1030       * 1031       * * Collection owner1032       * * Collection admin1033       * * Current token owner1034       * * Address approved by current item owner1035       * 1036       * # Arguments1037       * 1038       * * `from`: The owner of the burning item.1039       * * `collection_id`: ID of the collection to which the item belongs.1040       * * `item_id`: ID of item to burn.1041       * * `value`: Number of pieces to burn.1042       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1043       * * Fungible Mode: The desired number of pieces to burn.1044       * * Re-Fungible Mode: The desired number of pieces to burn.1045       **/1046      burnFrom: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, u32, u128]>;1047      /**1048       * Destroy an item.1049       * 1050       * # Permissions1051       * 1052       * * Collection owner1053       * * Collection admin1054       * * Current item owner1055       * 1056       * # Arguments1057       * 1058       * * `collection_id`: ID of the collection to which the item belongs.1059       * * `item_id`: ID of item to burn.1060       * * `value`: Number of pieces of the item to destroy.1061       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1062       * * Fungible Mode: The desired number of pieces to burn.1063       * * Re-Fungible Mode: The desired number of pieces to burn.1064       **/1065      burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1066      /**1067       * Change the owner of the collection.1068       * 1069       * # Permissions1070       * 1071       * * Collection owner1072       * 1073       * # Arguments1074       * 1075       * * `collection_id`: ID of the modified collection.1076       * * `new_owner`: ID of the account that will become the owner.1077       **/1078      changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1079      /**1080       * Confirm own sponsorship of a collection, becoming the sponsor.1081       * 1082       * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].1083       * Sponsor can pay the fees of a transaction instead of the sender,1084       * but only within specified limits.1085       * 1086       * # Permissions1087       * 1088       * * Sponsor-to-be1089       * 1090       * # Arguments1091       * 1092       * * `collection_id`: ID of the collection with the pending sponsor.1093       **/1094      confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1095      /**1096       * Create a collection of tokens.1097       * 1098       * Each Token may have multiple properties encoded as an array of bytes1099       * of certain length. The initial owner of the collection is set1100       * to the address that signed the transaction and can be changed later.1101       * 1102       * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.1103       * 1104       * # Permissions1105       * 1106       * * Anyone - becomes the owner of the new collection.1107       * 1108       * # Arguments1109       * 1110       * * `collection_name`: Wide-character string with collection name1111       * (limit [`MAX_COLLECTION_NAME_LENGTH`]).1112       * * `collection_description`: Wide-character string with collection description1113       * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).1114       * * `token_prefix`: Byte string containing the token prefix to mark a collection1115       * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).1116       * * `mode`: Type of items stored in the collection and type dependent data.1117       **/1118      createCollection: AugmentedSubmittable<(collectionName: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], collectionDescription: Vec<u16> | (u16 | AnyNumber | Uint8Array)[], tokenPrefix: Bytes | string | Uint8Array, mode: UpDataStructsCollectionMode | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Vec<u16>, Vec<u16>, Bytes, UpDataStructsCollectionMode]>;1119      /**1120       * Create a collection with explicit parameters.1121       * 1122       * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.1123       * 1124       * # Permissions1125       * 1126       * * Anyone - becomes the owner of the new collection.1127       * 1128       * # Arguments1129       * 1130       * * `data`: Explicit data of a collection used for its creation.1131       **/1132      createCollectionEx: AugmentedSubmittable<(data: UpDataStructsCreateCollectionData | { mode?: any; access?: any; name?: any; description?: any; tokenPrefix?: any; pendingSponsor?: any; limits?: any; permissions?: any; tokenPropertyPermissions?: any; properties?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [UpDataStructsCreateCollectionData]>;1133      /**1134       * Mint an item within a collection.1135       * 1136       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1137       * 1138       * # Permissions1139       * 1140       * * Collection owner1141       * * Collection admin1142       * * Anyone if1143       * * Allow List is enabled, and1144       * * Address is added to allow list, and1145       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1146       * 1147       * # Arguments1148       * 1149       * * `collection_id`: ID of the collection to which an item would belong.1150       * * `owner`: Address of the initial owner of the item.1151       * * `data`: Token data describing the item to store on chain.1152       **/1153      createItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, data: UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, UpDataStructsCreateItemData]>;1154      /**1155       * Create multiple items within a collection.1156       * 1157       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1158       * 1159       * # Permissions1160       * 1161       * * Collection owner1162       * * Collection admin1163       * * Anyone if1164       * * Allow List is enabled, and1165       * * Address is added to the allow list, and1166       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1167       * 1168       * # Arguments1169       * 1170       * * `collection_id`: ID of the collection to which the tokens would belong.1171       * * `owner`: Address of the initial owner of the tokens.1172       * * `items_data`: Vector of data describing each item to be created.1173       **/1174      createMultipleItems: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, owner: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, itemsData: Vec<UpDataStructsCreateItemData> | (UpDataStructsCreateItemData | { NFT: any } | { Fungible: any } | { ReFungible: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr, Vec<UpDataStructsCreateItemData>]>;1175      /**1176       * Create multiple items within a collection with explicitly specified initial parameters.1177       * 1178       * # Permissions1179       * 1180       * * Collection owner1181       * * Collection admin1182       * * Anyone if1183       * * Allow List is enabled, and1184       * * Address is added to allow list, and1185       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1186       * 1187       * # Arguments1188       * 1189       * * `collection_id`: ID of the collection to which the tokens would belong.1190       * * `data`: Explicit item creation data.1191       **/1192      createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;1193      /**1194       * Delete specified collection properties.1195       * 1196       * # Permissions1197       * 1198       * * Collection Owner1199       * * Collection Admin1200       * 1201       * # Arguments1202       * 1203       * * `collection_id`: ID of the modified collection.1204       * * `property_keys`: Vector of keys of the properties to be deleted.1205       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1206       **/1207      deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;1208      /**1209       * Delete specified token properties. Currently properties only work with NFTs.1210       * 1211       * # Permissions1212       * 1213       * * Depends on collection's token property permissions and specified property mutability:1214       * * Collection owner1215       * * Collection admin1216       * * Token owner1217       * 1218       * # Arguments1219       * 1220       * * `collection_id`: ID of the collection to which the token belongs.1221       * * `token_id`: ID of the modified token.1222       * * `property_keys`: Vector of keys of the properties to be deleted.1223       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1224       **/1225      deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;1226      /**1227       * Destroy a collection if no tokens exist within.1228       * 1229       * # Permissions1230       * 1231       * * Collection owner1232       * 1233       * # Arguments1234       * 1235       * * `collection_id`: Collection to destroy.1236       **/1237      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1238      /**1239       * Remove admin of a collection.1240       * 1241       * An admin address can remove itself. List of admins may become empty,1242       * in which case only Collection Owner will be able to add an Admin.1243       * 1244       * # Permissions1245       * 1246       * * Collection owner1247       * * Collection admin1248       * 1249       * # Arguments1250       * 1251       * * `collection_id`: ID of the collection to remove the admin for.1252       * * `account_id`: Address of the admin to remove.1253       **/1254      removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1255      /**1256       * Remove a collection's a sponsor, making everyone pay for their own transactions.1257       * 1258       * # Permissions1259       * 1260       * * Collection owner1261       * 1262       * # Arguments1263       * 1264       * * `collection_id`: ID of the collection with the sponsor to remove.1265       **/1266      removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1267      /**1268       * Remove an address from allow list.1269       * 1270       * # Permissions1271       * 1272       * * Collection owner1273       * * Collection admin1274       * 1275       * # Arguments1276       * 1277       * * `collection_id`: ID of the modified collection.1278       * * `address`: ID of the address to be removed from the allowlist.1279       **/1280      removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1281      /**1282       * Re-partition a refungible token, while owning all of its parts/pieces.1283       * 1284       * # Permissions1285       * 1286       * * Token owner (must own every part)1287       * 1288       * # Arguments1289       * 1290       * * `collection_id`: ID of the collection the RFT belongs to.1291       * * `token_id`: ID of the RFT.1292       * * `amount`: New number of parts/pieces into which the token shall be partitioned.1293       **/1294      repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1295      /**1296       * Set specific limits of a collection. Empty, or None fields mean chain default.1297       * 1298       * # Permissions1299       * 1300       * * Collection owner1301       * * Collection admin1302       * 1303       * # Arguments1304       * 1305       * * `collection_id`: ID of the modified collection.1306       * * `new_limit`: New limits of the collection. Fields that are not set (None)1307       * will not overwrite the old ones.1308       **/1309      setCollectionLimits: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newLimit: UpDataStructsCollectionLimits | { accountTokenOwnershipLimit?: any; sponsoredDataSize?: any; sponsoredDataRateLimit?: any; tokenLimit?: any; sponsorTransferTimeout?: any; sponsorApproveTimeout?: any; ownerCanTransfer?: any; ownerCanDestroy?: any; transfersEnabled?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionLimits]>;1310      /**1311       * Set specific permissions of a collection. Empty, or None fields mean chain default.1312       * 1313       * # Permissions1314       * 1315       * * Collection owner1316       * * Collection admin1317       * 1318       * # Arguments1319       * 1320       * * `collection_id`: ID of the modified collection.1321       * * `new_permission`: New permissions of the collection. Fields that are not set (None)1322       * will not overwrite the old ones.1323       **/1324      setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1325      /**1326       * Add or change collection properties.1327       * 1328       * # Permissions1329       * 1330       * * Collection owner1331       * * Collection admin1332       * 1333       * # Arguments1334       * 1335       * * `collection_id`: ID of the modified collection.1336       * * `properties`: Vector of key-value pairs stored as the collection's metadata.1337       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1338       **/1339      setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1340      /**1341       * Set (invite) a new collection sponsor.1342       * 1343       * If successful, confirmation from the sponsor-to-be will be pending.1344       * 1345       * # Permissions1346       * 1347       * * Collection owner1348       * * Collection admin1349       * 1350       * # Arguments1351       * 1352       * * `collection_id`: ID of the modified collection.1353       * * `new_sponsor`: ID of the account of the sponsor-to-be.1354       **/1355      setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1356      /**1357       * Add or change token properties according to collection's permissions.1358       * Currently properties only work with NFTs.1359       * 1360       * # Permissions1361       * 1362       * * Depends on collection's token property permissions and specified property mutability:1363       * * Collection owner1364       * * Collection admin1365       * * Token owner1366       * 1367       * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1368       * 1369       * # Arguments1370       * 1371       * * `collection_id: ID of the collection to which the token belongs.1372       * * `token_id`: ID of the modified token.1373       * * `properties`: Vector of key-value pairs stored as the token's metadata.1374       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1375       **/1376      setTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<UpDataStructsProperty>]>;1377      /**1378       * Add or change token property permissions of a collection.1379       * 1380       * Without a permission for a particular key, a property with that key1381       * cannot be created in a token.1382       * 1383       * # Permissions1384       * 1385       * * Collection owner1386       * * Collection admin1387       * 1388       * # Arguments1389       * 1390       * * `collection_id`: ID of the modified collection.1391       * * `property_permissions`: Vector of permissions for property keys.1392       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1393       **/1394      setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1395      /**1396       * Completely allow or disallow transfers for a particular collection.1397       * 1398       * # Permissions1399       * 1400       * * Collection owner1401       * 1402       * # Arguments1403       * 1404       * * `collection_id`: ID of the collection.1405       * * `value`: New value of the flag, are transfers allowed?1406       **/1407      setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1408      /**1409       * Change ownership of the token.1410       * 1411       * # Permissions1412       * 1413       * * Collection owner1414       * * Collection admin1415       * * Current token owner1416       * 1417       * # Arguments1418       * 1419       * * `recipient`: Address of token recipient.1420       * * `collection_id`: ID of the collection the item belongs to.1421       * * `item_id`: ID of the item.1422       * * Non-Fungible Mode: Required.1423       * * Fungible Mode: Ignored.1424       * * Re-Fungible Mode: Required.1425       * 1426       * * `value`: Amount to transfer.1427       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1428       * * Fungible Mode: The desired number of pieces to transfer.1429       * * Re-Fungible Mode: The desired number of pieces to transfer.1430       **/1431      transfer: AugmentedSubmittable<(recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1432      /**1433       * Change ownership of an item on behalf of the owner as a non-owner account.1434       * 1435       * See the [`approve`][`Pallet::approve`] method for additional information.1436       * 1437       * After this method executes, one approval is removed from the total so that1438       * the approved address will not be able to transfer this item again from this owner.1439       * 1440       * # Permissions1441       * 1442       * * Collection owner1443       * * Collection admin1444       * * Current item owner1445       * * Address approved by current item owner1446       * 1447       * # Arguments1448       * 1449       * * `from`: Address that currently owns the token.1450       * * `recipient`: Address of the new token-owner-to-be.1451       * * `collection_id`: ID of the collection the item.1452       * * `item_id`: ID of the item to be transferred.1453       * * `value`: Amount to transfer.1454       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1455       * * Fungible Mode: The desired number of pieces to transfer.1456       * * Re-Fungible Mode: The desired number of pieces to transfer.1457       **/1458      transferFrom: AugmentedSubmittable<(from: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, recipient: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmAccountBasicCrossAccountIdRepr, u32, u32, u128]>;1459      /**1460       * Generic tx1461       **/1462      [key: string]: SubmittableExtrinsicFunction<ApiType>;1463    };1464    vesting: {1465      claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1466      claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1467      updateVestingSchedules: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, vestingSchedules: Vec<OrmlVestingVestingSchedule> | (OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [MultiAddress, Vec<OrmlVestingVestingSchedule>]>;1468      vestedTransfer: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: OrmlVestingVestingSchedule | { start?: any; period?: any; periodCount?: any; perPeriod?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, OrmlVestingVestingSchedule]>;1469      /**1470       * Generic tx1471       **/1472      [key: string]: SubmittableExtrinsicFunction<ApiType>;1473    };1474    xcmpQueue: {1475      /**1476       * Resumes all XCM executions for the XCMP queue.1477       * 1478       * Note that this function doesn't change the status of the in/out bound channels.1479       * 1480       * - `origin`: Must pass `ControllerOrigin`.1481       **/1482      resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1483      /**1484       * Services a single overweight XCM.1485       * 1486       * - `origin`: Must pass `ExecuteOverweightOrigin`.1487       * - `index`: The index of the overweight XCM to service1488       * - `weight_limit`: The amount of weight that XCM execution may take.1489       * 1490       * Errors:1491       * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1492       * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1493       * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1494       * 1495       * Events:1496       * - `OverweightServiced`: On success.1497       **/1498      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1499      /**1500       * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1501       * 1502       * - `origin`: Must pass `ControllerOrigin`.1503       **/1504      suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1505      /**1506       * Overwrites the number of pages of messages which must be in the queue after which we drop any further1507       * messages from the channel.1508       * 1509       * - `origin`: Must pass `Root`.1510       * - `new`: Desired value for `QueueConfigData.drop_threshold`1511       **/1512      updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1513      /**1514       * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1515       * message sending may recommence after it has been suspended.1516       * 1517       * - `origin`: Must pass `Root`.1518       * - `new`: Desired value for `QueueConfigData.resume_threshold`1519       **/1520      updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1521      /**1522       * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1523       * suspend their sending.1524       * 1525       * - `origin`: Must pass `Root`.1526       * - `new`: Desired value for `QueueConfigData.suspend_value`1527       **/1528      updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1529      /**1530       * Overwrites the amount of remaining weight under which we stop processing messages.1531       * 1532       * - `origin`: Must pass `Root`.1533       * - `new`: Desired value for `QueueConfigData.threshold_weight`1534       **/1535      updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1536      /**1537       * Overwrites the speed to which the available weight approaches the maximum weight.1538       * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1539       * 1540       * - `origin`: Must pass `Root`.1541       * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1542       **/1543      updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1544      /**1545       * Overwrite the maximum amount of weight any individual message may consume.1546       * Messages above this weight go into the overweight queue and may only be serviced explicitly.1547       * 1548       * - `origin`: Must pass `Root`.1549       * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1550       **/1551      updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1552      /**1553       * Generic tx1554       **/1555      [key: string]: SubmittableExtrinsicFunction<ApiType>;1556    };1557  } // AugmentedSubmittables1558} // declare module
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -829,19 +829,23 @@
   readonly asSponsorCollection: {
     readonly collectionId: u32;
   } & Struct;
-  readonly isStopSponsorignCollection: boolean;
-  readonly asStopSponsorignCollection: {
+  readonly isStopSponsoringCollection: boolean;
+  readonly asStopSponsoringCollection: {
     readonly collectionId: u32;
   } & Struct;
   readonly isSponsorConract: boolean;
   readonly asSponsorConract: {
     readonly contractId: H160;
   } & Struct;
-  readonly isStopSponsorignContract: boolean;
-  readonly asStopSponsorignContract: {
+  readonly isStopSponsoringContract: boolean;
+  readonly asStopSponsoringContract: {
     readonly contractId: H160;
   } & Struct;
-  readonly type: 'SetAdminAddress' | 'StartAppPromotion' | 'StopAppPromotion' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsorignCollection' | 'SponsorConract' | 'StopSponsorignContract';
+  readonly isPayoutStakers: boolean;
+  readonly asPayoutStakers: {
+    readonly stakersNumber: Option<u8>;
+  } & Struct;
+  readonly type: 'SetAdminAddress' | 'StartAppPromotion' | 'StopAppPromotion' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorConract' | 'StopSponsoringContract' | 'PayoutStakers';
 }
 
 /** @name PalletAppPromotionError */
@@ -856,7 +860,7 @@
 /** @name PalletAppPromotionEvent */
 export interface PalletAppPromotionEvent extends Enum {
   readonly isStakingRecalculation: boolean;
-  readonly asStakingRecalculation: ITuple<[u128, u128]>;
+  readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;
   readonly type: 'StakingRecalculation';
 }
 
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1061,7 +1061,7 @@
    **/
   PalletAppPromotionEvent: {
     _enum: {
-      StakingRecalculation: '(u128,u128)'
+      StakingRecalculation: '(AccountId32,u128,u128)'
     }
   },
   /**
@@ -2473,19 +2473,22 @@
       sponsor_collection: {
         collectionId: 'u32',
       },
-      stop_sponsorign_collection: {
+      stop_sponsoring_collection: {
         collectionId: 'u32',
       },
       sponsor_conract: {
         contractId: 'H160',
       },
-      stop_sponsorign_contract: {
-        contractId: 'H160'
+      stop_sponsoring_contract: {
+        contractId: 'H160',
+      },
+      payout_stakers: {
+        stakersNumber: 'Option<u8>'
       }
     }
   },
   /**
-   * Lookup305: pallet_evm::pallet::Call<T>
+   * Lookup306: pallet_evm::pallet::Call<T>
    **/
   PalletEvmCall: {
     _enum: {
@@ -2528,7 +2531,7 @@
     }
   },
   /**
-   * Lookup309: pallet_ethereum::pallet::Call<T>
+   * Lookup310: pallet_ethereum::pallet::Call<T>
    **/
   PalletEthereumCall: {
     _enum: {
@@ -2538,7 +2541,7 @@
     }
   },
   /**
-   * Lookup310: ethereum::transaction::TransactionV2
+   * Lookup311: ethereum::transaction::TransactionV2
    **/
   EthereumTransactionTransactionV2: {
     _enum: {
@@ -2548,7 +2551,7 @@
     }
   },
   /**
-   * Lookup311: ethereum::transaction::LegacyTransaction
+   * Lookup312: ethereum::transaction::LegacyTransaction
    **/
   EthereumTransactionLegacyTransaction: {
     nonce: 'U256',
@@ -2560,7 +2563,7 @@
     signature: 'EthereumTransactionTransactionSignature'
   },
   /**
-   * Lookup312: ethereum::transaction::TransactionAction
+   * Lookup313: ethereum::transaction::TransactionAction
    **/
   EthereumTransactionTransactionAction: {
     _enum: {
@@ -2569,7 +2572,7 @@
     }
   },
   /**
-   * Lookup313: ethereum::transaction::TransactionSignature
+   * Lookup314: ethereum::transaction::TransactionSignature
    **/
   EthereumTransactionTransactionSignature: {
     v: 'u64',
@@ -2577,7 +2580,7 @@
     s: 'H256'
   },
   /**
-   * Lookup315: ethereum::transaction::EIP2930Transaction
+   * Lookup316: ethereum::transaction::EIP2930Transaction
    **/
   EthereumTransactionEip2930Transaction: {
     chainId: 'u64',
@@ -2593,14 +2596,14 @@
     s: 'H256'
   },
   /**
-   * Lookup317: ethereum::transaction::AccessListItem
+   * Lookup318: ethereum::transaction::AccessListItem
    **/
   EthereumTransactionAccessListItem: {
     address: 'H160',
     storageKeys: 'Vec<H256>'
   },
   /**
-   * Lookup318: ethereum::transaction::EIP1559Transaction
+   * Lookup319: ethereum::transaction::EIP1559Transaction
    **/
   EthereumTransactionEip1559Transaction: {
     chainId: 'u64',
@@ -2617,7 +2620,7 @@
     s: 'H256'
   },
   /**
-   * Lookup319: pallet_evm_migration::pallet::Call<T>
+   * Lookup320: pallet_evm_migration::pallet::Call<T>
    **/
   PalletEvmMigrationCall: {
     _enum: {
@@ -2635,19 +2638,19 @@
     }
   },
   /**
-   * Lookup322: pallet_sudo::pallet::Error<T>
+   * Lookup323: pallet_sudo::pallet::Error<T>
    **/
   PalletSudoError: {
     _enum: ['RequireSudo']
   },
   /**
-   * Lookup324: orml_vesting::module::Error<T>
+   * Lookup325: orml_vesting::module::Error<T>
    **/
   OrmlVestingModuleError: {
     _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
   },
   /**
-   * Lookup326: cumulus_pallet_xcmp_queue::InboundChannelDetails
+   * Lookup327: cumulus_pallet_xcmp_queue::InboundChannelDetails
    **/
   CumulusPalletXcmpQueueInboundChannelDetails: {
     sender: 'u32',
@@ -2655,19 +2658,19 @@
     messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
   },
   /**
-   * Lookup327: cumulus_pallet_xcmp_queue::InboundState
+   * Lookup328: cumulus_pallet_xcmp_queue::InboundState
    **/
   CumulusPalletXcmpQueueInboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup330: polkadot_parachain::primitives::XcmpMessageFormat
+   * Lookup331: polkadot_parachain::primitives::XcmpMessageFormat
    **/
   PolkadotParachainPrimitivesXcmpMessageFormat: {
     _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
   },
   /**
-   * Lookup333: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+   * Lookup334: cumulus_pallet_xcmp_queue::OutboundChannelDetails
    **/
   CumulusPalletXcmpQueueOutboundChannelDetails: {
     recipient: 'u32',
@@ -2677,13 +2680,13 @@
     lastIndex: 'u16'
   },
   /**
-   * Lookup334: cumulus_pallet_xcmp_queue::OutboundState
+   * Lookup335: cumulus_pallet_xcmp_queue::OutboundState
    **/
   CumulusPalletXcmpQueueOutboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup336: cumulus_pallet_xcmp_queue::QueueConfigData
+   * Lookup337: cumulus_pallet_xcmp_queue::QueueConfigData
    **/
   CumulusPalletXcmpQueueQueueConfigData: {
     suspendThreshold: 'u32',
@@ -2694,29 +2697,29 @@
     xcmpMaxIndividualWeight: 'u64'
   },
   /**
-   * Lookup338: cumulus_pallet_xcmp_queue::pallet::Error<T>
+   * Lookup339: cumulus_pallet_xcmp_queue::pallet::Error<T>
    **/
   CumulusPalletXcmpQueueError: {
     _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
   },
   /**
-   * Lookup339: pallet_xcm::pallet::Error<T>
+   * Lookup340: pallet_xcm::pallet::Error<T>
    **/
   PalletXcmError: {
     _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
   },
   /**
-   * Lookup340: cumulus_pallet_xcm::pallet::Error<T>
+   * Lookup341: cumulus_pallet_xcm::pallet::Error<T>
    **/
   CumulusPalletXcmError: 'Null',
   /**
-   * Lookup341: cumulus_pallet_dmp_queue::ConfigData
+   * Lookup342: cumulus_pallet_dmp_queue::ConfigData
    **/
   CumulusPalletDmpQueueConfigData: {
     maxIndividual: 'u64'
   },
   /**
-   * Lookup342: cumulus_pallet_dmp_queue::PageIndexData
+   * Lookup343: cumulus_pallet_dmp_queue::PageIndexData
    **/
   CumulusPalletDmpQueuePageIndexData: {
     beginUsed: 'u32',
@@ -2724,19 +2727,19 @@
     overweightCount: 'u64'
   },
   /**
-   * Lookup345: cumulus_pallet_dmp_queue::pallet::Error<T>
+   * Lookup346: cumulus_pallet_dmp_queue::pallet::Error<T>
    **/
   CumulusPalletDmpQueueError: {
     _enum: ['Unknown', 'OverLimit']
   },
   /**
-   * Lookup349: pallet_unique::Error<T>
+   * Lookup350: pallet_unique::Error<T>
    **/
   PalletUniqueError: {
     _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
   },
   /**
-   * Lookup352: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+   * Lookup353: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
    **/
   PalletUniqueSchedulerScheduledV3: {
     maybeId: 'Option<[u8;16]>',
@@ -2746,7 +2749,7 @@
     origin: 'OpalRuntimeOriginCaller'
   },
   /**
-   * Lookup353: opal_runtime::OriginCaller
+   * Lookup354: opal_runtime::OriginCaller
    **/
   OpalRuntimeOriginCaller: {
     _enum: {
@@ -2855,7 +2858,7 @@
     }
   },
   /**
-   * Lookup354: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+   * Lookup355: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
    **/
   FrameSupportDispatchRawOrigin: {
     _enum: {
@@ -2865,7 +2868,7 @@
     }
   },
   /**
-   * Lookup355: pallet_xcm::pallet::Origin
+   * Lookup356: pallet_xcm::pallet::Origin
    **/
   PalletXcmOrigin: {
     _enum: {
@@ -2874,7 +2877,7 @@
     }
   },
   /**
-   * Lookup356: cumulus_pallet_xcm::pallet::Origin
+   * Lookup357: cumulus_pallet_xcm::pallet::Origin
    **/
   CumulusPalletXcmOrigin: {
     _enum: {
@@ -2883,7 +2886,7 @@
     }
   },
   /**
-   * Lookup357: pallet_ethereum::RawOrigin
+   * Lookup358: pallet_ethereum::RawOrigin
    **/
   PalletEthereumRawOrigin: {
     _enum: {
@@ -2891,17 +2894,17 @@
     }
   },
   /**
-   * Lookup358: sp_core::Void
+   * Lookup359: sp_core::Void
    **/
   SpCoreVoid: 'Null',
   /**
-   * Lookup359: pallet_unique_scheduler::pallet::Error<T>
+   * Lookup360: pallet_unique_scheduler::pallet::Error<T>
    **/
   PalletUniqueSchedulerError: {
     _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
   },
   /**
-   * Lookup360: up_data_structs::Collection<sp_core::crypto::AccountId32>
+   * Lookup361: up_data_structs::Collection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsCollection: {
     owner: 'AccountId32',
@@ -2915,7 +2918,7 @@
     externalCollection: 'bool'
   },
   /**
-   * Lookup361: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+   * Lookup362: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
    **/
   UpDataStructsSponsorshipStateAccountId32: {
     _enum: {
@@ -2925,7 +2928,7 @@
     }
   },
   /**
-   * Lookup362: up_data_structs::Properties
+   * Lookup363: up_data_structs::Properties
    **/
   UpDataStructsProperties: {
     map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2933,15 +2936,15 @@
     spaceLimit: 'u32'
   },
   /**
-   * Lookup363: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup364: up_data_structs::PropertiesMap<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
   /**
-   * Lookup368: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+   * Lookup369: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
    **/
   UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
   /**
-   * Lookup375: up_data_structs::CollectionStats
+   * Lookup376: up_data_structs::CollectionStats
    **/
   UpDataStructsCollectionStats: {
     created: 'u32',
@@ -2949,18 +2952,18 @@
     alive: 'u32'
   },
   /**
-   * Lookup376: up_data_structs::TokenChild
+   * Lookup377: up_data_structs::TokenChild
    **/
   UpDataStructsTokenChild: {
     token: 'u32',
     collection: 'u32'
   },
   /**
-   * Lookup377: PhantomType::up_data_structs<T>
+   * Lookup378: PhantomType::up_data_structs<T>
    **/
   PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
   /**
-   * Lookup379: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup380: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsTokenData: {
     properties: 'Vec<UpDataStructsProperty>',
@@ -2968,7 +2971,7 @@
     pieces: 'u128'
   },
   /**
-   * Lookup381: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+   * Lookup382: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsRpcCollection: {
     owner: 'AccountId32',
@@ -2984,7 +2987,7 @@
     readOnly: 'bool'
   },
   /**
-   * Lookup382: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+   * Lookup383: rmrk_traits::collection::CollectionInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
    **/
   RmrkTraitsCollectionCollectionInfo: {
     issuer: 'AccountId32',
@@ -2994,7 +2997,7 @@
     nftsCount: 'u32'
   },
   /**
-   * Lookup383: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup384: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsNftNftInfo: {
     owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -3004,14 +3007,14 @@
     pending: 'bool'
   },
   /**
-   * Lookup385: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+   * Lookup386: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
    **/
   RmrkTraitsNftRoyaltyInfo: {
     recipient: 'AccountId32',
     amount: 'Permill'
   },
   /**
-   * Lookup386: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup387: rmrk_traits::resource::ResourceInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceInfo: {
     id: 'u32',
@@ -3020,14 +3023,14 @@
     pendingRemoval: 'bool'
   },
   /**
-   * Lookup387: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup388: rmrk_traits::property::PropertyInfo<sp_runtime::bounded::bounded_vec::BoundedVec<T, S>, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPropertyPropertyInfo: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup388: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
+   * Lookup389: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, sp_runtime::bounded::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsBaseBaseInfo: {
     issuer: 'AccountId32',
@@ -3035,86 +3038,86 @@
     symbol: 'Bytes'
   },
   /**
-   * Lookup389: rmrk_traits::nft::NftChild
+   * Lookup390: rmrk_traits::nft::NftChild
    **/
   RmrkTraitsNftNftChild: {
     collectionId: 'u32',
     nftId: 'u32'
   },
   /**
-   * Lookup391: pallet_common::pallet::Error<T>
+   * Lookup392: pallet_common::pallet::Error<T>
    **/
   PalletCommonError: {
     _enum: ['CollectionNotFound', 'MustBeTokenOwner', 'NoPermission', 'CantDestroyNotEmptyCollection', 'PublicMintingNotAllowed', 'AddressNotInAllowlist', 'CollectionNameLimitExceeded', 'CollectionDescriptionLimitExceeded', 'CollectionTokenPrefixLimitExceeded', 'TotalCollectionsLimitExceeded', 'CollectionAdminCountExceeded', 'CollectionLimitBoundsExceeded', 'OwnerPermissionsCantBeReverted', 'TransferNotAllowed', 'AccountTokenLimitExceeded', 'CollectionTokenLimitExceeded', 'MetadataFlagFrozen', 'TokenNotFound', 'TokenValueTooLow', 'ApprovedValueTooLow', 'CantApproveMoreThanOwned', 'AddressIsZero', 'UnsupportedOperation', 'NotSufficientFounds', 'UserIsNotAllowedToNest', 'SourceCollectionIsNotAllowedToNest', 'CollectionFieldSizeExceeded', 'NoSpaceForProperty', 'PropertyLimitReached', 'PropertyKeyIsTooLong', 'InvalidCharacterInPropertyKey', 'EmptyPropertyKey', 'CollectionIsExternal', 'CollectionIsInternal']
   },
   /**
-   * Lookup393: pallet_fungible::pallet::Error<T>
+   * Lookup394: pallet_fungible::pallet::Error<T>
    **/
   PalletFungibleError: {
     _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup394: pallet_refungible::ItemData
+   * Lookup395: pallet_refungible::ItemData
    **/
   PalletRefungibleItemData: {
     constData: 'Bytes'
   },
   /**
-   * Lookup399: pallet_refungible::pallet::Error<T>
+   * Lookup400: pallet_refungible::pallet::Error<T>
    **/
   PalletRefungibleError: {
     _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup400: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup401: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletNonfungibleItemData: {
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup402: up_data_structs::PropertyScope
+   * Lookup403: up_data_structs::PropertyScope
    **/
   UpDataStructsPropertyScope: {
     _enum: ['None', 'Rmrk', 'Eth']
   },
   /**
-   * Lookup404: pallet_nonfungible::pallet::Error<T>
+   * Lookup405: pallet_nonfungible::pallet::Error<T>
    **/
   PalletNonfungibleError: {
     _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
   },
   /**
-   * Lookup405: pallet_structure::pallet::Error<T>
+   * Lookup406: pallet_structure::pallet::Error<T>
    **/
   PalletStructureError: {
     _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
   },
   /**
-   * Lookup406: pallet_rmrk_core::pallet::Error<T>
+   * Lookup407: pallet_rmrk_core::pallet::Error<T>
    **/
   PalletRmrkCoreError: {
     _enum: ['CorruptedCollectionType', 'RmrkPropertyKeyIsTooLong', 'RmrkPropertyValueIsTooLong', 'RmrkPropertyIsNotFound', 'UnableToDecodeRmrkData', 'CollectionNotEmpty', 'NoAvailableCollectionId', 'NoAvailableNftId', 'CollectionUnknown', 'NoPermission', 'NonTransferable', 'CollectionFullOrLocked', 'ResourceDoesntExist', 'CannotSendToDescendentOrSelf', 'CannotAcceptNonOwnedNft', 'CannotRejectNonOwnedNft', 'CannotRejectNonPendingNft', 'ResourceNotPending', 'NoAvailableResourceId']
   },
   /**
-   * Lookup408: pallet_rmrk_equip::pallet::Error<T>
+   * Lookup409: pallet_rmrk_equip::pallet::Error<T>
    **/
   PalletRmrkEquipError: {
     _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
   },
   /**
-   * Lookup410: pallet_app_promotion::pallet::Error<T>
+   * Lookup412: pallet_app_promotion::pallet::Error<T>
    **/
   PalletAppPromotionError: {
     _enum: ['AdminNotSet', 'NoPermission', 'NotSufficientFounds', 'InvalidArgument']
   },
   /**
-   * Lookup413: pallet_evm::pallet::Error<T>
+   * Lookup415: pallet_evm::pallet::Error<T>
    **/
   PalletEvmError: {
     _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
   },
   /**
-   * Lookup416: fp_rpc::TransactionStatus
+   * Lookup418: fp_rpc::TransactionStatus
    **/
   FpRpcTransactionStatus: {
     transactionHash: 'H256',
@@ -3126,11 +3129,11 @@
     logsBloom: 'EthbloomBloom'
   },
   /**
-   * Lookup418: ethbloom::Bloom
+   * Lookup420: ethbloom::Bloom
    **/
   EthbloomBloom: '[u8;256]',
   /**
-   * Lookup420: ethereum::receipt::ReceiptV3
+   * Lookup422: ethereum::receipt::ReceiptV3
    **/
   EthereumReceiptReceiptV3: {
     _enum: {
@@ -3140,7 +3143,7 @@
     }
   },
   /**
-   * Lookup421: ethereum::receipt::EIP658ReceiptData
+   * Lookup423: ethereum::receipt::EIP658ReceiptData
    **/
   EthereumReceiptEip658ReceiptData: {
     statusCode: 'u8',
@@ -3149,7 +3152,7 @@
     logs: 'Vec<EthereumLog>'
   },
   /**
-   * Lookup422: ethereum::block::Block<ethereum::transaction::TransactionV2>
+   * Lookup424: ethereum::block::Block<ethereum::transaction::TransactionV2>
    **/
   EthereumBlock: {
     header: 'EthereumHeader',
@@ -3157,7 +3160,7 @@
     ommers: 'Vec<EthereumHeader>'
   },
   /**
-   * Lookup423: ethereum::header::Header
+   * Lookup425: ethereum::header::Header
    **/
   EthereumHeader: {
     parentHash: 'H256',
@@ -3177,23 +3180,23 @@
     nonce: 'EthereumTypesHashH64'
   },
   /**
-   * Lookup424: ethereum_types::hash::H64
+   * Lookup426: ethereum_types::hash::H64
    **/
   EthereumTypesHashH64: '[u8;8]',
   /**
-   * Lookup429: pallet_ethereum::pallet::Error<T>
+   * Lookup431: pallet_ethereum::pallet::Error<T>
    **/
   PalletEthereumError: {
     _enum: ['InvalidSignature', 'PreLogExists']
   },
   /**
-   * Lookup430: pallet_evm_coder_substrate::pallet::Error<T>
+   * Lookup432: pallet_evm_coder_substrate::pallet::Error<T>
    **/
   PalletEvmCoderSubstrateError: {
     _enum: ['OutOfGas', 'OutOfFund']
   },
   /**
-   * Lookup431: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup433: up_data_structs::SponsorshipState<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsSponsorshipStateBasicCrossAccountIdRepr: {
     _enum: {
@@ -3203,25 +3206,25 @@
     }
   },
   /**
-   * Lookup432: pallet_evm_contract_helpers::SponsoringModeT
+   * Lookup434: pallet_evm_contract_helpers::SponsoringModeT
    **/
   PalletEvmContractHelpersSponsoringModeT: {
     _enum: ['Disabled', 'Allowlisted', 'Generous']
   },
   /**
-   * Lookup434: pallet_evm_contract_helpers::pallet::Error<T>
+   * Lookup436: pallet_evm_contract_helpers::pallet::Error<T>
    **/
   PalletEvmContractHelpersError: {
     _enum: ['NoPermission', 'NoPendingSponsor']
   },
   /**
-   * Lookup435: pallet_evm_migration::pallet::Error<T>
+   * Lookup437: pallet_evm_migration::pallet::Error<T>
    **/
   PalletEvmMigrationError: {
     _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
   },
   /**
-   * Lookup437: sp_runtime::MultiSignature
+   * Lookup439: sp_runtime::MultiSignature
    **/
   SpRuntimeMultiSignature: {
     _enum: {
@@ -3231,43 +3234,43 @@
     }
   },
   /**
-   * Lookup438: sp_core::ed25519::Signature
+   * Lookup440: sp_core::ed25519::Signature
    **/
   SpCoreEd25519Signature: '[u8;64]',
   /**
-   * Lookup440: sp_core::sr25519::Signature
+   * Lookup442: sp_core::sr25519::Signature
    **/
   SpCoreSr25519Signature: '[u8;64]',
   /**
-   * Lookup441: sp_core::ecdsa::Signature
+   * Lookup443: sp_core::ecdsa::Signature
    **/
   SpCoreEcdsaSignature: '[u8;65]',
   /**
-   * Lookup444: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+   * Lookup446: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
    **/
   FrameSystemExtensionsCheckSpecVersion: 'Null',
   /**
-   * Lookup445: frame_system::extensions::check_genesis::CheckGenesis<T>
+   * Lookup447: frame_system::extensions::check_genesis::CheckGenesis<T>
    **/
   FrameSystemExtensionsCheckGenesis: 'Null',
   /**
-   * Lookup448: frame_system::extensions::check_nonce::CheckNonce<T>
+   * Lookup450: frame_system::extensions::check_nonce::CheckNonce<T>
    **/
   FrameSystemExtensionsCheckNonce: 'Compact<u32>',
   /**
-   * Lookup449: frame_system::extensions::check_weight::CheckWeight<T>
+   * Lookup451: frame_system::extensions::check_weight::CheckWeight<T>
    **/
   FrameSystemExtensionsCheckWeight: 'Null',
   /**
-   * Lookup450: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+   * Lookup452: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
    **/
   PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
   /**
-   * Lookup451: opal_runtime::Runtime
+   * Lookup453: opal_runtime::Runtime
    **/
   OpalRuntimeRuntime: 'Null',
   /**
-   * Lookup452: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+   * Lookup454: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
    **/
   PalletEthereumFakeTransactionFinalizer: 'Null'
 };
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1201,7 +1201,7 @@
   /** @name PalletAppPromotionEvent (103) */
   interface PalletAppPromotionEvent extends Enum {
     readonly isStakingRecalculation: boolean;
-    readonly asStakingRecalculation: ITuple<[u128, u128]>;
+    readonly asStakingRecalculation: ITuple<[AccountId32, u128, u128]>;
     readonly type: 'StakingRecalculation';
   }
 
@@ -2682,22 +2682,26 @@
     readonly asSponsorCollection: {
       readonly collectionId: u32;
     } & Struct;
-    readonly isStopSponsorignCollection: boolean;
-    readonly asStopSponsorignCollection: {
+    readonly isStopSponsoringCollection: boolean;
+    readonly asStopSponsoringCollection: {
       readonly collectionId: u32;
     } & Struct;
     readonly isSponsorConract: boolean;
     readonly asSponsorConract: {
       readonly contractId: H160;
     } & Struct;
-    readonly isStopSponsorignContract: boolean;
-    readonly asStopSponsorignContract: {
+    readonly isStopSponsoringContract: boolean;
+    readonly asStopSponsoringContract: {
       readonly contractId: H160;
     } & Struct;
-    readonly type: 'SetAdminAddress' | 'StartAppPromotion' | 'StopAppPromotion' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsorignCollection' | 'SponsorConract' | 'StopSponsorignContract';
+    readonly isPayoutStakers: boolean;
+    readonly asPayoutStakers: {
+      readonly stakersNumber: Option<u8>;
+    } & Struct;
+    readonly type: 'SetAdminAddress' | 'StartAppPromotion' | 'StopAppPromotion' | 'Stake' | 'Unstake' | 'SponsorCollection' | 'StopSponsoringCollection' | 'SponsorConract' | 'StopSponsoringContract' | 'PayoutStakers';
   }
 
-  /** @name PalletEvmCall (305) */
+  /** @name PalletEvmCall (306) */
   interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -2742,7 +2746,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (309) */
+  /** @name PalletEthereumCall (310) */
   interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -2751,7 +2755,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (310) */
+  /** @name EthereumTransactionTransactionV2 (311) */
   interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -2762,7 +2766,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (311) */
+  /** @name EthereumTransactionLegacyTransaction (312) */
   interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -2773,7 +2777,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (312) */
+  /** @name EthereumTransactionTransactionAction (313) */
   interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -2781,14 +2785,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (313) */
+  /** @name EthereumTransactionTransactionSignature (314) */
   interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (315) */
+  /** @name EthereumTransactionEip2930Transaction (316) */
   interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2803,13 +2807,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (317) */
+  /** @name EthereumTransactionAccessListItem (318) */
   interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (318) */
+  /** @name EthereumTransactionEip1559Transaction (319) */
   interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2825,7 +2829,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (319) */
+  /** @name PalletEvmMigrationCall (320) */
   interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -2844,13 +2848,13 @@
     readonly type: 'Begin' | 'SetData' | 'Finish';
   }
 
-  /** @name PalletSudoError (322) */
+  /** @name PalletSudoError (323) */
   interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name OrmlVestingModuleError (324) */
+  /** @name OrmlVestingModuleError (325) */
   interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -2861,21 +2865,21 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (326) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (327) */
   interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (327) */
+  /** @name CumulusPalletXcmpQueueInboundState (328) */
   interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (330) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (331) */
   interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -2883,7 +2887,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (333) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (334) */
   interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -2892,14 +2896,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (334) */
+  /** @name CumulusPalletXcmpQueueOutboundState (335) */
   interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (336) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (337) */
   interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -2909,7 +2913,7 @@
     readonly xcmpMaxIndividualWeight: u64;
   }
 
-  /** @name CumulusPalletXcmpQueueError (338) */
+  /** @name CumulusPalletXcmpQueueError (339) */
   interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -2919,7 +2923,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (339) */
+  /** @name PalletXcmError (340) */
   interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -2937,29 +2941,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (340) */
+  /** @name CumulusPalletXcmError (341) */
   type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (341) */
+  /** @name CumulusPalletDmpQueueConfigData (342) */
   interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: u64;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (342) */
+  /** @name CumulusPalletDmpQueuePageIndexData (343) */
   interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (345) */
+  /** @name CumulusPalletDmpQueueError (346) */
   interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (349) */
+  /** @name PalletUniqueError (350) */
   interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isConfirmUnsetSponsorFail: boolean;
@@ -2968,7 +2972,7 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';
   }
 
-  /** @name PalletUniqueSchedulerScheduledV3 (352) */
+  /** @name PalletUniqueSchedulerScheduledV3 (353) */
   interface PalletUniqueSchedulerScheduledV3 extends Struct {
     readonly maybeId: Option<U8aFixed>;
     readonly priority: u8;
@@ -2977,7 +2981,7 @@
     readonly origin: OpalRuntimeOriginCaller;
   }
 
-  /** @name OpalRuntimeOriginCaller (353) */
+  /** @name OpalRuntimeOriginCaller (354) */
   interface OpalRuntimeOriginCaller extends Enum {
     readonly isSystem: boolean;
     readonly asSystem: FrameSupportDispatchRawOrigin;
@@ -2991,7 +2995,7 @@
     readonly type: 'System' | 'Void' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
   }
 
-  /** @name FrameSupportDispatchRawOrigin (354) */
+  /** @name FrameSupportDispatchRawOrigin (355) */
   interface FrameSupportDispatchRawOrigin extends Enum {
     readonly isRoot: boolean;
     readonly isSigned: boolean;
@@ -3000,7 +3004,7 @@
     readonly type: 'Root' | 'Signed' | 'None';
   }
 
-  /** @name PalletXcmOrigin (355) */
+  /** @name PalletXcmOrigin (356) */
   interface PalletXcmOrigin extends Enum {
     readonly isXcm: boolean;
     readonly asXcm: XcmV1MultiLocation;
@@ -3009,7 +3013,7 @@
     readonly type: 'Xcm' | 'Response';
   }
 
-  /** @name CumulusPalletXcmOrigin (356) */
+  /** @name CumulusPalletXcmOrigin (357) */
   interface CumulusPalletXcmOrigin extends Enum {
     readonly isRelay: boolean;
     readonly isSiblingParachain: boolean;
@@ -3017,17 +3021,17 @@
     readonly type: 'Relay' | 'SiblingParachain';
   }
 
-  /** @name PalletEthereumRawOrigin (357) */
+  /** @name PalletEthereumRawOrigin (358) */
   interface PalletEthereumRawOrigin extends Enum {
     readonly isEthereumTransaction: boolean;
     readonly asEthereumTransaction: H160;
     readonly type: 'EthereumTransaction';
   }
 
-  /** @name SpCoreVoid (358) */
+  /** @name SpCoreVoid (359) */
   type SpCoreVoid = Null;
 
-  /** @name PalletUniqueSchedulerError (359) */
+  /** @name PalletUniqueSchedulerError (360) */
   interface PalletUniqueSchedulerError extends Enum {
     readonly isFailedToSchedule: boolean;
     readonly isNotFound: boolean;
@@ -3036,7 +3040,7 @@
     readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
   }
 
-  /** @name UpDataStructsCollection (360) */
+  /** @name UpDataStructsCollection (361) */
   interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3049,7 +3053,7 @@
     readonly externalCollection: bool;
   }
 
-  /** @name UpDataStructsSponsorshipStateAccountId32 (361) */
+  /** @name UpDataStructsSponsorshipStateAccountId32 (362) */
   interface UpDataStructsSponsorshipStateAccountId32 extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3059,43 +3063,43 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (362) */
+  /** @name UpDataStructsProperties (363) */
   interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (363) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (364) */
   interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (368) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (369) */
   interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (375) */
+  /** @name UpDataStructsCollectionStats (376) */
   interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (376) */
+  /** @name UpDataStructsTokenChild (377) */
   interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (377) */
+  /** @name PhantomTypeUpDataStructs (378) */
   interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (379) */
+  /** @name UpDataStructsTokenData (380) */
   interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
     readonly pieces: u128;
   }
 
-  /** @name UpDataStructsRpcCollection (381) */
+  /** @name UpDataStructsRpcCollection (382) */
   interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3110,7 +3114,7 @@
     readonly readOnly: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (382) */
+  /** @name RmrkTraitsCollectionCollectionInfo (383) */
   interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -3119,7 +3123,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (383) */
+  /** @name RmrkTraitsNftNftInfo (384) */
   interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -3128,13 +3132,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (385) */
+  /** @name RmrkTraitsNftRoyaltyInfo (386) */
   interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (386) */
+  /** @name RmrkTraitsResourceResourceInfo (387) */
   interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -3142,26 +3146,26 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsPropertyPropertyInfo (387) */
+  /** @name RmrkTraitsPropertyPropertyInfo (388) */
   interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (388) */
+  /** @name RmrkTraitsBaseBaseInfo (389) */
   interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (389) */
+  /** @name RmrkTraitsNftNftChild (390) */
   interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (391) */
+  /** @name PalletCommonError (392) */
   interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3200,7 +3204,7 @@
     readonly type: 'CollectionNotFound' | 'MustBeTokenOwner' | 'NoPermission' | 'CantDestroyNotEmptyCollection' | 'PublicMintingNotAllowed' | 'AddressNotInAllowlist' | 'CollectionNameLimitExceeded' | 'CollectionDescriptionLimitExceeded' | 'CollectionTokenPrefixLimitExceeded' | 'TotalCollectionsLimitExceeded' | 'CollectionAdminCountExceeded' | 'CollectionLimitBoundsExceeded' | 'OwnerPermissionsCantBeReverted' | 'TransferNotAllowed' | 'AccountTokenLimitExceeded' | 'CollectionTokenLimitExceeded' | 'MetadataFlagFrozen' | 'TokenNotFound' | 'TokenValueTooLow' | 'ApprovedValueTooLow' | 'CantApproveMoreThanOwned' | 'AddressIsZero' | 'UnsupportedOperation' | 'NotSufficientFounds' | 'UserIsNotAllowedToNest' | 'SourceCollectionIsNotAllowedToNest' | 'CollectionFieldSizeExceeded' | 'NoSpaceForProperty' | 'PropertyLimitReached' | 'PropertyKeyIsTooLong' | 'InvalidCharacterInPropertyKey' | 'EmptyPropertyKey' | 'CollectionIsExternal' | 'CollectionIsInternal';
   }
 
-  /** @name PalletFungibleError (393) */
+  /** @name PalletFungibleError (394) */
   interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3210,12 +3214,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (394) */
+  /** @name PalletRefungibleItemData (395) */
   interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (399) */
+  /** @name PalletRefungibleError (400) */
   interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3225,12 +3229,12 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (400) */
+  /** @name PalletNonfungibleItemData (401) */
   interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsPropertyScope (402) */
+  /** @name UpDataStructsPropertyScope (403) */
   interface UpDataStructsPropertyScope extends Enum {
     readonly isNone: boolean;
     readonly isRmrk: boolean;
@@ -3238,7 +3242,7 @@
     readonly type: 'None' | 'Rmrk' | 'Eth';
   }
 
-  /** @name PalletNonfungibleError (404) */
+  /** @name PalletNonfungibleError (405) */
   interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3246,7 +3250,7 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (405) */
+  /** @name PalletStructureError (406) */
   interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -3255,7 +3259,7 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (406) */
+  /** @name PalletRmrkCoreError (407) */
   interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isRmrkPropertyKeyIsTooLong: boolean;
@@ -3279,7 +3283,7 @@
     readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
   }
 
-  /** @name PalletRmrkEquipError (408) */
+  /** @name PalletRmrkEquipError (409) */
   interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3291,7 +3295,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';
   }
 
-  /** @name PalletAppPromotionError (410) */
+  /** @name PalletAppPromotionError (412) */
   interface PalletAppPromotionError extends Enum {
     readonly isAdminNotSet: boolean;
     readonly isNoPermission: boolean;
@@ -3300,7 +3304,7 @@
     readonly type: 'AdminNotSet' | 'NoPermission' | 'NotSufficientFounds' | 'InvalidArgument';
   }
 
-  /** @name PalletEvmError (413) */
+  /** @name PalletEvmError (415) */
   interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3311,7 +3315,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (416) */
+  /** @name FpRpcTransactionStatus (418) */
   interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3322,10 +3326,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (418) */
+  /** @name EthbloomBloom (420) */
   interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (420) */
+  /** @name EthereumReceiptReceiptV3 (422) */
   interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3336,7 +3340,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (421) */
+  /** @name EthereumReceiptEip658ReceiptData (423) */
   interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3344,14 +3348,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (422) */
+  /** @name EthereumBlock (424) */
   interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (423) */
+  /** @name EthereumHeader (425) */
   interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3370,24 +3374,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (424) */
+  /** @name EthereumTypesHashH64 (426) */
   interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (429) */
+  /** @name PalletEthereumError (431) */
   interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (430) */
+  /** @name PalletEvmCoderSubstrateError (432) */
   interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (431) */
+  /** @name UpDataStructsSponsorshipStateBasicCrossAccountIdRepr (433) */
   interface UpDataStructsSponsorshipStateBasicCrossAccountIdRepr extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -3397,7 +3401,7 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (432) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (434) */
   interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3405,21 +3409,21 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (434) */
+  /** @name PalletEvmContractHelpersError (436) */
   interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly isNoPendingSponsor: boolean;
     readonly type: 'NoPermission' | 'NoPendingSponsor';
   }
 
-  /** @name PalletEvmMigrationError (435) */
+  /** @name PalletEvmMigrationError (437) */
   interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (437) */
+  /** @name SpRuntimeMultiSignature (439) */
   interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3430,34 +3434,34 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (438) */
+  /** @name SpCoreEd25519Signature (440) */
   interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (440) */
+  /** @name SpCoreSr25519Signature (442) */
   interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (441) */
+  /** @name SpCoreEcdsaSignature (443) */
   interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (444) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (446) */
   type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (445) */
+  /** @name FrameSystemExtensionsCheckGenesis (447) */
   type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (448) */
+  /** @name FrameSystemExtensionsCheckNonce (450) */
   interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (449) */
+  /** @name FrameSystemExtensionsCheckWeight (451) */
   type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (450) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (452) */
   interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (451) */
+  /** @name OpalRuntimeRuntime (453) */
   type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (452) */
+  /** @name PalletEthereumFakeTransactionFinalizer (454) */
   type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module