git.delta.rocks / unique-network / refs/commits / 258c7f483482

difftreelog

extensions yaml -> yml

Alexander Aksenov2022-08-15parents: #60de661 #0908fa4.patch.diff
in: master

36 files changed

modified.docker/Dockerfile-parachaindiffbeforeafterboth
--- a/.docker/Dockerfile-parachain
+++ b/.docker/Dockerfile-parachain
@@ -41,7 +41,6 @@
 RUN git clone $REPO_URL -b $BRANCH && \
     cargo build --features=$FEATURE --$PROFILE
 
-
 # ===== BUILD POLKADOT =====
 FROM rust-builder as builder-polkadot
 
deleted.docker/docker-compose-master.yamldiffbeforeafterboth
--- a/.docker/docker-compose-master.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: "3.5"
-
-services:
-  blockchain_nodes:
-    build:
-      context: ../
-      dockerfile: .docker/Dockerfile-parachain
-    image: blockchain_nodes
-    container_name: blockchain_nodes
-    expose:
-      - 9944
-      - 9933
-    ports:
-      - 127.0.0.1:9944:9944
-      - 127.0.0.1:9933:9933
-    logging:
-      options:
-        max-size: "1m"
-        max-file: "3"
added.docker/docker-compose-master.ymldiffbeforeafterboth
--- /dev/null
+++ b/.docker/docker-compose-master.yml
@@ -0,0 +1,19 @@
+version: "3.5"
+
+services:
+  blockchain_nodes:
+    build:
+      context: ../
+      dockerfile: .docker/Dockerfile-parachain
+    image: blockchain_nodes
+    container_name: blockchain_nodes
+    expose:
+      - 9944
+      - 9933
+    ports:
+      - 127.0.0.1:9944:9944
+      - 127.0.0.1:9933:9933
+    logging:
+      options:
+        max-size: "1m"
+        max-file: "3"
modified.docker/forking/docker-compose-fork.yamldiffbeforeafterboth
--- a/.docker/forking/docker-compose-fork.yaml
+++ b/.docker/forking/docker-compose-fork.yaml
@@ -3,8 +3,8 @@
 services:
   parachain-fork:
     build:
-      context: ../
-      dockerfile: .docker/forking/Dockerfile-parachain-live-fork
+      context: ./
+      dockerfile: ./Dockerfile-parachain-live-fork
     image: parachain-fork
     container_name: parachain-fork
     volumes:
modified.docker/forking/docker-compose.tmp-fork.j2diffbeforeafterboth
--- a/.docker/forking/docker-compose.tmp-fork.j2
+++ b/.docker/forking/docker-compose.tmp-fork.j2
@@ -10,6 +10,4 @@
         - "FEATURE={{ FEATURE }}"
         - "RUNTIME={{ RUNTIME }}"
         - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
-        - "MAINNET_TAG={{ MAINNET_TAG }}"
-        - "MAINNET_BRANCH={{ MAINNET_BRANCH }}"
         - "FORK_FROM={{ FORK_FROM }}"
modified.github/workflows/build-test-master.ymldiffbeforeafterboth
--- a/.github/workflows/build-test-master.yml
+++ b/.github/workflows/build-test-master.yml
@@ -22,7 +22,7 @@
 # A workflow run is made up of one or more jobs that can run sequentially or in parallel
 jobs:
 
-  build:
+  master-build-and-test:
     # The type of runner that the job will run on
     runs-on: self-hosted-ci
 
@@ -35,11 +35,11 @@
       matrix:
         include:
           - network: "Opal"
-            features: " "
+            features: "opal-runtime"
           - network: "Quartz"
-            features: "--features=quartz-runtime"
+            features: "quartz-runtime"
           - network: "Unique"
-            features: "--features=unique-runtime"
+            features: "unique-runtime"
 
     steps:
       - name: Skip if pull request is in Draft
modified.github/workflows/fork-update-withdata.ymldiffbeforeafterboth
--- a/.github/workflows/fork-update-withdata.yml
+++ b/.github/workflows/fork-update-withdata.yml
@@ -22,39 +22,7 @@
 # A workflow run is made up of one or more jobs that can run sequentially or in parallel
 jobs:
 
-  prepare-execution-marix-fork:
-    
-    name: Prepare execution matrix for fork
-    
-    runs-on: self-hosted-ci
-    outputs:
-      matrix: ${{ steps.create_matrix.outputs.matrix }}
-    steps:
-      
-      - name: Clean Workspace
-        uses: AutoModality/action-clean@v1.1.0
-
-      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
-      - uses: actions/checkout@v3
-        with:
-          ref: ${{ github.head_ref }}  #Checking out head commit
-
-      - name: Read .env file
-        uses: xom9ikk/dotenv@v1.0.2
-
-      - name: Create Execution matrix
-        uses: fabiocaccamo/create-matrix-action@v2
-        id: create_matrix
-        with:
-          matrix: |
-            network {Opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, fork_from_address {'wss://eu-ws-opal.unique.network:443'}
-            network {Quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {'wss://eu-ws-quartz.unique.network:443'}
-            network {Unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, fork_from_address {'wss://eu-ws.unique.network:443'}
-
-
-
   fork-update-withdata:
-    needs: prepare-execution-marix-fork
     # The type of runner that the job will run on
     runs-on: self-hosted-ci
 
@@ -64,7 +32,19 @@
 
     strategy:
       matrix:
-        include: ${{fromJson(needs.prepare-execution-marix-fork.outputs.matrix)}}
+        include:
+          - network: Opal
+            features: opal-runtime
+            runtime: opal
+            fork_from_address: wss://eu-ws-opal.unique.network:443
+          - network: Quartz
+            features: quartz-runtime
+            runtime: quartz
+            fork_from_address: wss://eu-ws-quartz.unique.network:443
+          - network: Unique
+            features: unique-runtime
+            runtime: unique
+            fork_from_address: wss://eu-ws.unique.network:443
 
     steps:
       - name: Skip if pull request is in Draft
@@ -106,8 +86,6 @@
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
             POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
-            MAINNET_TAG=${{ matrix.mainnet_tag }}
-            MAINNET_BRANCH=${{ matrix.mainnet_branch }}
             FEATURE=${{ matrix.features }}
             RUNTIME=${{ matrix.runtime }}
             BRANCH=${{ github.head_ref }}
modified.github/workflows/try-runtime.ymldiffbeforeafterboth
--- a/.github/workflows/try-runtime.yml
+++ b/.github/workflows/try-runtime.yml
@@ -91,7 +91,7 @@
 
 
       - name: Build the stack
-        run: docker-compose -f ".docker/docker-compose-try-runtime.yaml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
+        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --build  --force-recreate --timeout 300
 
 
       - name: Collect Docker Logs
@@ -114,4 +114,4 @@
 
       - name: Stop running containers
         if: always()                   # run this step always
-        run: docker-compose -f ".docker/forking/docker-compose-try-runtime.yaml" -f ".docker/forking/docker-compose.try-runtime.${{ matrix.network }}.yml" down
+        run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down
modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5309,6 +5309,7 @@
  "pallet-balances",
  "pallet-base-fee",
  "pallet-common",
+ "pallet-configuration",
  "pallet-ethereum",
  "pallet-evm",
  "pallet-evm-coder-substrate",
@@ -5744,6 +5745,22 @@
 ]
 
 [[package]]
+name = "pallet-configuration"
+version = "0.1.0"
+dependencies = [
+ "fp-evm",
+ "frame-support",
+ "frame-system",
+ "parity-scale-codec 3.1.5",
+ "scale-info",
+ "smallvec",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
 name = "pallet-democracy"
 version = "4.0.0-dev"
 source = "git+https://github.com/uniquenetwork/substrate?branch=polkadot-v0.9.24-hack-substitute#1fa76b0665d32b1e28c36da67e54da1816db3fa2"
@@ -8625,6 +8642,7 @@
  "pallet-balances",
  "pallet-base-fee",
  "pallet-common",
+ "pallet-configuration",
  "pallet-ethereum",
  "pallet-evm",
  "pallet-evm-coder-substrate",
@@ -12630,6 +12648,7 @@
  "pallet-balances",
  "pallet-base-fee",
  "pallet-common",
+ "pallet-configuration",
  "pallet-ethereum",
  "pallet-evm",
  "pallet-evm-coder-substrate",
addedpallets/configuration/Cargo.tomldiffbeforeafterboth
--- /dev/null
+++ b/pallets/configuration/Cargo.toml
@@ -0,0 +1,33 @@
+[package]
+name = "pallet-configuration"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+parity-scale-codec = { version = "3.1.5", features = [
+	"derive",
+], default-features = false }
+scale-info = { version = "2.0.1", default-features = false, features = [
+	"derive",
+] }
+frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" }
+fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }
+smallvec = "1.6.1"
+
+[features]
+default = ["std"]
+std = [
+	"parity-scale-codec/std",
+	"frame-support/std",
+	"frame-system/std",
+	"sp-runtime/std",
+	"sp-std/std",
+	"sp-core/std",
+	"sp-arithmetic/std",
+	"fp-evm/std",
+]
addedpallets/configuration/src/lib.rsdiffbeforeafterboth
--- /dev/null
+++ b/pallets/configuration/src/lib.rs
@@ -0,0 +1,124 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+use core::marker::PhantomData;
+
+use frame_support::{
+	pallet,
+	weights::{WeightToFeePolynomial, WeightToFeeCoefficients, WeightToFeeCoefficient},
+	traits::Get,
+};
+use sp_arithmetic::traits::{BaseArithmetic, Unsigned};
+use smallvec::smallvec;
+
+pub use pallet::*;
+use sp_core::U256;
+use sp_runtime::Perbill;
+
+#[pallet]
+mod pallet {
+	use super::*;
+	use frame_support::{
+		traits::Get,
+		pallet_prelude::{StorageValue, ValueQuery, DispatchResult},
+	};
+	use frame_system::{pallet_prelude::OriginFor, ensure_root};
+
+	#[pallet::config]
+	pub trait Config: frame_system::Config {
+		#[pallet::constant]
+		type DefaultWeightToFeeCoefficient: Get<u32>;
+		#[pallet::constant]
+		type DefaultMinGasPrice: Get<u64>;
+	}
+
+	#[pallet::storage]
+	pub type WeightToFeeCoefficientOverride<T: Config> = StorageValue<
+		Value = u32,
+		QueryKind = ValueQuery,
+		OnEmpty = T::DefaultWeightToFeeCoefficient,
+	>;
+
+	#[pallet::storage]
+	pub type MinGasPriceOverride<T: Config> =
+		StorageValue<Value = u64, QueryKind = ValueQuery, OnEmpty = T::DefaultMinGasPrice>;
+
+	#[pallet::call]
+	impl<T: Config> Pallet<T> {
+		#[pallet::weight(T::DbWeight::get().writes(1))]
+		pub fn set_weight_to_fee_coefficient_override(
+			origin: OriginFor<T>,
+			coeff: Option<u32>,
+		) -> DispatchResult {
+			let _sender = ensure_root(origin)?;
+			if let Some(coeff) = coeff {
+				<WeightToFeeCoefficientOverride<T>>::set(coeff);
+			} else {
+				<WeightToFeeCoefficientOverride<T>>::kill();
+			}
+			Ok(())
+		}
+
+		#[pallet::weight(T::DbWeight::get().writes(1))]
+		pub fn set_min_gas_price_override(
+			origin: OriginFor<T>,
+			coeff: Option<u64>,
+		) -> DispatchResult {
+			let _sender = ensure_root(origin)?;
+			if let Some(coeff) = coeff {
+				<MinGasPriceOverride<T>>::set(coeff);
+			} else {
+				<MinGasPriceOverride<T>>::kill();
+			}
+			Ok(())
+		}
+	}
+
+	#[pallet::pallet]
+	#[pallet::generate_store(pub(super) trait Store)]
+	pub struct Pallet<T>(_);
+}
+
+pub struct WeightToFee<T, B>(PhantomData<(T, B)>);
+
+impl<T, B> WeightToFeePolynomial for WeightToFee<T, B>
+where
+	T: Config,
+	B: BaseArithmetic + From<u32> + Copy + Unsigned,
+{
+	type Balance = B;
+
+	fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
+		smallvec!(WeightToFeeCoefficient {
+			coeff_integer: <WeightToFeeCoefficientOverride<T>>::get().into(),
+			coeff_frac: Perbill::zero(),
+			negative: false,
+			degree: 1,
+		})
+	}
+}
+
+pub struct FeeCalculator<T>(PhantomData<T>);
+impl<T: Config> fp_evm::FeeCalculator for FeeCalculator<T> {
+	fn min_gas_price() -> (U256, u64) {
+		(
+			<MinGasPriceOverride<T>>::get().into(),
+			T::DbWeight::get().reads(1),
+		)
+	}
+}
modifiedpallets/refungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -35,8 +35,8 @@
 
 fn create_max_item_data<CrossAccountId: Ord>(
 	users: impl IntoIterator<Item = (CrossAccountId, u128)>,
-) -> CreateRefungibleExData<CrossAccountId> {
-	CreateRefungibleExData {
+) -> CreateItemData<CrossAccountId> {
+	CreateItemData {
 		users: users
 			.into_iter()
 			.collect::<BTreeMap<_, _>>()
@@ -51,7 +51,7 @@
 	sender: &T::CrossAccountId,
 	users: impl IntoIterator<Item = (T::CrossAccountId, u128)>,
 ) -> Result<TokenId, DispatchError> {
-	let data: CreateRefungibleExData<T::CrossAccountId> = create_max_item_data(users);
+	let data: CreateItemData<T::CrossAccountId> = create_max_item_data(users);
 	<Pallet<T>>::create_item(&collection, sender, data, &Unlimited)?;
 	Ok(TokenId(<TokensMinted<T>>::get(&collection.id)))
 }
modifiedprimitives/common/src/constants.rsdiffbeforeafterboth
--- a/primitives/common/src/constants.rs
+++ b/primitives/common/src/constants.rs
@@ -36,10 +36,10 @@
 pub const UNIQUE: Balance = 100 * CENTIUNIQUE;
 
 // Targeting 0.1 UNQ per transfer
-pub const WEIGHT_TO_FEE_COEFF: u32 = 207_890_902;
+pub const WEIGHT_TO_FEE_COEFF: u32 = /*<weight2fee>*/207_267_232/*</weight2fee>*/;
 
 // Targeting 0.15 UNQ per transfer via ETH
-pub const MIN_GAS_PRICE: u64 = 1_019_493_469_850;
+pub const MIN_GAS_PRICE: u64 = /*<mingasprice>*/1_019_488_372_383/*</mingasprice>*/;
 
 /// We assume that ~10% of the block weight is consumed by `on_initalize` handlers.
 /// This is used to limit the maximal weight of a single extrinsic.
modifiedruntime/common/config/ethereum.rsdiffbeforeafterboth
--- a/runtime/common/config/ethereum.rs
+++ b/runtime/common/config/ethereum.rs
@@ -50,13 +50,6 @@
 	}
 }
 
-pub struct FixedFee;
-impl pallet_evm::FeeCalculator for FixedFee {
-	fn min_gas_price() -> (U256, u64) {
-		(MIN_GAS_PRICE.into(), 0)
-	}
-}
-
 pub struct EthereumFindAuthor<F>(core::marker::PhantomData<F>);
 impl<F: FindAuthor<u32>> FindAuthor<H160> for EthereumFindAuthor<F> {
 	fn find_author<'a, I>(digests: I) -> Option<H160>
@@ -73,7 +66,7 @@
 
 impl pallet_evm::Config for Runtime {
 	type BlockGasLimit = BlockGasLimit;
-	type FeeCalculator = FixedFee;
+	type FeeCalculator = pallet_configuration::FeeCalculator<Self>;
 	type GasWeightMapping = FixedGasWeightMapping;
 	type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping<Self>;
 	type CallOrigin = EnsureAddressTruncated<Self>;
modifiedruntime/common/config/pallets/mod.rsdiffbeforeafterboth
--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -25,6 +25,7 @@
 	},
 	Runtime, Event, Call, Balances,
 };
+use frame_support::traits::{ConstU32, ConstU64};
 use up_common::{
 	types::{AccountId, Balance, BlockNumber},
 	constants::*,
@@ -91,3 +92,8 @@
 	type CommonWeightInfo = CommonWeights<Self>;
 	type RefungibleExtensionsWeightInfo = CommonWeights<Self>;
 }
+
+impl pallet_configuration::Config for Runtime {
+	type DefaultWeightToFeeCoefficient = ConstU32<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>;
+	type DefaultMinGasPrice = ConstU64<{ up_common::constants::MIN_GAS_PRICE }>;
+}
modifiedruntime/common/config/substrate.rsdiffbeforeafterboth
--- a/runtime/common/config/substrate.rs
+++ b/runtime/common/config/substrate.rs
@@ -18,8 +18,7 @@
 	traits::{Everything, ConstU32},
 	weights::{
 		constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight},
-		DispatchClass, WeightToFeePolynomial, WeightToFeeCoefficients, ConstantMultiplier,
-		WeightToFeeCoefficient,
+		DispatchClass, ConstantMultiplier,
 	},
 	parameter_types, PalletId,
 };
@@ -32,8 +31,6 @@
 	limits::{BlockLength, BlockWeights},
 	EnsureRoot,
 };
-use sp_arithmetic::traits::{BaseArithmetic, Unsigned};
-use smallvec::smallvec;
 use crate::{
 	runtime_common::DealWithFees, Runtime, Event, Call, Origin, PalletInfo, System, Balances,
 	Treasury, SS58Prefix, Version,
@@ -154,32 +151,13 @@
 	/// This value increases the priority of `Operational` transactions by adding
 	/// a "virtual tip" that's equal to the `OperationalFeeMultiplier * final_fee`.
 	pub const OperationalFeeMultiplier: u8 = 5;
-}
-
-/// Linear implementor of `WeightToFeePolynomial`
-pub struct LinearFee<T>(sp_std::marker::PhantomData<T>);
-
-impl<T> WeightToFeePolynomial for LinearFee<T>
-where
-	T: BaseArithmetic + From<u32> + Copy + Unsigned,
-{
-	type Balance = T;
-
-	fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
-		smallvec!(WeightToFeeCoefficient {
-			coeff_integer: WEIGHT_TO_FEE_COEFF.into(),
-			coeff_frac: Perbill::zero(),
-			negative: false,
-			degree: 1,
-		})
-	}
 }
 
 impl pallet_transaction_payment::Config for Runtime {
 	type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees>;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type OperationalFeeMultiplier = OperationalFeeMultiplier;
-	type WeightToFee = LinearFee<Balance>;
+	type WeightToFee = pallet_configuration::WeightToFee<Self, Balance>;
 	type FeeMultiplierUpdate = ();
 }
 
modifiedruntime/common/config/xcm.rsdiffbeforeafterboth
--- a/runtime/common/config/xcm.rs
+++ b/runtime/common/config/xcm.rs
@@ -44,8 +44,7 @@
 use xcm_executor::{Config, XcmExecutor, Assets};
 use sp_std::marker::PhantomData;
 use crate::{
-	runtime_common::config::substrate::LinearFee, Runtime, Call, Event, Origin, Balances,
-	ParachainInfo, ParachainSystem, PolkadotXcm, XcmpQueue,
+	Runtime, Call, Event, Origin, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, XcmpQueue,
 };
 use up_common::{
 	types::{AccountId, Balance},
@@ -234,8 +233,11 @@
 	}
 }
 
-pub struct XcmConfig;
-impl Config for XcmConfig {
+pub struct XcmConfig<T>(PhantomData<T>);
+impl<T> Config for XcmConfig<T>
+where
+	T: pallet_configuration::Config,
+{
 	type Call = Call;
 	type XcmSender = XcmRouter;
 	// How to withdraw and deposit an asset.
@@ -246,8 +248,13 @@
 	type LocationInverter = LocationInverter<Ancestry>;
 	type Barrier = Barrier;
 	type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
-	type Trader =
-		UsingOnlySelfCurrencyComponents<LinearFee<Balance>, RelayLocation, AccountId, Balances, ()>;
+	type Trader = UsingOnlySelfCurrencyComponents<
+		pallet_configuration::WeightToFee<T, Balance>,
+		RelayLocation,
+		AccountId,
+		Balances,
+		(),
+	>;
 	type ResponseHandler = (); // Don't handle responses for now.
 	type SubscriptionService = PolkadotXcm;
 
@@ -261,7 +268,7 @@
 	type XcmRouter = XcmRouter;
 	type ExecuteXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
 	type XcmExecuteFilter = Everything;
-	type XcmExecutor = XcmExecutor<XcmConfig>;
+	type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
 	type XcmTeleportFilter = Everything;
 	type XcmReserveTransferFilter = Everything;
 	type Weigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
@@ -274,13 +281,13 @@
 
 impl cumulus_pallet_xcm::Config for Runtime {
 	type Event = Event;
-	type XcmExecutor = XcmExecutor<XcmConfig>;
+	type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
 }
 
 impl cumulus_pallet_xcmp_queue::Config for Runtime {
 	type WeightInfo = ();
 	type Event = Event;
-	type XcmExecutor = XcmExecutor<XcmConfig>;
+	type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
 	type ChannelInfo = ParachainSystem;
 	type VersionWrapper = ();
 	type ExecuteOverweightOrigin = frame_system::EnsureRoot<AccountId>;
@@ -290,6 +297,6 @@
 
 impl cumulus_pallet_dmp_queue::Config for Runtime {
 	type Event = Event;
-	type XcmExecutor = XcmExecutor<XcmConfig>;
+	type XcmExecutor = XcmExecutor<XcmConfig<Self>>;
 	type ExecuteOverweightOrigin = frame_system::EnsureRoot<AccountId>;
 }
modifiedruntime/common/construct_runtime/mod.rsdiffbeforeafterboth
--- a/runtime/common/construct_runtime/mod.rs
+++ b/runtime/common/construct_runtime/mod.rs
@@ -57,7 +57,7 @@
                 #[runtimes(opal)]
                 Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
 
-                // free = 63
+                Configuration: pallet_configuration::{Pallet, Call, Storage} = 63,
 
                 Charging: pallet_charge_transaction::{Pallet, Call, Storage } = 64,
                 // ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
modifiedruntime/common/runtime_apis.rsdiffbeforeafterboth
--- a/runtime/common/runtime_apis.rs
+++ b/runtime/common/runtime_apis.rs
@@ -639,14 +639,18 @@
                     list_benchmark!(list, extra, pallet_structure, Structure);
                     list_benchmark!(list, extra, pallet_inflation, Inflation);
                     list_benchmark!(list, extra, pallet_fungible, Fungible);
+                    list_benchmark!(list, extra, pallet_nonfungible, Nonfungible);
+
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     list_benchmark!(list, extra, pallet_refungible, Refungible);
-                    list_benchmark!(list, extra, pallet_nonfungible, Nonfungible);
+
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     list_benchmark!(list, extra, pallet_unique_scheduler, Scheduler);
 
-                    #[cfg(not(feature = "unique-runtime"))]
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     list_benchmark!(list, extra, pallet_proxy_rmrk_core, RmrkCore);
 
-                    #[cfg(not(feature = "unique-runtime"))]
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     list_benchmark!(list, extra, pallet_proxy_rmrk_equip, RmrkEquip);
 
                     // list_benchmark!(list, extra, pallet_evm_coder_substrate, EvmCoderSubstrate);
@@ -690,14 +694,18 @@
                     add_benchmark!(params, batches, pallet_structure, Structure);
                     add_benchmark!(params, batches, pallet_inflation, Inflation);
                     add_benchmark!(params, batches, pallet_fungible, Fungible);
+                    add_benchmark!(params, batches, pallet_nonfungible, Nonfungible);
+
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     add_benchmark!(params, batches, pallet_refungible, Refungible);
-                    add_benchmark!(params, batches, pallet_nonfungible, Nonfungible);
+
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     add_benchmark!(params, batches, pallet_unique_scheduler, Scheduler);
 
-                    #[cfg(not(feature = "unique-runtime"))]
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     add_benchmark!(params, batches, pallet_proxy_rmrk_core, RmrkCore);
 
-                    #[cfg(not(feature = "unique-runtime"))]
+                    #[cfg(not(any(feature = "unique-runtime", feature = "quartz-runtime")))]
                     add_benchmark!(params, batches, pallet_proxy_rmrk_equip, RmrkEquip);
 
                     // add_benchmark!(params, batches, pallet_evm_coder_substrate, EvmCoderSubstrate);
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -87,6 +87,7 @@
     'parachain-info/std',
     'serde',
     'pallet-inflation/std',
+    'pallet-configuration/std',
     'pallet-common/std',
     'pallet-structure/std',
     'pallet-fungible/std',
@@ -414,6 +415,7 @@
 fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }
 pallet-inflation = { path = '../../pallets/inflation', default-features = false }
 up-data-structs = { path = '../../primitives/data-structs', default-features = false }
+pallet-configuration = { default-features = false, path = "../../pallets/configuration" }
 pallet-common = { default-features = false, path = "../../pallets/common" }
 pallet-structure = { default-features = false, path = "../../pallets/structure" }
 pallet-fungible = { default-features = false, path = "../../pallets/fungible" }
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -87,6 +87,7 @@
     'parachain-info/std',
     'serde',
     'pallet-inflation/std',
+    'pallet-configuration/std',
     'pallet-common/std',
     'pallet-structure/std',
     'pallet-fungible/std',
@@ -418,6 +419,7 @@
 fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.24" }
 pallet-inflation = { path = '../../pallets/inflation', default-features = false }
 up-data-structs = { path = '../../primitives/data-structs', default-features = false }
+pallet-configuration = { default-features = false, path = "../../pallets/configuration" }
 pallet-common = { default-features = false, path = "../../pallets/common" }
 pallet-structure = { default-features = false, path = "../../pallets/structure" }
 pallet-fungible = { default-features = false, path = "../../pallets/fungible" }
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -88,6 +88,7 @@
     'parachain-info/std',
     'serde',
     'pallet-inflation/std',
+    'pallet-configuration/std',
     'pallet-common/std',
     'pallet-structure/std',
     'pallet-fungible/std',
@@ -411,6 +412,7 @@
 rmrk-rpc = { path = "../../primitives/rmrk-rpc", default-features = false }
 pallet-inflation = { path = '../../pallets/inflation', default-features = false }
 up-data-structs = { path = '../../primitives/data-structs', default-features = false }
+pallet-configuration = { default-features = false, path = "../../pallets/configuration" }
 pallet-common = { default-features = false, path = "../../pallets/common" }
 pallet-structure = { default-features = false, path = "../../pallets/structure" }
 pallet-fungible = { default-features = false, path = "../../pallets/fungible" }
modifiedtests/.eslintrc.jsondiffbeforeafterboth
--- a/tests/.eslintrc.json
+++ b/tests/.eslintrc.json
@@ -55,7 +55,13 @@
         "@typescript-eslint/no-empty-function": "off",
         "@typescript-eslint/no-non-null-assertion": "off",
         "@typescript-eslint/no-explicit-any": "off",
-        "@typescript-eslint/no-unused-vars": "warn",
+        "@typescript-eslint/no-unused-vars": [
+            "warn",
+            {
+                "varsIgnorePattern": "_.+",
+                "argsIgnorePattern": "_.+"
+            }
+        ],
         "no-async-promise-executor": "warn",
         "@typescript-eslint/no-empty-interface": "off",
         "prefer-const": [
addedtests/src/calibrate.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/calibrate.ts
@@ -0,0 +1,182 @@
+import {ApiPromise} from '@polkadot/api';
+import {IKeyringPair} from '@polkadot/types/types';
+import Web3 from 'web3';
+import {collectionIdToAddress, createEthAccount, createEthAccountWithBalance, GAS_ARGS, recordEthFee, usingWeb3} from './eth/util/helpers';
+import usingApi, {executeTransaction} from './substrate/substrate-api';
+import {createCollectionExpectSuccess, createItemExpectSuccess, transferExpectSuccess, UNIQUE, waitNewBlocks} from './util/helpers';
+import nonFungibleAbi from './eth/nonFungibleAbi.json';
+
+function linearRegression(points: { x: bigint, y: bigint }[]) {
+  let sumxy = 0n;
+  let sumx = 0n;
+  let sumy = 0n;
+  let sumx2 = 0n;
+  const n = points.length;
+  for (let i = 0; i < n; i++) {
+    const p = points[i];
+    sumxy += p.x * p.y;
+    sumx += p.x;
+    sumy += p.y;
+    sumx2 += p.x * p.x;
+  }
+
+  const nb = BigInt(n);
+
+  const a = (nb * sumxy - sumx * sumy) / (nb * sumx2 - sumx * sumx);
+  const b = (sumy - a * sumx) / nb;
+
+  return {a, b};
+}
+
+// JS has no builtin function to calculate sqrt of bigint
+// https://stackoverflow.com/a/53684036/6190169
+function sqrt(value: bigint) {
+  if (value < 0n) {
+    throw 'square root of negative numbers is not supported';
+  }
+
+  if (value < 2n) {
+    return value;
+  }
+
+  function newtonIteration(n: bigint, x0: bigint): bigint {
+    const x1 = ((n / x0) + x0) >> 1n;
+    if (x0 === x1 || x0 === (x1 - 1n)) {
+      return x0;
+    }
+    return newtonIteration(n, x1);
+  }
+
+  return newtonIteration(value, 1n);
+}
+
+function _error(points: { x: bigint, y: bigint }[], hypothesis: (a: bigint) => bigint) {
+  return sqrt(points.map(p => {
+    const v = hypothesis(p.x);
+    const vv = p.y;
+
+    return (v - vv) ** 2n;
+  }).reduce((a, b) => a + b, 0n) / BigInt(points.length));
+}
+
+async function calibrateWeightToFee(api: ApiPromise, privateKey: (account: string) => IKeyringPair) {
+  const alice = privateKey('//Alice');
+  const bob = privateKey('//Bob');
+  const dataPoints = [];
+
+  {
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+    const aliceBalanceBefore = (await api.query.system.account(alice.address)).data.free.toBigInt();
+    await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
+    const aliceBalanceAfter = (await api.query.system.account(alice.address)).data.free.toBigInt();
+
+    console.log(`Original price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(UNIQUE)} UNQ`);
+  }
+
+  const defaultCoeff = (api.consts.configuration.defaultWeightToFeeCoefficient as any).toBigInt();
+  for (let i = -5; i < 5; i++) {
+    await executeTransaction(api, alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(defaultCoeff + defaultCoeff / 1000n * BigInt(i))));
+
+    const coefficient = (await api.query.configuration.weightToFeeCoefficientOverride() as any).toBigInt();
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+
+    const aliceBalanceBefore = (await api.query.system.account(alice.address)).data.free.toBigInt();
+    await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
+    const aliceBalanceAfter = (await api.query.system.account(alice.address)).data.free.toBigInt();
+
+    const transferPrice = aliceBalanceBefore - aliceBalanceAfter;
+
+    dataPoints.push({x: transferPrice, y: coefficient});
+  }
+  const {a, b} = linearRegression(dataPoints);
+
+  // console.log(`Error: ${error(dataPoints, x => a*x+b)}`);
+
+  const perfectValue = a * UNIQUE / 10n + b;
+  await executeTransaction(api, alice, api.tx.sudo.sudo(api.tx.configuration.setWeightToFeeCoefficientOverride(perfectValue.toString())));
+
+  {
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT');
+    const aliceBalanceBefore = (await api.query.system.account(alice.address)).data.free.toBigInt();
+    await transferExpectSuccess(collectionId, tokenId, alice, bob, 1, 'NFT');
+    const aliceBalanceAfter = (await api.query.system.account(alice.address)).data.free.toBigInt();
+
+    console.log(`Calibrated price: ${Number(aliceBalanceBefore - aliceBalanceAfter) / Number(UNIQUE)} UNQ`);
+  }
+}
+
+async function calibrateMinGasPrice(api: ApiPromise, web3: Web3, privateKey: (account: string) => IKeyringPair) {
+  const alice = privateKey('//Alice');
+  const caller = await createEthAccountWithBalance(api, web3, privateKey);
+  const receiver = createEthAccount(web3);
+  const dataPoints = [];
+
+  {
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', {Ethereum: caller});
+
+    const address = collectionIdToAddress(collectionId);
+    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+    const cost = await recordEthFee(api, caller, () => contract.methods.transfer(receiver, tokenId).send(caller));
+
+    console.log(`Original price: ${Number(cost) / Number(UNIQUE)} UNQ`);
+  }
+
+  const defaultCoeff = (api.consts.configuration.defaultMinGasPrice as any).toBigInt();
+  for (let i = -8; i < 8; i++) {
+    const gasPrice = defaultCoeff + defaultCoeff / 100000n * BigInt(i);
+    const gasPriceStr = '0x' + gasPrice.toString(16);
+    await executeTransaction(api, alice, api.tx.sudo.sudo(api.tx.configuration.setMinGasPriceOverride(gasPrice)));
+
+    const coefficient = (await api.query.configuration.minGasPriceOverride() as any).toBigInt();
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', {Ethereum: caller});
+
+    const address = collectionIdToAddress(collectionId);
+    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, gasPrice: gasPriceStr, ...GAS_ARGS});
+
+    const transferPrice = await recordEthFee(api, caller, () => contract.methods.transfer(receiver, tokenId).send(caller));
+
+    dataPoints.push({x: transferPrice, y: coefficient});
+  }
+
+  const {a, b} = linearRegression(dataPoints);
+
+  // console.log(`Error: ${error(dataPoints, x => a*x+b)}`);
+
+  // * 0.15 = * 10000 / 66666
+  const perfectValue = a * UNIQUE * 1000000n / 6666666n + b;
+  await executeTransaction(api, alice, api.tx.sudo.sudo(api.tx.configuration.setMinGasPriceOverride(perfectValue.toString())));
+
+  {
+    const collectionId = await createCollectionExpectSuccess();
+    const tokenId = await createItemExpectSuccess(alice, collectionId, 'NFT', {Ethereum: caller});
+
+    const address = collectionIdToAddress(collectionId);
+    const contract = new web3.eth.Contract(nonFungibleAbi as any, address, {from: caller, ...GAS_ARGS});
+
+    const cost = await recordEthFee(api, caller, () => contract.methods.transfer(receiver, tokenId).send(caller));
+
+    console.log(`Calibrated price: ${Number(cost) / Number(UNIQUE)} UNQ`);
+  }
+}
+
+(async () => {
+  await usingApi(async (api, privateKey) => {
+    // Second run slightly reduces error sometimes, as price line is not actually straight, this is a curve
+
+    await calibrateWeightToFee(api, privateKey);
+    await calibrateWeightToFee(api, privateKey);
+
+    await usingWeb3(async web3 => {
+      await calibrateMinGasPrice(api, web3, privateKey);
+      await calibrateMinGasPrice(api, web3, privateKey);
+    });
+
+    await api.disconnect();
+  });
+})();
addedtests/src/calibrateApply.tsdiffbeforeafterboth
--- /dev/null
+++ b/tests/src/calibrateApply.ts
@@ -0,0 +1,38 @@
+import {readFile, writeFile} from 'fs/promises';
+import path from 'path';
+import usingApi from './substrate/substrate-api';
+
+const formatNumber = (num: string): string => num.split('').reverse().join('').replace(/([0-9]{3})/g, '$1_').split('').reverse().join('').replace(/^_/, '');
+
+(async () => {
+  let weightToFeeCoefficientOverride: string;
+  let minGasPriceOverride: string;
+  await usingApi(async (api, _privateKey) => {
+    weightToFeeCoefficientOverride = (await api.query.configuration.weightToFeeCoefficientOverride() as any).toBigInt().toString();
+    minGasPriceOverride = (await api.query.configuration.minGasPriceOverride() as any).toBigInt().toString();
+  });
+  const constantsFile = path.resolve(__dirname, '../../primitives/common/src/constants.rs');
+  let constants = (await readFile(constantsFile)).toString();
+
+  let weight2feeFound = false;
+  constants = constants.replace(/(\/\*<weight2fee>\*\/)[0-9_]+(\/\*<\/weight2fee>\*\/)/, (_f, p, s) => {
+    weight2feeFound = true;
+    return p+formatNumber(weightToFeeCoefficientOverride)+s;
+  });
+  if (!weight2feeFound) {
+    throw new Error('failed to find weight2fee marker in source code');
+  }
+
+  let minGasPriceFound = false;
+  constants = constants.replace(/(\/\*<mingasprice>\*\/)[0-9_]+(\/\*<\/mingasprice>\*\/)/, (_f, p, s) => {
+    minGasPriceFound = true;
+    return p+formatNumber(minGasPriceOverride)+s;
+  });
+  if (!minGasPriceFound) {
+    throw new Error('failed to find mingasprice marker in source code');
+  }
+
+  await writeFile(constantsFile, constants);
+})().catch(e => {
+  console.log(e.stack);
+});
modifiedtests/src/eth/base.test.tsdiffbeforeafterboth
--- a/tests/src/eth/base.test.ts
+++ b/tests/src/eth/base.test.ts
@@ -15,14 +15,14 @@
 // along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
 
 import {
-  collectionIdToAddress, 
-  createEthAccount, 
-  createEthAccountWithBalance, 
-  deployFlipper, 
-  ethBalanceViaSub, 
-  GAS_ARGS, 
-  itWeb3, 
-  recordEthFee, 
+  collectionIdToAddress,
+  createEthAccount,
+  createEthAccountWithBalance,
+  deployFlipper,
+  ethBalanceViaSub,
+  GAS_ARGS,
+  itWeb3,
+  recordEthFee,
   usingWeb3,
 } from './util/helpers';
 import {expect} from 'chai';
@@ -66,7 +66,7 @@
 
     const fee = Number(cost) / Number(UNIQUE);
     const expectedFee = 0.15;
-    const tolerance = 0.00002;
+    const tolerance = 0.001;
 
     expect(Math.abs(fee - expectedFee)).to.be.lessThan(tolerance);
   });
modifiedtests/src/interfaces/augment-api-consts.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-consts.ts
+++ b/tests/src/interfaces/augment-api-consts.ts
@@ -42,6 +42,14 @@
        **/
       [key: string]: Codec;
     };
+    configuration: {
+      defaultMinGasPrice: u64 & AugmentedConst<ApiType>;
+      defaultWeightToFeeCoefficient: u32 & AugmentedConst<ApiType>;
+      /**
+       * Generic const
+       **/
+      [key: string]: Codec;
+    };
     inflation: {
       /**
        * Number of blocks that pass between treasury balance updates due to inflation
modifiedtests/src/interfaces/augment-api-errors.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-errors.ts
+++ b/tests/src/interfaces/augment-api-errors.ts
@@ -173,7 +173,7 @@
        **/
       TransferNotAllowed: AugmentedError<ApiType>;
       /**
-       * Target collection doesn't support this operation
+       * The operation is not supported
        **/
       UnsupportedOperation: AugmentedError<ApiType>;
       /**
modifiedtests/src/interfaces/augment-api-query.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-api-query.ts
+++ b/tests/src/interfaces/augment-api-query.ts
@@ -110,6 +110,14 @@
        **/
       [key: string]: QueryableStorageEntry<ApiType>;
     };
+    configuration: {
+      minGasPriceOverride: AugmentedQuery<ApiType, () => Observable<u64>, []> & QueryableStorageEntry<ApiType, []>;
+      weightToFeeCoefficientOverride: AugmentedQuery<ApiType, () => Observable<u32>, []> & QueryableStorageEntry<ApiType, []>;
+      /**
+       * Generic query
+       **/
+      [key: string]: QueryableStorageEntry<ApiType>;
+    };
     dmpQueue: {
       /**
        * The configuration.
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 */34import type { ApiTypes } from '@polkadot/api-base/types';5import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8import 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';910declare module '@polkadot/api-base/types/submittable' {11  export interface AugmentedSubmittables<ApiType extends ApiTypes> {12    balances: {13      /**14       * Exactly as `transfer`, except the origin must be root and the source account may be15       * specified.16       * # <weight>17       * - Same as transfer, but additional read and write because the source account is not18       * assumed to be in the overlay.19       * # </weight>20       **/21      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>]>;22      /**23       * Unreserve some balance from a user by force.24       * 25       * Can only be called by ROOT.26       **/27      forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;28      /**29       * Set the balances of a given account.30       * 31       * This will alter `FreeBalance` and `ReservedBalance` in storage. it will32       * also alter the total issuance of the system (`TotalIssuance`) appropriately.33       * If the new free or reserved balance is below the existential deposit,34       * it will reset the account nonce (`frame_system::AccountNonce`).35       * 36       * The dispatch origin for this call is `root`.37       **/38      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>]>;39      /**40       * Transfer some liquid free balance to another account.41       * 42       * `transfer` will set the `FreeBalance` of the sender and receiver.43       * If the sender's account is below the existential deposit as a result44       * of the transfer, the account will be reaped.45       * 46       * The dispatch origin for this call must be `Signed` by the transactor.47       * 48       * # <weight>49       * - Dependent on arguments but not critical, given proper implementations for input config50       * types. See related functions below.51       * - It contains a limited number of reads and writes internally and no complex52       * computation.53       * 54       * Related functions:55       * 56       * - `ensure_can_withdraw` is always called internally but has a bounded complexity.57       * - Transferring balances to accounts that did not exist before will cause58       * `T::OnNewAccount::on_new_account` to be called.59       * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.60       * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check61       * that the transfer will not kill the origin account.62       * ---------------------------------63       * - Origin account is already in memory, so no DB operations for them.64       * # </weight>65       **/66      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>]>;67      /**68       * Transfer the entire transferable balance from the caller account.69       * 70       * NOTE: This function only attempts to transfer _transferable_ balances. This means that71       * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be72       * transferred by this function. To ensure that this function results in a killed account,73       * you might need to prepare the account by removing any reference counters, storage74       * deposits, etc...75       * 76       * The dispatch origin of this call must be Signed.77       * 78       * - `dest`: The recipient of the transfer.79       * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all80       * of the funds the account has, causing the sender account to be killed (false), or81       * transfer everything except at least the existential deposit, which will guarantee to82       * keep the sender account alive (true). # <weight>83       * - O(1). Just like transfer, but reading the user's transferable balance first.84       * #</weight>85       **/86      transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;87      /**88       * Same as the [`transfer`] call, but with a check that the transfer will not kill the89       * origin account.90       * 91       * 99% of the time you want [`transfer`] instead.92       * 93       * [`transfer`]: struct.Pallet.html#method.transfer94       **/95      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>]>;96      /**97       * Generic tx98       **/99      [key: string]: SubmittableExtrinsicFunction<ApiType>;100    };101    charging: {102      /**103       * Generic tx104       **/105      [key: string]: SubmittableExtrinsicFunction<ApiType>;106    };107    cumulusXcm: {108      /**109       * Generic tx110       **/111      [key: string]: SubmittableExtrinsicFunction<ApiType>;112    };113    dmpQueue: {114      /**115       * Service a single overweight message.116       * 117       * - `origin`: Must pass `ExecuteOverweightOrigin`.118       * - `index`: The index of the overweight message to service.119       * - `weight_limit`: The amount of weight that message execution may take.120       * 121       * Errors:122       * - `Unknown`: Message of `index` is unknown.123       * - `OverLimit`: Message execution may use greater than `weight_limit`.124       * 125       * Events:126       * - `OverweightServiced`: On success.127       **/128      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;129      /**130       * Generic tx131       **/132      [key: string]: SubmittableExtrinsicFunction<ApiType>;133    };134    ethereum: {135      /**136       * Transact an Ethereum transaction.137       **/138      transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;139      /**140       * Generic tx141       **/142      [key: string]: SubmittableExtrinsicFunction<ApiType>;143    };144    evm: {145      /**146       * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.147       **/148      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;149      /**150       * Issue an EVM create operation. This is similar to a contract creation transaction in151       * Ethereum.152       **/153      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;154      /**155       * Issue an EVM create2 operation.156       **/157      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;158      /**159       * Withdraw balance from EVM into currency/balances pallet.160       **/161      withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;162      /**163       * Generic tx164       **/165      [key: string]: SubmittableExtrinsicFunction<ApiType>;166    };167    evmMigration: {168      begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;169      finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;170      setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;171      /**172       * Generic tx173       **/174      [key: string]: SubmittableExtrinsicFunction<ApiType>;175    };176    inflation: {177      /**178       * This method sets the inflation start date. Can be only called once.179       * Inflation start block can be backdated and will catch up. The method will create Treasury180       * account if it does not exist and perform the first inflation deposit.181       * 182       * # Permissions183       * 184       * * Root185       * 186       * # Arguments187       * 188       * * inflation_start_relay_block: The relay chain block at which inflation should start189       **/190      startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;191      /**192       * Generic tx193       **/194      [key: string]: SubmittableExtrinsicFunction<ApiType>;195    };196    parachainSystem: {197      authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;198      enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;199      /**200       * Set the current validation data.201       * 202       * This should be invoked exactly once per block. It will panic at the finalization203       * phase if the call was not invoked.204       * 205       * The dispatch origin for this call must be `Inherent`206       * 207       * As a side effect, this function upgrades the current validation function208       * if the appropriate time has come.209       **/210      setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;211      sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;212      /**213       * Generic tx214       **/215      [key: string]: SubmittableExtrinsicFunction<ApiType>;216    };217    polkadotXcm: {218      /**219       * Execute an XCM message from a local, signed, origin.220       * 221       * An event is deposited indicating whether `msg` could be executed completely or only222       * partially.223       * 224       * No more than `max_weight` will be used in its attempted execution. If this is less than the225       * maximum amount of weight that the message could take to be executed, then no execution226       * attempt will be made.227       * 228       * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully229       * to completion; only that *some* of it was executed.230       **/231      execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;232      /**233       * Set a safe XCM version (the version that XCM should be encoded with if the most recent234       * version a destination can accept is unknown).235       * 236       * - `origin`: Must be Root.237       * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.238       **/239      forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;240      /**241       * Ask a location to notify us regarding their XCM version and any changes to it.242       * 243       * - `origin`: Must be Root.244       * - `location`: The location to which we should subscribe for XCM version notifications.245       **/246      forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;247      /**248       * Require that a particular destination should no longer notify us regarding any XCM249       * version changes.250       * 251       * - `origin`: Must be Root.252       * - `location`: The location to which we are currently subscribed for XCM version253       * notifications which we no longer desire.254       **/255      forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;256      /**257       * Extoll that a particular destination can be communicated with through a particular258       * version of XCM.259       * 260       * - `origin`: Must be Root.261       * - `location`: The destination that is being described.262       * - `xcm_version`: The latest version of XCM that `location` supports.263       **/264      forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;265      /**266       * Transfer some assets from the local chain to the sovereign account of a destination267       * chain and forward a notification XCM.268       * 269       * Fee payment on the destination side is made from the asset in the `assets` vector of270       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight271       * is needed than `weight_limit`, then the operation will fail and the assets send may be272       * at risk.273       * 274       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.275       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send276       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.277       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be278       * an `AccountId32` value.279       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the280       * `dest` side.281       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay282       * fees.283       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.284       **/285      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]>;286      /**287       * Teleport some assets from the local chain to some destination chain.288       * 289       * Fee payment on the destination side is made from the asset in the `assets` vector of290       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight291       * is needed than `weight_limit`, then the operation will fail and the assets send may be292       * at risk.293       * 294       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.295       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send296       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.297       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be298       * an `AccountId32` value.299       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the300       * `dest` side. May not be empty.301       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay302       * fees.303       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.304       **/305      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]>;306      /**307       * Transfer some assets from the local chain to the sovereign account of a destination308       * chain and forward a notification XCM.309       * 310       * Fee payment on the destination side is made from the asset in the `assets` vector of311       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,312       * with all fees taken as needed from the asset.313       * 314       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.315       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send316       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.317       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be318       * an `AccountId32` value.319       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the320       * `dest` side.321       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay322       * fees.323       **/324      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]>;325      send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;326      /**327       * Teleport some assets from the local chain to some destination chain.328       * 329       * Fee payment on the destination side is made from the asset in the `assets` vector of330       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,331       * with all fees taken as needed from the asset.332       * 333       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.334       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send335       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.336       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be337       * an `AccountId32` value.338       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the339       * `dest` side. May not be empty.340       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay341       * fees.342       **/343      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]>;344      /**345       * Generic tx346       **/347      [key: string]: SubmittableExtrinsicFunction<ApiType>;348    };349    rmrkCore: {350      /**351       * Accept an NFT sent from another account to self or an owned NFT.352       * 353       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.354       * 355       * # Permissions:356       * - Token-owner-to-be357       * 358       * # Arguments:359       * - `rmrk_collection_id`: RMRK collection ID of the NFT to be accepted.360       * - `rmrk_nft_id`: ID of the NFT to be accepted.361       * - `new_owner`: Either the sender's account ID or a sender-owned NFT,362       * whichever the accepted NFT was sent to.363       **/364      acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;365      /**366       * Accept the addition of a newly created pending resource to an existing NFT.367       * 368       * This transaction is needed when a resource is created and assigned to an NFT369       * by a non-owner, i.e. the collection issuer, with one of the370       * [`add_...` transactions](Pallet::add_basic_resource).371       * 372       * # Permissions:373       * - Token owner374       * 375       * # Arguments:376       * - `rmrk_collection_id`: RMRK collection ID of the NFT.377       * - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.378       * - `resource_id`: ID of the newly created pending resource.379       **/380      acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;381      /**382       * Accept the removal of a removal-pending resource from an NFT.383       * 384       * This transaction is needed when a non-owner, i.e. the collection issuer,385       * requests a [removal](`Pallet::remove_resource`) of a resource from an NFT.386       * 387       * # Permissions:388       * - Token owner389       * 390       * # Arguments:391       * - `rmrk_collection_id`: RMRK collection ID of the NFT.392       * - `rmrk_nft_id`: ID of the NFT with a resource to be removed.393       * - `resource_id`: ID of the removal-pending resource.394       **/395      acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;396      /**397       * Create and set/propose a basic resource for an NFT.398       * 399       * A basic resource is the simplest, lacking a Base and anything that comes with it.400       * See RMRK docs for more information and examples.401       * 402       * # Permissions:403       * - Collection issuer - if not the token owner, adding the resource will warrant404       * the owner's [acceptance](Pallet::accept_resource).405       * 406       * # Arguments:407       * - `rmrk_collection_id`: RMRK collection ID of the NFT.408       * - `nft_id`: ID of the NFT to assign a resource to.409       * - `resource`: Data of the resource to be created.410       **/411      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]>;412      /**413       * Create and set/propose a composable resource for an NFT.414       * 415       * A composable resource links to a Base and has a subset of its Parts it is composed of.416       * See RMRK docs for more information and examples.417       * 418       * # Permissions:419       * - Collection issuer - if not the token owner, adding the resource will warrant420       * the owner's [acceptance](Pallet::accept_resource).421       * 422       * # Arguments:423       * - `rmrk_collection_id`: RMRK collection ID of the NFT.424       * - `nft_id`: ID of the NFT to assign a resource to.425       * - `resource`: Data of the resource to be created.426       **/427      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]>;428      /**429       * Create and set/propose a slot resource for an NFT.430       * 431       * A slot resource links to a Base and a slot ID in it which it can fit into.432       * See RMRK docs for more information and examples.433       * 434       * # Permissions:435       * - Collection issuer - if not the token owner, adding the resource will warrant436       * the owner's [acceptance](Pallet::accept_resource).437       * 438       * # Arguments:439       * - `rmrk_collection_id`: RMRK collection ID of the NFT.440       * - `nft_id`: ID of the NFT to assign a resource to.441       * - `resource`: Data of the resource to be created.442       **/443      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]>;444      /**445       * Burn an NFT, destroying it and its nested tokens up to the specified limit.446       * If the burning budget is exceeded, the transaction is reverted.447       * 448       * This is the way to burn a nested token as well.449       * 450       * For more information, see [`burn_recursively`](pallet_nonfungible::pallet::Pallet::burn_recursively).451       * 452       * # Permissions:453       * * Token owner454       * 455       * # Arguments:456       * - `collection_id`: RMRK ID of the collection in which the NFT to burn belongs to.457       * - `nft_id`: ID of the NFT to be destroyed.458       * - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction459       * is reverted if there are more tokens to burn in the nesting tree than this number.460       * This is primarily a mechanism of transaction weight control.461       **/462      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;463      /**464       * Change the issuer of a collection. Analogous to Unique's collection's [`owner`](up_data_structs::Collection).465       * 466       * # Permissions:467       * * Collection issuer468       * 469       * # Arguments:470       * - `collection_id`: RMRK collection ID to change the issuer of.471       * - `new_issuer`: Collection's new issuer.472       **/473      changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;474      /**475       * Create a new collection of NFTs.476       * 477       * # Permissions:478       * * Anyone - will be assigned as the issuer of the collection.479       * 480       * # Arguments:481       * - `metadata`: Metadata describing the collection, e.g. IPFS hash. Cannot be changed.482       * - `max`: Optional maximum number of tokens.483       * - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.484       * Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.485       **/486      createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;487      /**488       * Destroy a collection.489       * 490       * Only empty collections can be destroyed. If it has any tokens, they must be burned first.491       * 492       * # Permissions:493       * * Collection issuer494       * 495       * # Arguments:496       * - `collection_id`: RMRK ID of the collection to destroy.497       **/498      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;499      /**500       * "Lock" the collection and prevent new token creation. Cannot be undone.501       * 502       * # Permissions:503       * * Collection issuer504       * 505       * # Arguments:506       * - `collection_id`: RMRK ID of the collection to lock.507       **/508      lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;509      /**510       * Mint an NFT in a specified collection.511       * 512       * # Permissions:513       * * Collection issuer514       * 515       * # Arguments:516       * - `owner`: Owner account of the NFT. If set to None, defaults to the sender (collection issuer).517       * - `collection_id`: RMRK collection ID for the NFT to be minted within. Cannot be changed.518       * - `recipient`: Receiver account of the royalty. Has no effect if the `royalty_amount` is not set. Cannot be changed.519       * - `royalty_amount`: Optional permillage reward from each trade for the `recipient`. Cannot be changed.520       * - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.521       * - `transferable`: Can this NFT be transferred? Cannot be changed.522       * - `resources`: Resource data to be added to the NFT immediately after minting.523       **/524      mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | object | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;525      /**526       * Reject an NFT sent from another account to self or owned NFT.527       * The NFT in question will not be sent back and burnt instead.528       * 529       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.530       * 531       * # Permissions:532       * - Token-owner-to-be-not533       * 534       * # Arguments:535       * - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.536       * - `rmrk_nft_id`: ID of the NFT to be rejected.537       **/538      rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;539      /**540       * Remove and erase a resource from an NFT.541       * 542       * If the sender does not own the NFT, then it will be pending confirmation,543       * and will have to be [accepted](Pallet::accept_resource_removal) by the token owner.544       * 545       * # Permissions546       * - Collection issuer547       * 548       * # Arguments549       * - `collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.550       * - `nft_id`: ID of the NFT with a resource to be removed.551       * - `resource_id`: ID of the resource to be removed.552       **/553      removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;554      /**555       * Transfer an NFT from an account/NFT A to another account/NFT B.556       * The token must be transferable. Nesting cannot occur deeper than the [`NESTING_BUDGET`].557       * 558       * If the target owner is an NFT owned by another account, then the NFT will enter559       * the pending state and will have to be accepted by the other account.560       * 561       * # Permissions:562       * - Token owner563       * 564       * # Arguments:565       * - `collection_id`: RMRK ID of the collection of the NFT to be transferred.566       * - `nft_id`: ID of the NFT to be transferred.567       * - `new_owner`: New owner of the nft which can be either an account or a NFT.568       **/569      send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;570      /**571       * Set a different order of resource priorities for an NFT. Priorities can be used,572       * for example, for order of rendering.573       * 574       * Note that the priorities are not updated automatically, and are an empty vector575       * by default. There is no pre-set definition for the order to be particular,576       * it can be interpreted arbitrarily use-case by use-case.577       * 578       * # Permissions:579       * - Token owner580       * 581       * # Arguments:582       * - `rmrk_collection_id`: RMRK collection ID of the NFT.583       * - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.584       * - `priorities`: Ordered vector of resource IDs.585       **/586      setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;587      /**588       * Add or edit a custom user property, a key-value pair, describing the metadata589       * of a token or a collection, on either one of these.590       * 591       * Note that in this proxy implementation many details regarding RMRK are stored592       * as scoped properties prefixed with "rmrk:", normally inaccessible593       * to external transactions and RPCs.594       * 595       * # Permissions:596       * - Collection issuer - in case of collection property597       * - Token owner - in case of NFT property598       * 599       * # Arguments:600       * - `rmrk_collection_id`: RMRK collection ID.601       * - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.602       * - `key`: Key of the custom property to be referenced by.603       * - `value`: Value of the custom property to be stored.604       **/605      setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;606      /**607       * Generic tx608       **/609      [key: string]: SubmittableExtrinsicFunction<ApiType>;610    };611    rmrkEquip: {612      /**613       * Create a new Base.614       * 615       * Modeled after the [Base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)616       * 617       * # Permissions618       * - Anyone - will be assigned as the issuer of the Base.619       * 620       * # Arguments:621       * - `base_type`: Arbitrary media type, e.g. "svg".622       * - `symbol`: Arbitrary client-chosen symbol.623       * - `parts`: Array of Fixed and Slot Parts composing the Base,624       * confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).625       **/626      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>]>;627      /**628       * Update the array of Collections allowed to be equipped to a Base's specified Slot Part.629       * 630       * Modeled after [equippable interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/equippable.md).631       * 632       * # Permissions:633       * - Base issuer634       * 635       * # Arguments:636       * - `base_id`: Base containing the Slot Part to be updated.637       * - `part_id`: Slot Part whose Equippable List is being updated.638       * - `equippables`: List of equippables that will override the current Equippables list.639       **/640      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]>;641      /**642       * Add a Theme to a Base.643       * A Theme named "default" is required prior to adding other Themes.644       * 645       * Modeled after [Themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md).646       * 647       * # Permissions:648       * - Base issuer649       * 650       * # Arguments:651       * - `base_id`: Base ID containing the Theme to be updated.652       * - `theme`: Theme to add to the Base.  A Theme has a name and properties, which are an653       * array of [key, value, inherit].654       * - `key`: Arbitrary BoundedString, defined by client.655       * - `value`: Arbitrary BoundedString, defined by client.656       * - `inherit`: Optional bool.657       **/658      themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;659      /**660       * Generic tx661       **/662      [key: string]: SubmittableExtrinsicFunction<ApiType>;663    };664    scheduler: {665      /**666       * Cancel a named scheduled task.667       **/668      cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;669      /**670       * Schedule a named task.671       **/672      scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;673      /**674       * Schedule a named task after a delay.675       * 676       * # <weight>677       * Same as [`schedule_named`](Self::schedule_named).678       * # </weight>679       **/680      scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;681      /**682       * Generic tx683       **/684      [key: string]: SubmittableExtrinsicFunction<ApiType>;685    };686    structure: {687      /**688       * Generic tx689       **/690      [key: string]: SubmittableExtrinsicFunction<ApiType>;691    };692    sudo: {693      /**694       * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo695       * key.696       * 697       * The dispatch origin for this call must be _Signed_.698       * 699       * # <weight>700       * - O(1).701       * - Limited storage reads.702       * - One DB change.703       * # </weight>704       **/705      setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;706      /**707       * Authenticates the sudo key and dispatches a function call with `Root` origin.708       * 709       * The dispatch origin for this call must be _Signed_.710       * 711       * # <weight>712       * - O(1).713       * - Limited storage reads.714       * - One DB write (event).715       * - Weight of derivative `call` execution + 10,000.716       * # </weight>717       **/718      sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;719      /**720       * Authenticates the sudo key and dispatches a function call with `Signed` origin from721       * a given account.722       * 723       * The dispatch origin for this call must be _Signed_.724       * 725       * # <weight>726       * - O(1).727       * - Limited storage reads.728       * - One DB write (event).729       * - Weight of derivative `call` execution + 10,000.730       * # </weight>731       **/732      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]>;733      /**734       * Authenticates the sudo key and dispatches a function call with `Root` origin.735       * This function does not check the weight of the call, and instead allows the736       * Sudo user to specify the weight of the call.737       * 738       * The dispatch origin for this call must be _Signed_.739       * 740       * # <weight>741       * - O(1).742       * - The weight of this call is defined by the caller.743       * # </weight>744       **/745      sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;746      /**747       * Generic tx748       **/749      [key: string]: SubmittableExtrinsicFunction<ApiType>;750    };751    system: {752      /**753       * A dispatch that will fill the block weight up to the given ratio.754       **/755      fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;756      /**757       * Kill all storage items with a key that starts with the given prefix.758       * 759       * **NOTE:** We rely on the Root origin to provide us the number of subkeys under760       * the prefix we are removing to accurately calculate the weight of this function.761       **/762      killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;763      /**764       * Kill some items from storage.765       **/766      killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;767      /**768       * Make some on-chain remark.769       * 770       * # <weight>771       * - `O(1)`772       * # </weight>773       **/774      remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;775      /**776       * Make some on-chain remark and emit event.777       **/778      remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;779      /**780       * Set the new runtime code.781       * 782       * # <weight>783       * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`784       * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is785       * expensive).786       * - 1 storage write (codec `O(C)`).787       * - 1 digest item.788       * - 1 event.789       * The weight of this function is dependent on the runtime, but generally this is very790       * expensive. We will treat this as a full block.791       * # </weight>792       **/793      setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;794      /**795       * Set the new runtime code without doing any checks of the given `code`.796       * 797       * # <weight>798       * - `O(C)` where `C` length of `code`799       * - 1 storage write (codec `O(C)`).800       * - 1 digest item.801       * - 1 event.802       * The weight of this function is dependent on the runtime. We will treat this as a full803       * block. # </weight>804       **/805      setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;806      /**807       * Set the number of pages in the WebAssembly environment's heap.808       **/809      setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;810      /**811       * Set some items of storage.812       **/813      setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;814      /**815       * Generic tx816       **/817      [key: string]: SubmittableExtrinsicFunction<ApiType>;818    };819    timestamp: {820      /**821       * Set the current time.822       * 823       * This call should be invoked exactly once per block. It will panic at the finalization824       * phase, if this call hasn't been invoked by that time.825       * 826       * The timestamp should be greater than the previous one by the amount specified by827       * `MinimumPeriod`.828       * 829       * The dispatch origin for this call must be `Inherent`.830       * 831       * # <weight>832       * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)833       * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in834       * `on_finalize`)835       * - 1 event handler `on_timestamp_set`. Must be `O(1)`.836       * # </weight>837       **/838      set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;839      /**840       * Generic tx841       **/842      [key: string]: SubmittableExtrinsicFunction<ApiType>;843    };844    treasury: {845      /**846       * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary847       * and the original deposit will be returned.848       * 849       * May only be called from `T::ApproveOrigin`.850       * 851       * # <weight>852       * - Complexity: O(1).853       * - DbReads: `Proposals`, `Approvals`854       * - DbWrite: `Approvals`855       * # </weight>856       **/857      approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;858      /**859       * Put forward a suggestion for spending. A deposit proportional to the value860       * is reserved and slashed if the proposal is rejected. It is returned once the861       * proposal is awarded.862       * 863       * # <weight>864       * - Complexity: O(1)865       * - DbReads: `ProposalCount`, `origin account`866       * - DbWrites: `ProposalCount`, `Proposals`, `origin account`867       * # </weight>868       **/869      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]>;870      /**871       * Reject a proposed spend. The original deposit will be slashed.872       * 873       * May only be called from `T::RejectOrigin`.874       * 875       * # <weight>876       * - Complexity: O(1)877       * - DbReads: `Proposals`, `rejected proposer account`878       * - DbWrites: `Proposals`, `rejected proposer account`879       * # </weight>880       **/881      rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;882      /**883       * Force a previously approved proposal to be removed from the approval queue.884       * The original deposit will no longer be returned.885       * 886       * May only be called from `T::RejectOrigin`.887       * - `proposal_id`: The index of a proposal888       * 889       * # <weight>890       * - Complexity: O(A) where `A` is the number of approvals891       * - Db reads and writes: `Approvals`892       * # </weight>893       * 894       * Errors:895       * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,896       * i.e., the proposal has not been approved. This could also mean the proposal does not897       * exist altogether, thus there is no way it would have been approved in the first place.898       **/899      removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;900      /**901       * Generic tx902       **/903      [key: string]: SubmittableExtrinsicFunction<ApiType>;904    };905    unique: {906      /**907       * Add an admin to a collection.908       * 909       * NFT Collection can be controlled by multiple admin addresses910       * (some which can also be servers, for example). Admins can issue911       * and burn NFTs, as well as add and remove other admins,912       * but cannot change NFT or Collection ownership.913       * 914       * # Permissions915       * 916       * * Collection owner917       * * Collection admin918       * 919       * # Arguments920       * 921       * * `collection_id`: ID of the Collection to add an admin for.922       * * `new_admin`: Address of new admin to add.923       **/924      addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdmin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;925      /**926       * Add an address to allow list.927       * 928       * # Permissions929       * 930       * * Collection owner931       * * Collection admin932       * 933       * # Arguments934       * 935       * * `collection_id`: ID of the modified collection.936       * * `address`: ID of the address to be added to the allowlist.937       **/938      addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;939      /**940       * Allow a non-permissioned address to transfer or burn an item.941       * 942       * # Permissions943       * 944       * * Collection owner945       * * Collection admin946       * * Current item owner947       * 948       * # Arguments949       * 950       * * `spender`: Account to be approved to make specific transactions on non-owned tokens.951       * * `collection_id`: ID of the collection the item belongs to.952       * * `item_id`: ID of the item transactions on which are now approved.953       * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).954       * Set to 0 to revoke the approval.955       **/956      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]>;957      /**958       * Destroy a token on behalf of the owner as a non-owner account.959       * 960       * See also: [`approve`][`Pallet::approve`].961       * 962       * After this method executes, one approval is removed from the total so that963       * the approved address will not be able to transfer this item again from this owner.964       * 965       * # Permissions966       * 967       * * Collection owner968       * * Collection admin969       * * Current token owner970       * * Address approved by current item owner971       * 972       * # Arguments973       * 974       * * `from`: The owner of the burning item.975       * * `collection_id`: ID of the collection to which the item belongs.976       * * `item_id`: ID of item to burn.977       * * `value`: Number of pieces to burn.978       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.979       * * Fungible Mode: The desired number of pieces to burn.980       * * Re-Fungible Mode: The desired number of pieces to burn.981       **/982      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]>;983      /**984       * Destroy an item.985       * 986       * # Permissions987       * 988       * * Collection owner989       * * Collection admin990       * * Current item owner991       * 992       * # Arguments993       * 994       * * `collection_id`: ID of the collection to which the item belongs.995       * * `item_id`: ID of item to burn.996       * * `value`: Number of pieces of the item to destroy.997       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.998       * * Fungible Mode: The desired number of pieces to burn.999       * * Re-Fungible Mode: The desired number of pieces to burn.1000       **/1001      burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1002      /**1003       * Change the owner of the collection.1004       * 1005       * # Permissions1006       * 1007       * * Collection owner1008       * 1009       * # Arguments1010       * 1011       * * `collection_id`: ID of the modified collection.1012       * * `new_owner`: ID of the account that will become the owner.1013       **/1014      changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1015      /**1016       * Confirm own sponsorship of a collection, becoming the sponsor.1017       * 1018       * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].1019       * Sponsor can pay the fees of a transaction instead of the sender,1020       * but only within specified limits.1021       * 1022       * # Permissions1023       * 1024       * * Sponsor-to-be1025       * 1026       * # Arguments1027       * 1028       * * `collection_id`: ID of the collection with the pending sponsor.1029       **/1030      confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1031      /**1032       * Create a collection of tokens.1033       * 1034       * Each Token may have multiple properties encoded as an array of bytes1035       * of certain length. The initial owner of the collection is set1036       * to the address that signed the transaction and can be changed later.1037       * 1038       * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.1039       * 1040       * # Permissions1041       * 1042       * * Anyone - becomes the owner of the new collection.1043       * 1044       * # Arguments1045       * 1046       * * `collection_name`: Wide-character string with collection name1047       * (limit [`MAX_COLLECTION_NAME_LENGTH`]).1048       * * `collection_description`: Wide-character string with collection description1049       * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).1050       * * `token_prefix`: Byte string containing the token prefix to mark a collection1051       * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).1052       * * `mode`: Type of items stored in the collection and type dependent data.1053       **/1054      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]>;1055      /**1056       * Create a collection with explicit parameters.1057       * 1058       * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.1059       * 1060       * # Permissions1061       * 1062       * * Anyone - becomes the owner of the new collection.1063       * 1064       * # Arguments1065       * 1066       * * `data`: Explicit data of a collection used for its creation.1067       **/1068      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]>;1069      /**1070       * Mint an item within a collection.1071       * 1072       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1073       * 1074       * # Permissions1075       * 1076       * * Collection owner1077       * * Collection admin1078       * * Anyone if1079       * * Allow List is enabled, and1080       * * Address is added to allow list, and1081       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1082       * 1083       * # Arguments1084       * 1085       * * `collection_id`: ID of the collection to which an item would belong.1086       * * `owner`: Address of the initial owner of the item.1087       * * `data`: Token data describing the item to store on chain.1088       **/1089      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]>;1090      /**1091       * Create multiple items within a collection.1092       * 1093       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1094       * 1095       * # Permissions1096       * 1097       * * Collection owner1098       * * Collection admin1099       * * Anyone if1100       * * Allow List is enabled, and1101       * * Address is added to the allow list, and1102       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1103       * 1104       * # Arguments1105       * 1106       * * `collection_id`: ID of the collection to which the tokens would belong.1107       * * `owner`: Address of the initial owner of the tokens.1108       * * `items_data`: Vector of data describing each item to be created.1109       **/1110      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>]>;1111      /**1112       * Create multiple items within a collection with explicitly specified initial parameters.1113       * 1114       * # Permissions1115       * 1116       * * Collection owner1117       * * Collection admin1118       * * Anyone if1119       * * Allow List is enabled, and1120       * * Address is added to allow list, and1121       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1122       * 1123       * # Arguments1124       * 1125       * * `collection_id`: ID of the collection to which the tokens would belong.1126       * * `data`: Explicit item creation data.1127       **/1128      createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;1129      /**1130       * Delete specified collection properties.1131       * 1132       * # Permissions1133       * 1134       * * Collection Owner1135       * * Collection Admin1136       * 1137       * # Arguments1138       * 1139       * * `collection_id`: ID of the modified collection.1140       * * `property_keys`: Vector of keys of the properties to be deleted.1141       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1142       **/1143      deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;1144      /**1145       * Delete specified token properties. Currently properties only work with NFTs.1146       * 1147       * # Permissions1148       * 1149       * * Depends on collection's token property permissions and specified property mutability:1150       * * Collection owner1151       * * Collection admin1152       * * Token owner1153       * 1154       * # Arguments1155       * 1156       * * `collection_id`: ID of the collection to which the token belongs.1157       * * `token_id`: ID of the modified token.1158       * * `property_keys`: Vector of keys of the properties to be deleted.1159       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1160       **/1161      deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;1162      /**1163       * Destroy a collection if no tokens exist within.1164       * 1165       * # Permissions1166       * 1167       * * Collection owner1168       * 1169       * # Arguments1170       * 1171       * * `collection_id`: Collection to destroy.1172       **/1173      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1174      /**1175       * Remove admin of a collection.1176       * 1177       * An admin address can remove itself. List of admins may become empty,1178       * in which case only Collection Owner will be able to add an Admin.1179       * 1180       * # Permissions1181       * 1182       * * Collection owner1183       * * Collection admin1184       * 1185       * # Arguments1186       * 1187       * * `collection_id`: ID of the collection to remove the admin for.1188       * * `account_id`: Address of the admin to remove.1189       **/1190      removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1191      /**1192       * Remove a collection's a sponsor, making everyone pay for their own transactions.1193       * 1194       * # Permissions1195       * 1196       * * Collection owner1197       * 1198       * # Arguments1199       * 1200       * * `collection_id`: ID of the collection with the sponsor to remove.1201       **/1202      removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1203      /**1204       * Remove an address from allow list.1205       * 1206       * # Permissions1207       * 1208       * * Collection owner1209       * * Collection admin1210       * 1211       * # Arguments1212       * 1213       * * `collection_id`: ID of the modified collection.1214       * * `address`: ID of the address to be removed from the allowlist.1215       **/1216      removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1217      /**1218       * Re-partition a refungible token, while owning all of its parts/pieces.1219       * 1220       * # Permissions1221       * 1222       * * Token owner (must own every part)1223       * 1224       * # Arguments1225       * 1226       * * `collection_id`: ID of the collection the RFT belongs to.1227       * * `token_id`: ID of the RFT.1228       * * `amount`: New number of parts/pieces into which the token shall be partitioned.1229       **/1230      repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1231      /**1232       * Set specific limits of a collection. Empty, or None fields mean chain default.1233       * 1234       * # Permissions1235       * 1236       * * Collection owner1237       * * Collection admin1238       * 1239       * # Arguments1240       * 1241       * * `collection_id`: ID of the modified collection.1242       * * `new_limit`: New limits of the collection. Fields that are not set (None)1243       * will not overwrite the old ones.1244       **/1245      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]>;1246      /**1247       * Set specific permissions of a collection. Empty, or None fields mean chain default.1248       * 1249       * # Permissions1250       * 1251       * * Collection owner1252       * * Collection admin1253       * 1254       * # Arguments1255       * 1256       * * `collection_id`: ID of the modified collection.1257       * * `new_permission`: New permissions of the collection. Fields that are not set (None)1258       * will not overwrite the old ones.1259       **/1260      setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1261      /**1262       * Add or change collection properties.1263       * 1264       * # Permissions1265       * 1266       * * Collection owner1267       * * Collection admin1268       * 1269       * # Arguments1270       * 1271       * * `collection_id`: ID of the modified collection.1272       * * `properties`: Vector of key-value pairs stored as the collection's metadata.1273       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1274       **/1275      setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1276      /**1277       * Set (invite) a new collection sponsor.1278       * 1279       * If successful, confirmation from the sponsor-to-be will be pending.1280       * 1281       * # Permissions1282       * 1283       * * Collection owner1284       * * Collection admin1285       * 1286       * # Arguments1287       * 1288       * * `collection_id`: ID of the modified collection.1289       * * `new_sponsor`: ID of the account of the sponsor-to-be.1290       **/1291      setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1292      /**1293       * Add or change token properties according to collection's permissions.1294       * Currently properties only work with NFTs.1295       * 1296       * # Permissions1297       * 1298       * * Depends on collection's token property permissions and specified property mutability:1299       * * Collection owner1300       * * Collection admin1301       * * Token owner1302       * 1303       * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1304       * 1305       * # Arguments1306       * 1307       * * `collection_id: ID of the collection to which the token belongs.1308       * * `token_id`: ID of the modified token.1309       * * `properties`: Vector of key-value pairs stored as the token's metadata.1310       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1311       **/1312      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>]>;1313      /**1314       * Add or change token property permissions of a collection.1315       * 1316       * Without a permission for a particular key, a property with that key1317       * cannot be created in a token.1318       * 1319       * # Permissions1320       * 1321       * * Collection owner1322       * * Collection admin1323       * 1324       * # Arguments1325       * 1326       * * `collection_id`: ID of the modified collection.1327       * * `property_permissions`: Vector of permissions for property keys.1328       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1329       **/1330      setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1331      /**1332       * Completely allow or disallow transfers for a particular collection.1333       * 1334       * # Permissions1335       * 1336       * * Collection owner1337       * 1338       * # Arguments1339       * 1340       * * `collection_id`: ID of the collection.1341       * * `value`: New value of the flag, are transfers allowed?1342       **/1343      setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1344      /**1345       * Change ownership of the token.1346       * 1347       * # Permissions1348       * 1349       * * Collection owner1350       * * Collection admin1351       * * Current token owner1352       * 1353       * # Arguments1354       * 1355       * * `recipient`: Address of token recipient.1356       * * `collection_id`: ID of the collection the item belongs to.1357       * * `item_id`: ID of the item.1358       * * Non-Fungible Mode: Required.1359       * * Fungible Mode: Ignored.1360       * * Re-Fungible Mode: Required.1361       * 1362       * * `value`: Amount to transfer.1363       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1364       * * Fungible Mode: The desired number of pieces to transfer.1365       * * Re-Fungible Mode: The desired number of pieces to transfer.1366       **/1367      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]>;1368      /**1369       * Change ownership of an item on behalf of the owner as a non-owner account.1370       * 1371       * See the [`approve`][`Pallet::approve`] method for additional information.1372       * 1373       * After this method executes, one approval is removed from the total so that1374       * the approved address will not be able to transfer this item again from this owner.1375       * 1376       * # Permissions1377       * 1378       * * Collection owner1379       * * Collection admin1380       * * Current item owner1381       * * Address approved by current item owner1382       * 1383       * # Arguments1384       * 1385       * * `from`: Address that currently owns the token.1386       * * `recipient`: Address of the new token-owner-to-be.1387       * * `collection_id`: ID of the collection the item.1388       * * `item_id`: ID of the item to be transferred.1389       * * `value`: Amount to transfer.1390       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1391       * * Fungible Mode: The desired number of pieces to transfer.1392       * * Re-Fungible Mode: The desired number of pieces to transfer.1393       **/1394      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]>;1395      /**1396       * Generic tx1397       **/1398      [key: string]: SubmittableExtrinsicFunction<ApiType>;1399    };1400    vesting: {1401      claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1402      claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1403      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>]>;1404      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]>;1405      /**1406       * Generic tx1407       **/1408      [key: string]: SubmittableExtrinsicFunction<ApiType>;1409    };1410    xcmpQueue: {1411      /**1412       * Resumes all XCM executions for the XCMP queue.1413       * 1414       * Note that this function doesn't change the status of the in/out bound channels.1415       * 1416       * - `origin`: Must pass `ControllerOrigin`.1417       **/1418      resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1419      /**1420       * Services a single overweight XCM.1421       * 1422       * - `origin`: Must pass `ExecuteOverweightOrigin`.1423       * - `index`: The index of the overweight XCM to service1424       * - `weight_limit`: The amount of weight that XCM execution may take.1425       * 1426       * Errors:1427       * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1428       * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1429       * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1430       * 1431       * Events:1432       * - `OverweightServiced`: On success.1433       **/1434      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1435      /**1436       * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1437       * 1438       * - `origin`: Must pass `ControllerOrigin`.1439       **/1440      suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1441      /**1442       * Overwrites the number of pages of messages which must be in the queue after which we drop any further1443       * messages from the channel.1444       * 1445       * - `origin`: Must pass `Root`.1446       * - `new`: Desired value for `QueueConfigData.drop_threshold`1447       **/1448      updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1449      /**1450       * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1451       * message sending may recommence after it has been suspended.1452       * 1453       * - `origin`: Must pass `Root`.1454       * - `new`: Desired value for `QueueConfigData.resume_threshold`1455       **/1456      updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1457      /**1458       * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1459       * suspend their sending.1460       * 1461       * - `origin`: Must pass `Root`.1462       * - `new`: Desired value for `QueueConfigData.suspend_value`1463       **/1464      updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1465      /**1466       * Overwrites the amount of remaining weight under which we stop processing messages.1467       * 1468       * - `origin`: Must pass `Root`.1469       * - `new`: Desired value for `QueueConfigData.threshold_weight`1470       **/1471      updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1472      /**1473       * Overwrites the speed to which the available weight approaches the maximum weight.1474       * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1475       * 1476       * - `origin`: Must pass `Root`.1477       * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1478       **/1479      updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1480      /**1481       * Overwrite the maximum amount of weight any individual message may consume.1482       * Messages above this weight go into the overweight queue and may only be serviced explicitly.1483       * 1484       * - `origin`: Must pass `Root`.1485       * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1486       **/1487      updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1488      /**1489       * Generic tx1490       **/1491      [key: string]: SubmittableExtrinsicFunction<ApiType>;1492    };1493  } // AugmentedSubmittables1494} // declare module
after · tests/src/interfaces/augment-api-tx.ts
1// Auto-generated via `yarn polkadot-types-from-chain`, do not edit2/* eslint-disable */34import type { ApiTypes } from '@polkadot/api-base/types';5import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec';6import type { AnyNumber, IMethod, ITuple } from '@polkadot/types-codec/types';7import type { AccountId32, Call, H160, H256, MultiAddress, Perbill, Permill } from '@polkadot/types/interfaces/runtime';8import 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';910declare module '@polkadot/api-base/types/submittable' {11  export interface AugmentedSubmittables<ApiType extends ApiTypes> {12    balances: {13      /**14       * Exactly as `transfer`, except the origin must be root and the source account may be15       * specified.16       * # <weight>17       * - Same as transfer, but additional read and write because the source account is not18       * assumed to be in the overlay.19       * # </weight>20       **/21      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>]>;22      /**23       * Unreserve some balance from a user by force.24       * 25       * Can only be called by ROOT.26       **/27      forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, u128]>;28      /**29       * Set the balances of a given account.30       * 31       * This will alter `FreeBalance` and `ReservedBalance` in storage. it will32       * also alter the total issuance of the system (`TotalIssuance`) appropriately.33       * If the new free or reserved balance is below the existential deposit,34       * it will reset the account nonce (`frame_system::AccountNonce`).35       * 36       * The dispatch origin for this call is `root`.37       **/38      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>]>;39      /**40       * Transfer some liquid free balance to another account.41       * 42       * `transfer` will set the `FreeBalance` of the sender and receiver.43       * If the sender's account is below the existential deposit as a result44       * of the transfer, the account will be reaped.45       * 46       * The dispatch origin for this call must be `Signed` by the transactor.47       * 48       * # <weight>49       * - Dependent on arguments but not critical, given proper implementations for input config50       * types. See related functions below.51       * - It contains a limited number of reads and writes internally and no complex52       * computation.53       * 54       * Related functions:55       * 56       * - `ensure_can_withdraw` is always called internally but has a bounded complexity.57       * - Transferring balances to accounts that did not exist before will cause58       * `T::OnNewAccount::on_new_account` to be called.59       * - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.60       * - `transfer_keep_alive` works the same way as `transfer`, but has an additional check61       * that the transfer will not kill the origin account.62       * ---------------------------------63       * - Origin account is already in memory, so no DB operations for them.64       * # </weight>65       **/66      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>]>;67      /**68       * Transfer the entire transferable balance from the caller account.69       * 70       * NOTE: This function only attempts to transfer _transferable_ balances. This means that71       * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be72       * transferred by this function. To ensure that this function results in a killed account,73       * you might need to prepare the account by removing any reference counters, storage74       * deposits, etc...75       * 76       * The dispatch origin of this call must be Signed.77       * 78       * - `dest`: The recipient of the transfer.79       * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all80       * of the funds the account has, causing the sender account to be killed (false), or81       * transfer everything except at least the existential deposit, which will guarantee to82       * keep the sender account alive (true). # <weight>83       * - O(1). Just like transfer, but reading the user's transferable balance first.84       * #</weight>85       **/86      transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress, bool]>;87      /**88       * Same as the [`transfer`] call, but with a check that the transfer will not kill the89       * origin account.90       * 91       * 99% of the time you want [`transfer`] instead.92       * 93       * [`transfer`]: struct.Pallet.html#method.transfer94       **/95      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>]>;96      /**97       * Generic tx98       **/99      [key: string]: SubmittableExtrinsicFunction<ApiType>;100    };101    charging: {102      /**103       * Generic tx104       **/105      [key: string]: SubmittableExtrinsicFunction<ApiType>;106    };107    configuration: {108      setMinGasPriceOverride: AugmentedSubmittable<(coeff: Option<u64> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u64>]>;109      setWeightToFeeCoefficientOverride: AugmentedSubmittable<(coeff: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;110      /**111       * Generic tx112       **/113      [key: string]: SubmittableExtrinsicFunction<ApiType>;114    };115    cumulusXcm: {116      /**117       * Generic tx118       **/119      [key: string]: SubmittableExtrinsicFunction<ApiType>;120    };121    dmpQueue: {122      /**123       * Service a single overweight message.124       * 125       * - `origin`: Must pass `ExecuteOverweightOrigin`.126       * - `index`: The index of the overweight message to service.127       * - `weight_limit`: The amount of weight that message execution may take.128       * 129       * Errors:130       * - `Unknown`: Message of `index` is unknown.131       * - `OverLimit`: Message execution may use greater than `weight_limit`.132       * 133       * Events:134       * - `OverweightServiced`: On success.135       **/136      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;137      /**138       * Generic tx139       **/140      [key: string]: SubmittableExtrinsicFunction<ApiType>;141    };142    ethereum: {143      /**144       * Transact an Ethereum transaction.145       **/146      transact: AugmentedSubmittable<(transaction: EthereumTransactionTransactionV2 | { Legacy: any } | { EIP2930: any } | { EIP1559: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [EthereumTransactionTransactionV2]>;147      /**148       * Generic tx149       **/150      [key: string]: SubmittableExtrinsicFunction<ApiType>;151    };152    evm: {153      /**154       * Issue an EVM call operation. This is similar to a message call transaction in Ethereum.155       **/156      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;157      /**158       * Issue an EVM create operation. This is similar to a contract creation transaction in159       * Ethereum.160       **/161      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;162      /**163       * Issue an EVM create2 operation.164       **/165      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 | object | string | Uint8Array, nonce: Option<U256> | null | object | string | Uint8Array, 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>]>>]>;166      /**167       * Withdraw balance from EVM into currency/balances pallet.168       **/169      withdraw: AugmentedSubmittable<(address: H160 | string | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, u128]>;170      /**171       * Generic tx172       **/173      [key: string]: SubmittableExtrinsicFunction<ApiType>;174    };175    evmMigration: {176      begin: AugmentedSubmittable<(address: H160 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160]>;177      finish: AugmentedSubmittable<(address: H160 | string | Uint8Array, code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H160, Bytes]>;178      setData: AugmentedSubmittable<(address: H160 | string | Uint8Array, data: Vec<ITuple<[H256, H256]>> | ([H256 | string | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [H160, Vec<ITuple<[H256, H256]>>]>;179      /**180       * Generic tx181       **/182      [key: string]: SubmittableExtrinsicFunction<ApiType>;183    };184    inflation: {185      /**186       * This method sets the inflation start date. Can be only called once.187       * Inflation start block can be backdated and will catch up. The method will create Treasury188       * account if it does not exist and perform the first inflation deposit.189       * 190       * # Permissions191       * 192       * * Root193       * 194       * # Arguments195       * 196       * * inflation_start_relay_block: The relay chain block at which inflation should start197       **/198      startInflation: AugmentedSubmittable<(inflationStartRelayBlock: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;199      /**200       * Generic tx201       **/202      [key: string]: SubmittableExtrinsicFunction<ApiType>;203    };204    parachainSystem: {205      authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [H256]>;206      enactAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;207      /**208       * Set the current validation data.209       * 210       * This should be invoked exactly once per block. It will panic at the finalization211       * phase if the call was not invoked.212       * 213       * The dispatch origin for this call must be `Inherent`214       * 215       * As a side effect, this function upgrades the current validation function216       * if the appropriate time has come.217       **/218      setValidationData: AugmentedSubmittable<(data: CumulusPrimitivesParachainInherentParachainInherentData | { validationData?: any; relayChainState?: any; downwardMessages?: any; horizontalMessages?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [CumulusPrimitivesParachainInherentParachainInherentData]>;219      sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;220      /**221       * Generic tx222       **/223      [key: string]: SubmittableExtrinsicFunction<ApiType>;224    };225    polkadotXcm: {226      /**227       * Execute an XCM message from a local, signed, origin.228       * 229       * An event is deposited indicating whether `msg` could be executed completely or only230       * partially.231       * 232       * No more than `max_weight` will be used in its attempted execution. If this is less than the233       * maximum amount of weight that the message could take to be executed, then no execution234       * attempt will be made.235       * 236       * NOTE: A successful return to this does *not* imply that the `msg` was executed successfully237       * to completion; only that *some* of it was executed.238       **/239      execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array, maxWeight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedXcm, u64]>;240      /**241       * Set a safe XCM version (the version that XCM should be encoded with if the most recent242       * version a destination can accept is unknown).243       * 244       * - `origin`: Must be Root.245       * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.246       **/247      forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option<u32> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<u32>]>;248      /**249       * Ask a location to notify us regarding their XCM version and any changes to it.250       * 251       * - `origin`: Must be Root.252       * - `location`: The location to which we should subscribe for XCM version notifications.253       **/254      forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;255      /**256       * Require that a particular destination should no longer notify us regarding any XCM257       * version changes.258       * 259       * - `origin`: Must be Root.260       * - `location`: The location to which we are currently subscribed for XCM version261       * notifications which we no longer desire.262       **/263      forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation]>;264      /**265       * Extoll that a particular destination can be communicated with through a particular266       * version of XCM.267       * 268       * - `origin`: Must be Root.269       * - `location`: The destination that is being described.270       * - `xcm_version`: The latest version of XCM that `location` supports.271       **/272      forceXcmVersion: AugmentedSubmittable<(location: XcmV1MultiLocation | { parents?: any; interior?: any } | string | Uint8Array, xcmVersion: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmV1MultiLocation, u32]>;273      /**274       * Transfer some assets from the local chain to the sovereign account of a destination275       * chain and forward a notification XCM.276       * 277       * Fee payment on the destination side is made from the asset in the `assets` vector of278       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight279       * is needed than `weight_limit`, then the operation will fail and the assets send may be280       * at risk.281       * 282       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.283       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send284       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.285       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be286       * an `AccountId32` value.287       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the288       * `dest` side.289       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay290       * fees.291       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.292       **/293      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]>;294      /**295       * Teleport some assets from the local chain to some destination chain.296       * 297       * Fee payment on the destination side is made from the asset in the `assets` vector of298       * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight299       * is needed than `weight_limit`, then the operation will fail and the assets send may be300       * at risk.301       * 302       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.303       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send304       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.305       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be306       * an `AccountId32` value.307       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the308       * `dest` side. May not be empty.309       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay310       * fees.311       * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.312       **/313      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]>;314      /**315       * Transfer some assets from the local chain to the sovereign account of a destination316       * chain and forward a notification XCM.317       * 318       * Fee payment on the destination side is made from the asset in the `assets` vector of319       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,320       * with all fees taken as needed from the asset.321       * 322       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.323       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send324       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.325       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be326       * an `AccountId32` value.327       * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the328       * `dest` side.329       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay330       * fees.331       **/332      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]>;333      send: AugmentedSubmittable<(dest: XcmVersionedMultiLocation | { V0: any } | { V1: any } | string | Uint8Array, message: XcmVersionedXcm | { V0: any } | { V1: any } | { V2: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [XcmVersionedMultiLocation, XcmVersionedXcm]>;334      /**335       * Teleport some assets from the local chain to some destination chain.336       * 337       * Fee payment on the destination side is made from the asset in the `assets` vector of338       * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,339       * with all fees taken as needed from the asset.340       * 341       * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.342       * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send343       * from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.344       * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be345       * an `AccountId32` value.346       * - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the347       * `dest` side. May not be empty.348       * - `fee_asset_item`: The index into `assets` of the item which should be used to pay349       * fees.350       **/351      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]>;352      /**353       * Generic tx354       **/355      [key: string]: SubmittableExtrinsicFunction<ApiType>;356    };357    rmrkCore: {358      /**359       * Accept an NFT sent from another account to self or an owned NFT.360       * 361       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.362       * 363       * # Permissions:364       * - Token-owner-to-be365       * 366       * # Arguments:367       * - `rmrk_collection_id`: RMRK collection ID of the NFT to be accepted.368       * - `rmrk_nft_id`: ID of the NFT to be accepted.369       * - `new_owner`: Either the sender's account ID or a sender-owned NFT,370       * whichever the accepted NFT was sent to.371       **/372      acceptNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;373      /**374       * Accept the addition of a newly created pending resource to an existing NFT.375       * 376       * This transaction is needed when a resource is created and assigned to an NFT377       * by a non-owner, i.e. the collection issuer, with one of the378       * [`add_...` transactions](Pallet::add_basic_resource).379       * 380       * # Permissions:381       * - Token owner382       * 383       * # Arguments:384       * - `rmrk_collection_id`: RMRK collection ID of the NFT.385       * - `rmrk_nft_id`: ID of the NFT with a pending resource to be accepted.386       * - `resource_id`: ID of the newly created pending resource.387       **/388      acceptResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;389      /**390       * Accept the removal of a removal-pending resource from an NFT.391       * 392       * This transaction is needed when a non-owner, i.e. the collection issuer,393       * requests a [removal](`Pallet::remove_resource`) of a resource from an NFT.394       * 395       * # Permissions:396       * - Token owner397       * 398       * # Arguments:399       * - `rmrk_collection_id`: RMRK collection ID of the NFT.400       * - `rmrk_nft_id`: ID of the NFT with a resource to be removed.401       * - `resource_id`: ID of the removal-pending resource.402       **/403      acceptResourceRemoval: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;404      /**405       * Create and set/propose a basic resource for an NFT.406       * 407       * A basic resource is the simplest, lacking a Base and anything that comes with it.408       * See RMRK docs for more information and examples.409       * 410       * # Permissions:411       * - Collection issuer - if not the token owner, adding the resource will warrant412       * the owner's [acceptance](Pallet::accept_resource).413       * 414       * # Arguments:415       * - `rmrk_collection_id`: RMRK collection ID of the NFT.416       * - `nft_id`: ID of the NFT to assign a resource to.417       * - `resource`: Data of the resource to be created.418       **/419      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]>;420      /**421       * Create and set/propose a composable resource for an NFT.422       * 423       * A composable resource links to a Base and has a subset of its Parts it is composed of.424       * See RMRK docs for more information and examples.425       * 426       * # Permissions:427       * - Collection issuer - if not the token owner, adding the resource will warrant428       * the owner's [acceptance](Pallet::accept_resource).429       * 430       * # Arguments:431       * - `rmrk_collection_id`: RMRK collection ID of the NFT.432       * - `nft_id`: ID of the NFT to assign a resource to.433       * - `resource`: Data of the resource to be created.434       **/435      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]>;436      /**437       * Create and set/propose a slot resource for an NFT.438       * 439       * A slot resource links to a Base and a slot ID in it which it can fit into.440       * See RMRK docs for more information and examples.441       * 442       * # Permissions:443       * - Collection issuer - if not the token owner, adding the resource will warrant444       * the owner's [acceptance](Pallet::accept_resource).445       * 446       * # Arguments:447       * - `rmrk_collection_id`: RMRK collection ID of the NFT.448       * - `nft_id`: ID of the NFT to assign a resource to.449       * - `resource`: Data of the resource to be created.450       **/451      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]>;452      /**453       * Burn an NFT, destroying it and its nested tokens up to the specified limit.454       * If the burning budget is exceeded, the transaction is reverted.455       * 456       * This is the way to burn a nested token as well.457       * 458       * For more information, see [`burn_recursively`](pallet_nonfungible::pallet::Pallet::burn_recursively).459       * 460       * # Permissions:461       * * Token owner462       * 463       * # Arguments:464       * - `collection_id`: RMRK ID of the collection in which the NFT to burn belongs to.465       * - `nft_id`: ID of the NFT to be destroyed.466       * - `max_burns`: Maximum number of tokens to burn, assuming nesting. The transaction467       * is reverted if there are more tokens to burn in the nesting tree than this number.468       * This is primarily a mechanism of transaction weight control.469       **/470      burnNft: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, maxBurns: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;471      /**472       * Change the issuer of a collection. Analogous to Unique's collection's [`owner`](up_data_structs::Collection).473       * 474       * # Permissions:475       * * Collection issuer476       * 477       * # Arguments:478       * - `collection_id`: RMRK collection ID to change the issuer of.479       * - `new_issuer`: Collection's new issuer.480       **/481      changeCollectionIssuer: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newIssuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, MultiAddress]>;482      /**483       * Create a new collection of NFTs.484       * 485       * # Permissions:486       * * Anyone - will be assigned as the issuer of the collection.487       * 488       * # Arguments:489       * - `metadata`: Metadata describing the collection, e.g. IPFS hash. Cannot be changed.490       * - `max`: Optional maximum number of tokens.491       * - `symbol`: UTF-8 string with token prefix, by which to represent the token in wallets and UIs.492       * Analogous to Unique's [`token_prefix`](up_data_structs::Collection). Cannot be changed.493       **/494      createCollection: AugmentedSubmittable<(metadata: Bytes | string | Uint8Array, max: Option<u32> | null | object | string | Uint8Array, symbol: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, Option<u32>, Bytes]>;495      /**496       * Destroy a collection.497       * 498       * Only empty collections can be destroyed. If it has any tokens, they must be burned first.499       * 500       * # Permissions:501       * * Collection issuer502       * 503       * # Arguments:504       * - `collection_id`: RMRK ID of the collection to destroy.505       **/506      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;507      /**508       * "Lock" the collection and prevent new token creation. Cannot be undone.509       * 510       * # Permissions:511       * * Collection issuer512       * 513       * # Arguments:514       * - `collection_id`: RMRK ID of the collection to lock.515       **/516      lockCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;517      /**518       * Mint an NFT in a specified collection.519       * 520       * # Permissions:521       * * Collection issuer522       * 523       * # Arguments:524       * - `owner`: Owner account of the NFT. If set to None, defaults to the sender (collection issuer).525       * - `collection_id`: RMRK collection ID for the NFT to be minted within. Cannot be changed.526       * - `recipient`: Receiver account of the royalty. Has no effect if the `royalty_amount` is not set. Cannot be changed.527       * - `royalty_amount`: Optional permillage reward from each trade for the `recipient`. Cannot be changed.528       * - `metadata`: Arbitrary data about an NFT, e.g. IPFS hash. Cannot be changed.529       * - `transferable`: Can this NFT be transferred? Cannot be changed.530       * - `resources`: Resource data to be added to the NFT immediately after minting.531       **/532      mintNft: AugmentedSubmittable<(owner: Option<AccountId32> | null | object | string | Uint8Array, collectionId: u32 | AnyNumber | Uint8Array, recipient: Option<AccountId32> | null | object | string | Uint8Array, royaltyAmount: Option<Permill> | null | object | string | Uint8Array, metadata: Bytes | string | Uint8Array, transferable: bool | boolean | Uint8Array, resources: Option<Vec<RmrkTraitsResourceResourceTypes>> | null | object | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Option<AccountId32>, u32, Option<AccountId32>, Option<Permill>, Bytes, bool, Option<Vec<RmrkTraitsResourceResourceTypes>>]>;533      /**534       * Reject an NFT sent from another account to self or owned NFT.535       * The NFT in question will not be sent back and burnt instead.536       * 537       * The NFT in question must be pending, and, thus, be [sent](`Pallet::send`) first.538       * 539       * # Permissions:540       * - Token-owner-to-be-not541       * 542       * # Arguments:543       * - `rmrk_collection_id`: RMRK ID of the NFT to be rejected.544       * - `rmrk_nft_id`: ID of the NFT to be rejected.545       **/546      rejectNft: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32]>;547      /**548       * Remove and erase a resource from an NFT.549       * 550       * If the sender does not own the NFT, then it will be pending confirmation,551       * and will have to be [accepted](Pallet::accept_resource_removal) by the token owner.552       * 553       * # Permissions554       * - Collection issuer555       * 556       * # Arguments557       * - `collection_id`: RMRK ID of a collection to which the NFT making use of the resource belongs to.558       * - `nft_id`: ID of the NFT with a resource to be removed.559       * - `resource_id`: ID of the resource to be removed.560       **/561      removeResource: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, resourceId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u32]>;562      /**563       * Transfer an NFT from an account/NFT A to another account/NFT B.564       * The token must be transferable. Nesting cannot occur deeper than the [`NESTING_BUDGET`].565       * 566       * If the target owner is an NFT owned by another account, then the NFT will enter567       * the pending state and will have to be accepted by the other account.568       * 569       * # Permissions:570       * - Token owner571       * 572       * # Arguments:573       * - `collection_id`: RMRK ID of the collection of the NFT to be transferred.574       * - `nft_id`: ID of the NFT to be transferred.575       * - `new_owner`: New owner of the nft which can be either an account or a NFT.576       **/577      send: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, newOwner: RmrkTraitsNftAccountIdOrCollectionNftTuple | { AccountId: any } | { CollectionAndNftTuple: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, RmrkTraitsNftAccountIdOrCollectionNftTuple]>;578      /**579       * Set a different order of resource priorities for an NFT. Priorities can be used,580       * for example, for order of rendering.581       * 582       * Note that the priorities are not updated automatically, and are an empty vector583       * by default. There is no pre-set definition for the order to be particular,584       * it can be interpreted arbitrarily use-case by use-case.585       * 586       * # Permissions:587       * - Token owner588       * 589       * # Arguments:590       * - `rmrk_collection_id`: RMRK collection ID of the NFT.591       * - `rmrk_nft_id`: ID of the NFT to rearrange resource priorities for.592       * - `priorities`: Ordered vector of resource IDs.593       **/594      setPriority: AugmentedSubmittable<(rmrkCollectionId: u32 | AnyNumber | Uint8Array, rmrkNftId: u32 | AnyNumber | Uint8Array, priorities: Vec<u32> | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<u32>]>;595      /**596       * Add or edit a custom user property, a key-value pair, describing the metadata597       * of a token or a collection, on either one of these.598       * 599       * Note that in this proxy implementation many details regarding RMRK are stored600       * as scoped properties prefixed with "rmrk:", normally inaccessible601       * to external transactions and RPCs.602       * 603       * # Permissions:604       * - Collection issuer - in case of collection property605       * - Token owner - in case of NFT property606       * 607       * # Arguments:608       * - `rmrk_collection_id`: RMRK collection ID.609       * - `maybe_nft_id`: Optional ID of the NFT. If left empty, then the property is set for the collection.610       * - `key`: Key of the custom property to be referenced by.611       * - `value`: Value of the custom property to be stored.612       **/613      setProperty: AugmentedSubmittable<(rmrkCollectionId: Compact<u32> | AnyNumber | Uint8Array, maybeNftId: Option<u32> | null | object | string | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>, Option<u32>, Bytes, Bytes]>;614      /**615       * Generic tx616       **/617      [key: string]: SubmittableExtrinsicFunction<ApiType>;618    };619    rmrkEquip: {620      /**621       * Create a new Base.622       * 623       * Modeled after the [Base interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/base.md)624       * 625       * # Permissions626       * - Anyone - will be assigned as the issuer of the Base.627       * 628       * # Arguments:629       * - `base_type`: Arbitrary media type, e.g. "svg".630       * - `symbol`: Arbitrary client-chosen symbol.631       * - `parts`: Array of Fixed and Slot Parts composing the Base,632       * confined in length by [`RmrkPartsLimit`](up_data_structs::RmrkPartsLimit).633       **/634      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>]>;635      /**636       * Update the array of Collections allowed to be equipped to a Base's specified Slot Part.637       * 638       * Modeled after [equippable interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/equippable.md).639       * 640       * # Permissions:641       * - Base issuer642       * 643       * # Arguments:644       * - `base_id`: Base containing the Slot Part to be updated.645       * - `part_id`: Slot Part whose Equippable List is being updated.646       * - `equippables`: List of equippables that will override the current Equippables list.647       **/648      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]>;649      /**650       * Add a Theme to a Base.651       * A Theme named "default" is required prior to adding other Themes.652       * 653       * Modeled after [Themeadd interaction](https://github.com/rmrk-team/rmrk-spec/blob/master/standards/rmrk2.0.0/interactions/themeadd.md).654       * 655       * # Permissions:656       * - Base issuer657       * 658       * # Arguments:659       * - `base_id`: Base ID containing the Theme to be updated.660       * - `theme`: Theme to add to the Base.  A Theme has a name and properties, which are an661       * array of [key, value, inherit].662       * - `key`: Arbitrary BoundedString, defined by client.663       * - `value`: Arbitrary BoundedString, defined by client.664       * - `inherit`: Optional bool.665       **/666      themeAdd: AugmentedSubmittable<(baseId: u32 | AnyNumber | Uint8Array, theme: RmrkTraitsTheme | { name?: any; properties?: any; inherit?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, RmrkTraitsTheme]>;667      /**668       * Generic tx669       **/670      [key: string]: SubmittableExtrinsicFunction<ApiType>;671    };672    scheduler: {673      /**674       * Cancel a named scheduled task.675       **/676      cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed]>;677      /**678       * Schedule a named task.679       **/680      scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;681      /**682       * Schedule a named task after a delay.683       * 684       * # <weight>685       * Same as [`schedule_named`](Self::schedule_named).686       * # </weight>687       **/688      scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option<ITuple<[u32, u32]>> | null | object | string | Uint8Array, priority: u8 | AnyNumber | Uint8Array, call: FrameSupportScheduleMaybeHashed | { Value: any } | { Hash: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [U8aFixed, u32, Option<ITuple<[u32, u32]>>, u8, FrameSupportScheduleMaybeHashed]>;689      /**690       * Generic tx691       **/692      [key: string]: SubmittableExtrinsicFunction<ApiType>;693    };694    structure: {695      /**696       * Generic tx697       **/698      [key: string]: SubmittableExtrinsicFunction<ApiType>;699    };700    sudo: {701      /**702       * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo703       * key.704       * 705       * The dispatch origin for this call must be _Signed_.706       * 707       * # <weight>708       * - O(1).709       * - Limited storage reads.710       * - One DB change.711       * # </weight>712       **/713      setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;714      /**715       * Authenticates the sudo key and dispatches a function call with `Root` origin.716       * 717       * The dispatch origin for this call must be _Signed_.718       * 719       * # <weight>720       * - O(1).721       * - Limited storage reads.722       * - One DB write (event).723       * - Weight of derivative `call` execution + 10,000.724       * # </weight>725       **/726      sudo: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call]>;727      /**728       * Authenticates the sudo key and dispatches a function call with `Signed` origin from729       * a given account.730       * 731       * The dispatch origin for this call must be _Signed_.732       * 733       * # <weight>734       * - O(1).735       * - Limited storage reads.736       * - One DB write (event).737       * - Weight of derivative `call` execution + 10,000.738       * # </weight>739       **/740      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]>;741      /**742       * Authenticates the sudo key and dispatches a function call with `Root` origin.743       * This function does not check the weight of the call, and instead allows the744       * Sudo user to specify the weight of the call.745       * 746       * The dispatch origin for this call must be _Signed_.747       * 748       * # <weight>749       * - O(1).750       * - The weight of this call is defined by the caller.751       * # </weight>752       **/753      sudoUncheckedWeight: AugmentedSubmittable<(call: Call | IMethod | string | Uint8Array, weight: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Call, u64]>;754      /**755       * Generic tx756       **/757      [key: string]: SubmittableExtrinsicFunction<ApiType>;758    };759    system: {760      /**761       * A dispatch that will fill the block weight up to the given ratio.762       **/763      fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Perbill]>;764      /**765       * Kill all storage items with a key that starts with the given prefix.766       * 767       * **NOTE:** We rely on the Root origin to provide us the number of subkeys under768       * the prefix we are removing to accurately calculate the weight of this function.769       **/770      killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes, u32]>;771      /**772       * Kill some items from storage.773       **/774      killStorage: AugmentedSubmittable<(keys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [Vec<Bytes>]>;775      /**776       * Make some on-chain remark.777       * 778       * # <weight>779       * - `O(1)`780       * # </weight>781       **/782      remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;783      /**784       * Make some on-chain remark and emit event.785       **/786      remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;787      /**788       * Set the new runtime code.789       * 790       * # <weight>791       * - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`792       * - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is793       * expensive).794       * - 1 storage write (codec `O(C)`).795       * - 1 digest item.796       * - 1 event.797       * The weight of this function is dependent on the runtime, but generally this is very798       * expensive. We will treat this as a full block.799       * # </weight>800       **/801      setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;802      /**803       * Set the new runtime code without doing any checks of the given `code`.804       * 805       * # <weight>806       * - `O(C)` where `C` length of `code`807       * - 1 storage write (codec `O(C)`).808       * - 1 digest item.809       * - 1 event.810       * The weight of this function is dependent on the runtime. We will treat this as a full811       * block. # </weight>812       **/813      setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [Bytes]>;814      /**815       * Set the number of pages in the WebAssembly environment's heap.816       **/817      setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;818      /**819       * Set some items of storage.820       **/821      setStorage: AugmentedSubmittable<(items: Vec<ITuple<[Bytes, Bytes]>> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic<ApiType>, [Vec<ITuple<[Bytes, Bytes]>>]>;822      /**823       * Generic tx824       **/825      [key: string]: SubmittableExtrinsicFunction<ApiType>;826    };827    timestamp: {828      /**829       * Set the current time.830       * 831       * This call should be invoked exactly once per block. It will panic at the finalization832       * phase, if this call hasn't been invoked by that time.833       * 834       * The timestamp should be greater than the previous one by the amount specified by835       * `MinimumPeriod`.836       * 837       * The dispatch origin for this call must be `Inherent`.838       * 839       * # <weight>840       * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)841       * - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in842       * `on_finalize`)843       * - 1 event handler `on_timestamp_set`. Must be `O(1)`.844       * # </weight>845       **/846      set: AugmentedSubmittable<(now: Compact<u64> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u64>]>;847      /**848       * Generic tx849       **/850      [key: string]: SubmittableExtrinsicFunction<ApiType>;851    };852    treasury: {853      /**854       * Approve a proposal. At a later time, the proposal will be allocated to the beneficiary855       * and the original deposit will be returned.856       * 857       * May only be called from `T::ApproveOrigin`.858       * 859       * # <weight>860       * - Complexity: O(1).861       * - DbReads: `Proposals`, `Approvals`862       * - DbWrite: `Approvals`863       * # </weight>864       **/865      approveProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;866      /**867       * Put forward a suggestion for spending. A deposit proportional to the value868       * is reserved and slashed if the proposal is rejected. It is returned once the869       * proposal is awarded.870       * 871       * # <weight>872       * - Complexity: O(1)873       * - DbReads: `ProposalCount`, `origin account`874       * - DbWrites: `ProposalCount`, `Proposals`, `origin account`875       * # </weight>876       **/877      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]>;878      /**879       * Reject a proposed spend. The original deposit will be slashed.880       * 881       * May only be called from `T::RejectOrigin`.882       * 883       * # <weight>884       * - Complexity: O(1)885       * - DbReads: `Proposals`, `rejected proposer account`886       * - DbWrites: `Proposals`, `rejected proposer account`887       * # </weight>888       **/889      rejectProposal: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;890      /**891       * Force a previously approved proposal to be removed from the approval queue.892       * The original deposit will no longer be returned.893       * 894       * May only be called from `T::RejectOrigin`.895       * - `proposal_id`: The index of a proposal896       * 897       * # <weight>898       * - Complexity: O(A) where `A` is the number of approvals899       * - Db reads and writes: `Approvals`900       * # </weight>901       * 902       * Errors:903       * - `ProposalNotApproved`: The `proposal_id` supplied was not found in the approval queue,904       * i.e., the proposal has not been approved. This could also mean the proposal does not905       * exist altogether, thus there is no way it would have been approved in the first place.906       **/907      removeApproval: AugmentedSubmittable<(proposalId: Compact<u32> | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [Compact<u32>]>;908      /**909       * Generic tx910       **/911      [key: string]: SubmittableExtrinsicFunction<ApiType>;912    };913    unique: {914      /**915       * Add an admin to a collection.916       * 917       * NFT Collection can be controlled by multiple admin addresses918       * (some which can also be servers, for example). Admins can issue919       * and burn NFTs, as well as add and remove other admins,920       * but cannot change NFT or Collection ownership.921       * 922       * # Permissions923       * 924       * * Collection owner925       * * Collection admin926       * 927       * # Arguments928       * 929       * * `collection_id`: ID of the Collection to add an admin for.930       * * `new_admin`: Address of new admin to add.931       **/932      addCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newAdmin: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;933      /**934       * Add an address to allow list.935       * 936       * # Permissions937       * 938       * * Collection owner939       * * Collection admin940       * 941       * # Arguments942       * 943       * * `collection_id`: ID of the modified collection.944       * * `address`: ID of the address to be added to the allowlist.945       **/946      addToAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;947      /**948       * Allow a non-permissioned address to transfer or burn an item.949       * 950       * # Permissions951       * 952       * * Collection owner953       * * Collection admin954       * * Current item owner955       * 956       * # Arguments957       * 958       * * `spender`: Account to be approved to make specific transactions on non-owned tokens.959       * * `collection_id`: ID of the collection the item belongs to.960       * * `item_id`: ID of the item transactions on which are now approved.961       * * `amount`: Number of pieces of the item approved for a transaction (maximum of 1 for NFTs).962       * Set to 0 to revoke the approval.963       **/964      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]>;965      /**966       * Destroy a token on behalf of the owner as a non-owner account.967       * 968       * See also: [`approve`][`Pallet::approve`].969       * 970       * After this method executes, one approval is removed from the total so that971       * the approved address will not be able to transfer this item again from this owner.972       * 973       * # Permissions974       * 975       * * Collection owner976       * * Collection admin977       * * Current token owner978       * * Address approved by current item owner979       * 980       * # Arguments981       * 982       * * `from`: The owner of the burning item.983       * * `collection_id`: ID of the collection to which the item belongs.984       * * `item_id`: ID of item to burn.985       * * `value`: Number of pieces to burn.986       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.987       * * Fungible Mode: The desired number of pieces to burn.988       * * Re-Fungible Mode: The desired number of pieces to burn.989       **/990      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]>;991      /**992       * Destroy an item.993       * 994       * # Permissions995       * 996       * * Collection owner997       * * Collection admin998       * * Current item owner999       * 1000       * # Arguments1001       * 1002       * * `collection_id`: ID of the collection to which the item belongs.1003       * * `item_id`: ID of item to burn.1004       * * `value`: Number of pieces of the item to destroy.1005       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1006       * * Fungible Mode: The desired number of pieces to burn.1007       * * Re-Fungible Mode: The desired number of pieces to burn.1008       **/1009      burnItem: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, itemId: u32 | AnyNumber | Uint8Array, value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1010      /**1011       * Change the owner of the collection.1012       * 1013       * # Permissions1014       * 1015       * * Collection owner1016       * 1017       * # Arguments1018       * 1019       * * `collection_id`: ID of the modified collection.1020       * * `new_owner`: ID of the account that will become the owner.1021       **/1022      changeCollectionOwner: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1023      /**1024       * Confirm own sponsorship of a collection, becoming the sponsor.1025       * 1026       * An invitation must be pending, see [`set_collection_sponsor`][`Pallet::set_collection_sponsor`].1027       * Sponsor can pay the fees of a transaction instead of the sender,1028       * but only within specified limits.1029       * 1030       * # Permissions1031       * 1032       * * Sponsor-to-be1033       * 1034       * # Arguments1035       * 1036       * * `collection_id`: ID of the collection with the pending sponsor.1037       **/1038      confirmSponsorship: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1039      /**1040       * Create a collection of tokens.1041       * 1042       * Each Token may have multiple properties encoded as an array of bytes1043       * of certain length. The initial owner of the collection is set1044       * to the address that signed the transaction and can be changed later.1045       * 1046       * Prefer the more advanced [`create_collection_ex`][`Pallet::create_collection_ex`] instead.1047       * 1048       * # Permissions1049       * 1050       * * Anyone - becomes the owner of the new collection.1051       * 1052       * # Arguments1053       * 1054       * * `collection_name`: Wide-character string with collection name1055       * (limit [`MAX_COLLECTION_NAME_LENGTH`]).1056       * * `collection_description`: Wide-character string with collection description1057       * (limit [`MAX_COLLECTION_DESCRIPTION_LENGTH`]).1058       * * `token_prefix`: Byte string containing the token prefix to mark a collection1059       * to which a token belongs (limit [`MAX_TOKEN_PREFIX_LENGTH`]).1060       * * `mode`: Type of items stored in the collection and type dependent data.1061       **/1062      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]>;1063      /**1064       * Create a collection with explicit parameters.1065       * 1066       * Prefer it to the deprecated [`create_collection`][`Pallet::create_collection`] method.1067       * 1068       * # Permissions1069       * 1070       * * Anyone - becomes the owner of the new collection.1071       * 1072       * # Arguments1073       * 1074       * * `data`: Explicit data of a collection used for its creation.1075       **/1076      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]>;1077      /**1078       * Mint an item within a collection.1079       * 1080       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1081       * 1082       * # Permissions1083       * 1084       * * Collection owner1085       * * Collection admin1086       * * Anyone if1087       * * Allow List is enabled, and1088       * * Address is added to allow list, and1089       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1090       * 1091       * # Arguments1092       * 1093       * * `collection_id`: ID of the collection to which an item would belong.1094       * * `owner`: Address of the initial owner of the item.1095       * * `data`: Token data describing the item to store on chain.1096       **/1097      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]>;1098      /**1099       * Create multiple items within a collection.1100       * 1101       * A collection must exist first, see [`create_collection_ex`][`Pallet::create_collection_ex`].1102       * 1103       * # Permissions1104       * 1105       * * Collection owner1106       * * Collection admin1107       * * Anyone if1108       * * Allow List is enabled, and1109       * * Address is added to the allow list, and1110       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1111       * 1112       * # Arguments1113       * 1114       * * `collection_id`: ID of the collection to which the tokens would belong.1115       * * `owner`: Address of the initial owner of the tokens.1116       * * `items_data`: Vector of data describing each item to be created.1117       **/1118      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>]>;1119      /**1120       * Create multiple items within a collection with explicitly specified initial parameters.1121       * 1122       * # Permissions1123       * 1124       * * Collection owner1125       * * Collection admin1126       * * Anyone if1127       * * Allow List is enabled, and1128       * * Address is added to allow list, and1129       * * MintPermission is enabled (see [`set_collection_permissions`][`Pallet::set_collection_permissions`])1130       * 1131       * # Arguments1132       * 1133       * * `collection_id`: ID of the collection to which the tokens would belong.1134       * * `data`: Explicit item creation data.1135       **/1136      createMultipleItemsEx: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, data: UpDataStructsCreateItemExData | { NFT: any } | { Fungible: any } | { RefungibleMultipleItems: any } | { RefungibleMultipleOwners: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCreateItemExData]>;1137      /**1138       * Delete specified collection properties.1139       * 1140       * # Permissions1141       * 1142       * * Collection Owner1143       * * Collection Admin1144       * 1145       * # Arguments1146       * 1147       * * `collection_id`: ID of the modified collection.1148       * * `property_keys`: Vector of keys of the properties to be deleted.1149       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1150       **/1151      deleteCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<Bytes>]>;1152      /**1153       * Delete specified token properties. Currently properties only work with NFTs.1154       * 1155       * # Permissions1156       * 1157       * * Depends on collection's token property permissions and specified property mutability:1158       * * Collection owner1159       * * Collection admin1160       * * Token owner1161       * 1162       * # Arguments1163       * 1164       * * `collection_id`: ID of the collection to which the token belongs.1165       * * `token_id`: ID of the modified token.1166       * * `property_keys`: Vector of keys of the properties to be deleted.1167       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1168       **/1169      deleteTokenProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, propertyKeys: Vec<Bytes> | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, u32, Vec<Bytes>]>;1170      /**1171       * Destroy a collection if no tokens exist within.1172       * 1173       * # Permissions1174       * 1175       * * Collection owner1176       * 1177       * # Arguments1178       * 1179       * * `collection_id`: Collection to destroy.1180       **/1181      destroyCollection: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1182      /**1183       * Remove admin of a collection.1184       * 1185       * An admin address can remove itself. List of admins may become empty,1186       * in which case only Collection Owner will be able to add an Admin.1187       * 1188       * # Permissions1189       * 1190       * * Collection owner1191       * * Collection admin1192       * 1193       * # Arguments1194       * 1195       * * `collection_id`: ID of the collection to remove the admin for.1196       * * `account_id`: Address of the admin to remove.1197       **/1198      removeCollectionAdmin: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, accountId: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1199      /**1200       * Remove a collection's a sponsor, making everyone pay for their own transactions.1201       * 1202       * # Permissions1203       * 1204       * * Collection owner1205       * 1206       * # Arguments1207       * 1208       * * `collection_id`: ID of the collection with the sponsor to remove.1209       **/1210      removeCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1211      /**1212       * Remove an address from allow list.1213       * 1214       * # Permissions1215       * 1216       * * Collection owner1217       * * Collection admin1218       * 1219       * # Arguments1220       * 1221       * * `collection_id`: ID of the modified collection.1222       * * `address`: ID of the address to be removed from the allowlist.1223       **/1224      removeFromAllowList: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, address: PalletEvmAccountBasicCrossAccountIdRepr | { Substrate: any } | { Ethereum: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, PalletEvmAccountBasicCrossAccountIdRepr]>;1225      /**1226       * Re-partition a refungible token, while owning all of its parts/pieces.1227       * 1228       * # Permissions1229       * 1230       * * Token owner (must own every part)1231       * 1232       * # Arguments1233       * 1234       * * `collection_id`: ID of the collection the RFT belongs to.1235       * * `token_id`: ID of the RFT.1236       * * `amount`: New number of parts/pieces into which the token shall be partitioned.1237       **/1238      repartition: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, tokenId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, u32, u128]>;1239      /**1240       * Set specific limits of a collection. Empty, or None fields mean chain default.1241       * 1242       * # Permissions1243       * 1244       * * Collection owner1245       * * Collection admin1246       * 1247       * # Arguments1248       * 1249       * * `collection_id`: ID of the modified collection.1250       * * `new_limit`: New limits of the collection. Fields that are not set (None)1251       * will not overwrite the old ones.1252       **/1253      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]>;1254      /**1255       * Set specific permissions of a collection. Empty, or None fields mean chain default.1256       * 1257       * # Permissions1258       * 1259       * * Collection owner1260       * * Collection admin1261       * 1262       * # Arguments1263       * 1264       * * `collection_id`: ID of the modified collection.1265       * * `new_permission`: New permissions of the collection. Fields that are not set (None)1266       * will not overwrite the old ones.1267       **/1268      setCollectionPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newPermission: UpDataStructsCollectionPermissions | { access?: any; mintMode?: any; nesting?: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, UpDataStructsCollectionPermissions]>;1269      /**1270       * Add or change collection properties.1271       * 1272       * # Permissions1273       * 1274       * * Collection owner1275       * * Collection admin1276       * 1277       * # Arguments1278       * 1279       * * `collection_id`: ID of the modified collection.1280       * * `properties`: Vector of key-value pairs stored as the collection's metadata.1281       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1282       **/1283      setCollectionProperties: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, properties: Vec<UpDataStructsProperty> | (UpDataStructsProperty | { key?: any; value?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsProperty>]>;1284      /**1285       * Set (invite) a new collection sponsor.1286       * 1287       * If successful, confirmation from the sponsor-to-be will be pending.1288       * 1289       * # Permissions1290       * 1291       * * Collection owner1292       * * Collection admin1293       * 1294       * # Arguments1295       * 1296       * * `collection_id`: ID of the modified collection.1297       * * `new_sponsor`: ID of the account of the sponsor-to-be.1298       **/1299      setCollectionSponsor: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, newSponsor: AccountId32 | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, AccountId32]>;1300      /**1301       * Add or change token properties according to collection's permissions.1302       * Currently properties only work with NFTs.1303       * 1304       * # Permissions1305       * 1306       * * Depends on collection's token property permissions and specified property mutability:1307       * * Collection owner1308       * * Collection admin1309       * * Token owner1310       * 1311       * See [`set_token_property_permissions`][`Pallet::set_token_property_permissions`].1312       * 1313       * # Arguments1314       * 1315       * * `collection_id: ID of the collection to which the token belongs.1316       * * `token_id`: ID of the modified token.1317       * * `properties`: Vector of key-value pairs stored as the token's metadata.1318       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1319       **/1320      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>]>;1321      /**1322       * Add or change token property permissions of a collection.1323       * 1324       * Without a permission for a particular key, a property with that key1325       * cannot be created in a token.1326       * 1327       * # Permissions1328       * 1329       * * Collection owner1330       * * Collection admin1331       * 1332       * # Arguments1333       * 1334       * * `collection_id`: ID of the modified collection.1335       * * `property_permissions`: Vector of permissions for property keys.1336       * Keys support Latin letters, `-`, `_`, and `.` as symbols.1337       **/1338      setTokenPropertyPermissions: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, propertyPermissions: Vec<UpDataStructsPropertyKeyPermission> | (UpDataStructsPropertyKeyPermission | { key?: any; permission?: any } | string | Uint8Array)[]) => SubmittableExtrinsic<ApiType>, [u32, Vec<UpDataStructsPropertyKeyPermission>]>;1339      /**1340       * Completely allow or disallow transfers for a particular collection.1341       * 1342       * # Permissions1343       * 1344       * * Collection owner1345       * 1346       * # Arguments1347       * 1348       * * `collection_id`: ID of the collection.1349       * * `value`: New value of the flag, are transfers allowed?1350       **/1351      setTransfersEnabledFlag: AugmentedSubmittable<(collectionId: u32 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32, bool]>;1352      /**1353       * Change ownership of the token.1354       * 1355       * # Permissions1356       * 1357       * * Collection owner1358       * * Collection admin1359       * * Current token owner1360       * 1361       * # Arguments1362       * 1363       * * `recipient`: Address of token recipient.1364       * * `collection_id`: ID of the collection the item belongs to.1365       * * `item_id`: ID of the item.1366       * * Non-Fungible Mode: Required.1367       * * Fungible Mode: Ignored.1368       * * Re-Fungible Mode: Required.1369       * 1370       * * `value`: Amount to transfer.1371       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1372       * * Fungible Mode: The desired number of pieces to transfer.1373       * * Re-Fungible Mode: The desired number of pieces to transfer.1374       **/1375      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]>;1376      /**1377       * Change ownership of an item on behalf of the owner as a non-owner account.1378       * 1379       * See the [`approve`][`Pallet::approve`] method for additional information.1380       * 1381       * After this method executes, one approval is removed from the total so that1382       * the approved address will not be able to transfer this item again from this owner.1383       * 1384       * # Permissions1385       * 1386       * * Collection owner1387       * * Collection admin1388       * * Current item owner1389       * * Address approved by current item owner1390       * 1391       * # Arguments1392       * 1393       * * `from`: Address that currently owns the token.1394       * * `recipient`: Address of the new token-owner-to-be.1395       * * `collection_id`: ID of the collection the item.1396       * * `item_id`: ID of the item to be transferred.1397       * * `value`: Amount to transfer.1398       * * Non-Fungible Mode: An NFT is indivisible, there is always 1 corresponding to an ID.1399       * * Fungible Mode: The desired number of pieces to transfer.1400       * * Re-Fungible Mode: The desired number of pieces to transfer.1401       **/1402      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]>;1403      /**1404       * Generic tx1405       **/1406      [key: string]: SubmittableExtrinsicFunction<ApiType>;1407    };1408    vesting: {1409      claim: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1410      claimFor: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic<ApiType>, [MultiAddress]>;1411      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>]>;1412      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]>;1413      /**1414       * Generic tx1415       **/1416      [key: string]: SubmittableExtrinsicFunction<ApiType>;1417    };1418    xcmpQueue: {1419      /**1420       * Resumes all XCM executions for the XCMP queue.1421       * 1422       * Note that this function doesn't change the status of the in/out bound channels.1423       * 1424       * - `origin`: Must pass `ControllerOrigin`.1425       **/1426      resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1427      /**1428       * Services a single overweight XCM.1429       * 1430       * - `origin`: Must pass `ExecuteOverweightOrigin`.1431       * - `index`: The index of the overweight XCM to service1432       * - `weight_limit`: The amount of weight that XCM execution may take.1433       * 1434       * Errors:1435       * - `BadOverweightIndex`: XCM under `index` is not found in the `Overweight` storage map.1436       * - `BadXcm`: XCM under `index` cannot be properly decoded into a valid XCM format.1437       * - `WeightOverLimit`: XCM execution may use greater `weight_limit`.1438       * 1439       * Events:1440       * - `OverweightServiced`: On success.1441       **/1442      serviceOverweight: AugmentedSubmittable<(index: u64 | AnyNumber | Uint8Array, weightLimit: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64, u64]>;1443      /**1444       * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.1445       * 1446       * - `origin`: Must pass `ControllerOrigin`.1447       **/1448      suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic<ApiType>, []>;1449      /**1450       * Overwrites the number of pages of messages which must be in the queue after which we drop any further1451       * messages from the channel.1452       * 1453       * - `origin`: Must pass `Root`.1454       * - `new`: Desired value for `QueueConfigData.drop_threshold`1455       **/1456      updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1457      /**1458       * Overwrites the number of pages of messages which the queue must be reduced to before it signals that1459       * message sending may recommence after it has been suspended.1460       * 1461       * - `origin`: Must pass `Root`.1462       * - `new`: Desired value for `QueueConfigData.resume_threshold`1463       **/1464      updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1465      /**1466       * Overwrites the number of pages of messages which must be in the queue for the other side to be told to1467       * suspend their sending.1468       * 1469       * - `origin`: Must pass `Root`.1470       * - `new`: Desired value for `QueueConfigData.suspend_value`1471       **/1472      updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u32]>;1473      /**1474       * Overwrites the amount of remaining weight under which we stop processing messages.1475       * 1476       * - `origin`: Must pass `Root`.1477       * - `new`: Desired value for `QueueConfigData.threshold_weight`1478       **/1479      updateThresholdWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1480      /**1481       * Overwrites the speed to which the available weight approaches the maximum weight.1482       * A lower number results in a faster progression. A value of 1 makes the entire weight available initially.1483       * 1484       * - `origin`: Must pass `Root`.1485       * - `new`: Desired value for `QueueConfigData.weight_restrict_decay`.1486       **/1487      updateWeightRestrictDecay: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1488      /**1489       * Overwrite the maximum amount of weight any individual message may consume.1490       * Messages above this weight go into the overweight queue and may only be serviced explicitly.1491       * 1492       * - `origin`: Must pass `Root`.1493       * - `new`: Desired value for `QueueConfigData.xcmp_max_individual_weight`.1494       **/1495      updateXcmpMaxIndividualWeight: AugmentedSubmittable<(updated: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic<ApiType>, [u64]>;1496      /**1497       * Generic tx1498       **/1499      [key: string]: SubmittableExtrinsicFunction<ApiType>;1500    };1501  } // AugmentedSubmittables1502} // declare module
modifiedtests/src/interfaces/augment-types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/augment-types.ts
+++ b/tests/src/interfaces/augment-types.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from './default';
 import type { Data, StorageKey } from '@polkadot/types';
 import type { BitVec, Bool, Bytes, I128, I16, I256, I32, I64, I8, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types-codec';
 import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@polkadot/types/interfaces/assets';
@@ -763,6 +763,7 @@
     PalletCallMetadataV14: PalletCallMetadataV14;
     PalletCommonError: PalletCommonError;
     PalletCommonEvent: PalletCommonEvent;
+    PalletConfigurationCall: PalletConfigurationCall;
     PalletConstantMetadataLatest: PalletConstantMetadataLatest;
     PalletConstantMetadataV14: PalletConstantMetadataV14;
     PalletErrorMetadataLatest: PalletErrorMetadataLatest;
modifiedtests/src/interfaces/default/types.tsdiffbeforeafterboth
--- a/tests/src/interfaces/default/types.ts
+++ b/tests/src/interfaces/default/types.ts
@@ -994,6 +994,19 @@
   readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
 }
 
+/** @name PalletConfigurationCall */
+export interface PalletConfigurationCall extends Enum {
+  readonly isSetWeightToFeeCoefficientOverride: boolean;
+  readonly asSetWeightToFeeCoefficientOverride: {
+    readonly coeff: Option<u32>;
+  } & Struct;
+  readonly isSetMinGasPriceOverride: boolean;
+  readonly asSetMinGasPriceOverride: {
+    readonly coeff: Option<u64>;
+  } & Struct;
+  readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';
+}
+
 /** @name PalletEthereumCall */
 export interface PalletEthereumCall extends Enum {
   readonly isTransact: boolean;
modifiedtests/src/interfaces/lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/lookup.ts
+++ b/tests/src/interfaces/lookup.ts
@@ -1571,15 +1571,28 @@
     }
   },
   /**
-   * Lookup207: pallet_template_transaction_payment::Call<T>
+   * Lookup207: pallet_configuration::pallet::Call<T>
    **/
+  PalletConfigurationCall: {
+    _enum: {
+      set_weight_to_fee_coefficient_override: {
+        coeff: 'Option<u32>',
+      },
+      set_min_gas_price_override: {
+        coeff: 'Option<u64>'
+      }
+    }
+  },
+  /**
+   * Lookup209: pallet_template_transaction_payment::Call<T>
+   **/
   PalletTemplateTransactionPaymentCall: 'Null',
   /**
-   * Lookup208: pallet_structure::pallet::Call<T>
+   * Lookup210: pallet_structure::pallet::Call<T>
    **/
   PalletStructureCall: 'Null',
   /**
-   * Lookup209: pallet_rmrk_core::pallet::Call<T>
+   * Lookup211: pallet_rmrk_core::pallet::Call<T>
    **/
   PalletRmrkCoreCall: {
     _enum: {
@@ -1670,7 +1683,7 @@
     }
   },
   /**
-   * Lookup215: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup217: rmrk_traits::resource::ResourceTypes<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceTypes: {
     _enum: {
@@ -1680,7 +1693,7 @@
     }
   },
   /**
-   * Lookup217: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup219: rmrk_traits::resource::BasicResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceBasicResource: {
     src: 'Option<Bytes>',
@@ -1689,7 +1702,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup219: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup221: rmrk_traits::resource::ComposableResource<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceComposableResource: {
     parts: 'Vec<u32>',
@@ -1700,7 +1713,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup220: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup222: rmrk_traits::resource::SlotResource<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceSlotResource: {
     base: 'u32',
@@ -1711,7 +1724,7 @@
     thumb: 'Option<Bytes>'
   },
   /**
-   * Lookup222: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
+   * Lookup224: rmrk_traits::nft::AccountIdOrCollectionNftTuple<sp_core::crypto::AccountId32>
    **/
   RmrkTraitsNftAccountIdOrCollectionNftTuple: {
     _enum: {
@@ -1720,7 +1733,7 @@
     }
   },
   /**
-   * Lookup226: pallet_rmrk_equip::pallet::Call<T>
+   * Lookup228: pallet_rmrk_equip::pallet::Call<T>
    **/
   PalletRmrkEquipCall: {
     _enum: {
@@ -1741,7 +1754,7 @@
     }
   },
   /**
-   * Lookup229: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup231: rmrk_traits::part::PartType<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartPartType: {
     _enum: {
@@ -1750,7 +1763,7 @@
     }
   },
   /**
-   * Lookup231: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup233: rmrk_traits::part::FixedPart<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartFixedPart: {
     id: 'u32',
@@ -1758,7 +1771,7 @@
     src: 'Bytes'
   },
   /**
-   * Lookup232: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup234: rmrk_traits::part::SlotPart<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartSlotPart: {
     id: 'u32',
@@ -1767,7 +1780,7 @@
     z: 'u32'
   },
   /**
-   * Lookup233: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup235: rmrk_traits::part::EquippableList<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPartEquippableList: {
     _enum: {
@@ -1777,7 +1790,7 @@
     }
   },
   /**
-   * Lookup235: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>, S>>
+   * Lookup237: rmrk_traits::theme::Theme<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>, S>>
    **/
   RmrkTraitsTheme: {
     name: 'Bytes',
@@ -1785,14 +1798,14 @@
     inherit: 'bool'
   },
   /**
-   * Lookup237: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup239: rmrk_traits::theme::ThemeProperty<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsThemeThemeProperty: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup239: pallet_evm::pallet::Call<T>
+   * Lookup241: pallet_evm::pallet::Call<T>
    **/
   PalletEvmCall: {
     _enum: {
@@ -1835,7 +1848,7 @@
     }
   },
   /**
-   * Lookup245: pallet_ethereum::pallet::Call<T>
+   * Lookup247: pallet_ethereum::pallet::Call<T>
    **/
   PalletEthereumCall: {
     _enum: {
@@ -1845,7 +1858,7 @@
     }
   },
   /**
-   * Lookup246: ethereum::transaction::TransactionV2
+   * Lookup248: ethereum::transaction::TransactionV2
    **/
   EthereumTransactionTransactionV2: {
     _enum: {
@@ -1855,7 +1868,7 @@
     }
   },
   /**
-   * Lookup247: ethereum::transaction::LegacyTransaction
+   * Lookup249: ethereum::transaction::LegacyTransaction
    **/
   EthereumTransactionLegacyTransaction: {
     nonce: 'U256',
@@ -1867,7 +1880,7 @@
     signature: 'EthereumTransactionTransactionSignature'
   },
   /**
-   * Lookup248: ethereum::transaction::TransactionAction
+   * Lookup250: ethereum::transaction::TransactionAction
    **/
   EthereumTransactionTransactionAction: {
     _enum: {
@@ -1876,7 +1889,7 @@
     }
   },
   /**
-   * Lookup249: ethereum::transaction::TransactionSignature
+   * Lookup251: ethereum::transaction::TransactionSignature
    **/
   EthereumTransactionTransactionSignature: {
     v: 'u64',
@@ -1884,7 +1897,7 @@
     s: 'H256'
   },
   /**
-   * Lookup251: ethereum::transaction::EIP2930Transaction
+   * Lookup253: ethereum::transaction::EIP2930Transaction
    **/
   EthereumTransactionEip2930Transaction: {
     chainId: 'u64',
@@ -1900,14 +1913,14 @@
     s: 'H256'
   },
   /**
-   * Lookup253: ethereum::transaction::AccessListItem
+   * Lookup255: ethereum::transaction::AccessListItem
    **/
   EthereumTransactionAccessListItem: {
     address: 'H160',
     storageKeys: 'Vec<H256>'
   },
   /**
-   * Lookup254: ethereum::transaction::EIP1559Transaction
+   * Lookup256: ethereum::transaction::EIP1559Transaction
    **/
   EthereumTransactionEip1559Transaction: {
     chainId: 'u64',
@@ -1924,7 +1937,7 @@
     s: 'H256'
   },
   /**
-   * Lookup255: pallet_evm_migration::pallet::Call<T>
+   * Lookup257: pallet_evm_migration::pallet::Call<T>
    **/
   PalletEvmMigrationCall: {
     _enum: {
@@ -1942,7 +1955,7 @@
     }
   },
   /**
-   * Lookup258: pallet_sudo::pallet::Event<T>
+   * Lookup260: pallet_sudo::pallet::Event<T>
    **/
   PalletSudoEvent: {
     _enum: {
@@ -1958,7 +1971,7 @@
     }
   },
   /**
-   * Lookup260: sp_runtime::DispatchError
+   * Lookup262: sp_runtime::DispatchError
    **/
   SpRuntimeDispatchError: {
     _enum: {
@@ -1975,38 +1988,38 @@
     }
   },
   /**
-   * Lookup261: sp_runtime::ModuleError
+   * Lookup263: sp_runtime::ModuleError
    **/
   SpRuntimeModuleError: {
     index: 'u8',
     error: '[u8;4]'
   },
   /**
-   * Lookup262: sp_runtime::TokenError
+   * Lookup264: sp_runtime::TokenError
    **/
   SpRuntimeTokenError: {
     _enum: ['NoFunds', 'WouldDie', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported']
   },
   /**
-   * Lookup263: sp_runtime::ArithmeticError
+   * Lookup265: sp_runtime::ArithmeticError
    **/
   SpRuntimeArithmeticError: {
     _enum: ['Underflow', 'Overflow', 'DivisionByZero']
   },
   /**
-   * Lookup264: sp_runtime::TransactionalError
+   * Lookup266: sp_runtime::TransactionalError
    **/
   SpRuntimeTransactionalError: {
     _enum: ['LimitReached', 'NoLayer']
   },
   /**
-   * Lookup265: pallet_sudo::pallet::Error<T>
+   * Lookup267: pallet_sudo::pallet::Error<T>
    **/
   PalletSudoError: {
     _enum: ['RequireSudo']
   },
   /**
-   * Lookup266: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
+   * Lookup268: frame_system::AccountInfo<Index, pallet_balances::AccountData<Balance>>
    **/
   FrameSystemAccountInfo: {
     nonce: 'u32',
@@ -2016,7 +2029,7 @@
     data: 'PalletBalancesAccountData'
   },
   /**
-   * Lookup267: frame_support::weights::PerDispatchClass<T>
+   * Lookup269: frame_support::weights::PerDispatchClass<T>
    **/
   FrameSupportWeightsPerDispatchClassU64: {
     normal: 'u64',
@@ -2024,13 +2037,13 @@
     mandatory: 'u64'
   },
   /**
-   * Lookup268: sp_runtime::generic::digest::Digest
+   * Lookup270: sp_runtime::generic::digest::Digest
    **/
   SpRuntimeDigest: {
     logs: 'Vec<SpRuntimeDigestDigestItem>'
   },
   /**
-   * Lookup270: sp_runtime::generic::digest::DigestItem
+   * Lookup272: sp_runtime::generic::digest::DigestItem
    **/
   SpRuntimeDigestDigestItem: {
     _enum: {
@@ -2046,7 +2059,7 @@
     }
   },
   /**
-   * Lookup272: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
+   * Lookup274: frame_system::EventRecord<opal_runtime::Event, primitive_types::H256>
    **/
   FrameSystemEventRecord: {
     phase: 'FrameSystemPhase',
@@ -2054,7 +2067,7 @@
     topics: 'Vec<H256>'
   },
   /**
-   * Lookup274: frame_system::pallet::Event<T>
+   * Lookup276: frame_system::pallet::Event<T>
    **/
   FrameSystemEvent: {
     _enum: {
@@ -2082,7 +2095,7 @@
     }
   },
   /**
-   * Lookup275: frame_support::weights::DispatchInfo
+   * Lookup277: frame_support::weights::DispatchInfo
    **/
   FrameSupportWeightsDispatchInfo: {
     weight: 'u64',
@@ -2090,19 +2103,19 @@
     paysFee: 'FrameSupportWeightsPays'
   },
   /**
-   * Lookup276: frame_support::weights::DispatchClass
+   * Lookup278: frame_support::weights::DispatchClass
    **/
   FrameSupportWeightsDispatchClass: {
     _enum: ['Normal', 'Operational', 'Mandatory']
   },
   /**
-   * Lookup277: frame_support::weights::Pays
+   * Lookup279: frame_support::weights::Pays
    **/
   FrameSupportWeightsPays: {
     _enum: ['Yes', 'No']
   },
   /**
-   * Lookup278: orml_vesting::module::Event<T>
+   * Lookup280: orml_vesting::module::Event<T>
    **/
   OrmlVestingModuleEvent: {
     _enum: {
@@ -2121,7 +2134,7 @@
     }
   },
   /**
-   * Lookup279: cumulus_pallet_xcmp_queue::pallet::Event<T>
+   * Lookup281: cumulus_pallet_xcmp_queue::pallet::Event<T>
    **/
   CumulusPalletXcmpQueueEvent: {
     _enum: {
@@ -2136,7 +2149,7 @@
     }
   },
   /**
-   * Lookup280: pallet_xcm::pallet::Event<T>
+   * Lookup282: pallet_xcm::pallet::Event<T>
    **/
   PalletXcmEvent: {
     _enum: {
@@ -2159,7 +2172,7 @@
     }
   },
   /**
-   * Lookup281: xcm::v2::traits::Outcome
+   * Lookup283: xcm::v2::traits::Outcome
    **/
   XcmV2TraitsOutcome: {
     _enum: {
@@ -2169,7 +2182,7 @@
     }
   },
   /**
-   * Lookup283: cumulus_pallet_xcm::pallet::Event<T>
+   * Lookup285: cumulus_pallet_xcm::pallet::Event<T>
    **/
   CumulusPalletXcmEvent: {
     _enum: {
@@ -2179,7 +2192,7 @@
     }
   },
   /**
-   * Lookup284: cumulus_pallet_dmp_queue::pallet::Event<T>
+   * Lookup286: cumulus_pallet_dmp_queue::pallet::Event<T>
    **/
   CumulusPalletDmpQueueEvent: {
     _enum: {
@@ -2210,7 +2223,7 @@
     }
   },
   /**
-   * Lookup285: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup287: pallet_unique::RawEvent<sp_core::crypto::AccountId32, pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletUniqueRawEvent: {
     _enum: {
@@ -2227,7 +2240,7 @@
     }
   },
   /**
-   * Lookup286: pallet_unique_scheduler::pallet::Event<T>
+   * Lookup288: pallet_unique_scheduler::pallet::Event<T>
    **/
   PalletUniqueSchedulerEvent: {
     _enum: {
@@ -2252,13 +2265,13 @@
     }
   },
   /**
-   * Lookup288: frame_support::traits::schedule::LookupError
+   * Lookup290: frame_support::traits::schedule::LookupError
    **/
   FrameSupportScheduleLookupError: {
     _enum: ['Unknown', 'BadFormat']
   },
   /**
-   * Lookup289: pallet_common::pallet::Event<T>
+   * Lookup291: pallet_common::pallet::Event<T>
    **/
   PalletCommonEvent: {
     _enum: {
@@ -2276,7 +2289,7 @@
     }
   },
   /**
-   * Lookup290: pallet_structure::pallet::Event<T>
+   * Lookup292: pallet_structure::pallet::Event<T>
    **/
   PalletStructureEvent: {
     _enum: {
@@ -2284,7 +2297,7 @@
     }
   },
   /**
-   * Lookup291: pallet_rmrk_core::pallet::Event<T>
+   * Lookup293: pallet_rmrk_core::pallet::Event<T>
    **/
   PalletRmrkCoreEvent: {
     _enum: {
@@ -2361,7 +2374,7 @@
     }
   },
   /**
-   * Lookup292: pallet_rmrk_equip::pallet::Event<T>
+   * Lookup294: pallet_rmrk_equip::pallet::Event<T>
    **/
   PalletRmrkEquipEvent: {
     _enum: {
@@ -2376,7 +2389,7 @@
     }
   },
   /**
-   * Lookup293: pallet_evm::pallet::Event<T>
+   * Lookup295: pallet_evm::pallet::Event<T>
    **/
   PalletEvmEvent: {
     _enum: {
@@ -2390,7 +2403,7 @@
     }
   },
   /**
-   * Lookup294: ethereum::log::Log
+   * Lookup296: ethereum::log::Log
    **/
   EthereumLog: {
     address: 'H160',
@@ -2398,7 +2411,7 @@
     data: 'Bytes'
   },
   /**
-   * Lookup295: pallet_ethereum::pallet::Event
+   * Lookup297: pallet_ethereum::pallet::Event
    **/
   PalletEthereumEvent: {
     _enum: {
@@ -2406,7 +2419,7 @@
     }
   },
   /**
-   * Lookup296: evm_core::error::ExitReason
+   * Lookup298: evm_core::error::ExitReason
    **/
   EvmCoreErrorExitReason: {
     _enum: {
@@ -2417,13 +2430,13 @@
     }
   },
   /**
-   * Lookup297: evm_core::error::ExitSucceed
+   * Lookup299: evm_core::error::ExitSucceed
    **/
   EvmCoreErrorExitSucceed: {
     _enum: ['Stopped', 'Returned', 'Suicided']
   },
   /**
-   * Lookup298: evm_core::error::ExitError
+   * Lookup300: evm_core::error::ExitError
    **/
   EvmCoreErrorExitError: {
     _enum: {
@@ -2445,13 +2458,13 @@
     }
   },
   /**
-   * Lookup301: evm_core::error::ExitRevert
+   * Lookup303: evm_core::error::ExitRevert
    **/
   EvmCoreErrorExitRevert: {
     _enum: ['Reverted']
   },
   /**
-   * Lookup302: evm_core::error::ExitFatal
+   * Lookup304: evm_core::error::ExitFatal
    **/
   EvmCoreErrorExitFatal: {
     _enum: {
@@ -2462,7 +2475,7 @@
     }
   },
   /**
-   * Lookup303: frame_system::Phase
+   * Lookup305: frame_system::Phase
    **/
   FrameSystemPhase: {
     _enum: {
@@ -2472,14 +2485,14 @@
     }
   },
   /**
-   * Lookup305: frame_system::LastRuntimeUpgradeInfo
+   * Lookup307: frame_system::LastRuntimeUpgradeInfo
    **/
   FrameSystemLastRuntimeUpgradeInfo: {
     specVersion: 'Compact<u32>',
     specName: 'Text'
   },
   /**
-   * Lookup306: frame_system::limits::BlockWeights
+   * Lookup308: frame_system::limits::BlockWeights
    **/
   FrameSystemLimitsBlockWeights: {
     baseBlock: 'u64',
@@ -2487,7 +2500,7 @@
     perClass: 'FrameSupportWeightsPerDispatchClassWeightsPerClass'
   },
   /**
-   * Lookup307: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
+   * Lookup309: frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>
    **/
   FrameSupportWeightsPerDispatchClassWeightsPerClass: {
     normal: 'FrameSystemLimitsWeightsPerClass',
@@ -2495,7 +2508,7 @@
     mandatory: 'FrameSystemLimitsWeightsPerClass'
   },
   /**
-   * Lookup308: frame_system::limits::WeightsPerClass
+   * Lookup310: frame_system::limits::WeightsPerClass
    **/
   FrameSystemLimitsWeightsPerClass: {
     baseExtrinsic: 'u64',
@@ -2504,13 +2517,13 @@
     reserved: 'Option<u64>'
   },
   /**
-   * Lookup310: frame_system::limits::BlockLength
+   * Lookup311: frame_system::limits::BlockLength
    **/
   FrameSystemLimitsBlockLength: {
     max: 'FrameSupportWeightsPerDispatchClassU32'
   },
   /**
-   * Lookup311: frame_support::weights::PerDispatchClass<T>
+   * Lookup312: frame_support::weights::PerDispatchClass<T>
    **/
   FrameSupportWeightsPerDispatchClassU32: {
     normal: 'u32',
@@ -2518,14 +2531,14 @@
     mandatory: 'u32'
   },
   /**
-   * Lookup312: frame_support::weights::RuntimeDbWeight
+   * Lookup313: frame_support::weights::RuntimeDbWeight
    **/
   FrameSupportWeightsRuntimeDbWeight: {
     read: 'u64',
     write: 'u64'
   },
   /**
-   * Lookup313: sp_version::RuntimeVersion
+   * Lookup314: sp_version::RuntimeVersion
    **/
   SpVersionRuntimeVersion: {
     specName: 'Text',
@@ -2538,19 +2551,19 @@
     stateVersion: 'u8'
   },
   /**
-   * Lookup317: frame_system::pallet::Error<T>
+   * Lookup318: frame_system::pallet::Error<T>
    **/
   FrameSystemError: {
     _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered']
   },
   /**
-   * Lookup319: orml_vesting::module::Error<T>
+   * Lookup320: orml_vesting::module::Error<T>
    **/
   OrmlVestingModuleError: {
     _enum: ['ZeroVestingPeriod', 'ZeroVestingPeriodCount', 'InsufficientBalanceToLock', 'TooManyVestingSchedules', 'AmountLow', 'MaxVestingSchedulesExceeded']
   },
   /**
-   * Lookup321: cumulus_pallet_xcmp_queue::InboundChannelDetails
+   * Lookup322: cumulus_pallet_xcmp_queue::InboundChannelDetails
    **/
   CumulusPalletXcmpQueueInboundChannelDetails: {
     sender: 'u32',
@@ -2558,19 +2571,19 @@
     messageMetadata: 'Vec<(u32,PolkadotParachainPrimitivesXcmpMessageFormat)>'
   },
   /**
-   * Lookup322: cumulus_pallet_xcmp_queue::InboundState
+   * Lookup323: cumulus_pallet_xcmp_queue::InboundState
    **/
   CumulusPalletXcmpQueueInboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup325: polkadot_parachain::primitives::XcmpMessageFormat
+   * Lookup326: polkadot_parachain::primitives::XcmpMessageFormat
    **/
   PolkadotParachainPrimitivesXcmpMessageFormat: {
     _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']
   },
   /**
-   * Lookup328: cumulus_pallet_xcmp_queue::OutboundChannelDetails
+   * Lookup329: cumulus_pallet_xcmp_queue::OutboundChannelDetails
    **/
   CumulusPalletXcmpQueueOutboundChannelDetails: {
     recipient: 'u32',
@@ -2580,13 +2593,13 @@
     lastIndex: 'u16'
   },
   /**
-   * Lookup329: cumulus_pallet_xcmp_queue::OutboundState
+   * Lookup330: cumulus_pallet_xcmp_queue::OutboundState
    **/
   CumulusPalletXcmpQueueOutboundState: {
     _enum: ['Ok', 'Suspended']
   },
   /**
-   * Lookup331: cumulus_pallet_xcmp_queue::QueueConfigData
+   * Lookup332: cumulus_pallet_xcmp_queue::QueueConfigData
    **/
   CumulusPalletXcmpQueueQueueConfigData: {
     suspendThreshold: 'u32',
@@ -2597,29 +2610,29 @@
     xcmpMaxIndividualWeight: 'u64'
   },
   /**
-   * Lookup333: cumulus_pallet_xcmp_queue::pallet::Error<T>
+   * Lookup334: cumulus_pallet_xcmp_queue::pallet::Error<T>
    **/
   CumulusPalletXcmpQueueError: {
     _enum: ['FailedToSend', 'BadXcmOrigin', 'BadXcm', 'BadOverweightIndex', 'WeightOverLimit']
   },
   /**
-   * Lookup334: pallet_xcm::pallet::Error<T>
+   * Lookup335: pallet_xcm::pallet::Error<T>
    **/
   PalletXcmError: {
     _enum: ['Unreachable', 'SendFailure', 'Filtered', 'UnweighableMessage', 'DestinationNotInvertible', 'Empty', 'CannotReanchor', 'TooManyAssets', 'InvalidOrigin', 'BadVersion', 'BadLocation', 'NoSubscription', 'AlreadySubscribed']
   },
   /**
-   * Lookup335: cumulus_pallet_xcm::pallet::Error<T>
+   * Lookup336: cumulus_pallet_xcm::pallet::Error<T>
    **/
   CumulusPalletXcmError: 'Null',
   /**
-   * Lookup336: cumulus_pallet_dmp_queue::ConfigData
+   * Lookup337: cumulus_pallet_dmp_queue::ConfigData
    **/
   CumulusPalletDmpQueueConfigData: {
     maxIndividual: 'u64'
   },
   /**
-   * Lookup337: cumulus_pallet_dmp_queue::PageIndexData
+   * Lookup338: cumulus_pallet_dmp_queue::PageIndexData
    **/
   CumulusPalletDmpQueuePageIndexData: {
     beginUsed: 'u32',
@@ -2627,19 +2640,19 @@
     overweightCount: 'u64'
   },
   /**
-   * Lookup340: cumulus_pallet_dmp_queue::pallet::Error<T>
+   * Lookup341: cumulus_pallet_dmp_queue::pallet::Error<T>
    **/
   CumulusPalletDmpQueueError: {
     _enum: ['Unknown', 'OverLimit']
   },
   /**
-   * Lookup344: pallet_unique::Error<T>
+   * Lookup345: pallet_unique::Error<T>
    **/
   PalletUniqueError: {
     _enum: ['CollectionDecimalPointLimitExceeded', 'ConfirmUnsetSponsorFail', 'EmptyArgument', 'RepartitionCalledOnNonRefungibleCollection']
   },
   /**
-   * Lookup347: pallet_unique_scheduler::ScheduledV3<frame_support::traits::schedule::MaybeHashed<opal_runtime::Call, primitive_types::H256>, BlockNumber, opal_runtime::OriginCaller, sp_core::crypto::AccountId32>
+   * Lookup348: 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]>',
@@ -2649,7 +2662,7 @@
     origin: 'OpalRuntimeOriginCaller'
   },
   /**
-   * Lookup348: opal_runtime::OriginCaller
+   * Lookup349: opal_runtime::OriginCaller
    **/
   OpalRuntimeOriginCaller: {
     _enum: {
@@ -2758,7 +2771,7 @@
     }
   },
   /**
-   * Lookup349: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
+   * Lookup350: frame_support::dispatch::RawOrigin<sp_core::crypto::AccountId32>
    **/
   FrameSupportDispatchRawOrigin: {
     _enum: {
@@ -2768,7 +2781,7 @@
     }
   },
   /**
-   * Lookup350: pallet_xcm::pallet::Origin
+   * Lookup351: pallet_xcm::pallet::Origin
    **/
   PalletXcmOrigin: {
     _enum: {
@@ -2777,7 +2790,7 @@
     }
   },
   /**
-   * Lookup351: cumulus_pallet_xcm::pallet::Origin
+   * Lookup352: cumulus_pallet_xcm::pallet::Origin
    **/
   CumulusPalletXcmOrigin: {
     _enum: {
@@ -2786,7 +2799,7 @@
     }
   },
   /**
-   * Lookup352: pallet_ethereum::RawOrigin
+   * Lookup353: pallet_ethereum::RawOrigin
    **/
   PalletEthereumRawOrigin: {
     _enum: {
@@ -2794,17 +2807,17 @@
     }
   },
   /**
-   * Lookup353: sp_core::Void
+   * Lookup354: sp_core::Void
    **/
   SpCoreVoid: 'Null',
   /**
-   * Lookup354: pallet_unique_scheduler::pallet::Error<T>
+   * Lookup355: pallet_unique_scheduler::pallet::Error<T>
    **/
   PalletUniqueSchedulerError: {
     _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange']
   },
   /**
-   * Lookup355: up_data_structs::Collection<sp_core::crypto::AccountId32>
+   * Lookup356: up_data_structs::Collection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsCollection: {
     owner: 'AccountId32',
@@ -2818,7 +2831,7 @@
     externalCollection: 'bool'
   },
   /**
-   * Lookup356: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
+   * Lookup357: up_data_structs::SponsorshipState<sp_core::crypto::AccountId32>
    **/
   UpDataStructsSponsorshipState: {
     _enum: {
@@ -2828,7 +2841,7 @@
     }
   },
   /**
-   * Lookup357: up_data_structs::Properties
+   * Lookup358: up_data_structs::Properties
    **/
   UpDataStructsProperties: {
     map: 'UpDataStructsPropertiesMapBoundedVec',
@@ -2836,15 +2849,15 @@
     spaceLimit: 'u32'
   },
   /**
-   * Lookup358: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup359: up_data_structs::PropertiesMap<frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   UpDataStructsPropertiesMapBoundedVec: 'BTreeMap<Bytes, Bytes>',
   /**
-   * Lookup363: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
+   * Lookup364: up_data_structs::PropertiesMap<up_data_structs::PropertyPermission>
    **/
   UpDataStructsPropertiesMapPropertyPermission: 'BTreeMap<Bytes, UpDataStructsPropertyPermission>',
   /**
-   * Lookup370: up_data_structs::CollectionStats
+   * Lookup371: up_data_structs::CollectionStats
    **/
   UpDataStructsCollectionStats: {
     created: 'u32',
@@ -2852,18 +2865,18 @@
     alive: 'u32'
   },
   /**
-   * Lookup371: up_data_structs::TokenChild
+   * Lookup372: up_data_structs::TokenChild
    **/
   UpDataStructsTokenChild: {
     token: 'u32',
     collection: 'u32'
   },
   /**
-   * Lookup372: PhantomType::up_data_structs<T>
+   * Lookup373: PhantomType::up_data_structs<T>
    **/
   PhantomTypeUpDataStructs: '[(UpDataStructsTokenData,UpDataStructsRpcCollection,RmrkTraitsCollectionCollectionInfo,RmrkTraitsNftNftInfo,RmrkTraitsResourceResourceInfo,RmrkTraitsPropertyPropertyInfo,RmrkTraitsBaseBaseInfo,RmrkTraitsPartPartType,RmrkTraitsTheme,RmrkTraitsNftNftChild);0]',
   /**
-   * Lookup374: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup375: up_data_structs::TokenData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   UpDataStructsTokenData: {
     properties: 'Vec<UpDataStructsProperty>',
@@ -2871,7 +2884,7 @@
     pieces: 'u128'
   },
   /**
-   * Lookup376: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
+   * Lookup377: up_data_structs::RpcCollection<sp_core::crypto::AccountId32>
    **/
   UpDataStructsRpcCollection: {
     owner: 'AccountId32',
@@ -2887,7 +2900,7 @@
     readOnly: 'bool'
   },
   /**
-   * Lookup377: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
+   * Lookup378: rmrk_traits::collection::CollectionInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>, sp_core::crypto::AccountId32>
    **/
   RmrkTraitsCollectionCollectionInfo: {
     issuer: 'AccountId32',
@@ -2897,7 +2910,7 @@
     nftsCount: 'u32'
   },
   /**
-   * Lookup378: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup379: rmrk_traits::nft::NftInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsNftNftInfo: {
     owner: 'RmrkTraitsNftAccountIdOrCollectionNftTuple',
@@ -2907,14 +2920,14 @@
     pending: 'bool'
   },
   /**
-   * Lookup380: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
+   * Lookup381: rmrk_traits::nft::RoyaltyInfo<sp_core::crypto::AccountId32, sp_arithmetic::per_things::Permill>
    **/
   RmrkTraitsNftRoyaltyInfo: {
     recipient: 'AccountId32',
     amount: 'Permill'
   },
   /**
-   * Lookup381: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup382: rmrk_traits::resource::ResourceInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsResourceResourceInfo: {
     id: 'u32',
@@ -2923,14 +2936,14 @@
     pendingRemoval: 'bool'
   },
   /**
-   * Lookup382: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup383: rmrk_traits::property::PropertyInfo<frame_support::storage::bounded_vec::BoundedVec<T, S>, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsPropertyPropertyInfo: {
     key: 'Bytes',
     value: 'Bytes'
   },
   /**
-   * Lookup383: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
+   * Lookup384: rmrk_traits::base::BaseInfo<sp_core::crypto::AccountId32, frame_support::storage::bounded_vec::BoundedVec<T, S>>
    **/
   RmrkTraitsBaseBaseInfo: {
     issuer: 'AccountId32',
@@ -2938,80 +2951,80 @@
     symbol: 'Bytes'
   },
   /**
-   * Lookup384: rmrk_traits::nft::NftChild
+   * Lookup385: rmrk_traits::nft::NftChild
    **/
   RmrkTraitsNftNftChild: {
     collectionId: 'u32',
     nftId: 'u32'
   },
   /**
-   * Lookup386: pallet_common::pallet::Error<T>
+   * Lookup387: 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']
   },
   /**
-   * Lookup388: pallet_fungible::pallet::Error<T>
+   * Lookup389: pallet_fungible::pallet::Error<T>
    **/
   PalletFungibleError: {
     _enum: ['NotFungibleDataUsedToMintFungibleCollectionToken', 'FungibleItemsHaveNoId', 'FungibleItemsDontHaveData', 'FungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup389: pallet_refungible::ItemData
+   * Lookup390: pallet_refungible::ItemData
    **/
   PalletRefungibleItemData: {
     constData: 'Bytes'
   },
   /**
-   * Lookup394: pallet_refungible::pallet::Error<T>
+   * Lookup395: pallet_refungible::pallet::Error<T>
    **/
   PalletRefungibleError: {
     _enum: ['NotRefungibleDataUsedToMintFungibleCollectionToken', 'WrongRefungiblePieces', 'RepartitionWhileNotOwningAllPieces', 'RefungibleDisallowsNesting', 'SettingPropertiesNotAllowed']
   },
   /**
-   * Lookup395: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
+   * Lookup396: pallet_nonfungible::ItemData<pallet_evm::account::BasicCrossAccountIdRepr<sp_core::crypto::AccountId32>>
    **/
   PalletNonfungibleItemData: {
     owner: 'PalletEvmAccountBasicCrossAccountIdRepr'
   },
   /**
-   * Lookup397: up_data_structs::PropertyScope
+   * Lookup398: up_data_structs::PropertyScope
    **/
   UpDataStructsPropertyScope: {
     _enum: ['None', 'Rmrk', 'Eth']
   },
   /**
-   * Lookup399: pallet_nonfungible::pallet::Error<T>
+   * Lookup400: pallet_nonfungible::pallet::Error<T>
    **/
   PalletNonfungibleError: {
     _enum: ['NotNonfungibleDataUsedToMintFungibleCollectionToken', 'NonfungibleItemsHaveNoAmount', 'CantBurnNftWithChildren']
   },
   /**
-   * Lookup400: pallet_structure::pallet::Error<T>
+   * Lookup401: pallet_structure::pallet::Error<T>
    **/
   PalletStructureError: {
     _enum: ['OuroborosDetected', 'DepthLimit', 'BreadthLimit', 'TokenNotFound']
   },
   /**
-   * Lookup401: pallet_rmrk_core::pallet::Error<T>
+   * Lookup402: 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']
   },
   /**
-   * Lookup403: pallet_rmrk_equip::pallet::Error<T>
+   * Lookup404: pallet_rmrk_equip::pallet::Error<T>
    **/
   PalletRmrkEquipError: {
     _enum: ['PermissionError', 'NoAvailableBaseId', 'NoAvailablePartId', 'BaseDoesntExist', 'NeedsDefaultThemeFirst', 'PartDoesntExist', 'NoEquippableOnFixedPart']
   },
   /**
-   * Lookup406: pallet_evm::pallet::Error<T>
+   * Lookup407: pallet_evm::pallet::Error<T>
    **/
   PalletEvmError: {
     _enum: ['BalanceLow', 'FeeOverflow', 'PaymentOverflow', 'WithdrawFailed', 'GasPriceTooLow', 'InvalidNonce']
   },
   /**
-   * Lookup409: fp_rpc::TransactionStatus
+   * Lookup410: fp_rpc::TransactionStatus
    **/
   FpRpcTransactionStatus: {
     transactionHash: 'H256',
@@ -3023,11 +3036,11 @@
     logsBloom: 'EthbloomBloom'
   },
   /**
-   * Lookup411: ethbloom::Bloom
+   * Lookup412: ethbloom::Bloom
    **/
   EthbloomBloom: '[u8;256]',
   /**
-   * Lookup413: ethereum::receipt::ReceiptV3
+   * Lookup414: ethereum::receipt::ReceiptV3
    **/
   EthereumReceiptReceiptV3: {
     _enum: {
@@ -3037,7 +3050,7 @@
     }
   },
   /**
-   * Lookup414: ethereum::receipt::EIP658ReceiptData
+   * Lookup415: ethereum::receipt::EIP658ReceiptData
    **/
   EthereumReceiptEip658ReceiptData: {
     statusCode: 'u8',
@@ -3046,7 +3059,7 @@
     logs: 'Vec<EthereumLog>'
   },
   /**
-   * Lookup415: ethereum::block::Block<ethereum::transaction::TransactionV2>
+   * Lookup416: ethereum::block::Block<ethereum::transaction::TransactionV2>
    **/
   EthereumBlock: {
     header: 'EthereumHeader',
@@ -3054,7 +3067,7 @@
     ommers: 'Vec<EthereumHeader>'
   },
   /**
-   * Lookup416: ethereum::header::Header
+   * Lookup417: ethereum::header::Header
    **/
   EthereumHeader: {
     parentHash: 'H256',
@@ -3074,41 +3087,41 @@
     nonce: 'EthereumTypesHashH64'
   },
   /**
-   * Lookup417: ethereum_types::hash::H64
+   * Lookup418: ethereum_types::hash::H64
    **/
   EthereumTypesHashH64: '[u8;8]',
   /**
-   * Lookup422: pallet_ethereum::pallet::Error<T>
+   * Lookup423: pallet_ethereum::pallet::Error<T>
    **/
   PalletEthereumError: {
     _enum: ['InvalidSignature', 'PreLogExists']
   },
   /**
-   * Lookup423: pallet_evm_coder_substrate::pallet::Error<T>
+   * Lookup424: pallet_evm_coder_substrate::pallet::Error<T>
    **/
   PalletEvmCoderSubstrateError: {
     _enum: ['OutOfGas', 'OutOfFund']
   },
   /**
-   * Lookup424: pallet_evm_contract_helpers::SponsoringModeT
+   * Lookup425: pallet_evm_contract_helpers::SponsoringModeT
    **/
   PalletEvmContractHelpersSponsoringModeT: {
     _enum: ['Disabled', 'Allowlisted', 'Generous']
   },
   /**
-   * Lookup426: pallet_evm_contract_helpers::pallet::Error<T>
+   * Lookup427: pallet_evm_contract_helpers::pallet::Error<T>
    **/
   PalletEvmContractHelpersError: {
     _enum: ['NoPermission']
   },
   /**
-   * Lookup427: pallet_evm_migration::pallet::Error<T>
+   * Lookup428: pallet_evm_migration::pallet::Error<T>
    **/
   PalletEvmMigrationError: {
     _enum: ['AccountNotEmpty', 'AccountIsNotMigrating']
   },
   /**
-   * Lookup429: sp_runtime::MultiSignature
+   * Lookup430: sp_runtime::MultiSignature
    **/
   SpRuntimeMultiSignature: {
     _enum: {
@@ -3118,43 +3131,43 @@
     }
   },
   /**
-   * Lookup430: sp_core::ed25519::Signature
+   * Lookup431: sp_core::ed25519::Signature
    **/
   SpCoreEd25519Signature: '[u8;64]',
   /**
-   * Lookup432: sp_core::sr25519::Signature
+   * Lookup433: sp_core::sr25519::Signature
    **/
   SpCoreSr25519Signature: '[u8;64]',
   /**
-   * Lookup433: sp_core::ecdsa::Signature
+   * Lookup434: sp_core::ecdsa::Signature
    **/
   SpCoreEcdsaSignature: '[u8;65]',
   /**
-   * Lookup436: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
+   * Lookup437: frame_system::extensions::check_spec_version::CheckSpecVersion<T>
    **/
   FrameSystemExtensionsCheckSpecVersion: 'Null',
   /**
-   * Lookup437: frame_system::extensions::check_genesis::CheckGenesis<T>
+   * Lookup438: frame_system::extensions::check_genesis::CheckGenesis<T>
    **/
   FrameSystemExtensionsCheckGenesis: 'Null',
   /**
-   * Lookup440: frame_system::extensions::check_nonce::CheckNonce<T>
+   * Lookup441: frame_system::extensions::check_nonce::CheckNonce<T>
    **/
   FrameSystemExtensionsCheckNonce: 'Compact<u32>',
   /**
-   * Lookup441: frame_system::extensions::check_weight::CheckWeight<T>
+   * Lookup442: frame_system::extensions::check_weight::CheckWeight<T>
    **/
   FrameSystemExtensionsCheckWeight: 'Null',
   /**
-   * Lookup442: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
+   * Lookup443: pallet_template_transaction_payment::ChargeTransactionPayment<opal_runtime::Runtime>
    **/
   PalletTemplateTransactionPaymentChargeTransactionPayment: 'Compact<u128>',
   /**
-   * Lookup443: opal_runtime::Runtime
+   * Lookup444: opal_runtime::Runtime
    **/
   OpalRuntimeRuntime: 'Null',
   /**
-   * Lookup444: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
+   * Lookup445: pallet_ethereum::FakeTransactionFinalizer<opal_runtime::Runtime>
    **/
   PalletEthereumFakeTransactionFinalizer: 'Null'
 };
modifiedtests/src/interfaces/registry.tsdiffbeforeafterboth
--- a/tests/src/interfaces/registry.ts
+++ b/tests/src/interfaces/registry.ts
@@ -1,7 +1,7 @@
 // Auto-generated via `yarn polkadot-types-from-defs`, do not edit
 /* eslint-disable */
 
-import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
+import type { CumulusPalletDmpQueueCall, CumulusPalletDmpQueueConfigData, CumulusPalletDmpQueueError, CumulusPalletDmpQueueEvent, CumulusPalletDmpQueuePageIndexData, CumulusPalletParachainSystemCall, CumulusPalletParachainSystemError, CumulusPalletParachainSystemEvent, CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, CumulusPalletXcmCall, CumulusPalletXcmError, CumulusPalletXcmEvent, CumulusPalletXcmOrigin, CumulusPalletXcmpQueueCall, CumulusPalletXcmpQueueError, CumulusPalletXcmpQueueEvent, CumulusPalletXcmpQueueInboundChannelDetails, CumulusPalletXcmpQueueInboundState, CumulusPalletXcmpQueueOutboundChannelDetails, CumulusPalletXcmpQueueOutboundState, CumulusPalletXcmpQueueQueueConfigData, CumulusPrimitivesParachainInherentParachainInherentData, EthbloomBloom, EthereumBlock, EthereumHeader, EthereumLog, EthereumReceiptEip658ReceiptData, EthereumReceiptReceiptV3, EthereumTransactionAccessListItem, EthereumTransactionEip1559Transaction, EthereumTransactionEip2930Transaction, EthereumTransactionLegacyTransaction, EthereumTransactionTransactionAction, EthereumTransactionTransactionSignature, EthereumTransactionTransactionV2, EthereumTypesHashH64, EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, EvmCoreErrorExitRevert, EvmCoreErrorExitSucceed, FpRpcTransactionStatus, FrameSupportDispatchRawOrigin, FrameSupportPalletId, FrameSupportScheduleLookupError, FrameSupportScheduleMaybeHashed, FrameSupportTokensMiscBalanceStatus, FrameSupportWeightsDispatchClass, FrameSupportWeightsDispatchInfo, FrameSupportWeightsPays, FrameSupportWeightsPerDispatchClassU32, FrameSupportWeightsPerDispatchClassU64, FrameSupportWeightsPerDispatchClassWeightsPerClass, FrameSupportWeightsRuntimeDbWeight, FrameSystemAccountInfo, FrameSystemCall, FrameSystemError, FrameSystemEvent, FrameSystemEventRecord, FrameSystemExtensionsCheckGenesis, FrameSystemExtensionsCheckNonce, FrameSystemExtensionsCheckSpecVersion, FrameSystemExtensionsCheckWeight, FrameSystemLastRuntimeUpgradeInfo, FrameSystemLimitsBlockLength, FrameSystemLimitsBlockWeights, FrameSystemLimitsWeightsPerClass, FrameSystemPhase, OpalRuntimeOriginCaller, OpalRuntimeRuntime, OrmlVestingModuleCall, OrmlVestingModuleError, OrmlVestingModuleEvent, OrmlVestingVestingSchedule, PalletBalancesAccountData, PalletBalancesBalanceLock, PalletBalancesCall, PalletBalancesError, PalletBalancesEvent, PalletBalancesReasons, PalletBalancesReleases, PalletBalancesReserveData, PalletCommonError, PalletCommonEvent, PalletConfigurationCall, PalletEthereumCall, PalletEthereumError, PalletEthereumEvent, PalletEthereumFakeTransactionFinalizer, PalletEthereumRawOrigin, PalletEvmAccountBasicCrossAccountIdRepr, PalletEvmCall, PalletEvmCoderSubstrateError, PalletEvmContractHelpersError, PalletEvmContractHelpersSponsoringModeT, PalletEvmError, PalletEvmEvent, PalletEvmMigrationCall, PalletEvmMigrationError, PalletFungibleError, PalletInflationCall, PalletNonfungibleError, PalletNonfungibleItemData, PalletRefungibleError, PalletRefungibleItemData, PalletRmrkCoreCall, PalletRmrkCoreError, PalletRmrkCoreEvent, PalletRmrkEquipCall, PalletRmrkEquipError, PalletRmrkEquipEvent, PalletStructureCall, PalletStructureError, PalletStructureEvent, PalletSudoCall, PalletSudoError, PalletSudoEvent, PalletTemplateTransactionPaymentCall, PalletTemplateTransactionPaymentChargeTransactionPayment, PalletTimestampCall, PalletTransactionPaymentReleases, PalletTreasuryCall, PalletTreasuryError, PalletTreasuryEvent, PalletTreasuryProposal, PalletUniqueCall, PalletUniqueError, PalletUniqueRawEvent, PalletUniqueSchedulerCall, PalletUniqueSchedulerError, PalletUniqueSchedulerEvent, PalletUniqueSchedulerScheduledV3, PalletXcmCall, PalletXcmError, PalletXcmEvent, PalletXcmOrigin, PhantomTypeUpDataStructs, PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, PolkadotParachainPrimitivesXcmpMessageFormat, PolkadotPrimitivesV2AbridgedHostConfiguration, PolkadotPrimitivesV2AbridgedHrmpChannel, PolkadotPrimitivesV2PersistedValidationData, PolkadotPrimitivesV2UpgradeRestriction, RmrkTraitsBaseBaseInfo, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftAccountIdOrCollectionNftTuple, RmrkTraitsNftNftChild, RmrkTraitsNftNftInfo, RmrkTraitsNftRoyaltyInfo, RmrkTraitsPartEquippableList, RmrkTraitsPartFixedPart, RmrkTraitsPartPartType, RmrkTraitsPartSlotPart, RmrkTraitsPropertyPropertyInfo, RmrkTraitsResourceBasicResource, RmrkTraitsResourceComposableResource, RmrkTraitsResourceResourceInfo, RmrkTraitsResourceResourceTypes, RmrkTraitsResourceSlotResource, RmrkTraitsTheme, RmrkTraitsThemeThemeProperty, SpCoreEcdsaSignature, SpCoreEd25519Signature, SpCoreSr25519Signature, SpCoreVoid, SpRuntimeArithmeticError, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, SpRuntimeModuleError, SpRuntimeMultiSignature, SpRuntimeTokenError, SpRuntimeTransactionalError, SpTrieStorageProof, SpVersionRuntimeVersion, UpDataStructsAccessMode, UpDataStructsCollection, UpDataStructsCollectionLimits, UpDataStructsCollectionMode, UpDataStructsCollectionPermissions, UpDataStructsCollectionStats, UpDataStructsCreateCollectionData, UpDataStructsCreateFungibleData, UpDataStructsCreateItemData, UpDataStructsCreateItemExData, UpDataStructsCreateNftData, UpDataStructsCreateNftExData, UpDataStructsCreateReFungibleData, UpDataStructsCreateRefungibleExMultipleOwners, UpDataStructsCreateRefungibleExSingleOwner, UpDataStructsNestingPermissions, UpDataStructsOwnerRestrictedSet, UpDataStructsProperties, UpDataStructsPropertiesMapBoundedVec, UpDataStructsPropertiesMapPropertyPermission, UpDataStructsProperty, UpDataStructsPropertyKeyPermission, UpDataStructsPropertyPermission, UpDataStructsPropertyScope, UpDataStructsRpcCollection, UpDataStructsSponsoringRateLimit, UpDataStructsSponsorshipState, UpDataStructsTokenChild, UpDataStructsTokenData, XcmDoubleEncoded, XcmV0Junction, XcmV0JunctionBodyId, XcmV0JunctionBodyPart, XcmV0JunctionNetworkId, XcmV0MultiAsset, XcmV0MultiLocation, XcmV0Order, XcmV0OriginKind, XcmV0Response, XcmV0Xcm, XcmV1Junction, XcmV1MultiAsset, XcmV1MultiLocation, XcmV1MultiassetAssetId, XcmV1MultiassetAssetInstance, XcmV1MultiassetFungibility, XcmV1MultiassetMultiAssetFilter, XcmV1MultiassetMultiAssets, XcmV1MultiassetWildFungibility, XcmV1MultiassetWildMultiAsset, XcmV1MultilocationJunctions, XcmV1Order, XcmV1Response, XcmV1Xcm, XcmV2Instruction, XcmV2Response, XcmV2TraitsError, XcmV2TraitsOutcome, XcmV2WeightLimit, XcmV2Xcm, XcmVersionedMultiAssets, XcmVersionedMultiLocation, XcmVersionedXcm } from '@polkadot/types/lookup';
 
 declare module '@polkadot/types/types/registry' {
   export interface InterfaceTypes {
@@ -89,6 +89,7 @@
     PalletBalancesReserveData: PalletBalancesReserveData;
     PalletCommonError: PalletCommonError;
     PalletCommonEvent: PalletCommonEvent;
+    PalletConfigurationCall: PalletConfigurationCall;
     PalletEthereumCall: PalletEthereumCall;
     PalletEthereumError: PalletEthereumError;
     PalletEthereumEvent: PalletEthereumEvent;
modifiedtests/src/interfaces/types-lookup.tsdiffbeforeafterboth
--- a/tests/src/interfaces/types-lookup.ts
+++ b/tests/src/interfaces/types-lookup.ts
@@ -1697,13 +1697,26 @@
     readonly type: 'Value' | 'Hash';
   }
 
-  /** @name PalletTemplateTransactionPaymentCall (207) */
+  /** @name PalletConfigurationCall (207) */
+  export interface PalletConfigurationCall extends Enum {
+    readonly isSetWeightToFeeCoefficientOverride: boolean;
+    readonly asSetWeightToFeeCoefficientOverride: {
+      readonly coeff: Option<u32>;
+    } & Struct;
+    readonly isSetMinGasPriceOverride: boolean;
+    readonly asSetMinGasPriceOverride: {
+      readonly coeff: Option<u64>;
+    } & Struct;
+    readonly type: 'SetWeightToFeeCoefficientOverride' | 'SetMinGasPriceOverride';
+  }
+
+  /** @name PalletTemplateTransactionPaymentCall (209) */
   export type PalletTemplateTransactionPaymentCall = Null;
 
-  /** @name PalletStructureCall (208) */
+  /** @name PalletStructureCall (210) */
   export type PalletStructureCall = Null;
 
-  /** @name PalletRmrkCoreCall (209) */
+  /** @name PalletRmrkCoreCall (211) */
   export interface PalletRmrkCoreCall extends Enum {
     readonly isCreateCollection: boolean;
     readonly asCreateCollection: {
@@ -1809,7 +1822,7 @@
     readonly type: 'CreateCollection' | 'DestroyCollection' | 'ChangeCollectionIssuer' | 'LockCollection' | 'MintNft' | 'BurnNft' | 'Send' | 'AcceptNft' | 'RejectNft' | 'AcceptResource' | 'AcceptResourceRemoval' | 'SetProperty' | 'SetPriority' | 'AddBasicResource' | 'AddComposableResource' | 'AddSlotResource' | 'RemoveResource';
   }
 
-  /** @name RmrkTraitsResourceResourceTypes (215) */
+  /** @name RmrkTraitsResourceResourceTypes (217) */
   export interface RmrkTraitsResourceResourceTypes extends Enum {
     readonly isBasic: boolean;
     readonly asBasic: RmrkTraitsResourceBasicResource;
@@ -1820,7 +1833,7 @@
     readonly type: 'Basic' | 'Composable' | 'Slot';
   }
 
-  /** @name RmrkTraitsResourceBasicResource (217) */
+  /** @name RmrkTraitsResourceBasicResource (219) */
   export interface RmrkTraitsResourceBasicResource extends Struct {
     readonly src: Option<Bytes>;
     readonly metadata: Option<Bytes>;
@@ -1828,7 +1841,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceComposableResource (219) */
+  /** @name RmrkTraitsResourceComposableResource (221) */
   export interface RmrkTraitsResourceComposableResource extends Struct {
     readonly parts: Vec<u32>;
     readonly base: u32;
@@ -1838,7 +1851,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsResourceSlotResource (220) */
+  /** @name RmrkTraitsResourceSlotResource (222) */
   export interface RmrkTraitsResourceSlotResource extends Struct {
     readonly base: u32;
     readonly src: Option<Bytes>;
@@ -1848,7 +1861,7 @@
     readonly thumb: Option<Bytes>;
   }
 
-  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (222) */
+  /** @name RmrkTraitsNftAccountIdOrCollectionNftTuple (224) */
   export interface RmrkTraitsNftAccountIdOrCollectionNftTuple extends Enum {
     readonly isAccountId: boolean;
     readonly asAccountId: AccountId32;
@@ -1857,7 +1870,7 @@
     readonly type: 'AccountId' | 'CollectionAndNftTuple';
   }
 
-  /** @name PalletRmrkEquipCall (226) */
+  /** @name PalletRmrkEquipCall (228) */
   export interface PalletRmrkEquipCall extends Enum {
     readonly isCreateBase: boolean;
     readonly asCreateBase: {
@@ -1879,7 +1892,7 @@
     readonly type: 'CreateBase' | 'ThemeAdd' | 'Equippable';
   }
 
-  /** @name RmrkTraitsPartPartType (229) */
+  /** @name RmrkTraitsPartPartType (231) */
   export interface RmrkTraitsPartPartType extends Enum {
     readonly isFixedPart: boolean;
     readonly asFixedPart: RmrkTraitsPartFixedPart;
@@ -1888,14 +1901,14 @@
     readonly type: 'FixedPart' | 'SlotPart';
   }
 
-  /** @name RmrkTraitsPartFixedPart (231) */
+  /** @name RmrkTraitsPartFixedPart (233) */
   export interface RmrkTraitsPartFixedPart extends Struct {
     readonly id: u32;
     readonly z: u32;
     readonly src: Bytes;
   }
 
-  /** @name RmrkTraitsPartSlotPart (232) */
+  /** @name RmrkTraitsPartSlotPart (234) */
   export interface RmrkTraitsPartSlotPart extends Struct {
     readonly id: u32;
     readonly equippable: RmrkTraitsPartEquippableList;
@@ -1903,7 +1916,7 @@
     readonly z: u32;
   }
 
-  /** @name RmrkTraitsPartEquippableList (233) */
+  /** @name RmrkTraitsPartEquippableList (235) */
   export interface RmrkTraitsPartEquippableList extends Enum {
     readonly isAll: boolean;
     readonly isEmpty: boolean;
@@ -1912,20 +1925,20 @@
     readonly type: 'All' | 'Empty' | 'Custom';
   }
 
-  /** @name RmrkTraitsTheme (235) */
+  /** @name RmrkTraitsTheme (237) */
   export interface RmrkTraitsTheme extends Struct {
     readonly name: Bytes;
     readonly properties: Vec<RmrkTraitsThemeThemeProperty>;
     readonly inherit: bool;
   }
 
-  /** @name RmrkTraitsThemeThemeProperty (237) */
+  /** @name RmrkTraitsThemeThemeProperty (239) */
   export interface RmrkTraitsThemeThemeProperty extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name PalletEvmCall (239) */
+  /** @name PalletEvmCall (241) */
   export interface PalletEvmCall extends Enum {
     readonly isWithdraw: boolean;
     readonly asWithdraw: {
@@ -1970,7 +1983,7 @@
     readonly type: 'Withdraw' | 'Call' | 'Create' | 'Create2';
   }
 
-  /** @name PalletEthereumCall (245) */
+  /** @name PalletEthereumCall (247) */
   export interface PalletEthereumCall extends Enum {
     readonly isTransact: boolean;
     readonly asTransact: {
@@ -1979,7 +1992,7 @@
     readonly type: 'Transact';
   }
 
-  /** @name EthereumTransactionTransactionV2 (246) */
+  /** @name EthereumTransactionTransactionV2 (248) */
   export interface EthereumTransactionTransactionV2 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumTransactionLegacyTransaction;
@@ -1990,7 +2003,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumTransactionLegacyTransaction (247) */
+  /** @name EthereumTransactionLegacyTransaction (249) */
   export interface EthereumTransactionLegacyTransaction extends Struct {
     readonly nonce: U256;
     readonly gasPrice: U256;
@@ -2001,7 +2014,7 @@
     readonly signature: EthereumTransactionTransactionSignature;
   }
 
-  /** @name EthereumTransactionTransactionAction (248) */
+  /** @name EthereumTransactionTransactionAction (250) */
   export interface EthereumTransactionTransactionAction extends Enum {
     readonly isCall: boolean;
     readonly asCall: H160;
@@ -2009,14 +2022,14 @@
     readonly type: 'Call' | 'Create';
   }
 
-  /** @name EthereumTransactionTransactionSignature (249) */
+  /** @name EthereumTransactionTransactionSignature (251) */
   export interface EthereumTransactionTransactionSignature extends Struct {
     readonly v: u64;
     readonly r: H256;
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionEip2930Transaction (251) */
+  /** @name EthereumTransactionEip2930Transaction (253) */
   export interface EthereumTransactionEip2930Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2031,13 +2044,13 @@
     readonly s: H256;
   }
 
-  /** @name EthereumTransactionAccessListItem (253) */
+  /** @name EthereumTransactionAccessListItem (255) */
   export interface EthereumTransactionAccessListItem extends Struct {
     readonly address: H160;
     readonly storageKeys: Vec<H256>;
   }
 
-  /** @name EthereumTransactionEip1559Transaction (254) */
+  /** @name EthereumTransactionEip1559Transaction (256) */
   export interface EthereumTransactionEip1559Transaction extends Struct {
     readonly chainId: u64;
     readonly nonce: U256;
@@ -2053,7 +2066,7 @@
     readonly s: H256;
   }
 
-  /** @name PalletEvmMigrationCall (255) */
+  /** @name PalletEvmMigrationCall (257) */
   export interface PalletEvmMigrationCall extends Enum {
     readonly isBegin: boolean;
     readonly asBegin: {
@@ -2072,7 +2085,7 @@
     readonly type: 'Begin' | 'SetData' | 'Finish';
   }
 
-  /** @name PalletSudoEvent (258) */
+  /** @name PalletSudoEvent (260) */
   export interface PalletSudoEvent extends Enum {
     readonly isSudid: boolean;
     readonly asSudid: {
@@ -2089,7 +2102,7 @@
     readonly type: 'Sudid' | 'KeyChanged' | 'SudoAsDone';
   }
 
-  /** @name SpRuntimeDispatchError (260) */
+  /** @name SpRuntimeDispatchError (262) */
   export interface SpRuntimeDispatchError extends Enum {
     readonly isOther: boolean;
     readonly isCannotLookup: boolean;
@@ -2108,13 +2121,13 @@
     readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional';
   }
 
-  /** @name SpRuntimeModuleError (261) */
+  /** @name SpRuntimeModuleError (263) */
   export interface SpRuntimeModuleError extends Struct {
     readonly index: u8;
     readonly error: U8aFixed;
   }
 
-  /** @name SpRuntimeTokenError (262) */
+  /** @name SpRuntimeTokenError (264) */
   export interface SpRuntimeTokenError extends Enum {
     readonly isNoFunds: boolean;
     readonly isWouldDie: boolean;
@@ -2126,7 +2139,7 @@
     readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported';
   }
 
-  /** @name SpRuntimeArithmeticError (263) */
+  /** @name SpRuntimeArithmeticError (265) */
   export interface SpRuntimeArithmeticError extends Enum {
     readonly isUnderflow: boolean;
     readonly isOverflow: boolean;
@@ -2134,20 +2147,20 @@
     readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero';
   }
 
-  /** @name SpRuntimeTransactionalError (264) */
+  /** @name SpRuntimeTransactionalError (266) */
   export interface SpRuntimeTransactionalError extends Enum {
     readonly isLimitReached: boolean;
     readonly isNoLayer: boolean;
     readonly type: 'LimitReached' | 'NoLayer';
   }
 
-  /** @name PalletSudoError (265) */
+  /** @name PalletSudoError (267) */
   export interface PalletSudoError extends Enum {
     readonly isRequireSudo: boolean;
     readonly type: 'RequireSudo';
   }
 
-  /** @name FrameSystemAccountInfo (266) */
+  /** @name FrameSystemAccountInfo (268) */
   export interface FrameSystemAccountInfo extends Struct {
     readonly nonce: u32;
     readonly consumers: u32;
@@ -2156,19 +2169,19 @@
     readonly data: PalletBalancesAccountData;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU64 (267) */
+  /** @name FrameSupportWeightsPerDispatchClassU64 (269) */
   export interface FrameSupportWeightsPerDispatchClassU64 extends Struct {
     readonly normal: u64;
     readonly operational: u64;
     readonly mandatory: u64;
   }
 
-  /** @name SpRuntimeDigest (268) */
+  /** @name SpRuntimeDigest (270) */
   export interface SpRuntimeDigest extends Struct {
     readonly logs: Vec<SpRuntimeDigestDigestItem>;
   }
 
-  /** @name SpRuntimeDigestDigestItem (270) */
+  /** @name SpRuntimeDigestDigestItem (272) */
   export interface SpRuntimeDigestDigestItem extends Enum {
     readonly isOther: boolean;
     readonly asOther: Bytes;
@@ -2182,14 +2195,14 @@
     readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated';
   }
 
-  /** @name FrameSystemEventRecord (272) */
+  /** @name FrameSystemEventRecord (274) */
   export interface FrameSystemEventRecord extends Struct {
     readonly phase: FrameSystemPhase;
     readonly event: Event;
     readonly topics: Vec<H256>;
   }
 
-  /** @name FrameSystemEvent (274) */
+  /** @name FrameSystemEvent (276) */
   export interface FrameSystemEvent extends Enum {
     readonly isExtrinsicSuccess: boolean;
     readonly asExtrinsicSuccess: {
@@ -2217,14 +2230,14 @@
     readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked';
   }
 
-  /** @name FrameSupportWeightsDispatchInfo (275) */
+  /** @name FrameSupportWeightsDispatchInfo (277) */
   export interface FrameSupportWeightsDispatchInfo extends Struct {
     readonly weight: u64;
     readonly class: FrameSupportWeightsDispatchClass;
     readonly paysFee: FrameSupportWeightsPays;
   }
 
-  /** @name FrameSupportWeightsDispatchClass (276) */
+  /** @name FrameSupportWeightsDispatchClass (278) */
   export interface FrameSupportWeightsDispatchClass extends Enum {
     readonly isNormal: boolean;
     readonly isOperational: boolean;
@@ -2232,14 +2245,14 @@
     readonly type: 'Normal' | 'Operational' | 'Mandatory';
   }
 
-  /** @name FrameSupportWeightsPays (277) */
+  /** @name FrameSupportWeightsPays (279) */
   export interface FrameSupportWeightsPays extends Enum {
     readonly isYes: boolean;
     readonly isNo: boolean;
     readonly type: 'Yes' | 'No';
   }
 
-  /** @name OrmlVestingModuleEvent (278) */
+  /** @name OrmlVestingModuleEvent (280) */
   export interface OrmlVestingModuleEvent extends Enum {
     readonly isVestingScheduleAdded: boolean;
     readonly asVestingScheduleAdded: {
@@ -2259,7 +2272,7 @@
     readonly type: 'VestingScheduleAdded' | 'Claimed' | 'VestingSchedulesUpdated';
   }
 
-  /** @name CumulusPalletXcmpQueueEvent (279) */
+  /** @name CumulusPalletXcmpQueueEvent (281) */
   export interface CumulusPalletXcmpQueueEvent extends Enum {
     readonly isSuccess: boolean;
     readonly asSuccess: Option<H256>;
@@ -2280,7 +2293,7 @@
     readonly type: 'Success' | 'Fail' | 'BadVersion' | 'BadFormat' | 'UpwardMessageSent' | 'XcmpMessageSent' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletXcmEvent (280) */
+  /** @name PalletXcmEvent (282) */
   export interface PalletXcmEvent extends Enum {
     readonly isAttempted: boolean;
     readonly asAttempted: XcmV2TraitsOutcome;
@@ -2317,7 +2330,7 @@
     readonly type: 'Attempted' | 'Sent' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail';
   }
 
-  /** @name XcmV2TraitsOutcome (281) */
+  /** @name XcmV2TraitsOutcome (283) */
   export interface XcmV2TraitsOutcome extends Enum {
     readonly isComplete: boolean;
     readonly asComplete: u64;
@@ -2328,7 +2341,7 @@
     readonly type: 'Complete' | 'Incomplete' | 'Error';
   }
 
-  /** @name CumulusPalletXcmEvent (283) */
+  /** @name CumulusPalletXcmEvent (285) */
   export interface CumulusPalletXcmEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: U8aFixed;
@@ -2339,7 +2352,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward';
   }
 
-  /** @name CumulusPalletDmpQueueEvent (284) */
+  /** @name CumulusPalletDmpQueueEvent (286) */
   export interface CumulusPalletDmpQueueEvent extends Enum {
     readonly isInvalidFormat: boolean;
     readonly asInvalidFormat: {
@@ -2374,7 +2387,7 @@
     readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward' | 'WeightExhausted' | 'OverweightEnqueued' | 'OverweightServiced';
   }
 
-  /** @name PalletUniqueRawEvent (285) */
+  /** @name PalletUniqueRawEvent (287) */
   export interface PalletUniqueRawEvent extends Enum {
     readonly isCollectionSponsorRemoved: boolean;
     readonly asCollectionSponsorRemoved: u32;
@@ -2399,7 +2412,7 @@
     readonly type: 'CollectionSponsorRemoved' | 'CollectionAdminAdded' | 'CollectionOwnedChanged' | 'CollectionSponsorSet' | 'SponsorshipConfirmed' | 'CollectionAdminRemoved' | 'AllowListAddressRemoved' | 'AllowListAddressAdded' | 'CollectionLimitSet' | 'CollectionPermissionSet';
   }
 
-  /** @name PalletUniqueSchedulerEvent (286) */
+  /** @name PalletUniqueSchedulerEvent (288) */
   export interface PalletUniqueSchedulerEvent extends Enum {
     readonly isScheduled: boolean;
     readonly asScheduled: {
@@ -2426,14 +2439,14 @@
     readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'CallLookupFailed';
   }
 
-  /** @name FrameSupportScheduleLookupError (288) */
+  /** @name FrameSupportScheduleLookupError (290) */
   export interface FrameSupportScheduleLookupError extends Enum {
     readonly isUnknown: boolean;
     readonly isBadFormat: boolean;
     readonly type: 'Unknown' | 'BadFormat';
   }
 
-  /** @name PalletCommonEvent (289) */
+  /** @name PalletCommonEvent (291) */
   export interface PalletCommonEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: ITuple<[u32, u8, AccountId32]>;
@@ -2460,14 +2473,14 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'ItemCreated' | 'ItemDestroyed' | 'Transfer' | 'Approved' | 'CollectionPropertySet' | 'CollectionPropertyDeleted' | 'TokenPropertySet' | 'TokenPropertyDeleted' | 'PropertyPermissionSet';
   }
 
-  /** @name PalletStructureEvent (290) */
+  /** @name PalletStructureEvent (292) */
   export interface PalletStructureEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: Result<Null, SpRuntimeDispatchError>;
     readonly type: 'Executed';
   }
 
-  /** @name PalletRmrkCoreEvent (291) */
+  /** @name PalletRmrkCoreEvent (293) */
   export interface PalletRmrkCoreEvent extends Enum {
     readonly isCollectionCreated: boolean;
     readonly asCollectionCreated: {
@@ -2557,7 +2570,7 @@
     readonly type: 'CollectionCreated' | 'CollectionDestroyed' | 'IssuerChanged' | 'CollectionLocked' | 'NftMinted' | 'NftBurned' | 'NftSent' | 'NftAccepted' | 'NftRejected' | 'PropertySet' | 'ResourceAdded' | 'ResourceRemoval' | 'ResourceAccepted' | 'ResourceRemovalAccepted' | 'PrioritySet';
   }
 
-  /** @name PalletRmrkEquipEvent (292) */
+  /** @name PalletRmrkEquipEvent (294) */
   export interface PalletRmrkEquipEvent extends Enum {
     readonly isBaseCreated: boolean;
     readonly asBaseCreated: {
@@ -2572,7 +2585,7 @@
     readonly type: 'BaseCreated' | 'EquippablesUpdated';
   }
 
-  /** @name PalletEvmEvent (293) */
+  /** @name PalletEvmEvent (295) */
   export interface PalletEvmEvent extends Enum {
     readonly isLog: boolean;
     readonly asLog: EthereumLog;
@@ -2591,21 +2604,21 @@
     readonly type: 'Log' | 'Created' | 'CreatedFailed' | 'Executed' | 'ExecutedFailed' | 'BalanceDeposit' | 'BalanceWithdraw';
   }
 
-  /** @name EthereumLog (294) */
+  /** @name EthereumLog (296) */
   export interface EthereumLog extends Struct {
     readonly address: H160;
     readonly topics: Vec<H256>;
     readonly data: Bytes;
   }
 
-  /** @name PalletEthereumEvent (295) */
+  /** @name PalletEthereumEvent (297) */
   export interface PalletEthereumEvent extends Enum {
     readonly isExecuted: boolean;
     readonly asExecuted: ITuple<[H160, H160, H256, EvmCoreErrorExitReason]>;
     readonly type: 'Executed';
   }
 
-  /** @name EvmCoreErrorExitReason (296) */
+  /** @name EvmCoreErrorExitReason (298) */
   export interface EvmCoreErrorExitReason extends Enum {
     readonly isSucceed: boolean;
     readonly asSucceed: EvmCoreErrorExitSucceed;
@@ -2618,7 +2631,7 @@
     readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal';
   }
 
-  /** @name EvmCoreErrorExitSucceed (297) */
+  /** @name EvmCoreErrorExitSucceed (299) */
   export interface EvmCoreErrorExitSucceed extends Enum {
     readonly isStopped: boolean;
     readonly isReturned: boolean;
@@ -2626,7 +2639,7 @@
     readonly type: 'Stopped' | 'Returned' | 'Suicided';
   }
 
-  /** @name EvmCoreErrorExitError (298) */
+  /** @name EvmCoreErrorExitError (300) */
   export interface EvmCoreErrorExitError extends Enum {
     readonly isStackUnderflow: boolean;
     readonly isStackOverflow: boolean;
@@ -2647,13 +2660,13 @@
     readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other' | 'InvalidCode';
   }
 
-  /** @name EvmCoreErrorExitRevert (301) */
+  /** @name EvmCoreErrorExitRevert (303) */
   export interface EvmCoreErrorExitRevert extends Enum {
     readonly isReverted: boolean;
     readonly type: 'Reverted';
   }
 
-  /** @name EvmCoreErrorExitFatal (302) */
+  /** @name EvmCoreErrorExitFatal (304) */
   export interface EvmCoreErrorExitFatal extends Enum {
     readonly isNotSupported: boolean;
     readonly isUnhandledInterrupt: boolean;
@@ -2664,7 +2677,7 @@
     readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other';
   }
 
-  /** @name FrameSystemPhase (303) */
+  /** @name FrameSystemPhase (305) */
   export interface FrameSystemPhase extends Enum {
     readonly isApplyExtrinsic: boolean;
     readonly asApplyExtrinsic: u32;
@@ -2673,27 +2686,27 @@
     readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization';
   }
 
-  /** @name FrameSystemLastRuntimeUpgradeInfo (305) */
+  /** @name FrameSystemLastRuntimeUpgradeInfo (307) */
   export interface FrameSystemLastRuntimeUpgradeInfo extends Struct {
     readonly specVersion: Compact<u32>;
     readonly specName: Text;
   }
 
-  /** @name FrameSystemLimitsBlockWeights (306) */
+  /** @name FrameSystemLimitsBlockWeights (308) */
   export interface FrameSystemLimitsBlockWeights extends Struct {
     readonly baseBlock: u64;
     readonly maxBlock: u64;
     readonly perClass: FrameSupportWeightsPerDispatchClassWeightsPerClass;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (307) */
+  /** @name FrameSupportWeightsPerDispatchClassWeightsPerClass (309) */
   export interface FrameSupportWeightsPerDispatchClassWeightsPerClass extends Struct {
     readonly normal: FrameSystemLimitsWeightsPerClass;
     readonly operational: FrameSystemLimitsWeightsPerClass;
     readonly mandatory: FrameSystemLimitsWeightsPerClass;
   }
 
-  /** @name FrameSystemLimitsWeightsPerClass (308) */
+  /** @name FrameSystemLimitsWeightsPerClass (310) */
   export interface FrameSystemLimitsWeightsPerClass extends Struct {
     readonly baseExtrinsic: u64;
     readonly maxExtrinsic: Option<u64>;
@@ -2701,25 +2714,25 @@
     readonly reserved: Option<u64>;
   }
 
-  /** @name FrameSystemLimitsBlockLength (310) */
+  /** @name FrameSystemLimitsBlockLength (311) */
   export interface FrameSystemLimitsBlockLength extends Struct {
     readonly max: FrameSupportWeightsPerDispatchClassU32;
   }
 
-  /** @name FrameSupportWeightsPerDispatchClassU32 (311) */
+  /** @name FrameSupportWeightsPerDispatchClassU32 (312) */
   export interface FrameSupportWeightsPerDispatchClassU32 extends Struct {
     readonly normal: u32;
     readonly operational: u32;
     readonly mandatory: u32;
   }
 
-  /** @name FrameSupportWeightsRuntimeDbWeight (312) */
+  /** @name FrameSupportWeightsRuntimeDbWeight (313) */
   export interface FrameSupportWeightsRuntimeDbWeight extends Struct {
     readonly read: u64;
     readonly write: u64;
   }
 
-  /** @name SpVersionRuntimeVersion (313) */
+  /** @name SpVersionRuntimeVersion (314) */
   export interface SpVersionRuntimeVersion extends Struct {
     readonly specName: Text;
     readonly implName: Text;
@@ -2731,7 +2744,7 @@
     readonly stateVersion: u8;
   }
 
-  /** @name FrameSystemError (317) */
+  /** @name FrameSystemError (318) */
   export interface FrameSystemError extends Enum {
     readonly isInvalidSpecName: boolean;
     readonly isSpecVersionNeedsToIncrease: boolean;
@@ -2742,7 +2755,7 @@
     readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered';
   }
 
-  /** @name OrmlVestingModuleError (319) */
+  /** @name OrmlVestingModuleError (320) */
   export interface OrmlVestingModuleError extends Enum {
     readonly isZeroVestingPeriod: boolean;
     readonly isZeroVestingPeriodCount: boolean;
@@ -2753,21 +2766,21 @@
     readonly type: 'ZeroVestingPeriod' | 'ZeroVestingPeriodCount' | 'InsufficientBalanceToLock' | 'TooManyVestingSchedules' | 'AmountLow' | 'MaxVestingSchedulesExceeded';
   }
 
-  /** @name CumulusPalletXcmpQueueInboundChannelDetails (321) */
+  /** @name CumulusPalletXcmpQueueInboundChannelDetails (322) */
   export interface CumulusPalletXcmpQueueInboundChannelDetails extends Struct {
     readonly sender: u32;
     readonly state: CumulusPalletXcmpQueueInboundState;
     readonly messageMetadata: Vec<ITuple<[u32, PolkadotParachainPrimitivesXcmpMessageFormat]>>;
   }
 
-  /** @name CumulusPalletXcmpQueueInboundState (322) */
+  /** @name CumulusPalletXcmpQueueInboundState (323) */
   export interface CumulusPalletXcmpQueueInboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (325) */
+  /** @name PolkadotParachainPrimitivesXcmpMessageFormat (326) */
   export interface PolkadotParachainPrimitivesXcmpMessageFormat extends Enum {
     readonly isConcatenatedVersionedXcm: boolean;
     readonly isConcatenatedEncodedBlob: boolean;
@@ -2775,7 +2788,7 @@
     readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals';
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (328) */
+  /** @name CumulusPalletXcmpQueueOutboundChannelDetails (329) */
   export interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct {
     readonly recipient: u32;
     readonly state: CumulusPalletXcmpQueueOutboundState;
@@ -2784,14 +2797,14 @@
     readonly lastIndex: u16;
   }
 
-  /** @name CumulusPalletXcmpQueueOutboundState (329) */
+  /** @name CumulusPalletXcmpQueueOutboundState (330) */
   export interface CumulusPalletXcmpQueueOutboundState extends Enum {
     readonly isOk: boolean;
     readonly isSuspended: boolean;
     readonly type: 'Ok' | 'Suspended';
   }
 
-  /** @name CumulusPalletXcmpQueueQueueConfigData (331) */
+  /** @name CumulusPalletXcmpQueueQueueConfigData (332) */
   export interface CumulusPalletXcmpQueueQueueConfigData extends Struct {
     readonly suspendThreshold: u32;
     readonly dropThreshold: u32;
@@ -2801,7 +2814,7 @@
     readonly xcmpMaxIndividualWeight: u64;
   }
 
-  /** @name CumulusPalletXcmpQueueError (333) */
+  /** @name CumulusPalletXcmpQueueError (334) */
   export interface CumulusPalletXcmpQueueError extends Enum {
     readonly isFailedToSend: boolean;
     readonly isBadXcmOrigin: boolean;
@@ -2811,7 +2824,7 @@
     readonly type: 'FailedToSend' | 'BadXcmOrigin' | 'BadXcm' | 'BadOverweightIndex' | 'WeightOverLimit';
   }
 
-  /** @name PalletXcmError (334) */
+  /** @name PalletXcmError (335) */
   export interface PalletXcmError extends Enum {
     readonly isUnreachable: boolean;
     readonly isSendFailure: boolean;
@@ -2829,29 +2842,29 @@
     readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed';
   }
 
-  /** @name CumulusPalletXcmError (335) */
+  /** @name CumulusPalletXcmError (336) */
   export type CumulusPalletXcmError = Null;
 
-  /** @name CumulusPalletDmpQueueConfigData (336) */
+  /** @name CumulusPalletDmpQueueConfigData (337) */
   export interface CumulusPalletDmpQueueConfigData extends Struct {
     readonly maxIndividual: u64;
   }
 
-  /** @name CumulusPalletDmpQueuePageIndexData (337) */
+  /** @name CumulusPalletDmpQueuePageIndexData (338) */
   export interface CumulusPalletDmpQueuePageIndexData extends Struct {
     readonly beginUsed: u32;
     readonly endUsed: u32;
     readonly overweightCount: u64;
   }
 
-  /** @name CumulusPalletDmpQueueError (340) */
+  /** @name CumulusPalletDmpQueueError (341) */
   export interface CumulusPalletDmpQueueError extends Enum {
     readonly isUnknown: boolean;
     readonly isOverLimit: boolean;
     readonly type: 'Unknown' | 'OverLimit';
   }
 
-  /** @name PalletUniqueError (344) */
+  /** @name PalletUniqueError (345) */
   export interface PalletUniqueError extends Enum {
     readonly isCollectionDecimalPointLimitExceeded: boolean;
     readonly isConfirmUnsetSponsorFail: boolean;
@@ -2860,7 +2873,7 @@
     readonly type: 'CollectionDecimalPointLimitExceeded' | 'ConfirmUnsetSponsorFail' | 'EmptyArgument' | 'RepartitionCalledOnNonRefungibleCollection';
   }
 
-  /** @name PalletUniqueSchedulerScheduledV3 (347) */
+  /** @name PalletUniqueSchedulerScheduledV3 (348) */
   export interface PalletUniqueSchedulerScheduledV3 extends Struct {
     readonly maybeId: Option<U8aFixed>;
     readonly priority: u8;
@@ -2869,7 +2882,7 @@
     readonly origin: OpalRuntimeOriginCaller;
   }
 
-  /** @name OpalRuntimeOriginCaller (348) */
+  /** @name OpalRuntimeOriginCaller (349) */
   export interface OpalRuntimeOriginCaller extends Enum {
     readonly isVoid: boolean;
     readonly isSystem: boolean;
@@ -2883,7 +2896,7 @@
     readonly type: 'Void' | 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Ethereum';
   }
 
-  /** @name FrameSupportDispatchRawOrigin (349) */
+  /** @name FrameSupportDispatchRawOrigin (350) */
   export interface FrameSupportDispatchRawOrigin extends Enum {
     readonly isRoot: boolean;
     readonly isSigned: boolean;
@@ -2892,7 +2905,7 @@
     readonly type: 'Root' | 'Signed' | 'None';
   }
 
-  /** @name PalletXcmOrigin (350) */
+  /** @name PalletXcmOrigin (351) */
   export interface PalletXcmOrigin extends Enum {
     readonly isXcm: boolean;
     readonly asXcm: XcmV1MultiLocation;
@@ -2901,7 +2914,7 @@
     readonly type: 'Xcm' | 'Response';
   }
 
-  /** @name CumulusPalletXcmOrigin (351) */
+  /** @name CumulusPalletXcmOrigin (352) */
   export interface CumulusPalletXcmOrigin extends Enum {
     readonly isRelay: boolean;
     readonly isSiblingParachain: boolean;
@@ -2909,17 +2922,17 @@
     readonly type: 'Relay' | 'SiblingParachain';
   }
 
-  /** @name PalletEthereumRawOrigin (352) */
+  /** @name PalletEthereumRawOrigin (353) */
   export interface PalletEthereumRawOrigin extends Enum {
     readonly isEthereumTransaction: boolean;
     readonly asEthereumTransaction: H160;
     readonly type: 'EthereumTransaction';
   }
 
-  /** @name SpCoreVoid (353) */
+  /** @name SpCoreVoid (354) */
   export type SpCoreVoid = Null;
 
-  /** @name PalletUniqueSchedulerError (354) */
+  /** @name PalletUniqueSchedulerError (355) */
   export interface PalletUniqueSchedulerError extends Enum {
     readonly isFailedToSchedule: boolean;
     readonly isNotFound: boolean;
@@ -2928,7 +2941,7 @@
     readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange';
   }
 
-  /** @name UpDataStructsCollection (355) */
+  /** @name UpDataStructsCollection (356) */
   export interface UpDataStructsCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -2941,7 +2954,7 @@
     readonly externalCollection: bool;
   }
 
-  /** @name UpDataStructsSponsorshipState (356) */
+  /** @name UpDataStructsSponsorshipState (357) */
   export interface UpDataStructsSponsorshipState extends Enum {
     readonly isDisabled: boolean;
     readonly isUnconfirmed: boolean;
@@ -2951,43 +2964,43 @@
     readonly type: 'Disabled' | 'Unconfirmed' | 'Confirmed';
   }
 
-  /** @name UpDataStructsProperties (357) */
+  /** @name UpDataStructsProperties (358) */
   export interface UpDataStructsProperties extends Struct {
     readonly map: UpDataStructsPropertiesMapBoundedVec;
     readonly consumedSpace: u32;
     readonly spaceLimit: u32;
   }
 
-  /** @name UpDataStructsPropertiesMapBoundedVec (358) */
+  /** @name UpDataStructsPropertiesMapBoundedVec (359) */
   export interface UpDataStructsPropertiesMapBoundedVec extends BTreeMap<Bytes, Bytes> {}
 
-  /** @name UpDataStructsPropertiesMapPropertyPermission (363) */
+  /** @name UpDataStructsPropertiesMapPropertyPermission (364) */
   export interface UpDataStructsPropertiesMapPropertyPermission extends BTreeMap<Bytes, UpDataStructsPropertyPermission> {}
 
-  /** @name UpDataStructsCollectionStats (370) */
+  /** @name UpDataStructsCollectionStats (371) */
   export interface UpDataStructsCollectionStats extends Struct {
     readonly created: u32;
     readonly destroyed: u32;
     readonly alive: u32;
   }
 
-  /** @name UpDataStructsTokenChild (371) */
+  /** @name UpDataStructsTokenChild (372) */
   export interface UpDataStructsTokenChild extends Struct {
     readonly token: u32;
     readonly collection: u32;
   }
 
-  /** @name PhantomTypeUpDataStructs (372) */
+  /** @name PhantomTypeUpDataStructs (373) */
   export interface PhantomTypeUpDataStructs extends Vec<ITuple<[UpDataStructsTokenData, UpDataStructsRpcCollection, RmrkTraitsCollectionCollectionInfo, RmrkTraitsNftNftInfo, RmrkTraitsResourceResourceInfo, RmrkTraitsPropertyPropertyInfo, RmrkTraitsBaseBaseInfo, RmrkTraitsPartPartType, RmrkTraitsTheme, RmrkTraitsNftNftChild]>> {}
 
-  /** @name UpDataStructsTokenData (374) */
+  /** @name UpDataStructsTokenData (375) */
   export interface UpDataStructsTokenData extends Struct {
     readonly properties: Vec<UpDataStructsProperty>;
     readonly owner: Option<PalletEvmAccountBasicCrossAccountIdRepr>;
     readonly pieces: u128;
   }
 
-  /** @name UpDataStructsRpcCollection (376) */
+  /** @name UpDataStructsRpcCollection (377) */
   export interface UpDataStructsRpcCollection extends Struct {
     readonly owner: AccountId32;
     readonly mode: UpDataStructsCollectionMode;
@@ -3002,7 +3015,7 @@
     readonly readOnly: bool;
   }
 
-  /** @name RmrkTraitsCollectionCollectionInfo (377) */
+  /** @name RmrkTraitsCollectionCollectionInfo (378) */
   export interface RmrkTraitsCollectionCollectionInfo extends Struct {
     readonly issuer: AccountId32;
     readonly metadata: Bytes;
@@ -3011,7 +3024,7 @@
     readonly nftsCount: u32;
   }
 
-  /** @name RmrkTraitsNftNftInfo (378) */
+  /** @name RmrkTraitsNftNftInfo (379) */
   export interface RmrkTraitsNftNftInfo extends Struct {
     readonly owner: RmrkTraitsNftAccountIdOrCollectionNftTuple;
     readonly royalty: Option<RmrkTraitsNftRoyaltyInfo>;
@@ -3020,13 +3033,13 @@
     readonly pending: bool;
   }
 
-  /** @name RmrkTraitsNftRoyaltyInfo (380) */
+  /** @name RmrkTraitsNftRoyaltyInfo (381) */
   export interface RmrkTraitsNftRoyaltyInfo extends Struct {
     readonly recipient: AccountId32;
     readonly amount: Permill;
   }
 
-  /** @name RmrkTraitsResourceResourceInfo (381) */
+  /** @name RmrkTraitsResourceResourceInfo (382) */
   export interface RmrkTraitsResourceResourceInfo extends Struct {
     readonly id: u32;
     readonly resource: RmrkTraitsResourceResourceTypes;
@@ -3034,26 +3047,26 @@
     readonly pendingRemoval: bool;
   }
 
-  /** @name RmrkTraitsPropertyPropertyInfo (382) */
+  /** @name RmrkTraitsPropertyPropertyInfo (383) */
   export interface RmrkTraitsPropertyPropertyInfo extends Struct {
     readonly key: Bytes;
     readonly value: Bytes;
   }
 
-  /** @name RmrkTraitsBaseBaseInfo (383) */
+  /** @name RmrkTraitsBaseBaseInfo (384) */
   export interface RmrkTraitsBaseBaseInfo extends Struct {
     readonly issuer: AccountId32;
     readonly baseType: Bytes;
     readonly symbol: Bytes;
   }
 
-  /** @name RmrkTraitsNftNftChild (384) */
+  /** @name RmrkTraitsNftNftChild (385) */
   export interface RmrkTraitsNftNftChild extends Struct {
     readonly collectionId: u32;
     readonly nftId: u32;
   }
 
-  /** @name PalletCommonError (386) */
+  /** @name PalletCommonError (387) */
   export interface PalletCommonError extends Enum {
     readonly isCollectionNotFound: boolean;
     readonly isMustBeTokenOwner: boolean;
@@ -3092,7 +3105,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 (388) */
+  /** @name PalletFungibleError (389) */
   export interface PalletFungibleError extends Enum {
     readonly isNotFungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isFungibleItemsHaveNoId: boolean;
@@ -3102,12 +3115,12 @@
     readonly type: 'NotFungibleDataUsedToMintFungibleCollectionToken' | 'FungibleItemsHaveNoId' | 'FungibleItemsDontHaveData' | 'FungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletRefungibleItemData (389) */
+  /** @name PalletRefungibleItemData (390) */
   export interface PalletRefungibleItemData extends Struct {
     readonly constData: Bytes;
   }
 
-  /** @name PalletRefungibleError (394) */
+  /** @name PalletRefungibleError (395) */
   export interface PalletRefungibleError extends Enum {
     readonly isNotRefungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isWrongRefungiblePieces: boolean;
@@ -3117,12 +3130,12 @@
     readonly type: 'NotRefungibleDataUsedToMintFungibleCollectionToken' | 'WrongRefungiblePieces' | 'RepartitionWhileNotOwningAllPieces' | 'RefungibleDisallowsNesting' | 'SettingPropertiesNotAllowed';
   }
 
-  /** @name PalletNonfungibleItemData (395) */
+  /** @name PalletNonfungibleItemData (396) */
   export interface PalletNonfungibleItemData extends Struct {
     readonly owner: PalletEvmAccountBasicCrossAccountIdRepr;
   }
 
-  /** @name UpDataStructsPropertyScope (397) */
+  /** @name UpDataStructsPropertyScope (398) */
   export interface UpDataStructsPropertyScope extends Enum {
     readonly isNone: boolean;
     readonly isRmrk: boolean;
@@ -3130,7 +3143,7 @@
     readonly type: 'None' | 'Rmrk' | 'Eth';
   }
 
-  /** @name PalletNonfungibleError (399) */
+  /** @name PalletNonfungibleError (400) */
   export interface PalletNonfungibleError extends Enum {
     readonly isNotNonfungibleDataUsedToMintFungibleCollectionToken: boolean;
     readonly isNonfungibleItemsHaveNoAmount: boolean;
@@ -3138,7 +3151,7 @@
     readonly type: 'NotNonfungibleDataUsedToMintFungibleCollectionToken' | 'NonfungibleItemsHaveNoAmount' | 'CantBurnNftWithChildren';
   }
 
-  /** @name PalletStructureError (400) */
+  /** @name PalletStructureError (401) */
   export interface PalletStructureError extends Enum {
     readonly isOuroborosDetected: boolean;
     readonly isDepthLimit: boolean;
@@ -3147,7 +3160,7 @@
     readonly type: 'OuroborosDetected' | 'DepthLimit' | 'BreadthLimit' | 'TokenNotFound';
   }
 
-  /** @name PalletRmrkCoreError (401) */
+  /** @name PalletRmrkCoreError (402) */
   export interface PalletRmrkCoreError extends Enum {
     readonly isCorruptedCollectionType: boolean;
     readonly isRmrkPropertyKeyIsTooLong: boolean;
@@ -3171,7 +3184,7 @@
     readonly type: 'CorruptedCollectionType' | 'RmrkPropertyKeyIsTooLong' | 'RmrkPropertyValueIsTooLong' | 'RmrkPropertyIsNotFound' | 'UnableToDecodeRmrkData' | 'CollectionNotEmpty' | 'NoAvailableCollectionId' | 'NoAvailableNftId' | 'CollectionUnknown' | 'NoPermission' | 'NonTransferable' | 'CollectionFullOrLocked' | 'ResourceDoesntExist' | 'CannotSendToDescendentOrSelf' | 'CannotAcceptNonOwnedNft' | 'CannotRejectNonOwnedNft' | 'CannotRejectNonPendingNft' | 'ResourceNotPending' | 'NoAvailableResourceId';
   }
 
-  /** @name PalletRmrkEquipError (403) */
+  /** @name PalletRmrkEquipError (404) */
   export interface PalletRmrkEquipError extends Enum {
     readonly isPermissionError: boolean;
     readonly isNoAvailableBaseId: boolean;
@@ -3183,7 +3196,7 @@
     readonly type: 'PermissionError' | 'NoAvailableBaseId' | 'NoAvailablePartId' | 'BaseDoesntExist' | 'NeedsDefaultThemeFirst' | 'PartDoesntExist' | 'NoEquippableOnFixedPart';
   }
 
-  /** @name PalletEvmError (406) */
+  /** @name PalletEvmError (407) */
   export interface PalletEvmError extends Enum {
     readonly isBalanceLow: boolean;
     readonly isFeeOverflow: boolean;
@@ -3194,7 +3207,7 @@
     readonly type: 'BalanceLow' | 'FeeOverflow' | 'PaymentOverflow' | 'WithdrawFailed' | 'GasPriceTooLow' | 'InvalidNonce';
   }
 
-  /** @name FpRpcTransactionStatus (409) */
+  /** @name FpRpcTransactionStatus (410) */
   export interface FpRpcTransactionStatus extends Struct {
     readonly transactionHash: H256;
     readonly transactionIndex: u32;
@@ -3205,10 +3218,10 @@
     readonly logsBloom: EthbloomBloom;
   }
 
-  /** @name EthbloomBloom (411) */
+  /** @name EthbloomBloom (412) */
   export interface EthbloomBloom extends U8aFixed {}
 
-  /** @name EthereumReceiptReceiptV3 (413) */
+  /** @name EthereumReceiptReceiptV3 (414) */
   export interface EthereumReceiptReceiptV3 extends Enum {
     readonly isLegacy: boolean;
     readonly asLegacy: EthereumReceiptEip658ReceiptData;
@@ -3219,7 +3232,7 @@
     readonly type: 'Legacy' | 'Eip2930' | 'Eip1559';
   }
 
-  /** @name EthereumReceiptEip658ReceiptData (414) */
+  /** @name EthereumReceiptEip658ReceiptData (415) */
   export interface EthereumReceiptEip658ReceiptData extends Struct {
     readonly statusCode: u8;
     readonly usedGas: U256;
@@ -3227,14 +3240,14 @@
     readonly logs: Vec<EthereumLog>;
   }
 
-  /** @name EthereumBlock (415) */
+  /** @name EthereumBlock (416) */
   export interface EthereumBlock extends Struct {
     readonly header: EthereumHeader;
     readonly transactions: Vec<EthereumTransactionTransactionV2>;
     readonly ommers: Vec<EthereumHeader>;
   }
 
-  /** @name EthereumHeader (416) */
+  /** @name EthereumHeader (417) */
   export interface EthereumHeader extends Struct {
     readonly parentHash: H256;
     readonly ommersHash: H256;
@@ -3253,24 +3266,24 @@
     readonly nonce: EthereumTypesHashH64;
   }
 
-  /** @name EthereumTypesHashH64 (417) */
+  /** @name EthereumTypesHashH64 (418) */
   export interface EthereumTypesHashH64 extends U8aFixed {}
 
-  /** @name PalletEthereumError (422) */
+  /** @name PalletEthereumError (423) */
   export interface PalletEthereumError extends Enum {
     readonly isInvalidSignature: boolean;
     readonly isPreLogExists: boolean;
     readonly type: 'InvalidSignature' | 'PreLogExists';
   }
 
-  /** @name PalletEvmCoderSubstrateError (423) */
+  /** @name PalletEvmCoderSubstrateError (424) */
   export interface PalletEvmCoderSubstrateError extends Enum {
     readonly isOutOfGas: boolean;
     readonly isOutOfFund: boolean;
     readonly type: 'OutOfGas' | 'OutOfFund';
   }
 
-  /** @name PalletEvmContractHelpersSponsoringModeT (424) */
+  /** @name PalletEvmContractHelpersSponsoringModeT (425) */
   export interface PalletEvmContractHelpersSponsoringModeT extends Enum {
     readonly isDisabled: boolean;
     readonly isAllowlisted: boolean;
@@ -3278,20 +3291,20 @@
     readonly type: 'Disabled' | 'Allowlisted' | 'Generous';
   }
 
-  /** @name PalletEvmContractHelpersError (426) */
+  /** @name PalletEvmContractHelpersError (427) */
   export interface PalletEvmContractHelpersError extends Enum {
     readonly isNoPermission: boolean;
     readonly type: 'NoPermission';
   }
 
-  /** @name PalletEvmMigrationError (427) */
+  /** @name PalletEvmMigrationError (428) */
   export interface PalletEvmMigrationError extends Enum {
     readonly isAccountNotEmpty: boolean;
     readonly isAccountIsNotMigrating: boolean;
     readonly type: 'AccountNotEmpty' | 'AccountIsNotMigrating';
   }
 
-  /** @name SpRuntimeMultiSignature (429) */
+  /** @name SpRuntimeMultiSignature (430) */
   export interface SpRuntimeMultiSignature extends Enum {
     readonly isEd25519: boolean;
     readonly asEd25519: SpCoreEd25519Signature;
@@ -3302,34 +3315,34 @@
     readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa';
   }
 
-  /** @name SpCoreEd25519Signature (430) */
+  /** @name SpCoreEd25519Signature (431) */
   export interface SpCoreEd25519Signature extends U8aFixed {}
 
-  /** @name SpCoreSr25519Signature (432) */
+  /** @name SpCoreSr25519Signature (433) */
   export interface SpCoreSr25519Signature extends U8aFixed {}
 
-  /** @name SpCoreEcdsaSignature (433) */
+  /** @name SpCoreEcdsaSignature (434) */
   export interface SpCoreEcdsaSignature extends U8aFixed {}
 
-  /** @name FrameSystemExtensionsCheckSpecVersion (436) */
+  /** @name FrameSystemExtensionsCheckSpecVersion (437) */
   export type FrameSystemExtensionsCheckSpecVersion = Null;
 
-  /** @name FrameSystemExtensionsCheckGenesis (437) */
+  /** @name FrameSystemExtensionsCheckGenesis (438) */
   export type FrameSystemExtensionsCheckGenesis = Null;
 
-  /** @name FrameSystemExtensionsCheckNonce (440) */
+  /** @name FrameSystemExtensionsCheckNonce (441) */
   export interface FrameSystemExtensionsCheckNonce extends Compact<u32> {}
 
-  /** @name FrameSystemExtensionsCheckWeight (441) */
+  /** @name FrameSystemExtensionsCheckWeight (442) */
   export type FrameSystemExtensionsCheckWeight = Null;
 
-  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (442) */
+  /** @name PalletTemplateTransactionPaymentChargeTransactionPayment (443) */
   export interface PalletTemplateTransactionPaymentChargeTransactionPayment extends Compact<u128> {}
 
-  /** @name OpalRuntimeRuntime (443) */
+  /** @name OpalRuntimeRuntime (444) */
   export type OpalRuntimeRuntime = Null;
 
-  /** @name PalletEthereumFakeTransactionFinalizer (444) */
+  /** @name PalletEthereumFakeTransactionFinalizer (445) */
   export type PalletEthereumFakeTransactionFinalizer = Null;
 
 } // declare module
modifiedtests/src/pallet-presence.test.tsdiffbeforeafterboth
--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -50,6 +50,7 @@
   'unique',
   'nonfungible',
   'charging',
+  'configuration',
 ];
 
 // Pallets that depend on consensus and governance configuration